0% found this document useful (0 votes)
87 views36 pages

Object Oriented SAD-Chapt 1-Part II

Uploaded by

Legesse Samuel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views36 pages

Object Oriented SAD-Chapt 1-Part II

Uploaded by

Legesse Samuel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 36

Chapter One Topics

Chapter I- Introduction:
 Definitions and basic concepts (system/software, system
thinking..)
 Structured Vs OO approaches
 Basic object orientation concepts
 Process models (waterfall, Prototyping, Iterative,
RUP)
 Work flows (Phases)- in object orientation
System development Process models
in object technology (with UML)
2
THE UNIFIED MODELLING LANGUAGE
(UML)

 A language whose vocabulary and rules


focus on the conceptual and physical
representation of a system.
 UML defines Structural, Functional and
Behavioral things and diagrams.
 UML is the language of blueprints for
software.
UML…

It is a graphical language for


 Visualizing – to easily see how the system would look
like and be built
 Specifying – building models that are precise,
unambiguous, and complete
 Constructing – possible to map from a model in the
UML to a programming language
 Documenting – to put the analysis and design
decisions in writing and diagrms
Intended for software-intensive systems
WHAT UML IS NOT

UML is not a method or methodology


(Methodology= Notation (E.g.: UML) +
Process)
UML does not dictate a particular
process
UML can be used to record the resulting
domain and design models, independent
of the process
Choose an appropriate process for a
particular project, independent of the
modeling language
UML DIAGRAMS

 Diagrams used to describe structure (Static


Modeling)
 Class diagram
 Object diagram
 Component diagram
 Deployment diagram
 Diagrams used to describe behavior (Dynamic
Modeling)
 Use Case diagram (some says it is functional)
 Sequence diagram
 Activity diagram
 Collaboration diagrams
 Statechart diagram
 More on these later- Chapter TWO
Software development Life Cycle

The life of a software system development


can be represented as a series of cycle.
 A cycle ends with the release of a version of the
system to the customers.
Software development life cycle
encompasses the phases/processes that a
software developer goes through when
developing a new software.
Software development Life Cycle
Recall that It consists of 5 basic phases: -
 System planning
 includes initial investigation
 System analysis
 includes requirements capture/elicitation
 System design
 includes structuring “the how” of the new solution
 System construction/implementation
 includes system testing
 System deployment and maintenance
 includes making the system operational and correction
 Every system development models that have been
developed incorporates these basic phases into
their model, eg: - Waterfall Model, Iterative
Model, Unified Process etc
Software process models?
9

 Generic process models


 Waterfall (linear sequential)

 Prototyping (small scale version of the new system)

 Iterative (Evolutionary)development- Spiral

 RUP – Rational Unified Process

 Other process models


 Agile
 Cleanroom
 Dynamic Systems Development Method (DSDM)
 Rapid Application Development (RAD)
 eXtreme Programming (XP)
 V-Model
Waterfall Model of SDLC
Discussion of the Waterfall
Model
11
Advantages:
 Process visibility
 Dependence on individuals
 Quality control is easy
 Cost control is easy
Disadvantages:
 Inflexible partitioning of the project into distinct stages
 This makes it difficult to respond to changing customer
requirements
This model is only appropriate when the requirements are
well-understood
Each stage in the process reveals new understanding of the
previous stages, that requires the earlier stages to be revised.
Prototyping
12

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 & takes the new version back to the users
 This iterative process continues until the users are
relatively satisfied.
Prototyping (cont.)
13

 Advantages:
 Users are involved in the A&D process
 Captures requirements in concrete form, rather than
verbal/abstract form
 Disadvantages
 Insufficient analysis
 User confusion of prototype and finished system
 Developer misunderstanding of user objectives
 Developer attachment to prototype
 Excessive development time of the prototype
 Expense of implementing prototyping
Iterative and Incremental (Evolutionary)
development
14

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 todays Rational Unified
Process(RUP), the Dynamic Systems
Development Method(DSDM), Extreme
Programming(XP) and generally the agile
software development.
An iterative development model
15
Evolutionary development process
16

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
Iteration Across Life Cycle Phases
Iterative Refinement

Evaluation Requirements

Implementation
(prototype) Design
Spiral model- as part of evolutionary
process
19

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.
Spiral development

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.
The Spiral Life Cycle Model
Advantages of the spiral model
22

The spiral model promotes quality assurance


through prototyping at each stage in systems
development.
There are many evolutionary process models
The Rational Unified Process

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 endorsed;
 A practice perspective that suggests good practice to
be used during the process.
RUP phase model

Phase iteration

Inception Elaboration Construction Transition


RUP phases

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.
The Unified Process Life Cycle
Model
Agile Software Process Models
27

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)
Work flows (Phases)- in object
orientation
28

 Basicworkflows (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
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
 Outcome: Understanding users through Use-
case Diagram, CRC, Essential UI prototyping ,
Supplementary specification
Cont…
30

 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.
 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
Cont…
32

 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
Final remark

In the UP, a software product is


designed and built in a succession of
incremental iterations.
 Thisallows testing and validation of
design ideas, as well as risk mitigation, to
occur earlier in the lifecycle
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.
Summary
35

Definitions and basic concepts


 System/software, Quality software

Structured vs OO technologies
 Structured (process oriented) Vs OOT (object oriented)
Basic object orientation concepts
 Abstraction, Encapsulation, hierarchy, modularity,

Class, Object, attribute, methods, ….


Process models
 Waterfall, prototype, Incremental, RUP
Work flows- in object orientation
 Elicitation, Analysis, Design, Implementation
End of 1st chapter
36

You might also like