Presentation is loading. Please wait.

Presentation is loading. Please wait.

Teaching slides Chapter 2

Similar presentations


Presentation on theme: "Teaching slides Chapter 2"— Presentation transcript:

1 Teaching slides Chapter 2

2 Chapter 2 Software Engineering Methodologies
Contents Introduction Why a methodology? Agile methodologies Waterfall model Rational Unified Process Spiral model Incremental iteration model eXtreme programming Scrum Methodology for implementing SaaS products A discussion on the usage of the models Popular process standards Process standards and software engineering methodologies Software process activities

3 Chapter 2 Software Engineering Methodologies
Introduction Methods of using software engineering to build a software product can differ from one software project to another. It all depends on factors like difficulty in getting user software requirements, marketing strategy for the software product, size of the software product, and speed at which the software product needs to be built. There are many popular software engineering methodologies which can be used to build a software product. Some of them include Waterfall, Scrum, eXtreme Programming, Boehm’s Spiral model, Rational Unified Process etc. Depending on the needs, a software project team can choose the right methodology to develop the software product. Waterfall model is also known as plan driven methodology. Scrum and eXtreme Programming are examples of Agile methodologies. These methodologies are also known as incremental iteration models.

4 Chapter 2 Software Engineering Methodologies
Introduction Any software engineering methodology will always include software engineering core processes of requirement management, software design, software construction, software testing, software maintenance and software release. The peripheral software engineering processes include project management, feasibility study, configuration management etc. The difference in all of these software engineering methodologies lie in the way these software engineering processes are executed.

5 Chapter 2 Software Engineering Methodologies
Waterfall model with quality gates

6 Chapter 2 Software Engineering Methodologies
Waterfall model evolved when the USA military in 1970s found that the software being developed for their needs often used to exceed the budget. Often these software projects also used to take more time than expectations of the USA military. In Waterfall model, each software engineering process follows after the previous process ends. As the name suggests, in Waterfall model, the upstream processes feed the downstream processes much like in a waterfall; a downstream body of water is fed from a upstream body of water.

7 Chapter 2 Software Engineering Methodologies
Rational Unified Process Model (RUP)

8 Chapter 2 Software Engineering Methodologies
In waterfall model it is assumed that all software requirements are available and are fixed before software design can be made. In reality it is not always the case. Rational Unified Process (RUP) model overcomes this limitation by allowing iterations over any of the phase in the Waterfall model. If software requirements are not clear or complete in the first pass then using one more iteration, software requirements can be elaborated one more time to make them clear and complete. If they are still not clear then one more iteration can be taken. The RUP model has phases on X axis and workflows on Y axis. Based on the amount of work required in a phase, a heap is shown in a RUP diagram.

9 Chapter 2 Software Engineering Methodologies
Boehm’s Spiral Model

10 Chapter 2 Software Engineering Methodologies
Barry Boehm had postulated that software development work is inherently risky. Risk mitigation strategies must be built inside the software development project along side software engineering processes. This thinking resulted in evolution of Spiral model. There are 4 quadrants in this model. In each quadrant a prototype is designed, developed and tested based on user software requirements. Once the prototype is ready then next prototype is built. You keep moving from one quadrant to another using an iteration to keep building prototypes. Once complete prototype is ready then the software product can be built based on the fully deigned, developed and tested prototype.

11 Chapter 2 Software Engineering Methodologies
Incremental building of a software product using iterations

12 Chapter 2 Software Engineering Methodologies
Agile methodologies (eXtreme Programming, Scrum etc.) are named so because they help in achieving agility in the software development process. In Waterfall model it takes a long time to develop a software product. During development time it is very difficult to incorporate any changes in the software product. This makes it difficult to align the software product as per changing user needs. In Agile methodologies software products are built in increments using iterations.

13 Chapter 2 Software Engineering Methodologies
eXtreme programming eXtreme Programming (XP) is one of the most commonly used Agile methodology for building software products. Some of the peculiar terminology used in XP include pair programming, test driven development, user stories etc. The name eXtreme suggests that in this methodology software programming is taken seriously and in fact it is taken to the extreme. For example test cases are created even before implementing a business logic to ensure that the business logic can be implemented correctly and there should be no software defects in the business logic implementation.

14 Chapter 2 Software Engineering Methodologies
Scrum Scrum is another popular Agile methodology for software product development. Some of the peculiar words used with Scrum include product backlog, sprint, sprint backlog, sprint master, etc. Scrum uses lots of verbal communication among project team members. There are daily meetings where team members discuss about issues and how to tackle them. Project planning includes daily plans, sprint (iteration) plans and major release plans.

15 Chapter 2 Software Engineering Methodologies
Project plan for implementing COTS/SaaS product

16 Chapter 2 Software Engineering Methodologies
Commercial Off The Shelf (COTS) and Software as a Service (SaaS) products are already developed software products. The standard versions of these products are available in the market. However some product features required by customers may not be available in these standard versions. Custom software product features need to be developed to meet these customer specific needs. Apart from custom software product features, the project team also needs to create / migrate data in the software product. There are many alternate options available in these software products to perform any transaction. The option which suits the needs of the customer needs to be set up in the software product. This activity is known as configuration of the software product. The project planning for the COTS/SaaS products implementation include initiation, blueprinting, realization and go live. Software engineering processes inside these project processes include requirement management, fit gap analysis, solution design, customization, configuration etc.

17 Chapter 2 Software Engineering Methodologies
Benefits & drawbacks of various software methodologies Some of the factors which determine which software engineering methodology to be used for building a software product include speed, incremental versus complete, software product size etc. If the customer wants to launch a software product quickly in the market with a bare minimum product features then any agile methodology will be used for developing the software product. If the customer wants to build a large software product in a short span of time then any Waterfall based software engineering methodology will be a better choice.

18 Chapter 2 Software Engineering Methodologies
Software engineering standards Software engineering methodologies themselves need to mature over time. Otherwise they will get obsolete over time. When a new methodology is introduced, it is not mature and may have many flaws. These flaws are removed when they are discovered. Software engineering standards have been defined which help in improving software engineering methodologies and their processes. Some popular software engineering standards include Capability Maturity Model (CMM) by Software Engineering Institute at Carnegie Mellon University, ISO 2000 by International Standards Organization etc.

19 Chapter 2 Software Engineering Methodologies
Software engineering artifacts Software engineering process activities are performed to produce software project artifacts. When software requirement management activities are performed then a software requirement specification document is generated. A software design document is the result of performing software design activities. A software product build is the result of software construction activities. A tested and defect free software product is the result of software testing activities. A complete implementable version of a software product is the result of software release activities.


Download ppt "Teaching slides Chapter 2"

Similar presentations


Ads by Google