Object Oriented Modelling
and Design
1
MODULE TWO
UNIFIED PROCESS
System development Process models
in object technology (with UML)
2
Assignment-1
3
Based on your current knowledge, design a
DFD+ERD and UML Model for Registry System,
which contents at least 3 entities, i.e Student,
Lecturer and Courses.
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
Specifying – building models that are precise, unambiguous,
and complete
Constructing – possible to map from a model in the UML to a
programming language
Documenting
Intended for software-intensive systems
WHAT UML IS NOT
UML is not a method or methodology
(Methododology= 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
Class diagram
Object diagram
Component diagram
Deployment diagram
Diagrams used to describe behavior
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 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.
Recall that It consists of 5 basic phases: -
System planning
includes initial investigation
System analysis
includes requirements capture/elicitation
System design
System construction and implementation
includes system testing
System deployment and maintenance
Every system development models that have
been developed incorporates these basic phases
into their model, ex: - Waterfall Model, Iterative
Model, Unified Process etc
Types of Software process models?
10
A simplified representation of a software process, presented
from a specific perspective.
Generic process models
1. Waterfall (linear sequential)
2. Prototyping
3. Iterative (Evolutionary)development- Spiral
4. RUP – Rational Unified Process
Other process models
1. Agile
2. Cleanroom
3. DSDM - Dynamic Systems Development Method
4. RAD - Rapid Application Development
5. XP – eXtreme Programming
6. V-Model
Waterfall Model of SDLC
Discussion of the Waterfall Model
12
Advantages:
Process visibility
Dependence on individuals
Quality control
Cost control
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
13
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 the system
to provide additional input to modify the previous delivery
Users check outputs, interactivity, usability and the like
The analyst uses the feedback to revise the prototype and deliver
new versions
This iterative process continues until the users are relatively
satisfied.
Prototyping (cont.)
14
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
Relatively costly development as developers produce different
versions before final delivery
Iterative and Incremental (Evolutionary)
development
15
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 to days Rational Unified
Process(RUP), the Dynamic Systems Development
Method(DSDM), Extreme Programming(XP) and
generally the agile software development.
An iterative development model
16
Evolutionary development process
17
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
20
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
23
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
static;
A practice perspective that suggests good practice to be used
during the process.
RUP phase model
Phase iteration
Inception Elaboration Cons truction 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
Benefits of RUP
The Rational 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.
Agile Software Process Models
29
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
30
Basicworkflows (not to stick to a single
process model or methodology- just in
object orientation
Eachworkflow 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…
32
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…
34
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
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
Review Questions
36
1. List down the different software development
process
2. What is the basic cycles of each process
3. What is the advantage and disadvantage of each
process
4. Under what condition you choose one method from
the other
Assignment-1
37
Based on your current knowledge, design a
DFD+ERD and UML Model for Registry System,
which contents at least 3 entities, i.e Student,
Lecturer and Courses.
38
End of Module 2