Sei sulla pagina 1di 3

Software Development Activities

• Student Comments
The Software Lifecycle • Define the problem – requirements
• Estimate size of task, how long it will
take to complete
• Provide initial support/teach people to
support the project
15-413: Introduction to Software • Teach people how to use the products
Engineering

Jonathan Aldrich

29 August 2005

Software Development Activities Waterfall Model of S/W Dev.


• Gathering Requirements
• Team Management Requirements

• Software Design
Design
• Coding
• Testing
Implementation
• Documentation
• Software Maintenance Quality Assurance

Evolution

29 August 2005 29 August 2005

Requirements Design
• Determining what clients need from • Engineering solution that addresses
software requirements
• Problem space, not solution space
• May include quality attributes • Designs include
• Performance, security, maintainability… • Architecture
• Code interfaces
• Challenges • User interfaces
• Clients don’t know what they want • Components
• Clients can’t express what they want • Data structures
• Bound to change • Algorithms
• Better communication
• Better client
• Changes to environment

29 August 2005 29 August 2005

1
Implementation Quality Assurance
• Realizing a design in code • Ensuring the implementation meets
quality standards
• More than just coding
• Documentation • Testing
• Assertions/Invariants • Unit
• Coding standards • Functional
• Pair programming • Regression
• Tools
• Configuration management • Analysis
• Design and code reviews

29 August 2005 29 August 2005

Evolution Problems with Waterfall


• Changing the software to fix defects • Change is ubiquitous
• Occurs even during software development
meet new requirements
• Waterfall assumes one stage completes
before others begin
• Most development today is really • Unrealistic in most environments
• Requirements constantly changing
evolution • Lessons learned in later stages affect earlier
ones
• Differs from initial development
• Significant investment in existing code • Useful applied where communication costs
• Have to work within additional high
constraints • Stable requirements
• Many SE techniques focus on making • Very large software systems
• Distributed teams
evolution easier
29 August 2005 29 August 2005

Spiral Model of S/W Dev. Benefits of Spiral Development


Requirements Design • Delivers initial value early
• Mitigates risk of failure
• Focus on high-priority functionality
• Frequent requirements refinement
• Uses feedback from one iteration to
refine requirements for the next
• Mitigates impact of change

• Note: the Spiral model is driven by


uncertainty and change
Quality • A theme of the whole course
Assurance Implementation
29 August 2005 29 August 2005

2
Extreme Programming
• An iterative/spiral process
• Divides development into short iterations
delivering functionality
• Lightweight practices
• Requirements through “stories”
• Planning game
• Pair programming
• Increasingly popular in industry
• Fun
• Will be used for the projects
• Along with waterfall lifecycle deliverables
• Promotes familiarity traditional style
development artifacts

29 August 2005

Potrebbero piacerti anche