Software Engineering Process Flashcards
Fundamental Process Activities
Software specification:
- definition of the software to be produced and contraints
Software development:
- Design, implementation and verification
Software validation:
- ensure that software behaves as required by customer
Software evolution:
- adaption and modification to cope with changing requirements
Software Engineering Process Model - Waterfall Model
- Requirements definition:
- requirements are defined in detail and serve as system specification - System and software design:
- definition of overall architecture
- identification of the fundamental abstractions - Implementation and unit testing:
- software design realized as set of program units
- testing verifies that specification is met - Integration and system testing:
- units are integrated and tested as complete system - Operation and maintenance
Software Engineering Process Model - Waterfall Model
Criticism
- early prototyping impossible
- change of requirements, design, etc. difficult
- testing start only in later stage
- different phases executed by different teams
Software Engineering Process Model - Agile Development
Key Points and Goal
Goal: develop software quickly in presence of rapidly changing requirements
Key Points:
- changing requirements during development highly problematic
- render development cycles small & fast (agile)
- customer and developer work closely together
Software Engineering Process Model - Extreme Programming (XP)
set of simple, interdependent elemts/ practices:
- customer (Element)
- User Story (Practice)
- Acceptance Test (Element) (detailes of the user soties)
- Short Development cycles (Practice)
- the planning game (Practice) (Business decide how important a feature is, developers decide €)
- simple design (practice)
- Test-Driven Development (Element) (Implementation starts with writing tests)
- Continuous Integration (Practice) (after each commit system is build and tested)
- Refactoring (Element) (design techniques)
- Pair Programming (Practice)
- Collective ownership
- coding standards
- Sustainable pace
- open workspace
Software Engineering Process Model - Extreme Programming (XP)
User Storys
Text stories with rated difficulty that describe requirements identified with the customer
INVEST
- Independent
- Negotiable
- Valuable (deliver value to the end user)
- Estimable (possible to estimate size)
- Size appropriately or Small (otherwise split)
- Testable
Software Engineering Process Model - Extreme Programming (XP)
Planning
Initial Exploration
- identify all significant user stories and rank them
Release Planning
- set first release date
- customer orders user stories and as velocity gains accuracy adjust release plan
Iteration Planning
- customer picks stories for iteration n
- iteration ends on specific date independent from finished stories
- velocity of iteration: succesfull finished stproes / time
- plannend velocity for iteration n + 1 = velocity of iteration n