Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSC307 Lecture 02

CSC307 Lecture 02

Introduction to Software Engineering
Process Models
(202306)

Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSC 307 Introduction to Software Engineering Lecture 02: Processes

    Models Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.com Building 14 -227 Office Hours: By appointment
  2. CSC 308 | Dr. Javier Gonzalez-Sanchez | 2 jgs Key

    Ideas Good software is software that compiles and run
  3. CSC 308 | Dr. Javier Gonzalez-Sanchez | 3 jgs Key

    Ideas ❌ Good software is software that compiles and run
  4. CSC 308 | Dr. Javier Gonzalez-Sanchez | 4 jgs Key

    Ideas Large vs Small Human-Centered for Modifiability Extensibility Together but not scrambled Quality Cost
  5. CSC 308 | Dr. Javier Gonzalez-Sanchez | 5 jgs CSC

    307 Introduction to Software Engineering Definition
  6. CSC 308 | Dr. Javier Gonzalez-Sanchez | 6 jgs “The

    application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software” – IEEE Software Engineering
  7. CSC 308 | Dr. Javier Gonzalez-Sanchez | 7 jgs “The

    application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software” – IEEE Software Engineering Process
  8. CSC 308 | Dr. Javier Gonzalez-Sanchez | 8 jgs process

    activity activity activity activity Definitions step step step step step step step step step step step step step step step step step
  9. CSC 308 | Dr. Javier Gonzalez-Sanchez | 9 jgs §

    Communication or Requirement Engineering § Modeling or Design § Construction or Implementation § Testing (Unit, UI, Integration, Stress, Regression) § Deployment or Delivery Activities
  10. CSC 308 | Dr. Javier Gonzalez-Sanchez | 10 jgs Homework

    § http://taiga.io (mandatory) § https://astah.net (mandatory) § https://www.jetbrains.com/idea/ (optional) § https://github.com (mandatory)
  11. CSC 308 | Dr. Javier Gonzalez-Sanchez | 12 jgs §

    Plan-driven all process activities are planned in advance and progress is measured against a plan (a contract). § Agile, planning is incremental and it is easier to change the process to reflect changing customer requirements. Strategy
  12. CSC 308 | Dr. Javier Gonzalez-Sanchez | 13 jgs Plan-Based

    Models: • Waterfall • V-model • Incremental • Spiral • Prototype Examples Agile Methodologies: • SCRUM • Kanban • XP (extreme programming) • Feature Driven Development
  13. CSC 308 | Dr. Javier Gonzalez-Sanchez | 15 jgs •

    Waterfall • V-model • Incremental • Spiral • Prototype Plan-based Process Models
  14. CSC 308 | Dr. Javier Gonzalez-Sanchez | 17 jgs §

    Key idea: Separate and distinct phases of specification and development. A phase has to be complete before moving onto the next phase. § Type: Linear model. § Recommended for: Embedded systems and Large systems(developed by several partner companies) § Disadvantage: difficulty of accommodating change after the process is underway. The Waterfall Model
  15. CSC 308 | Dr. Javier Gonzalez-Sanchez | 18 jgs The

    V-Model this arrows point at what we are testing
  16. CSC 308 | Dr. Javier Gonzalez-Sanchez | 19 jgs §

    Key idea: It is an extension of Waterfall where instead of moving down in a linear way, the process steps are bent upwards after the coding phase. While tests are just one of five steps in Waterfall, it looks like practically half of the process in V-model. § Type: Linear model. § Recommended for: well-suited for projects that must maintain a strict deadline and meet key milestone dates throughout the process. Example: medical device industry § Disadvantage: same that waterfall The V-Model
  17. CSC 308 | Dr. Javier Gonzalez-Sanchez | 20 jgs The

    Incremental Model Option A: Linear Increments (not all colors (activities) are repeated)
  18. CSC 308 | Dr. Javier Gonzalez-Sanchez | 21 jgs The

    Incremental Model Option B: Parallel Increments (most than 1 activity at the same time)
  19. CSC 308 | Dr. Javier Gonzalez-Sanchez | 22 jgs §

    Key idea: split each activity in pieces. § Type: Iterative model (it could include parallel). § Recommended for: Facilitate getting customer feedback on the development work that has been done. § Disadvantages: (1) it could not cost-effective to produce documents that reflect every version of the system; (2) System structure tends to degrade as new increments are added. Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. The Incremental Model
  20. CSC 308 | Dr. Javier Gonzalez-Sanchez | 23 jgs Prototyping

    Construction of prototype communication Quick plan Modeling Quick design Construction of prototype Deployment delivery & feedback
  21. CSC 308 | Dr. Javier Gonzalez-Sanchez | 24 jgs §

    Definition: a prototype is an initial version of a system used to demonstrate concepts and try out design options. § Evolutionary model § Recommended for: a prototype can be used to help with requirements elicitation and validation; or in design processes to explore options and develop a UI design. Prototyping
  22. CSC 308 | Dr. Javier Gonzalez-Sanchez | 26 jgs §

    Key idea: High amount of risk analysis hence, avoidance of Risk is enhanced. § Evolutionary model § Recommended for: (1) Good for large and mission-critical projects. (2) Strong approval and documentation control. (3) Significant changes are expected (research and exploration). § Doesn’t work well for smaller projects. § Doesn’t work well when users are unsure of their needs § Doesn’t work well when requirements are complex The Spiral Model
  23. CSC 308 | Dr. Javier Gonzalez-Sanchez | 30 jgs Office

    Hours Tuesday and Thursday 3 - 5 pm But an appointment required Sent me an email – [email protected]
  24. jgs CSC 307 Introduction to Software Engineering Javier Gonzalez-Sanchez, Ph.D.

    [email protected] Summer 2023 Copyright. These slides can only be used as study material for the class CSC307 at Cal Poly. They cannot be distributed or used for another purpose.