Sie sind auf Seite 1von 10

OOAD ASSIGNMENT

2018

OBJECT ORIENTED
ANALYSIS
AND
DESIGN
Agile software
development

Submitted to: Sir Hassan Rauf


Class: BS-IT Morn

Semester # 5th

Submitted by:

HASSAN RAZA BITF15M040

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 1


OOAD ASSIGNMENT

Agile Software Development


The meaning of Agile is, relating to or denoting a method of
project management, used especially for software
development, that is characterized by the division of tasks
into short phases of work and frequent reassessment and
adaptation of plans.
Agile software development refers to a group of
software development methodologies based on iterative
development, where requirements and solutions evolve
through collaboration between self-organizing cross-
functional teams. Agile methods or Agile processes
generally promote a disciplined project management
process that encourages frequent inspection and
adaptation, a leadership philosophy that encourages
teamwork, self-organization and accountability, a set of
engineering best practices intended to allow for rapid
delivery of high-quality software, and a business
approach that aligns development with customer needs
and company goals.
SCRUM:

Scrum is a subset of Agile. It is a lightweight process


framework for agile development, and the most widely-
used one.

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 2


OOAD ASSIGNMENT

“Agile Development” is an umbrella term for several iterative and incremental software
development methodologies. The most popular agile methodologies include Extreme
Programming (XP), Scrum, Crystal, Dynamic Systems Development Method (DSDM), Lean
Development, and Feature-Driven Development (FDD).

While each of the agile methodologies is unique in its specific approach, they all share a
common vision and core values (see the Agile Manifesto). They all fundamentally incorporate
iteration and the continuous feedback that it provides to successively refine and deliver a
software system. They all involve continuous planning, continuous testing, continuous
integration, and other forms of continuous evolution of both the project and the software.

Many of the individual principles and practices that are promoted by agile development have
been around for years, even decades. As opposed to implementing these best practices
piecemeal, agile methodologies have “packaged” various customer, management, and in
some cases, engineering practices and principles together in a way that helps guide teams
through the process of rapidly planning and delivering working, tested software. Each of the
agile methodologies combines both old and new ideas into refinements that are certainly
greater than the sums of their parts.

While it is true that many of the practices associated with agile development have been
around for quite some time, the average software development team has yet to embrace
many of the principles and practices. Even today, the average software team does not iterate,
does not deliver software incrementally, and does not practice continuous planning nor
automate testing. Now that these practices have been combined in a manner that can more
easily be understood and adopted, the trend appears to be rapidly changing for the better,
especially during the last several years.

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 3


OOAD ASSIGNMENT

ASSIGNMENT NO 2

WHAT IS REQUIREMENT GATHERING AND SOFTWARE


ENGINEERING??

REQUIREMENT GATHERING:
The software requirements are description of features and functionalities of the
target system. Requirements convey the expectations of users from the software
product. The requirements can be obvious or hidden, known or unknown, expected
or unexpected from client’s point of view.

Requirement Engineering
The process to gather the software requirements from client, analyze and
document them is known as requirement engineering.

The goal of requirement engineering is to develop and maintain sophisticated


and descriptive ‘System Requirements Specification’ document.

Requirement Engineering Process


It is a four step process, which includes –

 Feasibility Study

 Requirement Gathering
 Software Requirement Specification
 Software Requirement Validation

Feasibility study
When the client approaches the organization for getting the desired product
developed, it comes up with rough idea about what all functions the software
must perform and which all features are expected from the software.

The output of this phase should be a feasibility study report that should contain
adequate comments and recommendations for management about whether or
not the project should be undertaken.

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 4


OOAD ASSIGNMENT

Requirement Gathering

If the feasibility report is positive towards undertaking the project, next phase
starts with gathering requirements from the user. Analysts and engineers
communicate with the client and end-users to know their ideas on what the
software should provide and which features they want the software to include.

Software Requirement Specification

SRS is a document created by system analyst after the requirements are


collected from various stakeholders.

SRS defines how the intended software will interact with hardware, external
interfaces, speed of operation, response time of system, portability of software
across various platforms, maintainability, speed of recovery after crashing,
Security, Quality, Limitations etc.

Software Requirement Validation

After requirement specifications are developed, the requirements mentioned in


this document are validated. User might ask for illegal, impractical solution or
experts may interpret the requirements incorrectly. This results in huge increase
in cost if not nipped in the bud.

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 5


OOAD ASSIGNMENT

ASSIGNMENT NO 2

What are Types of Coupling and Cohesion?

COHESION:-
To maximize the relationship between elements of same modules. Cohesion is
the concept come in sight. The cohesion of a module represents how tightly
internal element of a module are bound with one another. Greater the cohesion
of each module, lower will be the coupling between the modules.

Types:-
1. Coincidental cohesion
2. Logical cohesion
3. Temporal cohesion
4. Procedural cohesion
5. Communicational cohesion
6. Sequential cohesion
7. Functional cohesion

Coincidental cohesion:-
This occurs when there is no relationship among elements of a module. They
can occur if an existing program modularized by chopping it into pieces and
making differ piece of modules i.e. it performs a set of tasks that are related
to each other very loosely. The modules contain a random collection of
function.

Logical cohesion:-
A module having logical cohesion if there are some logical relationship
between elements of a modules i.e. elements of a module performs the
operation.

Temporal cohesion:-
It is same as logical cohesion except that the element must be executed in
same time. Set of function responsible for initialization, startup, the

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 6


OOAD ASSIGNMENT

shutdown of the same process. It is higher than logical cohesion since all
elements are executed together. This avoids the problem of passing the flag.

Procedural cohesion:-
It contains that belongs to a procedural unit in which a certain sequence of
steps has to be carried out in a certain order for achieving an objective.

Communicational cohesion:-
A module is said to have Communicational cohesion if all function of
module refers to an update the same data structure.

Sequential cohesion:-

A module is said to have sequential cohesion if element module from


different parts of the sequence. When the output from one element of the
sequence is input to the next element of a sequence. A sequence bounded
module may contain several functions or part of different functions.

Functional cohesion:-
It is the strongest cohesion in a functional bound module, all elements of the
module are related to performing a single function. By function we not mean
simply mathematical function but also these modules which have single goal
function like computing square root and sort array are a clear example of
functionality cohesion modules.

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 7


OOAD ASSIGNMENT

Coupling:
 Coupling effectively represents how the subsystems can be connected with other
subsystem or with the outside world.
 Coupling is a measure of interconnection among subsystems in a program structure.
 Coupling depends on the interface complexity between subsystems.
 The goal is to strive for the possible coupling among the subsystems in software
design.
 The property of good coupling is that it should reduce or avoid change impact and
ripple effects.it should also reduce the cost in program changes, testing and
maintenance.
 Various type of coupling:

Data coupling: The data coupling is possible by parameter passing or data interaction.
Control coupling: The modules share related control data in control coupling.
Common coupling: In common coupling common data or global data is shared among the
modules.
Content coupling: Content coupling occurs when one module makes use of data or control
information maintained in another module.

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 8


OOAD ASSIGNMENT

Assignment
4
Inception
Phases and Iterations

A phase is the span of time between two major milestones of the


process in which a well-defined set of objectives are met, artifacts are
completed, and decisions are made whether to move into the next
phase.

1. Inception Establish the vision, scope, and initial plan for the project
2. Design, implement, and test a sound architecture and
Elaboration complete the project plan
3.Construct Build the first operational system version
ion
4. Deliver the system to its end users
Transition
Inception and elaboration focus more on the creative and engineering
activities of the development life cycle, while construction and
transition focus more on production activities. Within each phase are a
number of iterations. An iteration represents a complete development
cycle, from requirements capture in analysis to implementation and
testing, that results in an executable release.
Iterations

Each phase in the Rational Unified Process can be further broken


down into iterations. An iteration is a complete development loop
resulting in a release (internal or external) of an executable product
constituting a subset of the final product under development, which
then is grown incrementally from iteration to iteration to become the
final system. This is an example Inception Phase iteration. It includes
the activities typically performed during a single iteration in the
inception phase. The inception phase is of significance primarily for
new development efforts, in which there are significant business and
requirements risks which must be addressed before the project can
proceed. For projects focused on enhancements to an existing system,
the inception phase is more brief, but is still focused on ensuring that
the project is both worth doing and possible to do.

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 9


OOAD ASSIGNMENT

© Department of information technology, University Of Sargodha, Gujranwala Campus. Pg # 10

Das könnte Ihnen auch gefallen