Software Engineering
Software Engineering
SOFTWARE ENGINEERING
IN AN EASY WAYYYY....
What is software?
Computer programs and associated
documentation
Operating systems
Hardware,
Hardware,software,
software,data,
data, System—Set
System—Setof ofcomponents
components
people,
people,and
andprocedures
proceduresthat
that that
thatinteract
interactto
toachieve
achieve
work
worktogether
togethertotoproduce
produce common
commongoalgoal
quality
qualityinformation
information
Businesses
Businessesuseusemany
manytypes
typesofof
systems
systems
The System Development Life
Cycle Who participates in the system
development life cycle?
The System Development Life
Cycle
What is a systems analyst?
Function of committee:
Form project
Review and development
Prioritize Allocate
approve project team for each
project requests resources
requests approved
project
The System Development Life
Cycle
What is the analysis phase?
3. Recommend solution
Presented to
Recommen
steering
ds the most
committee,
feasible
which decides
solution for
how system
the project
will be
developed
The System Development Life
Cycle Horizontal market
What are possible solutions? Horizontal market
software—meets
software—meets
needs
needsofofmany
many
companies
Buy
Buypackaged
packagedsoftware—prewritten
software—prewritten companies
software
softwareavailable
availablefor
forpurchase
purchase
Vertical
Verticalmarket
market
software—designed
software—designed
for
forparticular
particularindustry
industry
Write
Writeown
owncustom
customsoftware—software
software—software
developed
developedat
atuser’s
user’srequest
request
Outsource—have
Outsource—haveoutside
outsidesource
source
develop
developsoftware
software
The System Development Life
Cycle
What is the design phase?
Acquire
Acquirehardware
hardwareand
andsoftware
software
Develop
Developall
alldetails
detailsof
ofnew
neworor
modified
modifiedinformation
informationsystem
system
The System Development Life
Cycle
What is needed to acquire new hardware and
software?
Talk
Talk with
with other
other Surf
Surf Web
Web
systems
systems analysts
analysts
Read
Read print
print and
and online
online
Visit
Visit vendors’
vendors’ stores
stores trade
trade journals,
journals,
newspapers,
newspapers, and
and
magazines
magazines
Vendor selects
Request for proposal (RFP)
product(s) that
meet(s) your
requirements and Less formal method
then quotes price(s) that uses standard
form to request
information about
Request for information (RFI) product or service
The System Development Life
Cycle
What is a detailed design?
Detailed design specifications for components in proposed solution
Database
Database Input
Inputand
and Program
Program
design
design output
outputdesign
design design
design
The System Development Life
Cycle
What is a prototype?
Working
Working model
model of
of
proposed
proposed system
system
Beginning
Beginning aa prototype
prototype too
too early
early
may
may lead
lead to
to problems
problems
The System Development Life
Cycle
Software tools designed to support activities of system
development cycle
The System Development Life
Cycle
What is the implementation phase?
Purpose is to construct, or build, new or modified
system and then deliver it to users
Train users
Develop programs
The System Development Life
Cycle What are the three types of tests
performed by system developers?
Integration Test
Verifies application
works with other
applications
The System Development Life
Cycle
What is training?
Identify errors
Identify enhancements
Maintainability
Portability
Correctness
A system is correct if it behaves according to its specification
An absolute property (i.e., a system cannot be “almost correct”)
... in theory and practice undecidable
Reliability
The user may rely on the system behaving properly
Reliability is the probability that the system will operate as expected over a
specified interval
A relative property (a system has a mean time between failure of 3 weeks)
Robustness
A system is robust if it behaves reasonably even in circumstances that were
not specified
A vague property (once you specify the abnormal circumstances they
become part of the requirements)
© Oscar Nierstrasz ESE — Software Quality ESE 11.45
Efficiency, Usability
Efficiency (Performance)
Use of resources such as computing time, memory
Affects user-friendliness and scalability
Hardware technology changes fast!
First do it, then do it right, then do it fast
The degree to which the human users find the system (process)
both “easy to use” and useful
Depends a lot on the target audience (novices vs. experts)
Often a system has various kinds of users (end-users, operators,
installers)
Typically expressed in “amount of time to learn the system”
Maintainability
How easy it is to change a system after its
initial release
software entropy maintainability gradually
decreases over time
Repairability
How much work is needed to correct a defect
Evolvability (Adaptability)
How much work is needed to adapt to changing requirements (both
system and process)
Portability
How much work is needed to port to new environment or platforms
Verifiability
How easy it is to verify whether desired attributes are there?
internally: e.g., verify requirements, code inspections
externally: e.g., testing, efficiency
Understandability
How easy it is to understand the system
internally: contributes to maintainability
externally: contributes to usability
Productivity
Amount of product produced by a process for
a given number of resources
productivity among individuals varies a lot
often:
productivity (∑ individuals) < ∑ productivity (individuals)
Assumptions:
...
...
Requirements
Requirements andand
specification
specification errors
errors may
may have
have
to
to be
be referred
referred to
to the
the client.
client.