looking at software processes, key ideas: difference between process and lifecycle life cycle is inherent, requirements, processes is how we structure it. one way in waterfall, different way in agile 5 different processes: prototyping, serial, v model, rational unified process, agile development
- Lifecycle refers to the different types of activities carried out in software engineering (e.g., requirements and design). Process is the ordering or way you do those activities (e.g., agile vs. waterfall)
- problem
- requirements engineering
- reqs specification
- design
- design
- implementation
- system
- testing
- working system
- maintenance
- Prototyping
- Throwaway Prototyping
- Throwaway prototyping is where the objective of the evolutionary development process is to understand the customer's requirements and hence develop a better requirements definition for the system. The prototype concentrates on experimenting with the customer requirements that are poorly understood.
- Evolutionary Prototyping
- Exploratory development where the objective of the process is to work with the customer to explore their requirements and deliver a final system. The development starts with the parts of the system that are understood. The system evolves by adding new features proposed by the customer.
- Throwaway Prototyping
- Serial (Waterfall)
- Reqs Engineering -> Design -> Implementation -> Testing -> Maintenance
- V model
- V Model is an enhanced version of the classic waterfall model whereby each level of the development life-cycle is verified before moving on to the next level. With this model, software testing explicitly starts at the very beginning, i.e. as soon as the requirements are written.
- pros: Simple and easy to understand and use, Each phase has specific deliverables and a review process.
- cons: very rigid, little flex,
- rational unified process
- Iterative Development, business value is delivered incrementally
- Business Modeling, Requirements, Analysis and Design, Implementation, Test, Deployment
- Six Best Practices
- Develop iteratively
- Manage reqs
- Use components
- Model Visually
- Verify quality
- Control changes
- agile
- Manifesto
- Individuals and Interactions over processes and tools
- Working software over documentation
- customer collaboration over contract negotiation
- responding to change over following a plan
- Kanban Boards, SCRUM
- Every day, a standup meeting is held, what have you accomplished, what obstacles, what will you accomplish
- Work in sprints
- Manifesto