Download presentation
Presentation is loading. Please wait.
Published byGeorge Franklin Modified over 8 years ago
1
Industrial Software Development Process Bashar Ahmad RISC Software GmbH
2
Overview Motivation and Introduction Sequential Waterfall model V-Model Iterative and incremental Spiral Model Rational Unified Process (RUP) Agile Agile Manifesto Extreme Programming SCRUM
3
Motivation
4
Software Life Cycle The phases necessary to develop and maintain a software system. These phases include: Requirements (Specification) Design Implementation (Coding) Testing (Validation) Maintenance A software process model is an abstract representation of how these phases can be addressed.
5
Requirements The process of establishing: What services are required of the system. The constraints on the system’s operation and development. The “what” of the software life cycle.
6
Design The process of converting the system specification (requirements) into a software structure that realizes that specification The “how” of the software life cycle
7
Implementation Translating a design into a program and removing errors from that program Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process. The activities of design and implementation are closely related and may be interleaved.
8
Testing Verification and validation is intended to show that a system conforms to its specification and meets the requirements of the system customer. Involves checking and review processes and system testing System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.
9
Maintenance Software is inherently flexible and can change (as opposed to hardware). Software engineering should be thought of as an evolutionary process where software is continually changed over its lifetime in response to customer needs.
10
Sequential
11
Waterfall Model (Winstone Royce, 1970) source: http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf
12
Waterfall Model source: http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf 1.Complete Program Design before Analysis and Coding 2.Documentation must be current and complete 3.Do the Job twice if possible 4.Testing must be planned, controlled and monitored 5.Involve the customer
13
V-Model
14
Iterative and Incremental
15
Iterative vs Incremental Iterative Incremental Source: http://www.agileproductdesign.com/blog/dont_know_what_i_want.html
16
Iterative and Incremental
17
Spiral Model (Barry Boehm, 1988) Source: https://en.wikipedia.org/wiki/Spiral_model
18
Rational Unified Process (RUP) Formal and relatively heavy weight Architecture-centered Risk Focused Based on UML Flexible and configurable.
19
Rational Unified Process (RUP)
20
Lightweight
21
Agile Manifesto (Kent Beck, Ken Schwaber, Robert C. Martin, Martin Fowler, etc. 2001)
22
Principles Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project.
23
Principles Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
24
Principles Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self- organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
25
Extreme Programming (Kent Beck, 1996) Characteristics: Agile Software development methodology. Suitable for small to medium size teams. Changing requirements. Customer involvements. Values: Simplicity – do what is needed and asked for, but no more. Communication – everyone is part of the team and will communicate face to face daily. Feedback – deliver software early, and listen to feedback. Respect – Everyone gives and feels the respect they deserve as a valued team member. Courage – tell the truth about progress and estimate.
26
XP Practices Source: http://ronjeffries.com/xprog/what-is-extreme-programming/
27
Criticism Unrealistic – programmer centric, not business focused. Detailed specifications are not written. Design after testing. Constant refactoring. Customer availability. Practices are too interdependent
28
SCRUM (Ken Schwaber, 1995) Characteristics: Self-organizing teams Product progresses in a series of month-long “sprints” Requirements are captured as items in a list of “product backlog” No specific engineering practices prescribed Uses generative rules to create an agile environment for delivering projects Roles: Product Owner Scrum Master Team
29
SCRUM Ceremonies: Sprint planning. Sprint review. Sprint retrospective. Daily scrum meeting. Artifacts: Product backlog Sprint backlog Burndown charts
31
Thank you
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.