You are on page 1of 73

Object Oriented Software Engineering

1 / ch. 1
Software
Engineering

Deliver yesterday, code today, think tomorrow ??
Object Oriented Software Engineering


2 / ch. 1
What is software
Software is a set of items or objects that form a
"configuration" that includes
Programs
documents
data ...
Object Oriented Software Engineering


3 / ch. 1
What is software Engineering
IEEE, 1990:
O (1) The application of a systematic, disciplined,
quantifiable approach to the development, operation, and
maintenance of [quality] software [and software services]
that is, the application of engineering to software.
O (2) The study of approaches as in (1)
Object Oriented Software Engineering


4 / ch. 1
Software Engineering
Computer Science
O CS to SE is as Chemistry to CE.
O CS and programming languages are only tools to SE.
O Wring SE is art and need to be an engineering.
O Any one can write code to solve a problem but only SE can
produce code that is robust and easy to understand and
maintain and does it in most efficient way.
Object Oriented Software Engineering


5 / ch. 1
What is a Software Engineering Process ?
O The software engineering process is the process of
developing a system from requirements, either new or
changed.
O It is a controlled approach to a development task which
follows a number of predefined activities and milestones
and has a means to control and monitor the progress.
Software-Engineering
Process
New or Change
Requirements
New or Changed
System
ODefines Who is doing What, When to do it,
and How to reach a certain goal.

Object Oriented Software Engineering


6 / ch. 1
The course structure
The backbone course for SE
O Semester A: SW Design
O Semester B: From Design to SW Product

Actually is one course with two parts
Final result an working SW product

Same methods will be used next year for the
final project
Object Oriented Software Engineering


7 / ch. 1
Semester A: Design
O Application Requirements Definition .
O Application Requirements Analysis
O Software Requirements Specification
O UML
O Software Design
O Design for Software Quality assurance

Object Oriented Software Engineering


8 / ch. 1
Semester B: Implementation
O Employees manag.
O DBA
O Coding
O Documentation
O Testing
O Performance tuning
O User training

O Installation
O versions control
O Maintenance
O Packaging
O Sales support
O Planing for new
version
Object Oriented Software Engineering


9 / ch. 1
Cost of errors
O In the definition - X 1
O In the developments - X 1.5 - 6
O In the Maintenance - X 60 - 100
Object Oriented Software Engineering


10 / ch. 1
The Two Approaches to Solve it
O The Intuitive - ART

O Apply Engineering Processes
Object Oriented Software Engineering


11 / ch. 1
Cost of software
O Ratio of hardware to software procurement cost
approaches zero
O Total cost of ownership: 5 times cost of hardware.
O Gartner group estimates cost of keeping a PC for 5
years is now $ 7-14k
Object Oriented Software Engineering


12 / ch. 1
Why Software Engineering Matters
O SW contribution to USeconomy ( 1996 fgures) :
O Greatest trade surplus of exports
O $ 24B software exported, $ 4B imported, $ 20B surplus.
O Compare: agriculture 26-14-12, aerospace 11-3-8,
chemicals 26-19-7,vehicles 21-43-( 22) ,
manufactured goods 200-265-( 64)

Object Oriented Software Engineering


13 / ch. 1
Development failures 1
IBM survey, 1994
O 55% of systems cost more than expected
O 68% overran schedules
O 88% had to be substantially redesigned
Object Oriented Software Engineering


14 / ch. 1
Development failures 2
Advanced Automation System ( FAA, 1982-1994) :
O Industry average was $ 100/line,
O Expected to pay $ 500/ line
O Ended up paying $ 700-900/ line
O $ 6B worth of work discarded
Object Oriented Software Engineering


15 / ch. 1
Development failures 3
Bureau of Labor Statistics ( 1997)

O for every 6 new systems put into operation, 2 cancelled
O probability of cancellation is about 50% for biggest systems
O Average project overshoots schedule by 50%
O 3/ 4 systems are regarded as operating failures .
Object Oriented Software Engineering


16 / ch. 1
Accidents caused by Software
The most likely way for the world to be destroyed,
most experts agree, is by accident.
That is where we come in.
We are computer professionals

Object Oriented Software Engineering


17 / ch. 1
Accidents caused by Software



We cause accidents!



Nathaniel Borenstein, inventor of MIME, 1991
Object Oriented Software Engineering


18 / ch. 1
The IBM OS/360 1963-1966
O At peak over 1000 people were working on it.
O Total more then 5000 man-years.
O The initial plan 200 people would take 25
years.

O Brooks law:
Adding manpower to a late project make it
later!
Object Oriented Software Engineering


19 / ch. 1
IRS (1980-1985)
O IRS ask Sperry Corporation to build new
system.
O Budget for 50 million Cost 104 million and
then need 90 million to make it work.
O IRS pay 40 million interest and 22 million for
overtime for manual work.
O in 1996 a 6000 pages report documentation
for improvements.
Object Oriented Software Engineering


20 / ch. 1
The Therac-25 1985-1987
O A radiation therapy and X ray machine killed
sveral patients.
O The software designer had not anticipate the
use of deveral arrow keys in nonstandard
ways.
O The software retained high setting and issue
a highly concentrated dose of radiation when
low levels were intended.

Object Oriented Software Engineering


21 / ch. 1
Polcemans in Scotland
O Two polcemans in Scotland were using a
radar gun to indentify speeding motorists.
O The software malefunction and cause the
radar to output twice the intesity and an low-
flying Harrier jet flew by.
O It automatically start the ``fire on enmy''
procedure.
O Luck is the plane was unarmed.
Object Oriented Software Engineering


22 / ch. 1
London Ambulance Service (
1992)
O loss of calls, double dispatches from
duplicate calls
O poor choice of developer: inadequate
experience
O see: http: / / www. cs.ucl. ac. uk/ staf/ A.
Finkelstein/ las. html
Object Oriented Software Engineering


23 / ch. 1
Denver International Airport's: automated
baggage handling system (1991-1995)
O Main contractor: BAE - Boeing Airport Equipment.
O 300 486-class computers distributed in eight control
rooms.
O 22 miles of track, 6 miles of conveyer belts, 3100
standard telecars.
O 10000 monitors.
O Estimated cost was $193 million real cost was $311.
Object Oriented Software Engineering


24 / ch. 1
Denver International Airport's: automated
baggage handling system (1991-1995)

O Opening date set for October 31st 1993
O Finally began operations on February 28th, 1995
O Every month that they remained closed was about
$33.3 million.
O Total damage of more then 16X33 > 500 million.
O Lack of planning and communication of the overall
architecture doomed the project to failure almost right
from the start.

Object Oriented Software Engineering


25 / ch. 1
Ariane-5 ( June 1996)
O European Space Agency Cost $USD 500
milion.
O Complete loss of unmanned rocket shortly
after take of due to exception thrown in Ada.
O Faulty code was not even needed after take
of
O Due to change in physical environment:
undocumented assumptions violated
O see: http: / / www. esa. int/ htdocs/ tidc/
Press/ Press96/ ariane5rep.
Object Oriented Software Engineering


26 / ch. 1
Mars Climate Orbiter (1998)
O NASA Mars Climate Orbiter Launched December
11, 1998 - cost: US$327 million.
O On September 23 1999 it smashed into the planet's
atmosphere and was destroyed.
O Engineers failed to convert English measures of
rocket thrusts to newton,a factor of 2.2 in the
navigation-related mission software.
O Large, complex software projects are so complex
that they can fail even when methodologies are
followed to the letter.
Object Oriented Software Engineering


27 / ch. 1
Software limits - scale
O Reagan propose in 1985 the Stratigic Defence
Initiative (SDI) which include fault fr software
system.
O It was estimate the antibalistic such system
would required at least 10 milion lines of
code and the upper estimate was talking
about 100 milions.
O In comparation in 1985 The Amrican space
shuttle program consiste of 3 milions lines of
code.


Object Oriented Software Engineering


28 / ch. 1
Software Development
Why is it so Challenging (Difficult) ?
O Software development is a highly intellectual
activity and so is heavily dependent on
human thought
O No valid theoretical models of software
development exist
O No laws of software physics that can define
logical constraints and relationships between
various variables in the project and product
environment
Object Oriented Software Engineering


29 / ch. 1
The Nature of Software (Brooks)
OThe software essence
OComplexity
OConformity
OChangeability
OInvisibility
OThe software accidents
OStakeholders
OProcess
OModeling language and tools
Object Oriented Software Engineering


30 / ch. 1
Process Structure
O A Framework
O SE paradigms
O A culture
O Development methodology
O QA methodology
O Engineering Components
O Requirements
O Analysis and Design
O Implementation
O Testing
O Supporting Components
O Management
O Deployment
O Environment
O Tools
Object Oriented Software Engineering


31 / ch. 1
Software Development
Strategy
Object Oriented Software Engineering


32 / ch. 1
Manage risks to avoid catastrophic setbacks:
O Risk Assessment (identification, analysis, prioritization)
O Risk Control (planning, resolution, monitoring)

Schedule
Cost Product
You have to keep schedule, cost, and product in balance for the project to succeed
Object Oriented Software Engineering


33 / ch. 1
Development Life-Cycle
Object Oriented Software Engineering


34 / ch. 1
Software Lifecycle Phases
OCoarse granularity
OAnalysis
ODesign
OImplementation
OMaintenance
ORefined granularity
OApplication Requirements determination
OSoftware Requirements specification
OArchitectural design
ODetailed design
OImplementation
OIntegration
OTesting

Object Oriented Software Engineering


35 / ch. 1
Application Requirements Phase
ORequirement statement of a system
service or constraint
OService
OBusiness rule
OComputation
OConstraint
OInformation gathering
ORequirements document
Object Oriented Software Engineering


36 / ch. 1
Software Specification Phase
OApplication Requirements document
Software Specification document
OVisual modeling
OClass diagrams
OUse case models
OImplementation independent
Object Oriented Software Engineering


37 / ch. 1
Architectural Design
OSolution strategy
OClient
OServer
OApplication logic layer
OModules
OUML:
OPackages
OComponents
ODeployment
Object Oriented Software Engineering


38 / ch. 1
Detailed Design
OUser interface (client)
ODatabase (server)
OApplication logic
OAlgorithms
OFunctions
OMethods
Object Oriented Software Engineering


39 / ch. 1
Implementation
OCoding
OTesting
OPerformance tuning
ODBA
OInstallation
OUser training
Object Oriented Software Engineering


40 / ch. 1
Integration
OIncremental integration
ODependencies between modules (coupling)
OStubs
ODrivers
OUniform distribution of intelligence in
modern OO systems
ODesigning OO systems for integration
Object Oriented Software Engineering


41 / ch. 1
Maintenance
OHousekeeping
OAdaptive maintenance
OPerfective maintenance
OSoftware phasing-out
OPerfective maintenance cannot help
OUnpredictable effects of changes
OLack of documentation
OPlatform to be replaced
Object Oriented Software Engineering


42 / ch. 1
Basic Life Cycle Models
O Linear
OThe Waterfall
OThe W

O Spiral

Object Oriented Software Engineering


43 / ch. 1
The Waterfall Model (B.W. Boehm)
Application
Requirements
Test
Software
Requirements
Test
Preliminary
Design
Test
Detail
Design
Test
Programming
Test
Experimentation
Debugging
Test
Installation
Maintenance
Test
Object Oriented Software Engineering


44 / ch. 1
Write
Req.
Logical
Design
Test
Req.
Test
Design
Physical
Design
Test
Design
Code Unit Test
Build
Software Integration
Test
Build
System
System
Test
Install
Acceptance
Test
W - Whole Life Cycle
Object Oriented Software Engineering


45 / ch. 1
Traditional Life Cycle
4 Linear, sequential phases
4 No overlap between phases
4 Assumes stable requirements up-front
4 Even if everything goes right, whats wrong ?

Object Oriented Software Engineering


46 / ch. 1
Spiral (I ** 3) Life Cycle
O Antithesis of Waterfall
O Iterative - many refinements
O Incremental - moving forward:
Ofunctions, features, quality
O Integrative - continual integration of work
products
O Non-linear, evolving prototypes
O More time spent in Analysis & Design
O Less time spent in Development




Risk Analysis
Development Validation
Plan
The Spiral (I ** 3) Philosophy

4Supports the notion of cycles
4Is Iterative-Incremental-Integrative
4Is an Evolutionary Delivery Model
4Supports System Thinking
Object Oriented Software Engineering


48 / ch. 1
The Rational Unified Process
(RUP)
Object Oriented Software Engineering


49 / ch. 1
Characteristics of the Process
O Iterative Process
O Architecture Centric
O Software Modeling
O Use Case Driven
O Supports Object-Oriented techniques
O Scalable
O Ongoing Quality Control & Risk Management

Object Oriented Software Engineering


50 / ch. 1
Phases and Iterations (2)
A phase is the span of time between two major milestones
of the process in which a well-defined set of objectives are
met, artifacts are completed, and decisions are made
whether to move into the next phase.
Four phases:
Inception - Establish the business case for the project
Elaboration - Establish a project plan and a sound architecture
Construction - Grow the system
Transition - Supply the system to its end users

An iteration represents a complete development cycle, from
requirements capture in analysis to implementation and
testing, that results in the release of an executable project.
Object Oriented Software Engineering


51 / ch. 1
Phases and Iterations (1)
Object Oriented Software Engineering


52 / ch. 1
Software Development
Methodology
Object Oriented Software Engineering


53 / ch. 1
The Three Dimensions of a System
Static
Represents the static, structural, data aspects of a system.
Dynamic
Represents the temporal, behavioral, control aspects of a system.
Functional
Represents the transformational, function aspects of a system.
Functional
(flow/processes)
Static
(Objects)
Dynamic
(events/states)
Object Oriented Software Engineering


54 / ch. 1
Software Development Approaches
OThe past
OProcedural programs
ODeterministic execution
OProgram in control
OThe present
OInteractive program
OEvent-driven execution
OObjects
OStructured vs. Object-Oriented
Object Oriented Software Engineering


55 / ch. 1
The Structured (SSAD) Approach
O Modeling Techniques
* Hierarchical Functional System Decomposition
- Graphical Description by Data Flow Diagrams (DFDs)
4 Entity Relationship Diagrams (ERDs)
4 State Diagrams (STDs)
^ Data Dictionaries
= Structure Charts
O Problems
O Sequential and transformational
O Inflexible solutions
O No reuse


Object Oriented Software Engineering


56 / ch. 1
The Object Oriented Approach
O The focus is on:
O Responsibility and Roles
O Co-operation and Collaboration between objects
O The 3 aspects of a system (Function,
Data and Behavior) are melted into one
concept and are considered as one unit
Object Oriented Software Engineering


57 / ch. 1
Object-Oriented Approach
OData-centric
OAddresses emerging applications
OAddresses application backlog
OFollows iterative and incremental process
OProblems
OProject management
OSolution complexity
Object Oriented Software Engineering


58 / ch. 1
Structured vs. Object Oriented
O In structured approach the system decomposition
(divide-and-conquer) is primarily by function or
process, resulting in a hierarchical breakdown of
processes composed of sub-processes. This is a
solution oriented approach.
O In Object Oriented approach the problem space is
decomposed by objects. This is a problem domain
oriented approach.

Object Oriented Software Engineering


59 / ch. 1
Structured vs. OO Example
The Library
Information System
System
Record Loans Add Resources Report Fines
Structured A/D
Decomposed by functions or processes
Object Oriented A/D
Decomposed by objects or concepts
Catalog Librarian
Book Library
Object Oriented Software Engineering


60 / ch. 1
Software Modeling
Object Oriented Software Engineering


61 / ch. 1
What is a Model ?
A model is an abstraction of something for the
purpose of understanding it before building it.
Models serve several purposes:
* Understanding the problem
-Testing a physical entity before building it
4 Communication with customers
^ Visualization
= Reduction of complexity
= Finding errors and omissions
Planning the design
Generating code


Object Oriented Software Engineering


62 / ch. 1
Why do we model?
O Furnish abstractions to manage complexity.
O Provide structure for problem solving.
O Experiment to explore multiple solutions.
O Reduce time-to-market for business problem
solutions.
O Decrease development costs.
O Manage the risk of mistakes.
Object Oriented Software Engineering


63 / ch. 1
Computer System
Business Process
Order
Item
Ship via
Modeling captures essential
parts of the system.
Dr. J ames Rumbaugh
Visual Modeling is modeling
using standard graphical
notations
What is Visual Modeling?
Object Oriented Software Engineering


64 / ch. 1
Object Modeling Methods
Following is a list of the most common methods that are in use:

* OOD G. Booch 1991
- HOOD HOOD Technical Group 1993
4 OOA S. Shlaer and S. Mellor 1988, 1992
^ OOA/OOD T. Coad and Y. Yourdan 1991
= OMT J. Rambaugh, M. Blaha, 1991
= OOSE I. Jacobson, 1992
FUSION D. Coleman, 1994
UML Booch, Rambaugh, Jacobson 1998

Object Oriented Software Engineering


65 / ch. 1
Object Management Group (OMG)
O Was founded in April 1989 by eleven companies,
including 3Com, American Airlines, Canon, Data
General, HP, Philips, Sun and Unisys Corporation.

O Establishment of industry guidelines and
standardized object software modeling to provide a
common framework for application development.

O http://www.omg.org/news/about/




Object Oriented Software Engineering


66 / ch. 1
What is the UML ?
OMG's Unified Modeling Language (UML)
Helps you specify, visualize, and document
models of software systems, including their
structure and design, in a way that meets
all of these requirements.

Object Oriented Software Engineering


67 / ch. 1
UML
O UML stands for Unified Modeling Language
O The UML is the standard language for
visualizing, specifying, constructing, and
documenting the artifacts of a software-
intensive system
O It can be used with all processes,
throughout the development life cycle, and
across different implementation
technologies.


Object Oriented Software Engineering


68 / ch. 1
History of the UML
Object Oriented Software Engineering


69 / ch. 1
Unified Modeling Language - UML
O The UML is a notational system (including semantics for its
notations) aimed at modeling system using object-oriented
concepts.
O The UML has been accepted as an industry standard for object-
oriented modeling by OMG (Object Management Group, an industry
standards body).
O The UML is a language for software modeling; it does not guide a
developer in how to do object-oriented analysis and design or what
development process to follow, but it provides framework and the
communication mechanism in the process of designing OO systems.
Notation
Process Tool
Object Oriented Software Engineering


70 / ch. 1
Development Life Cycle with UML
Development
Development
Cycle 2
...
2) Problem
DomainConcepts
4) Component
Diagrams
5) Activity
Diagrams
Testing
Construction
Design
Development
Cycle 1
Define Apll.
Requirements
Application
Req. Analysis

Software
Req. Analysis
1) Use Case
Model
3) Conceptual
Model
1) Class
Diagrams
2) Sequence
Diagrams
3) Collaboration
Diagrams
4) State Charts 6) Use Case Model
Refinements
1) Collaboration
Diagrams Refin.
2) Class
Diagrams Refin.
3) Package
Diagrams
5) Deployment
Diagrams
Object Oriented Software Engineering


71 / ch. 1
The basic building blocks of UML
O model elements (classes, interfaces,
components, use cases, etc.)
O relationships (associations, generalization,
dependencies, etc.)
O diagrams (class diagrams, use case
diagrams, interaction diagrams, etc.)

Simple building blocks are used to create
large, complex structures.

Object Oriented Software Engineering


72 / ch. 1
Formal Modeling Methods
O Mathematics-based
O Unambiguous
O For specification/requirements
O usually including correctness proof rules
O usually including specific notations
O usually including process/methodology
O usually including tools
O The Z Notation
O Specification Description Language - SDL


Object Oriented Software Engineering


73 / ch. 1
Summary
O Nature of software development craft or even art
O The triangle for success stakeholders, process,
modeling language and tools
O The software development lifecycle
O Structured development approach
O Object-oriented development approach
O Software Modeling

You might also like