Professional Documents
Culture Documents
Start time
End time
Session
9:00 AM
10:45 AM
10:45 AM
11:00 AM
Tea break
11:00 AM
1:00 PM
1:00 PM
2:00 PM
Lunch break
2:00 PM
3:45 PM
Requirement engineering
3:45 PM
4:00 PM
Tea break
4:00 PM
5:00 PM
Testing techniques
5:00 PM
6:00 PM
Configuration management
-2-
Timelines
Software
Software is the collection of.
Computer programs
Procedures
Rules
Data
Associated documentation
-4-
A definition of process
A set of activities performed to achieve a given purpose. Any specific
combination of machines, tools, methods, materials, and/or people
employed to attain specific qualities in a product or service.
For organization to improve its business, following are three critical
dimensions:
Process is one of three quality leverage points
People
Outputs
Process
Technology
-5-
Inputs
Software engineering
Establishment and use of sound engineering principles in order to
obtain economically a software that is reliable and works efficiently on
real machines (Bauer 69).
Application of science and mathematics by which capabilities of
computer equipment are made useful to man via computer programs,
procedures, and associated documentation (Boehm 81).
A systematic approach to the development, operation, maintenance,
and retirement of a software (IEEE 87).
-6-
-7-
At low cost
-8-
Spiral model
Waterfall model
Sequential
Enforces complete requirements specification
Cannot proceed to the next phase till the current phase is over
Does not model the reality
-9-
Prototyping model
Do not wait for requirements Freeze. Build a prototype to understand
requirements.
Prototype thrown away after requirements are understood.
Effective method to demonstrate the feasibility of a new concept.
- 10 -
Iterative model
Software developed and delivered in increments.
Each increment adds some functionality.
- 11 -
Spiral model
Risk driven
Iterative steps
Planning
Risk analysis
Development
Customer evaluation
- 12 -
Part of a team
Programming-in-the-small
Programming-in-the-large
Knowledge on
Design approaches
Data structures
Algorithms
Minimal exposure to CS
Heterogeneity
Systems are distributed and include a mix of hardware and software
Delivery
- 14 -
Q and A
Agenda
What is SDLC?
SDLC phases
SDLC models
SDLC key success factors
References
Summary
Q and A
What is SDLC?
An acronym for system development life cycle.
A set of stages/phases that all information systems go through in
their lifecycle.
- 18 -
SDLC phases
The generic phases of SDLC are:
Analysis
Design
Build/test
Deployment
- 19 -
Maintenance
Design
Build/test
Design
Specification
Architecture
Scope
Deployment
Business
Requirement
Proof of
Master Test
Requirements
Specification
Concept
Strategy
Product
Cases
- 20 -
Build
Deployment
Design Test
Selection
Maintenance
Maintenance
Execute
Test
Analysis
Analysis
Design
Build/test
Deployment
Maintenance
Analysis phase
The analysis phase involves:
Study the clients current business processes and information
systems.
Evaluate issues/problem areas that need to be addressed by the new
system.
Gather/determine and structure the requirements.
Prepare requirements specification document (RSD).
Review the RSD.
- 21 -
Analysis
Design
Build/test
Deployment
Maintenance
Design phase
The design phase involves:
Designing the physical construction, hardware, operating systems,
networking, communications, and security specifications.
Preparing the functional design document that focuses mainly on the
business processes/aspects of the system.
Preparing the technical design document that is based on the
functional design and provides detailed technical specifications that
should be followed during the construction phase.
Prepare unit test plans/scripts (UTPS).
Review the functional design and technical design documents.
- 22 -
Analysis
Design
Build/test
Deployment
Maintenance
Build/test phase
The build activities involve:
Installation of hardware, operating system, etc.
Develop code based on the technical design.
Perform unit testing of the code using the UTPS.
Closure of unit testing findings.
- 23 -
Analysis
Design
Build/test
Deployment
Maintenance
Deployment phase
The deployment phase involves:
Ensure the required hardware, software, network, etc., are setup.
Train the users on using the new system.
Deploy the newly developed system.
Release the new system to client users for use.
Monitor the performance of new system.
- 24 -
Help the users to increase their comfort level in using the new system.
Analysis
Design
Build/test
Deployment
Maintenance
Maintenance phase
The maintenance phase involves:
Prepare and review the maintenance plan.
Get sign-off on the system from authorized client personnel.
Document the issues reported by users on the new system.
Design, build, test, and deploy the code changes for resolving these
issues.
Make changes to accommodate changes in operating system,
peripheral devices, etc.
- 25 -
SDLC models
The more popular SDLC models are:
The linear sequential model.
The prototyping model.
The rapid application development (RAD) model.
- 26 -
Design
Build/test
Deployment
Is also called the waterfall model or the classic life cycle model.
Is a sequential approach to system development.
Progresses from one phase to another.
Has analysis, design, build/test, and deployment as the phases.
- 27 -
- 28 -
Weaknesses
Does not allow for revision or iteration. Not always feasible in real-time
projects.
Sometimes is difficult for customers to clearly state all requirements.
Demands more patience from customers.
Adds a lot of waiting time for team members as they have to wait for the
dependent tasks to be completed.
Prototyping model
Listen to customer
Customer
test-drives
prototype
- 29 -
Build/revise
prototype
- 30 -
- 31 -
Less/no focus on quality and hence may create more issues in the final
system.
RAD model
Modelling
(business,
data, and
process)
Application
generation
Testing and
turnover
Team 1
New
system
Team 2
- 32 -
Team 3
- 33 -
- 34 -
Weaknesses
Very high resource requirements.
Demands full-time availability and high commitment from customers.
Not suitable for projects where the system cannot be properly
modularized.
- 35 -
References
Deloitte KX Portal https://kx.deloitteresources.com/default.aspx
Deloitte Learning Center https://www.deloittenet.com/dtlearning/default.asp
Books
Software Engineering A Practitioners Approach by Roger Pressman
Software Engineering Productivity Handbook by J. Kayes
Encyclopedia of Software Engineering by J. J. Marchiniak
- 36 -
Summary
Define SDLC
SDLC phases
SDLC models
Key success factors
- 37 -
References
Q and A
Topics
Requirement engineering
Why requirement engineering?
Types of requirement
Users of requirement
Requirement Measure
Guidelines for writing requirement document
Requirement management flow
Requirement engineering
The process of establishing the services that the customer requires
from a system and the constraints under which it operates and is
developed
The requirements themselves are the descriptions of the system
services and constraints that are generated during the requirements
engineering process
Phases of requirements in project life cycle
Obtain an understanding of requirements
Obtain commitment to requirements
Manage requirements changes
Maintain bidirectional traceability of requirements
Identify inconsistencies between project work and requirements
- 41 -
- 42 -
- 43 -
- 44 -
Types of requirements 1
User requirements
Statements in natural language, plus diagrams of the services the system
provides and its operational constraints. Written for customers
System requirements
A structured document setting out detailed descriptions of the system
services. Written as a contract between client and contractor
Software specification
- 45 -
System requirements
- 46 -
Software design
specification
Types of requirements 2
Functional requirements
Statements of services the system should provide, how the system should
react to particular inputs, and how the system should behave in particular
situations
Nonfunctional requirements
constraints on the services or functions offered by the system, such as timing
constraints, constraints on the development process, standards, etc.
Domain requirements
- 47 -
Requirements that come from the application domain of the system and that
reflect characteristics of that domain
Specify the requirements and read them to check that they meet their needs.
They specify changes to the requirements
Managers
Use the requirements document to plan a bid for the system and to plan the
system development process
System maintenance
engineers
Use the requirements to help understand the system and the relationships
between its parts
- 48 -
System engineers
Requirements measures
Property
Speed
Measure
Processed transactions/second
User/even response time
Screen refresh time
Size
Kilo bytes
Number of RAM chips
Ease of use
Training time
Number of help frames
Reliability
Meantime to failure
Probability of unavailability
Rate of failure occurrence
Availability
Robustness
- 49 -
Portability
- 50 -
- 51 -
Input
Business
requirement
Review
requirements
Create FS
Output
Baseline
functional specs
Sign off FS
Review FS
- 52 -
Initial object
review/
requirements
understanding
Output
Baseline
technical spec
Baseline test
cases
Alternative solutions
(for decision making)
Create TS and
test cases
Review TS and
test cases
- 53 -
Requirements management
Input
Requirement
document
(FS/TS)
Requirements
allocation and
understanding
Alternative solutions
(for decision making)
Maintain
configuration
status report
Revised FS/TS
Receive
clarifications
Prepare
communication
log/issue log
Receive
response
- 54 -
Output
Reviewed FS/TS
User
requirements
User cases
Functional
requirements
System
requirements
Software
requirements
specification
Quality
attributes
Other
nonfunctional
requirements
Constraints
- 55 -
Business
requirements
Key points
User requirements should be written in natural language, tables and
diagrams
System requirements are intended to communicate the functions that
the system should provide
System requirements may be written in structured natural language, or
in a formal language
A software requirements document is an agreed statement of the
system requirements
Requirements set out what the system should do and define constraints
on its operation and implementation
Functional requirements set out services the system should provide
Q and A
Software testing
Dijkstra Testing can show the presence of bugs, but not their absence!
Independent testing is a necessary, but not sufficient condition for
trustworthiness.
Good testing is hard and occupies 20% of the schedule.
Poor testing can dominate 40% of the schedule.
- 59 -
Ad-hoc Test
Shakeout Test
Regression Test
Deployment Test
- 60 -
Operational Test
Performance Test
Development
test phases
Integration Test
System Test
Packaged Validation/
String Test
Unit Test
Testing phases
System
specification
Acceptance test
plan
Service
System design
System
integration test
plan
Acceptance test
Subsystem
integration test
plan
System
integration test
- 61 -
Detailed design
Subsystem
integration test
Requirements
specification
Testing approaches
Coverage based All statements must be executed at least once
Fault based Detect faults, artificially seed, and determine whether
tests get at least X% of the faults
Error based Focus on typical errors, such as boundary values
(off by 1) or max elements in list
Black box Function, specification based, test cases derived from
specification
White box Structure, program based, testing considering internal
logical structure of the software
- 62 -
- 63 -
Test process
Program or doc
Prototype
or model
Subset of input
Expected output
Test
strategy
Subset of input
Compare
Execute
Actual output
Test
results
Execute
- 64 -
Input
- 65 -
Testing requirements
Review or inspection to check that all aspects of the system have been
described
Scenarios with prospective users resulting in functional tests
- 66 -
Missing information
Wrong information
Extra information
Traceability tables
Features Requirements relate to observable system/product features
Source Source for each requirement
Dependency Relation of requirements to each other
Subsystem Requirements by subsystem
- 67 -
R01
R02
R03
S02
S03
- 68 -
Requirement
S01
Test documentation
Test design document specifies for each software feature the details of
the test approach and lists the associated tests.
Test case document lists inputs, expected outputs, and execution
conditions.
Test procedure document lists the sequence of action in the testing
process.
Test report states what happened for each test case. Sometimes, these
are required as part of the contract for the system delivery.
- 69 -
- 70 -
Inspections
Sometimes referred to as Fagan inspections
Basically a team of about four folks examines code, statement by
statement
- 71 -
Walk- through
Guided reading of code using test data to run a simulation
Generally less formal
Learning situation for new developers
Parnas advocates a review with specialized roles where the roles define
questions asked - proven to be very effective reviews
- 72 -
Nondirective listening
- 73 -
Advantages
Top-down
Disadvantages
- 74 -
- 75 -
Conformance test
Lessons learned
Before you reuse software look below the surface.
Lack of functionality
No support
Hidden costs
Poor documentation
Poor performance
- 76 -
Vendor instability
Customer interests
Price
Schedule
- 77 -
Reliability
Response time
Throughput
Features
After
Installation
Before
with enhancements
Customer demands 33
enhancements and tinkers with
database
Unintended system
consequences
- 78 -
Developers complies
But
Q and A
- 80 -
- 81 -
How do I make
sure that the right
changes go into
the release?
Problems
Multiple developers
are working at the
same time...
What happened to
the fix I added to
this code last
week?
Configuraiton management
- 82 -
What happened to
this piece of code?
It worked
yesterday!
A bug, I cannot
reproduce it.
Scoping
Procedure definition
Roles and responsibility
Directory structure and
access definition
Planning
Verification
Configuration
management
process
Status
accounting
Identification
CI identification
Base lining
Control
CI status update
CI status tracking
CI status reporting
- 83 -
Basic definitions
Configurable Item (CI) An aggregation of work products that is
designated for configuration management and treated as a single entity
in the configuration management process. Common CIs:
Process-related documentation (plans, standards, and procedures)
Engineering documents and work products (requirements, design, code units,
and test cases)
Tools (compilers and other support tools)
Receivables (customer- supplied items)
System build for the software test activity or delivery
- 84 -
- 85 -
All the document shall be versioned as m.n. where m is the numeric starting
with 1, indicating release version numbers. n is numeric, starting with 0,
indicating the minor version number.
Once document gets released,versioning will be done on the basis of defined
changes (major/minor).
CI identification
- 87 -
Configuration control
- 89 -
Impact analysis will be done using XD portal for EA projects and CR log
for TI projects.
Yes
No
Conduct impact
analysis (TL/PM)
Approve CR
(SCCB)
Rejected?
No
Yes
Update configuration
status report/XD
portal
Open deferred
CR (TL/PM)
Send CR back to
initiator (TL/PM)
Assign responsibilities to
change the items affected
(PM)
Review/
test the change
implementation
Close CR (TL/PM)
Monitor change
Implementation
(TL/PM)
No
Item
already
configured?
Label/version the
artifact to be
delivered
- 90 -
Yes
Minor changes
Typographical errors.
Incorrect reference to related documents.
Addition/deletion of references.
Change of sequence of activities, etc.
- 91 -
- 92 -
- 93 -
- 94 -
Questions?
What is a baseline?
- 95 -
Questions?
List 5 examples of CI from software project?
PMP
TD
UTP
FSD
- 96 -
SRS
Questions?
What is SCCB?
- 97 -
Q and A
- 99 -