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

CSE360 Lecture 02

CSE360 Lecture 02

Introduction to Software Engineering
Process and Process Models
(202205)

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. CSE360 Introduction to Software Engineering Lecture 02: Process and Process

    Model Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu Office Hours: By appointment
  2. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 2 Software

    Engineering “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.” – IEEE
  3. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 3 Content

    • What is a process? • What is a process model? • What are the activities involved in Software Development? • What are the two strategies for software development?
  4. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 4 Context

    Focus on quality process models methods tools
  5. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 5 Focus

    on quality Process and Process Model process models
  6. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 7 Process

    and Process Model • Process: A structured set of activities required to develop a software system Think about this as an “object” • Process Models: A representation of relationships (structure) Think about this as an “class”
  7. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 8 Activities

    1. Communication or Requirement 2. Planning or Estimating or Scheduling 3. Modeling or Design 4. Construction or Coding 5. Testing (Unit, UI, Integration, Stress, Regression) 6. Deployment or Delivery
  8. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 9 Focus

    on quality Process process model activities
  9. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 12 Types

    of Structures Linear Iterative Evolutionary Parallel
  10. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 16 Strategy

    § 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.
  11. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 17 Examples

    Plan-Based Models: • Waterfall • V-model • Incremental • Spiral • Prototype Agile Methodologies: • SCRUM • Kanban • XP (extreme programming) • Feature Driven Development
  12. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 19 Plan-based

    Process Models • Waterfall • V-model • Incremental • Spiral • Prototype
  13. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 21 The

    Waterfall Model § 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.
  14. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 22 The

    V-Model this arrows point at what we are testing
  15. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 23 The

    V-Model § 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
  16. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 25 The

    Incremental Model Option A: Linear Increments (not all colors (activities) are repeated) Option B: Parallel Increments (most than 1 activity at the same time)
  17. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 26 The

    Incremental Model § 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.
  18. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 27 Prototyping

    Construction of prototype communication Quick plan Modeling Quick design Construction of prototype Deployment delivery & feedback
  19. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 28 Prototyping

    § 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.
  20. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 30 The

    Spiral Model • 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
  21. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 32 Just

    Programming ... Agile emerged in the late 1990s and it aim was to radically reduce the delivery time for working software systems
  22. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 34 Agile

    Manifesto • Through this work we have come to value: “Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan “ • That is, while there is value in the items on the right, we value the items on the left more.
  23. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 35 Definition

    software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams a) adaptive planning to provide a rapid and flexible response to change b) Iterative and incremental lightweight process c) early delivery, d) Feedback-driven empirical approach
  24. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 36 Definition

    software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams a) adaptive planning to provide a rapid and flexible response to change b) Iterative and incremental lightweight process c) early delivery, d) Feedback-driven empirical approach
  25. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 37 Agile

    vs Plan-driven • Requirements, design, implementation (and testing) are • inter-leaved
  26. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 39 Applicability

    • Product development where a software company is developing a small or medium-sized product for sale. • Several software products and apps nowadays are small or medium-sized; therefore, they are developed using an agile approach • Custom system development within an organization, where there is a clear commitment from the customer to become involved in the development process and where there are few external rules and regulations that affect the software.
  27. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 40 Pros

    • The product is broken down into a set of manageable and understandable chunks. • Unstable requirements do not hold up progress. • The whole team have visibility of everything and consequently team communication is improved. • Customers see on-time delivery of increments and gain feedback on how the product works.
  28. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 41 Cons

    • The informality of agile development is incompatible with the legal approach to contract definition (requirement specification) that is commonly used in large companies. • Agile methods are most appropriate for new software development rather than software maintenance (documentation). Yet the majority of software costs in large companies come from maintaining their existing software systems. • Agile methods are designed for small co-located teams yet much software development now involves worldwide distributed teams.
  29. CSE360 – Introduction to Software Engineering Javier Gonzalez-Sanchez [email protected] Summer

    2020 Disclaimer. These slides can only be used as study material for the class CSE360 at ASU. They cannot be distributed or used for another purpose.