2. Software Development Life Cycle
Requirement Gathering
& Analyzing
Design
Implementation
& Coding
Testing
Deployment
Maintenance
2
3. 1. Requirement Gathering & Analyzing
• Business requirements are gathered
• Meetings with project managers & stake holders
• Identify
• “Who will use the system ”
• “How the system should work “
• “What should be the input & output of the system ”
• Analyze requirements for validity & incorporation of requirements
• Finally prepare Requirement specification document
Requirement Specification INPUT
3
4. 2. Design
• Prepare system & software design from software requirement
specification.
• It helps in
• Specifying hardware & system requirements
• Defining overall system architecture
• Logical & Physical designing
Design Documentation INPUT
4
5. 3. Implementation / Coding
• Work divide into modules
• Actual coding started
• Longest phase in SDLC
Implementation INPUT
5
6. 4. Testing
• Tested against requirements
• Detection of errors in the software
• Test related activities
• Test case generation
• Testing criteria
• This phase complete
• Unit testing
• Integration testing
• System testing
• Acceptance testing
Test Report INPUT
6
7. Unit Testing
• Smallest testable part of the application
• Function
• Class
• Procedure
• Interface
• Use to make sure individual parts are working correctly
• Done by developers
• White box testing is used to execute unit testing
• Done before integration testing
7
8. White Box Testing (glass-box)
• Known as structure – based testing
• Test internal structures (as opposed to its functionality - black-box testing )
• Advantages
• Easy to reveal hidden errors
• Easy to automate
• Disadvantages
• Expensive (Time & Money)
• In some occasions not realistic
• Missing functionality may not discover
8
9. Integration Testing
• Individual testing modules are combined and test as a group
• Verify
• Functional
• Performance
• & reliability requirements placed on major design items
• These groups of units (design items) excised through their interfaces using
black – box – testing
Integration TestingUnit Testing Validation Testing
After Before
9
10. Black Box Testing
• Examine the functionality of an application
• Not looking at the internal structure or working
• Applicable levels of software testing
• Unit
• Integration
• System
• Acceptance
• Aware of what the software is supposed to do ,not aware of how it does
10
11. System Testing
• Testing conduct on completed integrated system to check
• System's compliance with its specified requirements
• Should required no knowledge in internal design or codes (Black – box –
testing )
• System testing performed with FRS(Functional Requirement Specification) or
SRS (System Requirement Specification)
11
12. Acceptance Testing
• After the completion of system testing system will be delivered to the user or
customer for acceptance testing
• Help to establish confidence on system
12
13. 5. Deployment
• After the successful completion of testing process application will
deploy for the use of customer.
13
16. Waterfall-Model
• First published model of the software development lifecycle
• Principal stages of the model map onto fundamental development
activities
16
17. Waterfall-Model
• Requirements analysis and definition
• Services, constrains & goals are established by consultation with system users
• System & software design
• Partitions the requirements either hardware or software systems
• Establish overall system architecture
• Involves identifying & describing the fundamental software system
abstraction & their relationship
• Implementation & unit testing
• Software design is realized as a set of programs or program units.
SOMMERVILLE –SOFTWARE ENGINEERING
17
18. Waterfall-Model
• Integration & unit testing
• Integrated & tested as a complete system
• Ensure that the software requirements have been met
• Operation & maintenance
• Involves in correcting errors
• Improving the implementation
• Enhancing the system’s services as new requirements discovered
SOMMERVILLE –SOFTWARE ENGINEERING
18
19. Agile Software Development
• Biggest problem with software development is changing
requirements
• Agile processes accept the reality of change versus the hunt for
complete, rigid specifications
19
21. Agile Software Development
• Advantages
• Satisfy customer with rapid ,continuous delivery
• Customers, developers & testers continuously interact with each other
• Continuous attention
• Late changes in requirements are welcome
• Disadvantages
• Lack of emphasized on necessary designing & documentations
• Difficult to assess the effort required at the beginning of the software
development life cycle.
21