Transcript
8/10/2019 Software engn
1/48
The course will enable the student to understandand appreciate:
1. The flow of events in software developmentefforts.
2. The role of a software engineer in system
development efforts.
Upon completion of this course, the student
should be able to specify, design, implement and
test a variety of software systems.
8/10/2019 Software engn
2/48
Prescribed Text Book
1. Pressman, R.S., Software Engineering: A Practitioners
Approach, McGraw Hill Int. Student Ed., 6th Ed.,2005
2. Hoffer, Modern System Analysis and Design, Pearson
Education
Reference Books
KK Aggarwal, Yogesh Singh, Software Engineering, 2nd
Ed. New Age Publications, 2005
Jalote, P., An Integrated Approach to Software
Engineering, 3rd Ed., Narosa, 2005
Sommerville, I., Software Engineering, Pearson
Education, 7th Ed., 2005
8/10/2019 Software engn
3/48
Lecture Break UpLecture No. Topic
01 Fundamentals
02-05 Software Process and Models
06-11 Software Requirements Engineering, Process Modeling, Data
Modeling ,Software Requirements Specification
12-16 Software Design, Process Oriented Design, User Interface Design
17-20 Software Testing ,Building Test Plan
21-23 Software Maintenance, Configuration Management
24 Quality Assurance Standards
25-26 Introduction to UML, Object Oriented Design
Tutorials Case Studies
Software Engineering Lab : Ms. Supriya
Software Modeling using Rational Rose
Lecture Break up
8/10/2019 Software engn
4/48
Introduction
Getting started with software
engineering
8/10/2019 Software engn
5/48
Objectives
To understand the notion of software engineering
and why it is important.
To set out the answers to key questions about
software engineering
8/10/2019 Software engn
6/48
Historical Data
Data on 28,000 projects completed in 2000
This is the
SORRYstate
of SoftwareEngineering
Today!
Completed Late,
over budget,
and/or with
features missing53%
Cancelled
18%
Successful
29%
8/10/2019 Software engn
7/48
Time (= Cost) of Postdelivery Maintenance
Development25%
Post-Delivery
Maintenance75%
Total Product CostsBreakout of
Development Costs
Integration
29%
Implementation/
Coding34%
Design
19%
Requirements &
Analysis18%
8/10/2019 Software engn
8/48
8/10/2019 Software engn
9/48
Software costs often dominate system costs. The
costs of software on a PC are often greater than
the hardware cost
Software costs more to maintain than it does todevelop. For systems with a long life,
maintenance costs may be several times
development costs
Software engineering is concerned withcost-
effective software development
Why Software Engineering
8/10/2019 Software engn
10/48
The Nature of SW...
SW is intangible
Hard to understand development effort
SW is easy to reproduce
Cost is in its development
in other engineering products, manufacturing is the costly stage
Quality problems are hard to notice
SW is easy to modify People make changes without fully understanding it
SW does not wear out It deteriorates by having its design changed:
erroneously, or
in ways that were not anticipated, thus making it complex
8/10/2019 Software engn
11/48
The Nature of SW
ConclusionsMuch SW has poor design and is getting worse
Demand for SW is high and rising
We are in a perpetual SW crisis
We have to learn to engineer SW
8/10/2019 Software engn
12/48
What is Software
Software is both: a Productand Vehicle for Delivering the
Product
As a product it delivers computing potential
embodied by computer hardware or morebroadly, a network of computers that areaccessible by local hardware
Whether software resides within a cellular phone
or operates inside a mainframe computer, it is aninformation transformerproducing, managing,acquiring, modifying displaying, or transmittinginformation that can be as simple as bit or as
complex as multimedia presentation
8/10/2019 Software engn
13/48
What is Software
As a Vehiclesoftware acts as the basis for the
Control of the Computers (OS), the
Communication of Information(Networks)and
Creation and Controlof other Programs (software tools and environments)
8/10/2019 Software engn
14/48
When it meets the needs of the people who use it
When it performs flawlessly over a long period of
time
When it is easy to modify and even easier to use
When a Software Succeeds
8/10/2019 Software engn
15/48
Software engineering is the establishmentand use ofsound engineering principles in order to obtain
economically software that is reliable and works
efficientlyon real machines
Software engineering is the application of a
systematic, disciplined, quantifiable approach to
the development, operation and maintenance of
software, that is , the application of engineering tosoftware [IEEE90a]
Definition : Software Engineering
8/10/2019 Software engn
16/48
Software Characteristics
Software is developed or
engineered, it is not
manufactured Software doesntwear out
Cost of Change at later stages is
high
8/10/2019 Software engn
17/48
Software doesnt wear out
Failu
re
Ra
tes
Time
Infant
MortalityWear Out
Fig 1. Failure rate as a function of time for hardware
8/10/2019 Software engn
18/48
Wear vs. Deterioration
8/10/2019 Software engn
19/48
The Cost of Change
8/10/2019 Software engn
20/48
Why does it take so long to get software
finished?
Why are development costs so high?
Why cantwe find all the errors before
we give the software to customers?
Why do we continue to have difficultyin measuring progress as software is
being developed
Concern about the Software[Crisis]
8/10/2019 Software engn
21/48
Factors Contributing to the SW Crisis
Larger problems,
Lack of adequate training in SW
Engineering, Increasing skill shortage,
Low productivity improvements.
8/10/2019 Software engn
22/48
Mastering complexity The efficiency with which software is
developed
Software engineering is a field in which
members of one culture create artifacts on
behalf of members of another culture
Visibility and continuity
Challenges
What are the key challenges facing
8/10/2019 Software engn
23/48
What are the key challenges facingsoftware engineering?
Software Engineering faces three key challenges :
The Legacy Challenge:
The challenge is the challenge of maintainingand updating legacy software in such a way
that excessive cost are avoided and essential
business services continue to be delivered
K Ch ll
8/10/2019 Software engn
24/48
Key Challenges
The Heterogeneity Challenge:
Increasingly, systems are required to operate
as distributed systems across networks that
include different types of computer and with
different kinds of support systems. The
heterogeneity challenge is the challenge of
developing techniques to build dependable
software which is flexible enough to copewiththis heterogeneity
K Ch ll
8/10/2019 Software engn
25/48
Key Challenges
The Delivery Challenge:
Many traditional software engineering techniques
are time-consuming. The time they take is required
to achieve software quality. However, businesses
today must be responsive and change very rapidly.Their supporting software must change equally
rapidly. The delivery challenge is the challenge of
shortening delivery times of large and complex
systems without compromising system quality
D k
8/10/2019 Software engn
26/48
That 80 percent of the engineering is consumed by 20percent of the requirements
80 percent of the software cost is consumed by 20 percent ofthe components
80 percent of the errors are caused by 20 percent of thecomponents
80 percent of the software scrap and rework is caused by 20percent of the changes
80 percent of the resource consumption (execution time, disk
space, memory etc.) is consumed by 20 percent of thecomponents
80 percent of the progress is made by 20 percent of thepeople
Do you know
SW M h (M P i )
8/10/2019 Software engn
27/48
SW Myths (Management Perspectives)
As long as there are good standards and clear procedures
in my company, I shouldnt be too concerned.
But the proof of the puddingis in the eating;
not in the Recipe!
8/10/2019 Software engn
28/48
SW Myths (Management Perspectives)
As long as my SW engineers(!) have access to the fastest
and the most sophisticated computer environments and
state-of-the-art SW tools, I shouldnt be too concerned.
The environment isonly one of the several factors
that determine the qualityof the end SW product!
8/10/2019 Software engn
29/48
SW Myths (Management Perspectives)
When my schedule slips, what I have to do is to start a fire-fighting operation: add more SW specialists, those with higherskills and longer experience - they will bring the schedule backon the rails!
Unfortunately,SW business does not
entertain schedule compactionbeyond a limit!
SW M th (C t P ti )
8/10/2019 Software engn
30/48
SW Myths (Customer Perspectives)
A general statement of objectives is sufficient to get
started with the development of SW. Missing/vague
requirements can easily be incorporated/detailed out as
they get concretized.
Application requirements can never be stable; SW can be
and has to be made flexibleenough to allow changes to be
incorporated as they happen.
h ( l i )
8/10/2019 Software engn
31/48
SW Myths (Developer Perspectives)
Once the SW is demonstrated, the job is done.
Usually, the problems just begin!
SW M th (D l P ti )
8/10/2019 Software engn
32/48
Until the SW is coded and is available for testing,
there is no way for assessing its quality.
Usually, there are too manytiny bugs inserted at every stagethat grow in size and complexity
as they progress thru further stages!
SW Myths (Developer Perspectives)
SW Myths (Developer Perspectives)
8/10/2019 Software engn
33/48
The only deliverable for a SW development projectis the tested code.
The code is onlythe externally visible component
of the entire SW complement!
SW Myths (Developer Perspectives)
SW P d t
8/10/2019 Software engn
34/48
SW Product
is a product designated for delivery to the user
sourcecodes
objectcodes
plans
reports
manuals
documents
test suitesprototypes
data
test results
What are the attributes of good
8/10/2019 Software engn
35/48
software?
The software should deliver the required functionality and
performance to the user and should be maintainable, dependableand 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
8/10/2019 Software engn
36/48
The Process
Th P
8/10/2019 Software engn
37/48
Aprocess represents activities, tools,methods and practices that transform
inputs or raw materials, into outputs, or
finished products
The Process
Process Framework
8/10/2019 Software engn
38/48
Process Framework
A process defines who is doingwhat, when and how to reach acertain goal
Jacobson, Booch, and Rumbaugh
S ft E i i A L d T h l
8/10/2019 Software engn
39/48
Software Engineering : A Layered Technology
a quality focus
process
methods
tools
Quali ty FocusTotal Quality Management foster a continuous processimprovement culture, which leads to development ofincreasingly more mature approaches to SE
Software Engineering : A Layered Approach
8/10/2019 Software engn
40/48
Software Engineering : A Layered Approach
Methods provide the technical how-tos for
building software. Methods encompasses a
broad array of tasks that include
requirements analysis, design, program
construction, testing and support
Toolsprovide automated or semi-automated
support for the process and the methods.
Process : Foundation for Software Engineering
8/10/2019 Software engn
41/48
Process : Foundation for Software Engineering
SE Process is the glue that holds the technology
layers together and enables rational and timely
developmentof computer software
Process defines the framework that must beestablished for effective delivery of Software
Engineering Technology
The Software Process forms the basis for :
8/10/2019 Software engn
42/48
The Software Process forms the basis for :
Management Controlof software projects
Establishes the Control in which technical
methods are applied
Work Products (models, documents, data,
reports, forms etc.) are Produced Milestonesare established
Qualityis ensured and
Changeis properly managed
Software Process
8/10/2019 Software engn
43/48
Software Process
Product Engineering
Process
Process Management
Process
Development
Process
Project
Management
Process
Software
Configuration
management
Process
Software Process : Characteristics
8/10/2019 Software engn
44/48
Predictability
Support Testability and Maintainability
Support Change
Early Defect Removal
Process Improvement and Feedback
Software Process
8/10/2019 Software engn
45/48
Process FrameworkUmbrella Activities
Framework ActivityWork Tasks
Work Products
Milestones & deliverables
SQA points
Process Framework
8/10/2019 Software engn
46/48
Process Framework establishes the foundation for acomplete software process by
identifying a small numberof framework activitiesthat are applicable to all software projectsregardless of their size or complexity
Process framework encompasses a set of umbrellaactivities that are applicable across the entiresoftware process
A number of tasks sets enable the frameworkactivities to be adapted to the characteristics ofthe software project and the requirements ofthe project team
Umbrella Activities
8/10/2019 Software engn
47/48
Software project management Formal technical reviews
Software quality assurance
Software configuration management
Document preparation and production Reusability management
Measurement
Risk management
Finally, Umbrella activities overlay the process
model. Umbrella activities are independent ofany one framework activity and occur
throughout the process
The Process Model
8/10/2019 Software engn
48/48
To solve actual problems in an industry
setting, a software engineer or a team ofengineers must incorporate a developmentstrategy that encompasses the process,methods and tools layers.
This strategy often referred as the ProcessModel
top related