Software Engineering Software Engineerin
Software Engineering Software Engineerin
٢
Today’s Topics
• Introduction
• Software Crisis
• Software Costs
• Software Engineering
• Software Engineers
• Software and Program s
• Docum entation
• Operating Procedures
• Software Products
• Product Specifications
• FAQs about Software Engineering
• Software Myths
• …
٣
Int roduct ion
• Software yesterday, today, tom orrow
▫ What is the difference?
٤
Int roduct ion
• Single processor, alphanum eric output, input
from linear source
• GUI
• Client-server architecture
• Several processors
• Different OS
• Geographically distributed m achines
٥
Int roduct ion
• Any challenge?
▫ Abreast of new technology
▫ Developm ent backlogs
▫ Cope with people issues
▫ “Guru of project” concept
▫ Do all em ployees like the change? (autom ation)
٦
Int roduct ion
٧
Sof t ware Cost s
• Software costs often dom inate com puter system
costs. The costs of software on a PC are often
greater than the hardware cost.
• Software costs m ore to m aintain than it does to
develop. For system s with a long life,
m aintenance costs m ay be several tim es
developm ent costs.
٨
Sof t ware Crisis
• Software:
▫ still com e late
▫ exceed budget
▫ full of residual faults
• Som e failures:
▫ Y2K: m illion have been spent to handle this
practically non-existent problem
▫ Star wars (Patriot m issile) Ł 28 U.S. soldiers, due
to a sm all tim ing error in the system ’s clock
٩
Sof t ware Crisis
• Som e failures …
▫ In 1996, a US consum er group em barked on an
18-m onth, $ 1m illion project to replace its
custom er database. The new sy stem w as
delivered on tim e but did not w ork as prom ised.
As a result new tram w as brought in to rebuild
the sy stem !
▫ Ariane-5 space rocket, $ 70 0 0 M, over a 10 years:
was destroyed after 39 seconds of its launch!!
Conversion error: 64-bit to 16-bit form at
١٠
Sof t ware Crisis
• Som e failures …
▫ Financial software: “Many com panies have experienced
failures in their accounting sy stem due to faults in the softw are
itself. The failures range from producing the w rong inform ation
to the w hole sy stem crashing ”
▫ Windows XP: released on October 25, 20 0 1
On the sam e day com pany posted 18 MB:
Com patibility patches (for bug fixes)
Com patibility updates
Enhancem ent
2 patches fixed im portant security holes
١١
Sof t ware Crisis
١٢
Sof t ware Engineering
• SE has the objective of solving these problem s by
producing good quality, m aintainable software,
on tim e, within budget.
“The establishm ent and use of sound engineering principles in
order to obtain econom ically developed softw are that is reliable
and w orks efficiently on real m achines” 1st SE conf. 1968
١٣
Sof t ware Engineers
• Software e n g in e e r s m ust:
▫ Adopt a system atic and organized approach to
their work
▫ Use appropriate tools and techniques depending
on the problem to be solved and the developm ent
constraints
▫ Use the resource available
١٤
Sof t ware, Programs
Software Program s
١٥
Document at ion?
Docum entation
Manuals
Entity-relationship Cross-Reference
Context-Diagram Test Results
Diagram Listing
١٦
Operat ing Procedures
Operating
Procedures
Operational
User Manuals
Manuals
System
System Beginner’s Reference Installation
Adm inistration
Overview Guide Tutorial Guide Guide
Guide
١٧
Sof t ware Product s
• Generic ?
• Bespoke (Custom ) ?
١٨
Product Specif icat ions
• Generic:
▫ The specification of what the software should do is
owned by the software developer and decisions on
software change are m ade by the developer.
• Custom ized:
▫ The specification of what the software should do is
owned by the custom er for the software and they
m ake decisions on software changes that are
required.
١٩
Sof t ware Product
• Software product is a product designated for
delivery to the user
٢٠
Sof t ware Myt hs
1. Software easy to change
2. Com puters provide greater reliability than the
devices they replace
3. Testing software or “proving” software correct
can rem ove all the errors
4. Reusing software increases safety
5. Software can work right the first tim e
6. Software can designed thoroughly enough to
avoid m ost integration problem s
٢١
Sof t ware Myt hs
7. Software with m ore features is better software
8. Addition of m ore software engineers will m ake
up the delay
9. Aim is to develop working program s
٢٢
Sof t ware Process
• SP: the way in which we produce software
• SP: help the developers to use the best technical
and m anagerial practices to successfully
com plete their projects
• SP is a way to im prove the quality, productivity,
predictability of the software developm ent and
m aintenance efforts
٢٣
Sof t ware Process Act ivit ies
• Software specification, where custom ers and
engineers define the software that is to be produced
and the constraints on its operation.
• Software developm ent, where the software is
designed and program m ed.
• Software validation, where the software is checked
to ensure that it is what the custom er requires.
• Software evolution, where the software is m odified
to reflect changing custom er and m arket
requirem ents.
٢٤
Sof t ware Charact erist ics
• Software does not wear out (hardware vs.
software)
٢٥
Sof t ware Applicat ions
• Sys te m So ftw are : com pilers, OS, drivers
• Re al-tim e So ftw are : used to m onitor, control
and analyze real world events (weather,..)
• Em be d d e d So ftw are : ROM, aircraft,
autom obile,..
• Bu s in e s s So ftw are : em ployee m anagem ent,
account m anagem ent, …
• Pe rs o n al Co m p u te r So ftw are : MS-office,
graphics,…
٢٦
Sof t ware Applicat ions
• Artificial In te llige n ce So ftw are : expert
system s, neural network, signal processing,…
• W e b Bas e d So ftw are : CGI, HTML, Perl,…
• En gin e e rin g an d Scie n tific So ftw are : CAD,
SPSS, MATLAB, Circuit analyzers, …
٢٧
Good Sof t ware
Product characteristic Description
٢٨
FAQs about SE
Question Answer
٢٩
FAQs about SE
Question Answer
What are the key challenges facing Coping with increasing diversity, demands for reduced
software engineering? delivery times and developing trustworthy software.
What are the costs of software Roughly 60% of software costs are development costs,
engineering? 40% are testing costs. For custom software, evolution
costs often exceed development costs.
What are the best software engineering While all software projects have to be professionally
techniques and methods? managed and developed, different techniques are
appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems require
a complete and analyzable specification to be developed.
You can’t, therefore, say that one method is better than
another.
What differences has the web made to The web has led to the availability of software services
software engineering? and the possibility of developing highly distributed service-
based systems. Web-based systems development has led
to important advances in programming languages and
software reuse.
٣٠
Frequent Terminologies in SE
• D e live rable s
▫ Generated during software developm ent
▫ E.g., source code, user m anuals, operating
procedures,…
• Mile s to n e s
▫ Events that are used to ascertain the status of the
project
▫ E.g., Finalization of specification is a m ilestone,
Com pletion of design docum entation, …
٣١
Frequent Terminologies in SE …
• Pro d u ct
▫ is what is delivered to the custom er
▫ includes source code, specification docum ent,
m anuals, docum entation,…
▫ Basically, a set of deliverables only
• Pro ce s s
▫ way in which we produce software
▫ collection of activities that leads to (a part of) a
product.
٣٢
Frequent Terminologies in SE …
• Me as u re s (Measurem ent, Metrics)
▫ Me as u re : a quantitative indication of the extent,
dim ension, size, capacity, or reliability of som e
attributes of a product or process. E.g., # errors in
the review of a single m odule
▫ Me as u re m e n t: the act of evaluating a m easure.
E.g., # m odules are investigated to collect
m easures of the # errors in each m odule
▫ Me trics : relating the individual m easures in
som e way. E.g., avg. # errors found per m odule
٣٣
Frequent Terminologies in SE …
• So ftw are Pro ce s s & Pro d u ct Me trics
▫ So ftw are m e trics : used to quantitatively
characterize different aspects of software process
or software products.
▫ Pro ce s s m e trics : quantify the attributes of
software developm ent process and environm ent.
E.g., productivity , quality , failure rate, …
▫ Pro d u ct m e trics : are m easures for the software
product. E.g., size, reliability , com plexity ,
functionality ,…
٣٤
Frequent Terminologies in SE …
• Pro d u ctivity
▫ defined as the rate of output, production per unit
of effort
▫ Output achieved with regard to the tim e taken, but
irrespective of the cost incurred.
▫ unit of m easure:
Quantity of output: e.g., LOC produced
Tim e: m easured in days or m onths
▫ Unit of effort: m ost appropriate unit of effort is
Person Months (PMs), i.e., # persons involved for
specified m onths
٣٥
Frequent Terminologies in SE …
• Pro d u ctivity…
▫ Productivity m ay be m easured as LOC/ PM
• Mo d u le
▫ a Fortran subroutine
▫ an Ada Package
▫ “procedures & functions” in Pascal & C
▫ “C++, J ava class, J ava packages”
▫ a work assignm ent for an individual developer
٣٦
Frequent Terminologies in SE …
• Co m p o n e n t
▫ an independently deliverable piece of functionality
providing access to its services through interfaces
• Ge n e ric & Cu s to m ize d So ftw are Pro d u cts
▫ Previously discussed
٣٧
Role of Management in Sof t ware
Development (SD)
• Four factors:
▫ People
▫ Product
▫ Process
▫ Project
٣٨
Role of Management in Sof t ware
Development (SD)
• Four factors:
▫ People SD requires good m anagers
▫ Product
Good m anagers understand people psychology
▫ Process
▫ Project Provide good leadership
٣٩
Role of Management in Sof t ware
Development (SD) …
• Four factors:
▫ People What do we want to deliver to the custom er?
▫ Product
Define objectives & scope of work (requirem ents)
▫ Process
▫ Project Discussion of alternative solutions
٤٠
Role of Management in Sof t ware
Development (SD) …
• Four factors:
▫ People Way in which we produce software
▫ Product Provides fram ework from which a com prehensive
plan for software developm ent can be established
▫ Process
Several life cycle m odels & process im provem ent
▫ Project m odels
CMM (Capability Maturity Model) , a standard for
process fram ework
٤١
Role of Management in Sof t ware
Development (SD) …
• Four factors:
▫ People A planning is required to m onitor the status of SD
▫ Product
A planning is required to control the com plexity
▫ Process
In a successful project, we m ust understand what can
▫ Project go wrong & how to do it right
٤٢
Covered Topics
• Software Crisis
• Software Costs
• Software Engineering
• Docum entation
• Software Products
• Product Specification
• Software Myths
• Software Process Activities
• Software Application Types
• Good Software
• FAQs
• Software Engineering Term inologies
• Managem ent in SD
٤٣