Professional Documents
Culture Documents
Introduction to OOSAD
2
The process
System development
Software engineering
Software Cont’d…
System development ultimate objectives
Problem solving
Supporting processes
systems
Relative Primitives
The nature of the primitive components of a
complex system is relative(subjective).
The choice of what components in a system are
primitive is relatively arbitrary and is largely up to
the discretion of the observer of the system.
What is primitive for one observer may be at a
much higher level of abstraction for another.
04/09/2023 Chapter 1 Introduction to OOSAD
15
Separation of Concerns
Hierarchic systems are decomposable because they can be
divided into identifiable parts(nearly decomposable because
their parts are not completely independent).
Intracomponent linkages are generally stronger than
intercomponent linkages.(Loose Coupling and High Cohesion)
This difference between intra- and intercomponent
interactions provides a clear separation of concerns among
the various parts of a system, making it possible to study
each part in relative isolation.
04/09/2023 Chapter 1 Introduction to OOSAD
16
Common Patterns
Hierarchic systems are usually composed of only
a few different kinds of subsystems in various
combinations and arrangements.
In other words, complex systems have common
patterns.
These patterns may involve the reuse of small
components.
04/09/2023 Chapter 1 Introduction to OOSAD
17
Customer: User:
solves problems at easy to learn;
an acceptable cost in efficient to use;
terms of money paid and helps get the work done
resources used
QUALITY
SOFTWARE
Structured (Paradigm)Approach
The structured paradigm is a development strategy based on
the concept that a system should be separated into two parts:
data (modeled using a data model) and functionality (modeled
using a process model).
applications in which data are separate from behavior both in the design
model and in the system implementation (that is, the program)
Goals of SAD
Improve quality and reduce the risk of system
failure
Establish concrete requirements specifications
and complete requirements documentation
Focus on Reliability, Flexibility, and
Maintainability of system
Implementation Model
Maps the functional requirements to the hardware
and software.
Determines which functions should be manual and
which should be automated.
Defines the Human-Computer Interface.
Defines non-functional requirements.
Tool: Structure Charts
04/09/2023 Chapter 1 Introduction to OOSAD
33
OO Paradigm (Approach)
OO Paradigm Cont’d…
OO Paradigm Cont’d…
OO Paradigm Cont’d…
Direct mapping of concepts in the problem domain to
software units and their interfaces
Viewing the world as objects is more natural since it is closer
to the way humans think
Objects are more stable than functions…
Supports information hiding, data abstraction, and
encapsulation
Easily modified, extended, and maintained…
if your product was designed correctly
04/09/2023 Chapter 1 Introduction to OOSAD
39
OO Paradigm Cont’d…
OO Paradigm Cont’d…
Design Phase
Analysis model is refined and adapted to the environment
Can be separated into two stages
System design
Concerned with overall system architecture
Object design
Implementation details are added to system design
Implementation Phase
Design is implemented using a programming language or
database management system
04/09/2023 Chapter 1 Introduction to OOSAD
Structured analysis and design vs. object oriented 44
Similarities
Both SAD and OOAD had started off from programming
techniques.
Both techniques use graphical design and graphical tools to
analyze and model the requirements.
Both techniques provide a systematic step-by-step process for
developers
Both techniques focus on documentation of the requirements
Differences
SAD is Process-Oriented
OOAD combines data and the processes
OOAD encapsulates as much of the system’s data
and processes into a single construct called
objects, while SAD separates between them.
Software Evolution
Software is inherently flexible and can change.
As requirements change through changing business
circumstances, the software that supports the
business must also evolve and change.
Although there has been a demarcation between
development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer systems are
completely new (greenfield engineering is rare).
Examples of Tools.
Project management application
Drawing/graphics application
Word processor/text editor
Visual modeling tool
Integrated development environment (IDE)
Database management application
Reverse-engineering tool
Code generator tool
04/09/2023 Chapter 1 Introduction to OOSAD
59
Plan-driven processes are process models where all of the process activities
are planned in advance and progress is measured against this plan.
Plan drives everything!
Separate and distinct phases of specification and development.
Waterfall Phases
Waterfall Problems
development
It is a cyclic software development process developed in response to the weaknesses of the
waterfall model.
Evolutionary Developments can be
Type 1: Exploratory Development: customer assisted development that evolves a product from
ignorance to insight, starting from core, well understood components.(Spiral Model, Agile
Methods…are examples)
Type 2: Throwaway Prototyping: customer assisted development that evolves requirements
from ignorance to insight by means of lightweight disposable prototypes.( Rapid Prototyping is
an example)
Iteration is an essential part of the current Rational Unified Process(RUP), the Dynamic Systems
Development Method(DSDM), Extreme Programming(XP) and generally the agile software
development.
Iterative and incremental development is the case where the functionality of the system is
developed in a successive series of releases (iterative) of increasing completeness (incremental)
development
Key idea: on each iteration, identify and solve the sub-problems with the
highest risk.
04/09/2023 Chapter 1 Introduction to OOSAD
74
Objective setting
Specific objectives for the phase are identified.
Planning
The project is reviewed and the next phase of the spiral is planned.
04/09/2023 Chapter 1 Introduction to OOSAD
77
Hierarchy:
Successful, Challenged; Failed
Few systems totally successful
Many ‘challenged’
Too many failures
Many famous practitioners starting to look at process in more detail
How can we do better?
04/09/2023 Chapter 1 Introduction to OOSAD
81
RUP
SCRUM
XP
FDD
DSDM
Kanban
Crystal
04/09/2023 Chapter 1 Introduction to OOSAD
84
These indicate the state of the system at each phase NOT the activities
involved at that point in development
04/09/2023 Chapter 1 Introduction to OOSAD
86
Elaboration
Construction
Transition
Construction
Transition
iteration phase
Iterations overtime
Whereas the RUP defines a software development lifecycle, the EUP extends it to cover the
entire information technology (IT) lifecycle.