Académique Documents
Professionnel Documents
Culture Documents
Systems
A Process Framework
Framework Activities
work tasks
work products
milestones &
deliverables
QA checkpoints
Umbrella Activities
Framework Activities
Communication
Planning
Modeling
Analysis of
requirement
Design
Construction
Code Generation
Testing
Deployment
Work Products
Models
(Analysis Model, Design)
Documents (specifications)
Data
Reports
(outputs)
Forms
Umbrella Activities
Software Project Management
Formal Technical Reviews
Software Quality Assurance
Software Configuration Management
Work Product Preparation &
Production
Reusability Management
Measurement
Method
Tools
Computer Aided Software Engineering
Tools
Quality depends on
Explicit characteristics & functionality
Implicit characteristics & functionality
Modeling: why?
To realize the actual thing
Modeling: what?
Input: Conceptual Ideas
Output: End goals
Modeling: how?
Modeling tools
Microscopic views and Iterative
refinements
Documentation (Specification, User
manual)
Modeling
User Interface
Product Implementation Models
Deployment Model (DB Server,
Network Architecture, etc)
Man Month (Project Management)
Financial Model
The Software development process
Product Models
Structure
Dynamic
Importance of Modeling
Modeling is a proven and wellaccepted engineering technique.
Examples
architectural models of houses
mathematical models to analyse the
effects of winds or earthquakes on
buildings
electrical devices from microprocessors to
telephone switching systems
In fields of sociology, economics and
business management.
Importance of Modeling
A model is a simplification of reality
It may be structural, emphasizing the
organization of the system, or it may
be behavioural, emphasizing the
dynamics of the system.
The fundamental reason for building a
model is to understand the system we
are developing in a better way.
Principles of Modeling
1. The choice of what models to create
has a profound influence on how a
problem is attacked and how a solution
is shaped.
If we are building a model for a
database developer, entity-relationship
models will be used.
In case of structured analyst, the
models that are algorithmic-centric,
with data flowing from process to
process.
Principles of Modeling
2. Every model may be expressed at
different levels of precision.
The best kinds of models are those
which allow us to choose our degree of
detail, depending on who is viewing
and why they need to view it.
Stakeholders will want to visualize a
system at different levels of detail at
different times
Principles of Modeling
3. The best models are connected to
reality.
In object-oriented systems, it is
possible to connect all the nearly
independent views of a system into a
semantic whole.
Principles of Modeling
4. No single model is sufficient. Every
nontrivial system is best approached
through a small set of nearly
independent models.
It means having models that can be
built and studied separately but that
are still interrelated.
Structural Modeling
Class diagrams
Object diagrams
Deployment diagrams
Component Package Diagrams
Dynamic Modeling
What aspects to model?
How does the group collaborate?
Interaction Diagrams
Withdraw
Account
balance
Deposit
Determine
balance
(a) Structured
Deposit
Accoun
t
Account
Balanc
e
Withdraw
Determine
Balance
Message
Structured Paradigm
Requirements Phase
Specification Phase
Design Phase
Implementation Phase
Integration Phase
Maintenance Phase
Retirement
Structured Paradigm
Specification (Analysis) Phase
Determine what product is to be done
Design Phase
Architectural Design (construct the
modules)
Detailed Design
Implementation Phase
Requirements phase
Specification phase
Design phase
Implementation phase
Integration phase
Maintenance phase
Retirement
No specifications
No design
Totally
unsatisfactory
Need life-cycle
model
Game plan
Phases
Milestones
Waterfall Model
Characterized by
Feedback loops
Documentationdriven
Advantages
Documentation
Maintenance easier
Disadvantages
Specifications
Incremental Model
It
combines
the
elements of
waterfall
model
applied in
iterative
way
Incremental model
Less traumatic
Smaller capital outlay, rapid return on
investment
Need open architecturemaintenance
implications
Variations used in object-oriented life
cycle
Build-and-fix danger
Contradiction in terms
Synchronize-and Stabilize
Model
Microsofts life-cycle model
Requirements analysisinterview potential
customers
Draw up specifications
Divide project into 3 or 4 builds
Each build is carried out by small teams
working in parallel
At the end of the daysynchronize (test and
debug)
At the end of the buildstabilize (freeze build)
Components always work together
Spiral Model
Simplified form
Waterfall model
plus risk analysis
Precede each
phase by
Alternatives
Risk analysis
Follow each
phase by
Evaluation
Planning of next
phase
Weaknesses
Object-Oriented Life-Cycle
Models
Need for iteration within and between
phases
Iteration
Parallelism
Incremental development
OO Process Model
Requirement Analysis
Design
Attributes
Software Testing
Testing is a process of exercising a
program with the specific intend of
finding errors prior to delivery to the
end user
What testing shows:
Errors
Requirement conformance
Performance
An indication of quality