Five phases of software development - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Five phases of software development

Description:

For verifying requirements (throw-away prototyping) For rapid-system development and deployment (evolutionary prototyping) Incremental development ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 18
Provided by: stewart56
Learn more at: http://elvis.rowan.edu
Category:

less

Transcript and Presenter's Notes

Title: Five phases of software development


1
Semester Recap
  • Five phases of software development
  • Specification (requirements)
  • Design
  • System architecture
  • Implementation
  • Verification and Validation (testing)
  • Maintenance and Evolution

2
1. Specification
  • Software Requirements
  • Requirements Engineering
  • System Modeling
  • Formal Specification
  • System Prototyping

3
Software Requirements
  • Functional vs. Non-functional requirements
  • User vs. System requirements
  • Domain requirements

4
Requirements Engineering
  • Feasibility Study
  • Requirements Elicitation
  • Analysis
  • Validation

5
System Modeling
  • Context models
  • System in relation to others
  • Behavioural models
  • Data-processing models
  • State machine models
  • Data models, Object models
  • Structure of data processed
  • Object-Oriented design, UML

6
Formal Specification
  • Formal specification in the software process
  • Interface specification
  • Behavioural specification

7
System Prototyping
  • For verifying requirements (throw-away
    prototyping)
  • For rapid-system development and deployment
    (evolutionary prototyping)
  • Incremental development

8
2. System Design
  • Architectural Design
  • Distributed Systems Architecture
  • Design with Reuse

9
Architectural Design
  • System structuring
  • Repository
  • Client-Server
  • Abstract Machine
  • Control models
  • Centralized
  • Call-return vs. manager
  • Event-based
  • Broadcast vs. Interrupt-driven
  • Domain-specific architectures

10
Distributed Systems
  • Provide
  • Resource sharing
  • Openness
  • Concurrency
  • Scalability
  • Fault tolerance
  • Transparency
  • Client/server 2-tier, 3-tier, P2P
  • Distributed objects

11
Design with Reuse
  • Application reuse
  • Function reuse
  • Component reuse
  • components as commodities
  • also, code generators
  • Design Patterns
  • Object-Oriented Design

12
3. Implementation
13
Critical System Dependability
  • Availability
  • Reliability
  • Safety
  • Security

14
4. Verification and Validation
  • Software inspections
  • Software testing
  • Critical systems validation

15
Software Inspection
  • Design and Code reviews
  • Automated static (and dynamic) analysis
  • Test planning
  • Regression testing
  • Cleanroom development process
  • Verification Are we building the product
    right?
  • Validation Are we building the right product?

16
Software testing
  • Implementation vs. Specification
  • Component Testing
  • Black-box
  • Equivalence Partitioning
  • White-box
  • Path testing (program flow graphs)
  • Integration Testing
  • Top-down vs. bottom-up
  • Critical systems validation

17
Maintenance and Evolution
  • Change happens
  • System quality decreases over time
  • Most change (gt60) motivated by evolution of
    requirements, not bug fixes (lt20) or new
    environments (lt20)
Write a Comment
User Comments (0)
About PowerShow.com