Skip to content

Instantly share code, notes, and snippets.

@edwhu
Last active May 6, 2017 21:07
Show Gist options
  • Save edwhu/bc847d16892609917dde4587ab806eba to your computer and use it in GitHub Desktop.
Save edwhu/bc847d16892609917dde4587ab806eba to your computer and use it in GitHub Desktop.
Lecture 12

Lecture 12 Software Process Models:

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 vs Process

  • 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)

Typical Software Lifecycle Model

  1. problem
    • requirements engineering
  2. reqs specification
    • design
  3. design
    • implementation
  4. system
    • testing
  5. working system
    • maintenance

5 Different Processes

  1. 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.
  2. Serial (Waterfall)
    • Reqs Engineering -> Design -> Implementation -> Testing -> Maintenance
  3. 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,
  4. rational unified process
    • Iterative Development, business value is delivered incrementally
    • Business Modeling, Requirements, Analysis and Design, Implementation, Test, Deployment
    • Six Best Practices
      1. Develop iteratively
      2. Manage reqs
      3. Use components
      4. Model Visually
      5. Verify quality
      6. Control changes
  5. 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment