Upload
joyjoy
View
214
Download
0
Embed Size (px)
Citation preview
8/12/2019 Se Session 1
1/68
Copyright Amity University
MSc-(IT)
Software Engineering
Semester - I
8/12/2019 Se Session 1
2/68
Copyright Amity University
Faculty Profile
MSc (Computer Science)
CCNA (Cisco certified Network Associate)
CCNA (Cisco certified )
Ph D (CSE) (Thesis Submitted)
Publications
International/ National Journal = 8 (including ACM, ISJKE)
International/ National Conference = 9 (including Springer)
Conference/ Workshop Attended
Bangkok
Vietnam
8/12/2019 Se Session 1
3/68
Copyright Amity University
Patents filed provisionally
ANN model
Area of specialization
Software Engineering
Artificial IntelligenceExperience
5 + teaching
1 research
Member
Cisco (Academic Council, USA)
Cisco (Learning Institute, USA)
8/12/2019 Se Session 1
4/68
Copyright Amity University
Why We Need Software
Engineering?
Change in nature & complexity of software
Concept of one guru is over
We all want improvement
8/12/2019 Se Session 1
5/68
Copyright Amity University
Why Software Engineering? Software development is hard!
Important to distinguish easy systems (onedeveloper, one user, experimental use only) fromhard systems (multiple developers, multiple users,
products) Experience with easy systems is misleading
One person techniques do not scale up
Analogy with bridge building:
Over a stream = easy, one person job Over River Severn ? (the techniques do not scale)
8/12/2019 Se Session 1
6/68
6
Software Crisis!
over budget
53%
success
16%failure
31%
8/12/2019 Se Session 1
7/68Copyright Amity University
Software Crises
As per the IBM report, 31%of the project get
cancelled before they are completed, 53% over-
run their cost estimates by an average of 189%
and for every 100 projects, there are 94 restarts.
8/12/2019 Se Session 1
8/68Copyright Amity University
Factors Contributing Software Crises
Larger problems,
Lack of adequate training in software
engineering Increasing skill shortage,
Low productivity improvements
8/12/2019 Se Session 1
9/68
9
Some Software failuresIt took the European Space Agency 10 years and $7
billion to produce Ariane 5, a giant rocket capable of
hurling a pair of three-ton satellites into orbit with each
launch and intended to give Europe overwhelming
supremacy in the commercial space business.
Ariane 5
The rocket was destroyed after 39 seconds of its launch,at an altitude of two and a half miles along with its
payload of four expensive and uninsured scientific
satellites.
8/12/2019 Se Session 1
10/68
10
When the guidance systems own computer
tried to convert one piece of data thesideways velocity of the rocket from a 64 bit
format to a 16 bit format; the number was too
big, and an overflow error resulted after 36.7
seconds. When the guidance system
shutdown, it passed control to an identical,
redundant unit, which was there to providebackup in case of just such a failure.
Unfortunately, the second unit, which had
failed in the identical manner a few
milliseconds before.
Some Software failures
8/12/2019 Se Session 1
11/68
11
Y2K problem:
It was simply the ignorance about the adequacy
or otherwise of using only last two digits of the
year.
The 4-digit date format, like 1964, was shortened
to 2-digit format, like 64.
Some Software failures
8/12/2019 Se Session 1
12/68
12
The Patriot Missileo First time used in Gulf war
Reasons:
A small timing error in the systemsclock accumulated
to the point that after 14 hours, the tracking systemwas no longer accurate. In the Dhahran attack, the
system had been operating for more than 100 hours.
o Used as a defense from Iraqi Scud missiles
o Failed several times including one that killed 28 US
soldiers in Dhahran, Saudi Arabia
Some Software failures
8/12/2019 Se Session 1
13/68
13
Part of an abort scenario for
the Shuttle requires fuel
dumps to lighten thespacecraft. It was during the
second of these dumps that a
(software) crash occurred.
...the fuel management
module, which had performed
one dump and successfully
exited, restarted when recalled
for the second fuel dump...
The Space Shuttle
Some Software failures
8/12/2019 Se Session 1
14/68
14
Some Software failuresWindows XP
o Microsoft released Windows XP on October 25, 2001.
o On the same day company posted 18 MB of
compatibility patches on the website for bug fixes,
compatibility updates, and enhancements.
o Two patches fixed important security holes.
8/12/2019 Se Session 1
15/68Copyright Amity University
15
What is software? It is defined as Computer programs
and associated documentation
8/12/2019 Se Session 1
16/68
16
Programs
Operating
ProceduresDocumentatio
n
Software=Program+Documentation+Operating Procedures
Components of software
What is software?
8/12/2019 Se Session 1
17/68
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
8/12/2019 Se Session 1
18/68
18
Documentation
Manuals
Analysis
/Specification
Design
Implementation
Testing
Formal Specification
Context-Diagram
Data FlowDiagrams
Flow Charts
Entity-RelationshipDiagram
Source Code Listings
Cross-Reference
ListingTest Data
Test Results
Documentation consists of different types of manuals are
List of documentation manuals
8/12/2019 Se Session 1
19/68
19
OperatingProcedures
User
Manuals
Operational
Manuals
System Overview
Beginners Guide
Tutorial
Reference Guide
Installation Guide
System
Administration Guide
List of operating procedure manuals.
Documentation consists of different types of manuals are
8/12/2019 Se Session 1
20/68
What is a software
process?
A set of activitieswhose goal is the development orevolution of software
Generic activities in all software processes are:
Specification- what the system should do and itsdevelopment constraints
Development- production of the software system
Validation- checking that the software is what the customer
wants Evolution- changing the software in response to changing
demands
8/12/2019 Se Session 1
21/68
What is a software process model?A simplified representation of a software process,presented from a specific perspective
Examples of process perspectives:Workflow perspective represents inputs, outputs and dependencies
Data-flow perspective represents data transformation activitiesRole/action perspectiverepresents the roles/activities of the
people involved in software process
Generic process models Waterfall
Evolutionary development
Formal transformation
Integration from reusable components
8/12/2019 Se Session 1
22/68
22
Software products may be developed for a particularcustomer or may be developed for a general market
Software Product
Software productsmay beGeneric- developed to be sold to a range of different customers
Bespoke(custom) - developed for a single customer according to their specification
8/12/2019 Se Session 1
23/68Copyright Amity University
23
What is software engineering?Software engineering is an engineering discipline which isconcerned with all aspects of software production
Software engineersshould
adopt a systematic and organised approach to their
work
use appropriate tools and techniques depending on
the problem to be solved, the development constraints and
use the resources available
8/12/2019 Se Session 1
24/68
24
At the first conference on software engineering in 1968, Fritz Bauer defined software
engineering as Theestablishment and use of sound engineering principles in order to
obtain economically developed software that is reliable and works efficiently on real
machines.
Stephen Schach defined the same as Adiscipline whose aim is the production of quality
software, software that is delivered on time, within budget, and that satisfies its
requirements.
Both the definitions are popular and acceptable to majority. However, due to increase in
cost of maintaining software, objective is now shifting to produce quality software that is
maintainable, delivered on time, within budget, and also satisfies its requirements.
What is software engineering?
8/12/2019 Se Session 1
25/68
25
Software ProcessThe software process is the way in which we produce
software.
Why is it difficult to improve software process ?
Not enough time
Lack of knowledge
8/12/2019 Se Session 1
26/68
26
Learning curve
Do not quit here!
Improved future stateProcess improvement
beginsInitial state
state
Productivity
Time
Wrong motivations
Software Process
Insufficient commitment
8/12/2019 Se Session 1
27/68
27
Software CharacteristicsSoftware does not wear out.
Useful life
phase
Wear outphase
Burn-in
phase
Failure
Intensity
Time
8/12/2019 Se Session 1
28/68
28
Software is not manufactured
Software Characteristics Reusability of components
Software is flexible
8/12/2019 Se Session 1
29/68
29
Comparison of constructing a bridge vis--vis writing a program.
Sr.
No
Constructing a bridge Writing a program
1.
2.
3.
4.
5.
6.
7.
Software Characteristics
The problem is well understoodOnly some parts of the problem are
understood, others are not
There are many existing bridges
The requirement for a bridge typically do
not change much during construction
The strength and stability of a bridge can be
calculated with reasonable precision
When a bridge collapses, there is a
detailed investigation and report
Engineers have been constructing bridgesfor thousands of years
Materials (wood, stone,iron, steel) and
techniques (making joints in wood, carving
stone, casting iron) change slowly.
Every program is different and designed for
special applications.
Requirements typically change during allphases of development.
Not possible to calculate correctness of a
program with existing methods.
When a program fails, the reasons are often
unavailable or even deliberately concealed.
Developers have been writing programsfor 50 years or so.
Hardware and software changes rapidly.
8/12/2019 Se Session 1
30/68
30
SystemSoftware
Real TimeSoftware
EmbeddedSoftware
Engineeringand ScientificSoftware
Web basedSoftware
ArtificialIntelligence
SoftwarePersonal
ComputerSoftware
BusinessSoftware
Software Applications
8/12/2019 Se Session 1
31/68
31
The Changing Nature of SoftwareTrend has emerged to provide source code to the
customer and organizations.
Software where source codes are available are known
as open source software.
Examples
Open source software: LINUX, MySQL, PHP, Open office, Apache webserver etc.
8/12/2019 Se Session 1
32/68
Copyright Amity University32
Management may be confident about good
standards and clear procedures of the
company.But the taste of any food item
is in the eating;not in the Recipe!
Software Myths Management Perspectives)
8/12/2019 Se Session 1
33/68
Copyright Amity University33
Company has latest computers and state-
of-the-art software tools, so we shouldnt
worry about the quality of the product.
The infrastructure isonly one of the several factors
that determine the qualityof the product!
Software Myths Management Perspectives)
8/12/2019 Se Session 1
34/68
Copyright Amity University34
Addition of more software specialists, those with
higher skills and longer experience may bring the
schedule back on the track!
Unfortunately,that may further delay the schedule!
Software Myths Management Perspectives)
8/12/2019 Se Session 1
35/68
35
Software is easy to change
The reality is totally different.
Software Myths Management Perspectives)
8/12/2019 Se Session 1
36/68
8/12/2019 Se Session 1
37/68
Copyright Amity University37
A general statement of objectives is sufficient to get
started with the development of software. Missing/vague
requirements can easily be incorporated/detailed out as
they get concretized.
If we do so, we are headingtowards a disaster.
Software Myths Customer Perspectives)
8/12/2019 Se Session 1
38/68
38
Software with more features is better
software
Software can work right the first time
Both are only myths!
Software Myths Customer Perspectives)
8/12/2019 Se Session 1
39/68
Copyright Amity University39
Once the software is demonstrated, the job is
done.
Usually, the problems just begin!
Software Myths Developer Perspectives)
8/12/2019 Se Session 1
40/68
Copyright Amity University40
Software quality can not be assessed before
testing.
However, quality assessment techniquesshould be used through out thesoftware development life cycle.
Software Myths Developer Perspectives)
8/12/2019 Se Session 1
41/68
Copyright Amity University41
The only deliverable for a softwaredevelopment project is the tested code.
Tested code is only one of the deliverable!
Software Myths Developer Perspectives)
8/12/2019 Se Session 1
42/68
42
Aim is to develop working programs
Those days are over. Now objective is todevelop good quality maintainable
programs!
Software Myths Developer Perspectives)
8/12/2019 Se Session 1
43/68
43
Some Terminologies Deliverablesand Milestones
Different deliverables are generated during software development. The examples are
source code, user manuals, operating procedure manuals etc.
The milestones are the events that are used to ascertain the status of the project.
Finalization of specification is a milestone. Completion of design documentation is another
milestone. The milestones are essential for project planning and management.
8/12/2019 Se Session 1
44/68
44
Productand Process
Some TerminologiesProduct: What is delivered to the customer, is called a product. It may include source code,
specification document, manuals, documentation etc. Basically, it is nothing but a set of
deliverables only.
Process: Process is the way in which we produce software. It is the collection of activities
that leads to (a part of) a product. An efficient process is required to produce good quality
products.
If the process is weak, the end product will undoubtedly suffer, but an obsessive over
reliance on process is also dangerous.
8/12/2019 Se Session 1
45/68
45
Some Terminologies Measures, Metricsand Measurement
A measure provides a quantitative indication of the extent, dimension, size, capacity,
efficiency, productivity or reliability of some attributes of a product or process.
Measurement is the act of evaluating a measure.
A metric is a quantitative measure of the degree to which a system, component or process
possesses a given attribute.
8/12/2019 Se Session 1
46/68
46
Some Terminologies Software Processand Product Metrics
Process metrics quantify the attributes of software development process and environment;
whereas product metrics are measures for the software product.
Examples
Process metrics: Productivity, Quality, Efficiency etc.
Product metrics: Size, Reliability, Complexity etc.
8/12/2019 Se Session 1
47/68
47
Productivityand Effort
Productivity is defined as the rate of output, or production per unit of effort, i.e. the output
achieved with regard to the time taken but irrespective of the cost incurred.
Hence most appropriate unit of effort is Person Months (PMs), meaning thereby number of
persons involved for specified months. So, productivity may be measured as LOC/PM (lines
of code produced/person month)
Some Terminologies
8/12/2019 Se Session 1
48/68
48
Some Terminologies Module and Software Components
There are many definitions of the term module. They range from amodule is a FORTRAN
subroutineto amodule is an Ada Package,to Proceduresand functions of PASCAL andC, to C++ Java classes to Javapackages to amodule is a work assignment for an
individual developer. All these definition are correct. The term subprogram is also used
sometimes in place of module.
8/12/2019 Se Session 1
49/68
49
An independently deliverable piece of functionality providing access to its services
through interfaces.
Acomponent represents a modular, deployable, and replaceable part of a system that
encapsulates implementation and exposes a set of interfaces.
Some Terminologies
8/12/2019 Se Session 1
50/68
50
Some Terminologies Genericand CustomizedSoftware Products
Generic products are developed for anonymous customers. The target is generally the
entire world and many copies are expected to be sold. Infrastructure software like
operating system, compilers, analyzers, word processors, CASE tools etc. are covered in thiscategory.
The customized products are developed for particular customers. The specific product is
designed and developed as per customer requirements. Most of the developmentprojects (say about 80%)come under this category.
8/12/2019 Se Session 1
51/68
51
Role of Management in Software Development
Factors
People
Product Process
Project
8/12/2019 Se Session 1
52/68
52
Dependency
Order
Project Product
Process
People
1
2
3
4
Role of Management in Software Development
8/12/2019 Se Session 1
53/68
Copyright Amity University
Software Development Life Cycle
Requirement Analysis &
Specification
Design
Coding
TestingMaintenance & Operations
8/12/2019 Se Session 1
54/68
Copyright Amity University
Software Life Cycle Model
Waterfall Model
Prototype Model
Iterative Enhancement Model Evolutionary Development Model
Spiral Model
Rapid Application Development (RAD) Model
Waterfall Model
8/12/2019 Se Session 1
55/68
Copyright Amity University
Waterfall Model
Linear Sequential Model
Classical Life Cycle ModelR e qu ir e m e nt
Design
I m pl e m e nt a t io na nd u ni t t e st in g
I nt e gr a t io n a n ds ys te m t e st in g
Operation &
Maintenance
8/12/2019 Se Session 1
56/68
Copyright Amity University
Problems with the Waterfall Model
It is difficult to define all requirements at the beginning of
a project
This model is not suitable for accommodating any
change
A working version of the system is not seen until late in
the projectslife
It does not scale up well to large projects Real projects are rarely sequential
P M d l
8/12/2019 Se Session 1
57/68
Copyright Amity University
Prototype Model
It is also known as throw away model.
It is developed as per the current available
requirement.
The code for the prototype model is
thrown away; however the experience
gathered from developing the prototype
helps in developing the actual system.
8/12/2019 Se Session 1
58/68
Copyright Amity University58
Linear model
Rapid
Prototype Model
8/12/2019 Se Session 1
59/68
59
Requirementsspecification
Architecturaldesign
Detailed
design
Implementationand unit testing
Integrationand testing
Operation andMaintenance
Iterative Enhancement Model
8/12/2019 Se Session 1
60/68
60
Evolutionary Process Models
Evolutionary process model resembles iterativeenhancement model. The same phases as defined for the
waterfall model occur here in a cyclical fashion. This model
differs from iterative enhancement model in the sense that
this does not require a useable product at the end of each
cycle. In evolutionary development, requirements are
implemented by category rather than by priority.
This model is useful for projects using new technology that
is not well understood. This is also used for complexprojects where all functionality must be delivered at one
time, but the requirements are unstable or not well
understood at the beginning.
8/12/2019 Se Session 1
61/68
Copyright Amity University
Evolutionary Development Model
Validation Finalversion
Development Intermediate
versions
Specification Initial
version
Outline
description
Concurrent
activities
Spiral Model
8/12/2019 Se Session 1
62/68
Copyright Amity University
Spiral Model
Phases of Spiral Model Planning: Determination of objectives,
alternatives and constraints.
Risk Analysis: Analyze alternatives andattempts to indentify and resolve the risks
involved
Development: Product development andtesting product.
Assessment: Customer evaluation
Spiral Model
8/12/2019 Se Session 1
63/68
63
Spiral Model
Rapid Application Development (RAD) Model
8/12/2019 Se Session 1
64/68
64
o Build a rapid prototype
o Give it to user for evaluation & obtain feedback
o Prototype is refined
Requirement
sPlanning
User
Description
Construction Cut over
With active participation of users
p pp p ( )
8/12/2019 Se Session 1
65/68
65
Not an appropriate model in the absence of user
participation.
Reusable components are required to reducedevelopment time.
Highly specialized & skilled developers are required
and such developers are not easily available.
Rapid Application Development (RAD) Model
Multiple Choice Questions
8/12/2019 Se Session 1
66/68
66
1.1 Software is
(a) Superset of programs (b) subset of programs(c) Set of programs (d) none of the above
1.2 Which is NOT the part of operating procedure manuals?
(a) User manuals (b) Operational manuals
(c)Documentation manuals (d) Installation manuals
1.3 Which is NOT a software characteristic?
(a) Software does not wear out (b) Software is flexible
(c) Software is not manufactured (d)Software is always correct
1.4 Product is
(a)Deliverables (b) User expectations(c) Organization's effort in development (d) none of the above
Multiple Choice QuestionsNote: Select most appropriate answer of the following questions:
1.5 To produce a good quality product, process should be
(a) Complex (b)Efficient
(c) Rigorous (d) none of the above
Multiple Choice Questions
8/12/2019 Se Session 1
67/68
67
1.6 Which is not a product metric?
(a) Size (b) Reliability
(c)Productivity (d) Functionality
1.7 Which is NOT a process metric?
(a) Productivity (b)Functionality
(c) Quality (d) Efficiency
1.8 Effort is measured in terms of:(a)Person-months (b) Rupees
(c) Persons (d) Months
1.9 UML stands for
(a) Uniform modeling language (b)Unified modeling language
(c) Unit modeling language (d) Universal modeling language
p QNote: Select most appropriate answer of the following questions:
1.10 An independently deliverable piece of functionality providing access to
its services through interface is called
(a) Software measurement (b) Software composition
(c) Software measure (d)Software component
8/12/2019 Se Session 1
68/68
Thank You