You are on page 1of 28

Wolkite University

College Of Computing and Informatics


Department of Software Engineering

Object Oriented Software


Analysis and Design
Chapter – 1
Introduction to Software Development
Part - II

Compiled By: Aliazar D.


Software Development Life Cycle (SDLC)
2

 SDLC encompasses the phases/processes that a software developer goes


through when developing a new software.
• SDLC has several clearly defined phases
• Requirements gathering: What does the user want?

• Systems analysis; Understanding/documenting requirements.

• Design: Planning a possible solution.

• Implementation: Building a solution.

• Testing: Ensuring it meets requirements.

• Requirements gathering and systems analysis are performed iteratively.


• Design/Implementation/Testing are done sequentially.
• Every Software Process Models that have been developed incorporates
these basic phases into their model, ex: - Waterfall Model, Iterative
Model, Unified Process etc

Compiled By: Aliazar D.


Software Process Models (SPM)
3
 SPM is a simplified representation of a software
development process, presented from a specific
perspective.
 Generic process models
 Waterfall (linear sequential)
 Prototyping
 Iterative (Evolutionary)development- Spiral
 RUP – Rational Unified Process
 Other process models (Reading Assignment!!)
 Agile
 DSDM - Dynamic Systems Development Method
 RAD  - Rapid Application Development
 XP – eXtreme Programming
 V-Model
Compiled By: Aliazar D.
Waterfall Model of SDLC
Waterfall model is the simplest model of software development
paradigm. All the phases of SDLC will function one after another in linear
manner. That is, when the first phase is finished then only the second
phase will start and so on.

Compiled By: Aliazar D. 4


Discussion of the Waterfall Model
5
Advantages:
 Simple and easy to understand and use
 Easy to manage due to the rigidity of the model.
 Each phase has specific deliverables and a review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are very well understood.
 Clearly defined stages.
 Easy to arrange tasks.
Process and results are well documented.
Disadvantages:
 No working software is produced until late during the life cycle.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
 It is difficult to measure progress within stages.
 Cannot accommodate changing requirements.
 Adjusting scope during the life cycle can end a project.

Compiled By: Aliazar D.


Prototyping
6
Building a scaled-down working version of the system.
 Analysts work with users to determine the initial &
basic requirements for the system.
 The analyst then quickly builds a prototype.
 When the prototype is complete, the users work
with him/her & tell what they like & don’t like
about it.
 The analyst uses this feedback  improve the
prototype.
 This iterative process continues until the users are
relatively satisfied.

Compiled By: Aliazar D.


Cont..
7

 Advantages:
 Users are involved in the Analysis & Design process
 Captures requirements in concrete form, rather than
verbal/abstract form
 ……
 Disadvantages:
 Insufficient analysis
 User confusion of prototype and finished system
 Excessive development time of the prototype
 Expense of implementing prototyping
 …….

Compiled By: Aliazar D.


Iterative and Incremental (Evolutionary)
Development
8

is a cyclic software development process developed


in response to the weaknesses of the waterfall
model.
Starts with an initial planning and ends with
deployment with the cyclic interaction in between.
is an essential part of today's Rational Unified
Process(RUP), the Dynamic Systems Development
Method(DSDM), Extreme Programming(XP) and
generally the agile software development.

Compiled By: Aliazar D.


An iterative development model
9

Compiled By: Aliazar D.


Evolutionary development process
10

Problems
• Lack of process visibility
• Systems are often poorly structured due to lack of
proper planning
• Special skills (e.g. in languages for rapid
prototyping) may be required
Applicability
• For small or medium-size interactive systems
• For parts of large systems (e.g. the user interface)
• For short-lifetime systems

Compiled By: Aliazar D.


Iteration Across Life Cycle Phases

Some!

More!

Even more!

Compiled By: Aliazar D. 11


Iterative Refinement
12

Evaluation Requirements

Implementation
(prototype) Design

Compiled By: Aliazar D.


Spiral model- as part of evolutionary process
13

is a software development process combining


elements of both prototyping-in-stages and
sequential waterfall models.
 combines advantages of top-down and bottom-up concepts.
is intended for large, expensive and complicated
projects.

Compiled By: Aliazar D.


Spiral development
14

Process is represented as a spiral rather than as a


sequence of activities with backtracking.
Each loop in the spiral represents a phase in the
process.
No fixed phases such as specification or design -
loops in the spiral are chosen depending on what is
required.
Risks are explicitly assessed and resolved throughout
the process.

Compiled By: Aliazar D.


The Spiral Life Cycle Model

Compiled By: Aliazar D. 15


Advantages and disadvantages of the spiral
model
16

Advantages
• Changing requirements can be accommodated.
• Allows extensive use of prototypes.
• Requirements can be captured more accurately.
• Users see the system early.
• The spiral model promotes quality assurance through prototyping at each stage
in systems development.
Disadvantages
• Management is more complex.
• End of the project may not be known early.
• Not suitable for small or low risk projects and could be expensive for small
projects.
• Process is complex
• Spiral may go on indefinitely.

Compiled By: Aliazar D.


The Rational Unified Process
17

A modern process model derived from the work on


the UML and associated process.
Normally described from 3 perspectives
 A dynamic perspective that shows phases of the model over
time;
 A static perspective that shows process activities that are
enacted(ruled);
 A practice perspective that suggests good practice to be used
during the process.

Compiled By: Aliazar D.


RUP phases
18

Phase iteration

Inception Elaboration Construction Transition


 Inception
 Establish the business case for the system.
 Elaboration
 Develop an understanding of the problem domain and the system architecture.

 Construction
 System design, programming and testing.

 Transition
 Deploy the system in its operating environment.

Compiled By: Aliazar D.


The Unified Process Life Cycle
Model

Compiled By: Aliazar D. 19


Agile Software Process Model
20

Agile software engineering combines a philosophy


and a set of development guidelines.
The philosophy encourages
 customer satisfaction and early incremental delivery of software,
 small; highly motivated project teams;
 informal methods;
 minimal software engineering work products, and
 Overall development simplicity.
 Extreme Programming (XP)
 Adaptive Software Development (ASD)
 DSDM(Dynamic Systems Development Method)
 Feature Driven Development (FDD)

Compiled By: Aliazar D.


Work flows (Phases)- in object orientation
21

 Basic workflows (not to stick to a single


process model or methodology)- just in
object orientation.
 Each workflow is a set of activities that various
project workers perform

Compiled By: Aliazar D.


Cont…
22
The workflows are: -
 Requirements-elicitation (gathering)
 Requirement definition

 captures the functional and non functional


requirements of the new system
 Tries to understand what users need
 aims at building mainly the essential use case
model and CRC (Class-Responsibility-
Collaboration)
 Outcome: Understanding users through Use-case
Diagram, CRC, Essential UI prototyping ,
Supplementary specification
Compiled By: Aliazar D.
Cont…
23

 Analysis
 Structuring, analyzing and modeling requirements
 aims at understanding the system and building the
analysis model
 helps the developer refine and structure the functional
requirements captured through essential use-case
model
 Outcome: Determining what the system should do
and look like through System Use case, Class/Object
Diagram, Sequence Diagram, Activity diagram and UI
prototyping.

Compiled By: Aliazar D.


24

 Design
 Focus on how to make the analysis a reality
 defines how things will be built
 aims at building the design model
 describes the physical realisations of the use cases
from the use-case models and the contents of the
analysis model
 Outcome: Design level class diagram, Collaboration
Diagram, sate chart diagram, component diagram,
deployment diagram, persistent model; extending the
UML

Compiled By: Aliazar D.


Cont…
25

 Implementation and testing


 aims at building a working system, coding, testing
documentation.....
 describes how elements of the design model are
packaged into software components, i.e source code,
 Outcome: working system, test case scenarios,
documentation

Compiled By: Aliazar D.


Final remark
26

In the UP, a software product is designed


and built in a succession of incremental
iterations.
 This allows testing and validation of design
ideas, as well as risk mitigation, to occur earlier
in the lifecycle

Compiled By: Aliazar D.


27
The Unified Process captures many of modern
software development's best practices in a form
suitable for a wide range of projects and
organizations:
 Develop software iteratively.
 Manage requirements.
 Use component-based architectures.
 Visually model software.
 Continuously verify software quality.
 Control changes to software.

Compiled By: Aliazar D.


End of 1st chapter
28

Question ??
Compiled By: Aliazar D.

You might also like