Professional Documents
Culture Documents
Software Engineering
Software Engineering
m
.co
nt
Unit 1
oi
Part 1 Software Engineering Fundamentals
lp
ria
Part 2 Software Analysis
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 1
part1
m
Software
.co
nt
oi
Engineering
lp
ria
to
Fundamentals
Tu
Cs
By SWARNIMA SHRIVASTAVA 2
Software
m
.co
function, and performance
nt
oi
(2) Data structures that enable the
lp
programs to adequately manipulate
ria
to
information
Tu
m
.co
of computer programs, procedure rules
nt
and associated documentation and data. “
oi
lp
ria
Software is considered to be collection of
to
Tu
By SWARNIMA SHRIVASTAVA 5
Characteristics of
m
.co
software
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 6
m
.co
nt
oi
lp
ria
software has one fundamental
to
characteristic that makes it considerably
Tu
Cs
By SWARNIMA SHRIVASTAVA 7
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 8
software will undergo change.
As changes made, it is likely that errors will
m
.co
be introduced, causing the failure rate curve
nt
to spike as shown in the “actual curve”
oi
Before the curve can return to the original
lp
steady-state failure rate, another change is
ria
to
requested, causing the curve to spike again.
Tu
By SWARNIMA SHRIVASTAVA 9
Software engineering
Software engineering is an engineering
branch associated with development of
m
.co
software product using well-defined
nt
scientific principles, methods and
oi
lp
procedures. The outcome of software
ria
engineering is an efficient and reliable
to
Tu
software product.
Cs
By SWARNIMA SHRIVASTAVA 10
Definition
IEEE defines software engineering as:
m
(1)The application of a
.co
systematic,disciplined,quantifiable
nt
oi
approach to the development, operation
lp
ria
and maintenance of software; that is, the
to
application of engineering to software.
Tu
By SWARNIMA SHRIVASTAVA 11
SDLC
Software Development Life Cycle, SDLC
for short, is a well-defined, structured
m
.co
sequence of stages in software
nt
engineering to develop the intended
oi
lp
software product.
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 12
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 13
Software Development Life Cycle
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 14
Communication
m
.co
software product. He contacts the service
nt
provider and tries to negotiate the terms.
oi
lp
He submits his request to the service
ria
providing organization in writing.
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 15
Requirement Gathering
m
number of practices as given -
.co
studying the existing or obsolete system
nt
oi
and software,
lp
ria
conducting interviews of users and
to
developers,
Tu
Cs
m
.co
this step the team analyzes if a software can
nt
be made to fulfill all requirements of the user
oi
and if there is any possibility of software
lp
ria
being no more useful. It is found out, if the
to
project is financially, practically and
Tu
By SWARNIMA SHRIVASTAVA 17
System Analysis
m
.co
software model suitable for the project.
nt
System analysis includes Understanding of
oi
software product limitations, learning system
lp
ria
related problems or changes to be done in
to
existing systems beforehand, identifying and
Tu
By SWARNIMA SHRIVASTAVA 18
Software Design
m
.co
design the software product. The inputs from
nt
users and information gathered in
oi
requirement gathering phase are the inputs of
lp
ria
this step. The output of this step comes in the
to
form of two designs; logical design and
Tu
By SWARNIMA SHRIVASTAVA 19
Coding
The goal of coding phase is to translate
the design of the system into code in a
m
.co
given programming language.
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 20
Testing
The basic function of testing is to detect
errors in the software
m
.co
The goal of testing is to uncover
nt
requirement ,design and coding erros in
oi
lp
the programs.
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 21
Implementation
m
machines. At times, software needs post-
.co
installation configurations at user end.
nt
oi
Software is tested for portability and
lp
adaptability and integration related issues
ria
to
are solved during implementation.
Tu
Cs
By SWARNIMA SHRIVASTAVA 22
Maintenance
It is an important part of SDLC
m
If there is any error or change is needed
.co
in the system then it is part of
nt
maintenance.
oi
lp
ria
The cost of maintenance is more than the
to
cost of development.
Tu
Cs
By SWARNIMA SHRIVASTAVA 23
Types of Maintenance
❑Corrective maintenance
m
❑Adaptive maintenance
.co
❑Perfective maintenance
nt
oi
❑Preventive maintenance
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 24
Software Development Paradigm
m
developer to select a strategy to develop
.co
the software. A software development
nt
oi
paradigm has its own set of tools, methods
lp
and procedures, which are expressed
ria
to
clearly and defines software development
Tu
By SWARNIMA SHRIVASTAVA 25
Process Model
To solve actual problem in an industry a team of
software engineers must incorporate a development
m
.co
strategy that encompasses the process,methods,tools
nt
this strategy is called process model.
oi
S/W process Model is an abstract representation of
lp
ria
S/W process.to
S/W processes are categorized into three phases:
Tu
phase.
Process model depends on the nature of software.
By SWARNIMA SHRIVASTAVA 26
Process models
Waterfall model
m
Evolutionary model
.co
1. Prototype model
nt
oi
2. Spiral model
lp
ria
Iterative model
to
Incremental model
Tu
Cs
By SWARNIMA SHRIVASTAVA 27
Waterfall model/Linear
sequential/Classic life cycle
m
.co
Waterfall model is the simplest process model .
nt
oi
Proposed by ROYCE.
lp
ria
It consists of all the phases of SDLC.
to
Phases organized in linear order that’s why it is
Tu
By SWARNIMA SHRIVASTAVA 28
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 29
Feasibility Report
m
Design
.co
Document
nt
oi
lp
coding Testing and
verification ria integration
to
program
Tu
Cs
Operation and
installation
maintenance
Installation report
By SWARNIMA SHRIVASTAVA 30
When to use
Requirements are very well known, clear
m
and fixed.
.co
Product definition is stable.
nt
oi
Technology is understood.
lp
ria
There are no ambiguous requirements.
to
Tu
Project is short.
By SWARNIMA SHRIVASTAVA 31
Advantages
m
Best for straight line development.
.co
It encompasses all stages of sdlc.
nt
oi
It divides the task into clearly defined
lp
phases. ria
to
Tu
requirements of user.
By SWARNIMA SHRIVASTAVA 32
Disadvantages
m
It is difficult for a customer to state all the
.co
requirements explicitly.
nt
Real project rarely follow this model.
oi
lp
Costly and slow.
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 33
Prototype model
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 34
Definition
The goal of prototype model is to build a
prototype that help to understand the
m
requirements.
.co
nt
Prototype is build on the basis of current
oi
requirement.
lp
ria
Client can get an actual feel of the system by
to
using prototype.
Tu
By SWARNIMA SHRIVASTAVA 35
Types of prototype model
Throwaway prototype
m
.co
nt
oi
lp
ria
to
Tu
Evolutionary prototype
Cs
By SWARNIMA SHRIVASTAVA 36
When to use
When customer is clueless about detailed
requirements of the system.
m
.co
When it requires a lot of interaction with user.
nt
Customer is freely available to provide feedback
oi
lp
of the prototype.
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 37
Advantages
It does not require complete set of specification
or requirement before the development of
m
.co
software begins.
nt
oi
lp
When the customer is clueless this model is
ria
perfect to develop the quality software.
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 38
Disadvantages
The developer makes implementation
compromise.
m
.co
nt
Needs a lot of interaction between client and
oi
lp
developer.
ria
to
Tu
By SWARNIMA SHRIVASTAVA 39
Spiral model
m
.co
Spiral model is divided into a set of
nt
oi
framework activities defined by s/w
lp
ria
engineering team.
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 40
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 41
When to use?
When cost and risk evaluation is
m
important.
.co
For medium to high risk projects.
nt
oi
Users are unsure about their needs.
lp
ria
Requirements are complex.
to
Tu
By SWARNIMA SHRIVASTAVA 42
Advantage
Realistic approach.
m
Customer and developer better understand and
.co
reacts to the risk at each evolutionary level.
nt
Use prototype as risk reduction mechanism.
oi
lp
It maintains the systematic approach like
ria
waterfall model as well as incorporating
to
Tu
By SWARNIMA SHRIVASTAVA 43
Disadvantage
m
Needs greater communication between
.co
developer and customer.
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 44
Incremental model
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 45
When to use?
m
.co
Major requirements are known some are evolve
nt
over time.
oi
lp
ria
There is a need to get a product in market early.
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 46
Advantages
m
Easier to test and debug.
.co
Customer respond to each built.
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 47
Disadvantage
m
Total cost is high.
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 48
Iterative model
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 49
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 50
Knowledge engineering is a field of artificial
intelligence(AI) that creates rules to apply to
data to imitate the thought process of a human
expert. It looks at the structure of a task or a
m
decision to identify how a conclusion is reached.
.co
nt
oi
In its initial form, knowledge engineering
lp
focused on the transfer process; transferring the
ria
to
expertise of a problem-solving human into a
Tu
By SWARNIMA SHRIVASTAVA 51
End user development
End-user development (EUD) or end-user
programming (EUP) refers to activities and tools that
m
allow end-users – people who are not professional
.co
software developers – to program computers. People
nt
who are not professional developers can use EUD tools
oi
lp
to create or modify software artifacts (descriptions of
ria
automated behavior) and complex data objects without
to
significant knowledge of a programming language.
Tu
spreadsheets.
By SWARNIMA SHRIVASTAVA 52
Software Requirements
A requirement is a feature of the system or a description
of something the system is capable of doing in order to
m
fulfill the system’s purpose.
.co
nt
oi
Types of requirement
lp
ria
to
•Those that should be absolutely met.
Tu
By SWARNIMA SHRIVASTAVA 53
Software Requirements
Broadly software requirements should be categorized in
two categories:
m
1. Functional Requirements: Requirements, which are
.co
related to functional aspect of software fall into this
nt
category. Like I/O format, storage structure
oi
,computational capabilities, timing and synchronization
lp
ria
to
2. Non-Functional Requirements: Requirements, which
Tu
By SWARNIMA SHRIVASTAVA 54
Non-functional requirements include -
Security
Portability
m
.co
Performance
nt
Interoperability
oi
Flexibility
lp
ria
Accessibilityto
Usability
Tu
Efficiency
Cs
Reliability
By SWARNIMA SHRIVASTAVA 55
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 56
Software analysis
Software requirement specification(SRS):
IEEE defines a requirement as
m
“(1)A condition of capability needed by a user to solve
.co
a problem or achieve an objective.
nt
(2) A condition or a capability that must be met or
oi
possessed by a system to satisfy a
lp
ria
contract,standard,specification or other formally
imposed document”
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 57
Need of SRS
Basic purpose of SRS is to bridge the
communication gap between client and
m
.co
developer.
nt
oi
Advantage of SRS
lp
ria
to
1. It is an agreement between user and developer.
Tu
product.
3. High quality SRS is prerequisite to high quality
S/W.
4. High quality SRS reduces the development cost.
By SWARNIMA SHRIVASTAVA 58
Characteristics of an SRS
1. Correct
m
2. Complete
.co
3. Unambiguous
nt
oi
4. Verifiable
lp
ria
5. Consistent
to
6. Ranked for importance
Tu
7. Modifiable
Cs
8. Traceable
By SWARNIMA SHRIVASTAVA 59
Components of SRS
Functional requirements :- Functional
requirements specify what output should be
m
.co
produced from the given inputs. So they
nt
basically describe the connectivity between the
oi
input and output of the system.
lp
ria
to
Tu
Performance requirements :- Performance
Cs
m
.co
policies that may have an impact on the design of the
system. An SRS should identify and specify all such
nt
oi
constraints.
lp
ria
External interface requirements: All the possible
to
Tu
interactions of the software with people hardware and
Cs
By SWARNIMA SHRIVASTAVA 61
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 62
Specification Tools
Flow based- DFD
m
Data based
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 63
Data Flow Diagram
m
.co
data in an information system. It is capable of mention
of depicting incoming data flow, outgoing data flow and
nt
oi
stored data. There is a prominent difference between
lp
DFD and Flowchart. The flowchart depicts flow of
ria
control in program modules. DFDs depict flow of data
to
in the system at various levels. DFD does not contain
Tu
By SWARNIMA SHRIVASTAVA 64
Types of DFD
Data Flow Diagrams are either Logical or Physical.
m
.co
Logical DFD : This type of DFD concentrates on the
nt
system process, and flow of data in between the system .
oi
For example in a Banking software system, how data is
lp
moved between different entities.
ria
to
Tu
By SWARNIMA SHRIVASTAVA 65
DFD Components
m
.co
nt
Entities - Entities are source and destination of
oi
information data. Entities are represented by a
lp
ria
rectangles with their respective names.
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 66
Data Storage - There are two variants of data
storage - it can either be represented as a
rectangle with absence of both smaller sides or
m
.co
as an open-sided rectangle with only one side
nt
missing.
oi
lp
ria
Data Flow - Movement of data is shown by
to
Tu
pointed arrows. Data movement is shown from
Cs
By SWARNIMA SHRIVASTAVA 67
Levels of DFD
Level 0- Highest abstraction level DFD is known as
Level 0 DFD, which depicts the entire information
m
system as one diagram concealing all the underlying
.co
details. Level 0 DFDs are also known as context level
nt
DFDs.
oi
lp
ria
Online shopping system
to
Tu
delivery
order
Cs
customers
By SWARNIMA SHRIVASTAVA 68
Level 1 DFD
m
The Level 0 DFD is broken down into more specific, Level
.co
1 DFD. Level 1 DFD depicts basic modules in the system
nt
and flow of data among various modules. Level 1 DFD
oi
lp
also mentions basic processes and sources of information.
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 69
m
.co
nt
oi
lp
ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 70
Data Dictionary
The data dictionary is centralized repository of
information about such a meaning relationship
m
to other data,origin,usage and format. Data
.co
dictionary is read only set of tables that provide
nt
oi
information about the data base. Data dictionary
lp
manages metadata(database about database).
ria
to
Tu
By SWARNIMA SHRIVASTAVA 71
2) How much space has been allocated for and is
currently used by schema object.
m
.co
3) Default value for columns.
nt
Integrity constraint information.
oi
4)
lp
5) Names of users.
ria
to
6) Privileges and roles each user has been
Tu
granted.
Cs
By SWARNIMA SHRIVASTAVA 72
Data Dictionary files
1) Field’s File
m
.co
FIELD NAME TYPE SIZE
Rollno Number 5
nt
oi
Name Text 10
lp
Courseid Number 5
ria
to
Tu
2) File’s File
Cs
By SWARNIMA SHRIVASTAVA 73
Data dictionary are of two types
m
DBMS . Maintained by system itself.
.co
nt
oi
Passive data dictionary:-Also called non integrated
lp
data dictionary used only for documentation purpose .
ria
Managed by users of the system and modified whenever
to
the db changed.
Tu
Cs
By SWARNIMA SHRIVASTAVA 74
OOAD - Object Oriented Analysis
In the system analysis or object-oriented
analysis phase of software development,
m
.co
the system requirements are determined,
nt
the classes are identified and the
oi
relationships among classes are identified.
lp
ria
The three analysis techniques that are
to
Tu
used in conjunction with each other for
Cs
By SWARNIMA SHRIVASTAVA 75
Object modeling
Object modeling develops the static
m
structure of the software system in terms
.co
of objects. It identifies the objects, the
nt
oi
classes into which the objects can be
lp
grouped into and the relationships
ria
to
between the objects. It also identifies the
Tu
By SWARNIMA SHRIVASTAVA 76
The process of object modeling can be
visualized in the following steps −
m
.co
Identify the relationships among classes
nt
oi
Create user object model diagram
lp
ria
Define user object attributes
to
Tu
By SWARNIMA SHRIVASTAVA 77
Dynamic Modeling
Dynamic Modeling can be defined as “a
m
way of describing how an individual
.co
object responds to events, either internal
nt
oi
events triggered by other objects, or
lp
external events triggered by the outside
world”. ria
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 78
The process of dynamic modeling can be
visualized in the following steps −
Identify states of each object.
m
Identify events and analyze the
.co
applicability of actions.
nt
oi
Construct dynamic model diagram,
lp
ria
comprising of state transition diagrams.
to
Express each state in terms of object
Tu
Cs
attributes.
Validate the state–transition diagrams
drawn.
By SWARNIMA SHRIVASTAVA 79
Functional Modeling
Functional Modeling is the final component of
object-oriented analysis. The functional model
m
.co
shows the processes that are performed within
nt
an object and how the data changes as it moves
oi
between methods. It specifies the meaning of the
lp
ria
operations of object modeling and the actions of
to
dynamic modeling. The functional model
Tu
By SWARNIMA SHRIVASTAVA 80
The process of functional modeling can be
visualized in the following steps −
Identify all the inputs and outputs.
Construct data flow diagrams showing
m
functional dependencies.
.co
nt
State the purpose of each function.
oi
Identify constraints.
lp
ria
Specify optimization criteria.
to
Tu
Cs
By SWARNIMA SHRIVASTAVA 81