Date post: | 14-Apr-2018 |
Category: |
Documents |
Upload: | shivaprasad-bolla |
View: | 216 times |
Download: | 0 times |
of 45
7/30/2019 Software Engineering CD Ac
1/45
SoftwareEngineering B
SGandhi
7/30/2019 Software Engineering CD Ac
2/45
What is Engineering and why
do we need it? Better Quality
Better Price
Better Turnaround times
7/30/2019 Software Engineering CD Ac
3/45
Better Turnaround times
Software Engineering consists of
Engineering Practices
Management Practices
Support Practices
Engineering Practices are covered more in detail later
Management Practices are about
Estimations
Planning
Monitoring and Control
BSGandhi
7/30/2019 Software Engineering CD Ac
4/45
Quality Basics
What is Quality
Meeting the specifications
Meeting the requirements
Fitness for use
Meeting the stated, implied and legal requirements
Minimum loss to the society
7/30/2019 Software Engineering CD Ac
5/45
How do we achieve Quality?
Inspections & Testing - Quality Control
Reviews, verifications, making sure that you are doing right
Quality Assurance
Process Approach
TQM
Six Sigma
Quality by Design
7/30/2019 Software Engineering CD Ac
6/45
Software Challenges
Software is developed, not manufactured
Software does not wear out
Software is mostly custom built
Software does not contain sub-assemblies from outsiders
BSGandh
i
7/30/2019 Software Engineering CD Ac
7/45
Challenges (contd)
Y2K problem !!!
Some small programs and tools live longer than expected
No visibility to decide how much is completed (during
development)
No proper estimation of effort and schedule
BSGandh
i
7/30/2019 Software Engineering CD Ac
8/45
Myths
Management
We have a book containing all standards
If we are behind schedule, we can add more programmers and
catch up
We can always decide to outsource if we do not know how tobuild
BSGandh
i
7/30/2019 Software Engineering CD Ac
9/45
Myths (contd)
Customer
Basic requirements should be good enough to start coding. We
can add more details of what we want later
We agree that requirements continually change, but so what?
Change can easily be accommodated since software is flexible
BSGandh
i
7/30/2019 Software Engineering CD Ac
10/45
Myths (contd)
Programmer
Once we get the program to work, our job is done
Until I finish coding, how do I assess the quality?
The only deliverable work product is a working program
Software engineering practices make us write more documents
and slows down our workBSGandh
i
7/30/2019 Software Engineering CD Ac
11/45
Source: Standish Group Report (2001)
11
Project Failure Rates Software Projects
Challenged
Succeeded
Failed 28%
46%
26%
7/30/2019 Software Engineering CD Ac
12/45
Process approach
What is a process
A good process can deliver good output
Engineering, Management and Support processes
Software Development Life Cycle
Phases of SDLC
BSGandh
i
7/30/2019 Software Engineering CD Ac
13/45
Software Development
Software life cycle processes that comprise the activities of
Requirements analysis
Design
Coding
Testing
Installation & Acceptance
User Support
SoftwareProjectManagemen
t
13
7/30/2019 Software Engineering CD Ac
14/45
Requirements Analysis
Requirements specification of the characteristics to be possessed by
the software project or service
Requirements analysis elicitation, documentation, review and
approval of requirements
SoftwareProjectManagemen
t
14
7/30/2019 Software Engineering CD Ac
15/45
Design
Design logical view of the implementation of the solution meeting
customer requirements
Data design data structures, data base elements
Architectural design sub-systems, modules and programs
Interface design user and external environment
SoftwareProjectManagemen
t
15
7/30/2019 Software Engineering CD Ac
16/45
Coding
Coding converting the logic specified in the design in to programs as
per chosen programming language
SoftwareProjectManagemen
t
16
7/30/2019 Software Engineering CD Ac
17/45
Testing
Testing to ensure that the product is working according to the
requirements
Levels of testing unit, module, integration, system and acceptance
SoftwareProjectManagemen
t
17
7/30/2019 Software Engineering CD Ac
18/45
Installation and Acceptance
Developed software to be installed on the user environment
User training
User acceptance
Softw
areProjectManagemen
t
18
7/30/2019 Software Engineering CD Ac
19/45
User Support
Problem resolution
Functionality enhancements
Migration to new environments
Softw
areProjectManagemen
t
19
7/30/2019 Software Engineering CD Ac
20/45
Process Architecture
For all the software development activities the process architecture
defines
Entry and exit criteria
Inputs and outputs
Participants and responsibilities
Activities to be carried out
Verification and approval
Standards
Softw
areProjectManagemen
t
20
7/30/2019 Software Engineering CD Ac
21/45
Software Development Life
Cycle Model A framework containing the processes, activities and the tasks
involved in the development, operation and maintenance of a
software product spanning the life of the system from the definition of
its requirements to the termination of its use (ISO/IEC 12207)
Softw
areProjectManagemen
t
21
7/30/2019 Software Engineering CD Ac
22/45
SDLC Models
Waterfall model
Spiral model
Prototype model
Iterative model
Rapid application development model
Softw
areProjectManagemen
t
22
7/30/2019 Software Engineering CD Ac
23/45
Waterfall Model
Also known as classic life cycle model, linear sequential model
This model suggests a systematic and sequential approach to software
development that begins at requirements analysis and progresses
through all life cycle phases sequentially
Softw
areProjectManagemen
t
23
7/30/2019 Software Engineering CD Ac
24/45
Waterfall Model (Contd)
Softw
areProjectManagemen
t
24
RA
D
C
T
I & A
CS
7/30/2019 Software Engineering CD Ac
25/45
Waterfall Model
Softw
areProjectManagemen
t
25
System Testing
Integration Testing
Coding and Unit Testing
Detailed Design
High Level Design
Software Requirement Specifications
Users Software Requirements
Acceptance Testing
Warranty
7/30/2019 Software Engineering CD Ac
26/45
Softw
areProjectManagemen
t
26Project Management
Software
Development
Quality
Assurance
Coding
Contract WarrantyReview
/ Test
Users Software
Requirements
AcceptanceTesting
Software
RequirementsSpecifications
SystemTesting
High LevelDesign
IntegrationTesting
DetailedDesign
UnitTesting
V MODELV MODEL
7/30/2019 Software Engineering CD Ac
27/45
Waterfall Model (Contd)
Development activities carried out sequentially
Review and approval of each phase outputs
Model does not permit going back and forth
If any defect found, go back to the originating phase and start
traversing sequentially all over again
Softw
areProjectManagemen
t
27
7/30/2019 Software Engineering CD Ac
28/45
Waterfall Model (Contd)
Suitable for projects where
Requirements are clearly defined
Small and medium term duration
Stable technology
Familiarity with the domain and development environments
Softw
areProjectManagemen
t
28
7/30/2019 Software Engineering CD Ac
29/45
Waterfall Model (Contd)
Advantages:
Projects under control
Pre-defined outputs at every phase
Tracking changes is easy
Early identification of slippages, if any
Softw
areProjectManagemen
t
29
7/30/2019 Software Engineering CD Ac
30/45
Waterfall Model (Contd)
Disadvantages:
In real life, customer requirements do change
Customer appraisal of completed work - not feasible always
Phases can not run concurrently
Softw
areProjectManagemen
t
30
7/30/2019 Software Engineering CD Ac
31/45
Spiral Model
In a spiral model, software is developed in a series of incrementalreleases
The spiral model is divided in to a number of framework activities or
task regions
Softw
areProjectManagemen
t
31
7/30/2019 Software Engineering CD Ac
32/45
Spiral Model (Contd)
Softw
areProjectManagemen
t
32
R A
D
C
T
I&A
S
7/30/2019 Software Engineering CD Ac
33/45
Spiral Model (Contd)
Suitable for large projects with multi-location implementation
Each Spiral consists of a deliverable product
Feedback of each spiral is incorporated in the next spiral
Customer can start using the system after every spiral
Each Spiral consists of a waterfall model
Softw
areProjectManagemen
t
33
7/30/2019 Software Engineering CD Ac
34/45
Spiral Model (Contd)
Advantages:
Useful for large projects
Customer requirements evolve over a period Early availability of usable system
Disadvantages:
Total blue print should be available in the beginning
Basic concepts in the underlying layer can NOT be changedSoftw
areProjectManagemen
t
34
7/30/2019 Software Engineering CD Ac
35/45
Prototype Model
A prototype model is a representation of a real life situation, which canbe evaluated by the user
A prototype is developed based on the initial understanding of the
customer requirements
A visible working prototype helps customer to define the requirements
Softw
areProjectManagemen
t
35
7/30/2019 Software Engineering CD Ac
36/45
Prototype model (contd)
Softw
areProjectManagement
36
Intial
Requirements
Design
Code
Test
Design Code Test
7/30/2019 Software Engineering CD Ac
37/45
Prototype Model (Contd)
Prototype model is used for eliciting customer requirements as well asidentifying user machine interaction
Prototype model is used in product development or for developing a
new application for a customer
Softw
areProjectManagement
37
7/30/2019 Software Engineering CD Ac
38/45
Prototype Model (Contd)
Advantages : Can be used when customer is not sure about what he
wants
Faster way of finalising the requirements Useful for new technologies and domains
Disadvantage : A prototype if used in a production environment, may lack
quality or maintainabilitySoftw
areProjectManagement
38
7/30/2019 Software Engineering CD Ac
39/45
Incremental Models
BSGandhi
7/30/2019 Software Engineering CD Ac
40/45
BSGandhi
7/30/2019 Software Engineering CD Ac
41/45
Agile Principles
Highest Priority Customer Satisfaction
Welcome changing requirements Even late in the
development
Deliver working software frequently
Business people and developers work together
Build Projects around motivated individuals
Most efficient method of conveying information within
development teams face to face
Softw
areProjectManagement
41
7/30/2019 Software Engineering CD Ac
42/45
Agile Principles (contd)
Working software is the primary measure of progress
Simplicity is essential
Best performance of any individual will emerge from self-
organizing teams
Softw
areProjectManagement
42
7/30/2019 Software Engineering CD Ac
43/45
Phases in Agile Models
BSGandhi
7/30/2019 Software Engineering CD Ac
44/45
Agile SDLC Models
SCRUM
Sprints
Daily Stand-up meetings (Progress, Problems and Plan)
SCRUM Master
Backlog Sprints
Softw
areProjectManagement
44
7/30/2019 Software Engineering CD Ac
45/45
Agile SDLC Models
Extreme Programming
OO is the preferred development paradigm
Only four phases Planning, Design, Code and Test
User Stories that describe the functionality
Design to follow keep it simple approach Coding - continuous refactoring and pair programming
Softw
areProjectManagement
45