Escolar Documentos
Profissional Documentos
Cultura Documentos
Software Engineering:
Author: Pressman R.S
A Practitioner's Approach, 7/e, Mc Graw Hill
1
Course Objective
1. To introduce Software Engineering and the need for
Engineering approach to software development.
2. Enable participants to appreciate their role and contribution
to, the SDLC.
3. To Introduce the participant to quality concepts and quality
system procedures in industry.
4. To introduce the participant to commonly used analysis and
design methods.
5. To introduce structured programming concepts and
principles of coding.
6. Introduce the participant to software testing. Appreciate
importance of software testing.
2
Chapter Overview
1 Introduction
1.1 A Brief History of Software
Development
1.3 Software Engineering
1.4 Summary
3
What is Software?
Computer programs and associated documentation
transmits information
6
Characteristics of Software..
software is developed / engineered, not manufactured
software doesnt wear out
software is complex
Most software is custom built, although the industry is moving toward
component-based construction
A software product should
perform the required function
be reliable
be maintainable
be efficient
have an appropriate user interface
have an appropriate lifetime
7
Failure curve for Hardware - Bath tub curve
Failure Rate Ware out
Infant mortality
Time
Infant mortality: design or manufacturing defects during initial
stages
Ware out: as h/w components suffer from cumulative affects of
dust vibrations, temperature extremes and other environmental
remedies
8
Wearout vs. Deterioration
increased failure
rate due to side effects
Failure
rate
change
actual curve
idealized curve
Time
9
The Software Crisis
Early software development was personalized
programs were small
No standard and structured approach
Believed that only a gifted few were able to write programs
Much emphasis was on H/w than S/w
No Documentation
Computation, design were performed in ones head.
Debugging and fixing a bug was difficult
11
Need For Engineering Approach
Absence of a structured and methodical approach caused
problems like:
Errors made in one phase of development carried over
not estimated.
No guarantee that all promised changes are
incorporated.
12
Need For Engineering Approach contd..
Demands of Todays Business
Hardware sophistication has outpaced our ability to build software that
completely taps its potential;
14
What is Software Engineering?
Software engineering is the application of a systematic, disciplined,
quantifiable approach to the development, operation and maintenance
of software;
Requirements analysis
Design
Coding
17
Software Engineering contd.
Procedures (when) bind the methods and tools into a
framework
Defining the sequence in which methods will be applied
Specify deliverables
18
SE History
SE introduced first in 1968 conference about software
crisis
19
The changing nature of Software
System software: Collection of programs written to service other
programs. Eg: OS, Compilers, Editors, Linkers, Loaders,
Assemblers, Drivers, Networking softwares,.
The SS is characterized by interaction with the computer H/w
22
What is the difference between software engineering
and computer science?
Management myths
1. A book with full of standards and procedures for building software will provide the
programmers with everything they need to know.
Reality: The book of standards may very well exist, but is it used?
Does it reflect modern s/w engg. Practice?
Is it complete? Is it adaptable? Is it stream lined to improve time to delivery while
still maintaining a focus on quality?
2. if behind the schedule, Add more programmers and catch up
Customer myths
A general description of objectives is enough to start coding
Requirements may change as the software is flexible
Practitioner myths
Once we write a working program, our task is accomplished: Reality is only 20-40 % is done
Quality assessment can be done only when the program is running
Working program is the only deliverable work product for a successful project
SE will make us create voluminous & unnecessary documentation & will invariable slow us
down 26
Why bother with Software Engineering?
Many very successful projects dont use software engineering, eg.
ID Softwares Doom
Early Microsoft
Sausages Hotdog
27
However
Important progress:
Ability to produce more complex software has increased
software development
Effective methods to specify, design and implement
28
What are the costs of software engineering?
29
What are the attributes of good software?**
The software should deliver the required functionality
and performance to the user and should be
maintainable, dependable and usable
Maintainability
Software must evolve to meet changing needs
Dependability
Software must be trustworthy
Efficiency
Software should not make wasteful use of system resources
Usability
Software must be usable by the users for which it was designed
30
What are the key challenges facing Software engineering?