Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Overview

• In early years software was:


– Delivered late
– Over budget
– Very buggy

Ch1 Copyright © 2004 by Eugean 1


Hacopians
Overview
• A discipline is created with aim of developing:
– Fault-free software
– On time
– On budget
– Easy to modify when changes are needed
• This discipline is called Software engineering

Ch1 Copyright © 2004 by Eugean 2


Hacopians
Overview
• To achieve these goals, a software engineer
must acquire:
– Technical skills
– Managerial skills
• These skills must be applied to all aspects of
software engineering.
– Requirements through maintenance

Ch1 Copyright © 2004 by Eugean 3


Hacopians
Historical Aspects
• A NATO study group introduced a term called
Software Engineering in 1967
• Engineers tried to produce the best software
possible
• The software crises is still with us after 35-40
years of experience
– Software has its own unique problems

Ch1 Copyright © 2004 by Eugean 4


Hacopians
Economic Aspects
• A new technology may be more efficient.
However, a new technology has:
– Introduction costs
– Training costs
– Less productive due to:
• Learning curve
• Rejection
• Introducing a new technology must be
planned
Ch1 Copyright © 2004 by Eugean 5
Hacopians
Software Life Cycle
• Life cycle refers to:
– Requirements phase
– Specification phase
– Design phase
– Implementation phase
– Integration phase
– Maintenance phase
– Retirement
Ch1 Copyright © 2004 by Eugean 6
Hacopians
Specification and Design Aspects
• Correcting errors in earlier phases will cost less.
– For Example:
• An error that cost $40 to correct in design phase will cost
$30 to correct in specification phase, and $2000 to
correct in maintenance phase [Schach 2002]
• We must try to find errors in early phases by
conducting reviews

Ch1 Copyright © 2004 by Eugean 7


Hacopians
Maintenance Aspect
• Maintenance phase and percentages:
– Corrective maintenance
• 17.5%
– Enhancement maintenance
• Perfective maintenance
– 60.5%
• Adaptive maintenance
– 18.0%

Ch1 Copyright © 2004 by Eugean 8


Hacopians
Team Programming Aspects
• Programs today are larger and more
complicated than can be developed by an
individual.
• Teams of engineers are assembled to develop
such programs within the allowed timeframe
• These teams must:
– Communicate well
– Work very closely
– Be compatible Copyright © 2004 by Eugean
Ch1 9
Hacopians
Structured Paradigm
• Structured programming was developed
between 1975 and 1985.
– These techniques seemed very promising at first
– Later, proved to be less successful
• Unable to cope with the increasing size of software
• The assumption was:
– 66% of software budget was devoted to maintenance

Ch1 Copyright © 2004 by Eugean 10


Hacopians
Structured Paradigm
• Structured programming was either:
– Action oriented or
– Data oriented
– But not both

Ch1 Copyright © 2004 by Eugean 11


Hacopians
Structured Paradigm
• Structured programming

Deposit withdraw
Account
Balance

Determine
Balance
Ch1 Copyright © 2004 by Eugean 12
Hacopians
Structured Paradigm

Ch1 Copyright © 2004 by Eugean 13


Hacopians
Object-Oriented Paradigm
• Object-Oriented considers both data and action
to be equally important
– Incorporates the data and the action that operates on
the data

Ch1 Copyright © 2004 by Eugean 14


Hacopians
Object-Oriented Paradigm
• Object-Oriented
message

Deposit Withdraw
message
Account
Balance

Determine
Balance

message
Ch1 Copyright © 2004 by Eugean 15
Hacopians
Object-Oriented Paradigm

Ch1 Copyright © 2004 by Eugean 16


Hacopians
Object-Oriented Paradigm

Ch1 Copyright © 2004 by Eugean 17


Hacopians
Object-Oriented Paradigm

Ch1 Copyright © 2004 by Eugean 18


Hacopians
Object-Oriented Paradigm
• Object-Oriented
– Makes development easier
– An object has a physical counterpart
– Well designed objects:
• Are independent units
• Reduces the complexity of software product
• Simplifies both development and maintenance
• Code is reusable

Ch1 Copyright © 2004 by Eugean 19


Hacopians
Life Cycle
• Structured Paradigm • Object-Oriented Paradigm
– Requirements Phase – Requirements Phase
– Specification Phase – Object-Oriented Analysis
– Design Phase Phase
– Implementation Phase – Object-Oriented Design Phase
– Integration Phase – Object-Oriented
implementation Phase
– Maintenance Phase
– Integration Phase
– Retirement
– Maintenance Phase
– Retirement
Ch1 Copyright © 2004 by Eugean 20
Hacopians

You might also like