2. What it includes!
• Definitions of Software
• What is Software Engineering?
• Students‟ and Industrial Strength Sw
• Problem and Solution Domains
• Problem Domain
– Sw is Expensive, Late and Unreliable, Difficult to Maintain and
Change
• Solution Domain – Software Engineering
– SE Challenges – Scale, Quality & Productivity, Consistency and
Repeatability, Accommodation of Change
• Software Engineering Approach
– Phased Development Process, Managing the Process to get
quality software, Metrics and Measurement
3.
4.
5. Definitions - Computer Software
Software is
“Computer programs, procedures, rules and any
associated documentation pertaining to the
operation of a computer system”.
ISO-1984
“Collection of computer programs, procedures, rules
and associated documentation and data”
IEEE Software Engineering Standards Tech Report 1987 & Jalote 2005
6. Software Engineering
• Term was
– coined in two of the NATO‟s conferences held in late
1960s, it referred to the approach to resolve „the
Software Crisis‟
• Is defined as
– The systematic approach to the development,
operation, maintenance, and retirement of software
– IEEE Software Engineering Standards Tech Report 1987 & Jalote 2005
• In this course
– Our focus will be on Software Development
7. 1960 1970 1980 1990 2000
Major Shifts & Eras of SD
Programming
Any-which-way
Programming
In-the-Small
Programming
In-the-Large
Beyond
Programming
In-the-large
Programming
Through
Assembly
Functional
Era
Schedule
Era
Cost
Era
Quality
Era
Reuse
Era
M.Shaw 1990 Shaw 1989
Basili & Musa
1991
1950 2010
Progmng
Through
Mass
Collaboratn
8. Major Shifts & Eras of SD
1960 5 years
Programming
Any-which-way
• Small Programs
• Intuition or BFAs
• No Management
required
• Assembler and Core
dumps
• Adhocism
1970 5 years
Programming
In-the-small
• Algorithms & Data structures
separated
• Programs execute &
terminate
• Individual management effort
• Modularity/portability realized
• SE term coined
• Waterfall SDLC
• PLs, Compilers, Linkers &
Loaders
• Structured Techniques
1980 5 years
Programming
In-the-Large
• Interfaces
• Management system
structures
• Long life Dbs
• Program execute cont….
• Complex Specs
• Team effort
• Life time maintenance
• Standards realized
• SE used
• IPSEs tools for
documentatin
• Structured Analysis &
Design
9. Major Shifts & Eras of SD
1990 5 years
Beyond Programming
In-the-Large
• Software is ONE
component of
heterogeneous system
• Software controls
• Very complex specs
• Multi-team effort
• Standards formulated
• Globalization
• IPSEs, Object libraries
• OO techniques &
standards, RAD
2000 5 years
Programming
Through Assembly
• Integration with application
domains
• Multi media revolution
• Every effective
system/technology software
controlled
• Digitization
• Safety critical systems
• Standards-MIMOSA, CORBA
etc implemented
• Wars on standards
• Application frameworks,
component libraries
• Component technologies,
RAD & JAD
1980 5 years
Programming
In-the-Large
• Interfaces
• Management system
structures
• Long life Dbs
• Program execute
continuously
• Complex Specs
• Team effort
• Life time maintenance
• Standards realized
• SE used
• IPSEs tools for
documentatin
• Structured Analysis &
Design
10. 2010 5 years
Programming
Through Mass Collaboration
• Fusion of Disciplines IT, Telecom,
Internet and Technologies
• Initiation of New Computing Areas
– Social Networking
• Open Source and Free Software,
exploiting the limits of various
Domains
• Masses enabled to collaborate
• GNU licensing era
• Sw Quality standards ISO, CMMI
• Linux, Wikipedia, Gnome, Andriod
Projects – paradigm shift - apps
driving Hw manufacturing
• Almost Free Sw – YouTube, Flickr,
FaceBook, MySpace, Skype
minting from your profiles
• Component Based SE,
incremental improvement and
addition of functionality, Adverts in
Apps
Major Shifts & Eras of SD
11.
12. Categorization of Sw
• Author Dependent
• Complexity wise
– System Software – That acts as tools to help
construct or support application software Eg OSs,
DBMSs, Networking Software, Compilers
– Application Software – That helps perform some
directly useful or enjoyable tasks; Eg Games, Sw for
ATMs, Control Sw for Aircraft, an Email System, Word
Processors, Spreadsheets etc
• Marketing Wise
13. • Marketing wise
– Shrink Wrapped, Commercially Off-the-Shelf
(COTS) Software
• Made for Gen Public, Users Unknown but many,
Huge investment by builder, Costs recovered thru
mass sales at a very nominal/affordable rate,
Revisions / Releases planned by the builder, Bugs
fixed as reported, Initially Buggy Sw released
– Bespoke or Application Software
• Known well defined user, User dictates the
Requirements, User pays for the development
covering the costs and profits of builder, Limited no
of users; if contract permits then same Sw can be
customized for other clients, Client recovers the cost
thru efficiency, increased productivity of users, and
high quality of product, Reliable, verified Software
bug-free clearing acceptance test, Improved and
enhanced as per clients requirements
14. • Application wise
– Games
– Information Systems – That store and access large
amounts of data, Eg Airline seat Reservation system
– Real-Time Systems – fast response required Eg
Control Sw for Power station or Fly-by-wire aeroplane
– Embedded Systems – in which computer plays
smallish but controlling role, Eg Mobiles, AC Unit, Sw in
Telephone Exchanges, SoC (System on Chip)
– Office Software – Word Processors, Spreadsheets,
Schedulers, Project/Time Management Tools
– Scientific/Engineering Software – Carrying out
calculations, modeling, predictions Eg weather forecasting,
Geophysical prospecting, CFD, MHD, CAD/CAM, Process
Analysis Sw
16. Students‟ Projects versus Industrial
Strength Software
• Students’ Projects
– Novice developers
– Classroom or Small project
– User Interface is not
important, as it is to be
used by him/herself
– Documentation and testing
not cared – contains bugs
– …
– Productivity of 2.5 to 5
KLOC/month per developer
• Industrial Strength Sw
– Users and developers are
separate entities
– Business is dependent on it
– Bugs CANNOT be
tolerated
– User friendly User Interface
– Documentation (for usage,
maintenance, and further
upgrading etc)
– …
– Productivity of 30-100 LOC
/ month per developer
17. Students‟ Versus Ind Strength Sw
– Two very different entities
– Key differences are Quality (with different
attributes like Usability, Functionality,
Reliability, Maintainability, Portability, and
efficiency etc), Cost, Development Time
– High Quality requires excessive Testing 30% -
50% of the Development time
– For increased quality, documentation and
testing, the size of Industrial Strength Sw is
twice as large as Student Sw for the same
problem
18. – Due to increased size the productivity of
developer for Industrial Strength Sw drops to
1/5th of the Student Sw
– Brooks 1975, indicated that the ISS may cost
about 10 times more than SS for the same
problem
– For High Quality Sw, the development should be
broken into phases, for efficient management,
bug control and effective use of manpower
In this SE course our focus will the
development of Industrial Strength Software
19. Software – Problems and
Prospects
Software is Open ended, complex and key
mechanism in providing the requisite
functionality of the system. It is of huge
size, needs 000s of people and millions of
$s of investment to develop.
The perceived problems in Sw development
and goals the Sw Development needs to
achieve are:
20. • Meeting Users‟ Needs
• Low Cost of Production
• High Performance
• Portability – it works at various envisaged
platforms
• Low Cost of Maintenance
• High Reliability
• Scalability
• Delivery on Time
(Short M S, P H D, H L L)
– Till to-date each of the above goals is partially
achieved, so it stays as a Sw dev problem. SE
seeks to provide the techniques to resolve these
problems i.e. to achieve these goals.
22. Satisfaction of Users‟
Requirements [Sac07]
• Hayes 2004 states that the outcome of
over 9000 development projects
completed in 2004 is:
– 29% were successful
– 18% of them Cancelled
– 53% of them Completed late, over budget,
and / or with features missing
• On Financial Crisis of Sw Crisis a survey
conducted by Cutter Consortium 2002
summarized:
23. – 78% of IT organizations have been involved in disputes
that ended in litigation
– In 67% of those cases, the functionality or performance
of the Sw products as delivered did not meet up to the
claims of Sw Developers
– In 56% of those cases, the promised delivery date
slipped several times
– In 45% of these cases, the faults were so severe that the
Sw product was UNUSABLE
• Too little Sw is delivered on time, within budget,
fault free and meeting the client‟s needs. Hence to
meet these goals Sw Engrs have to acquire a
broad range of skills, both technical and managerial
and these skills have to be applied from
requirements to the post-delivery maintenance/
24. Reading Assignment
1. Ch-1 Problems and Prospects, pp 3-22
From Douglas Bell (2005); Software Engineering for
Students; Pearson Education Limited
2. Ch-1 Introduction, pp 1-20
From Pankaj Jalote (2005); An Integrated Approach to
Software Engineering; 3rd Edition, Narosa
Publishing House, New Delhi,
(Please read through these chapters, try to understand the
theme behind the text, and note down the terminology)
Ref:
Brooks (1975), The Mythical Man Months
Brooks (198_) , No Silver Bullets