Introduction to Software Engineering
Introduction to Software Engineering
Engineering
Starts when a product is conceived and ends when the product is no longer
available or is effective to use
Each phase is a limited period of time starting with a definite set of data
and having a definite set of results
Elicitation
Requirements Component Testing
SRS
Integration
Analysis Deployment
Installation
System
Design Maintenance
Detailed design Operations
document
Support
Retirement
A life cycle model covers the entire lifetime of a software – from birth of an idea
to phase out
The type of SDLC model is defined by the way it links the phases.
Every life cycle focusses its phase towards a goal and has a definite milestone
Requirements
Design
Construction
Testing
Roll out
Maintenance
Application Assessment
Understand the application and client expectation
Prepare Project Plan
Knowledge Transition/Responsibility Transition
Ramp up the team
Sign off service level agreement
Steady State – Maintenance Release (MR) execution
Provide maintenance support
Provide production support
Monitor Performance
Requirement Problems are the single No.1 reason for projects failing
over
Schedule
Budget
Scope
Quality
And even getting Cancelled!!
Requirement Engineering
Requirements Requirement
Development Management
Requirement Elicitation
This phase focuses on examining and gathering desired requirements and objectives
for the system from different stakeholders
Various techniques are followed to gather requirements viz interviews, document
examining , brainstorming , prototyping etc
Requirement Analysis
This phase focusses on analyzing rigorously ,classifying, prioritizing , documenting the
gathered requirements within business context
Requirement Specification and Validation
A formal document is prepared after collating all requirements which contains a
complete description of the external behavior of the software system.
Requirements are specified in
• URS User Requirement Specification
• SRS System Requirement Specification
• Use Case Documentation
The requirement documented in the SRS is verified , validated and agreed upon by all
parties .
Requirement Management
Requirements Management (RM) involves recognizing and planning changes
occurring in requirements due to various factors during the life of the project
RM is a continuous activity that can occur post development during maintenance
as requirements may continuously change
When a sizeable set of changes are received, the project may decide to go thru a
change request process , to get approval for time and budget
Architecture
It is the high level organizing structure of the system
It defines the components, interfaces, and behaviors of the system.
The process of architecting a software involves defining a structured solution that
meets all of the technical and operational requirements, along with attributes such as
performance, security, and manageability.
This phase usually involves the technical/solution architect
Design
It is a process of creating a detailed specification for a software module .
It involves algorithmic design and other implementation specific approaches for a s/w
component such as modularity , control hierarchy, data structures etc
Designers /Technical leads ,senior developers , architects are involved in this phase
Architecture deals with Non functional requirements whereas design deals with
functional
• SAD
• Develop data migration plan
• HLD
• Develop Integration Test plans and test
cases
• LLD
• ITP
• Log defects
• Deliverables
• Rework based on test results
• System tested code
ready for UAT
Capgemini Public
Copyright © Capgemini 2015. All Rights Reserved 38
Acceptance Testing
Usually done at the client location by the client , after the findings of
System testing is fixed
Focus of Acceptance test is to evaluate the system’s compliance
with the business requirements and assess readiness for delivery.
Acceptance Testing is done in two ways
Alpha Testing or Internal Acceptance Testing
• done by s/w vendors
Beta Testing or User Acceptance testing
• Done by end users of customers or customer’s customer
Outcome of the acceptance testing will enable the user, customers
or other authorized entity to determine whether or not to accept the
system.
Once when the customers starts using the developed system the
maintenance team supports and monitors the system to resolve
errors and performance .
Self Review
Done by the author himself with the aid of tools like checklists , review guidelines
, rules etc..
Peer Review
Done by “peer” or colleague formally or informally using various approaches
• Inspection
• Walk through
• Pair Programming
Input
Work Product , Specifications, Checklists, Guidelines, Historical Data
Process
Prepare for Review
Conduct Reviews
Analyze Deviations
Correct Defects
Output
Review Form, reviewed work product,
What is SCM?
Why SCM?
Elements of SCM
Change Management
Information on SCM tools
Configuration identification
– CI
– NCI
Change Management
Auditing (Verification)
Input Library
Development Library
Testing / Review Library
Release / Delivery Library
Template Library
Project Management Library
Tip: The library (folder) can be created on need basis for the project.
No thumb rule to create the same.
SDLC Folders
Capgemini Public
Copyright © Capgemini 2015. All Rights Reserved 59
Baselines
Baseline
– A 'baseline' is a CI that has been reviewed and agreed upon and is a basis for further
development.
– After base-lining all changes to CI are controlled through a formal change process (Such
as Change Management and Configuration Control).
– For example a reviewed and approved Project plan is used as a basis for execution of
the project.
– One baseline may have several work product , each having different version number
– Baselining can be of many types – Input baseline , design baseline , code baseline etc
Label
Capgemini Public
Copyright © Capgemini 2015. All Rights Reserved 62
Different Ways of Branching
Early SCM tools had facilities for controlling and managing CI , but
now it comes with a lot of features like
Build and Release management
Defect Management and tracking
Packaging control etc ..
Major advantages of SCM tools are
Sharing of project information across teams with accurate and reliable
information,
Flexible in supporting parallel development
Provide better decision-making capability by managing and tracking
Administrator
All access to all project folders
Can add users, create and manage projects and modify their access levels
Configuration Manager
Greater access than all team-members.
Creates the basic environment for his projects configuration management
Responsible for moving files across projects, establishing baselines, adding
requirements files, preparing guidelines, etc
Team-member
Varying access depending on their responsibilities. For e.g. PM gets add/modify
access to Management project
Capgemini Public
Copyright © Capgemini 2015. All Rights Reserved 67
Test Your Understanding!