1/25 - Software Engineering Process Flashcards
Software Process
- Most projects follow recognized stages.
2. Process means HOW things are done, not what is done.
Top Layer of Software Engineering
Tools: automate processes and methods
Middle Layer of Software Engineering
Methods: the technical “how to”; design review, code review and testing
Bottom Layer of Software Engineering
Process: framework of required tasks
Waterfall Model
- Gather requirements
- Specification
- Design
- Implementation
- Integration
- Product
- Testing after each phase
Gather Requirements
- Figure out the “what is this thing supposed to do?”
- Raw list of features written down
- Purpose: avoid building the wrong thing and gather information for planning
- Talk to clients to figure out what they want
Specification
A written description of what the system does for all inputs and in all possible states:
- Covers all situations
- More comprehensive than requirements
Design
- System architecture
- Decompose the system into modules
- Specify interfaces between modules
- It’s more about HOW the system works than what it does
Implementation
- Code up the design
- Plan how things will be done
a. Specify the order
b. Specify priorities - Test each module
Integration
- Put the pieces together
2. Test the entire system
Product
- Ship
2. Start maintenance
Risks of Waterfall Model
- Relies heavily on being able to accurately assess requirements at the start
- Little feedback from the user until its late
- Problems with specs found very late
- Whole process can take a long time before a first version is seen
Time
- Taking a long time to build software is risky because
a. the world changes quickly
b. Others produce competitive software
c. Tech becomes obsolete
• Software depends on libraries, OS, compilers etc - Being fast simplifies programming
- Being fast means you can refine your requirements quickly
Accuracy of Models
- Neither of these models are true to life
2. In reality you need feedback at all stages, waterfall model with feedback loops
Iterative Models: Plan for Change
- Use the same stage as the waterfall model
- But plan to iterate the whole cycle several times
- Gather requirements but don’t spend too much time; without something to show, cannot get full requirements.