Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Process - II 5.1 Unit 5: Alternate Software Development Methodologies Software Engineering Process - II.

Similar presentations

Presentation on theme: "Software Engineering Process - II 5.1 Unit 5: Alternate Software Development Methodologies Software Engineering Process - II."— Presentation transcript:

1 Software Engineering Process - II 5.1 Unit 5: Alternate Software Development Methodologies Software Engineering Process - II

2 Software Engineering Process - II 5.2  What are your expectations from this unit? Before You Begin…

3 Software Engineering Process - II 5.3 Unit Objectives  Describe rapid software development approaches.  Explain incremental and iterative software development.  Identify the advantages and disadvantages of incremental development.  Explain the principles of agile development methods.  Explain the features of extreme programming and its practices and benefits.  Explain the use of software prototyping.

4 Software Engineering Process - II 5.4 Why Rapid Software Development (RSD)  There are many reasons to use RSD. Some of them include:  Businesses have to respond to new opportunities.  It is impossible to specify the complete requirements.  As the requirements change, the system design has to be reworked.  RSD processes can produce useful software quickly.

5 Software Engineering Process - II 5.5 Characteristics of RSD  Some characteristics of RSD include:  Specification, design, and implementation are concurrent.  The design documentation is minimum or generated automatically.  The requirements specifications describe the major requirements of the system, and must be complete for each program increment.

6 Software Engineering Process - II 5.6 Characteristics of RSD (cont.)  Software is developed in a series of increments.  Changes and new requirements that emerge on evaluation of increments are included in later versions.  User interface is developed using an interactive development system.

7 Software Engineering Process - II 5.7 Incremental Development  Involves delivery of system in the form of increments.  Delivers the important functionality first.  Ensures that customer gets value from the system in the initial stages of development.  Facilitates the use of first increment for requirements evaluation.  Increases the probability of meeting customer requirements.  Ensures commitment from users.

8 Software Engineering Process - II 5.8 RAD – An Iterative Development Process

9 Software Engineering Process - II 5.9 Class Activity - 1  Discuss and list the limitations of incremental development.

10 Software Engineering Process - II 5.10 Limitations of Incremental Development  For large systems, process models that generate regular deliverables are preferred to assess progress easily.  Incremental development may require new tools and skills to ensure quick delivery.  It may be difficult to design a satisfactory contract for lack of formal system specification.  Independent validation is difficult as the specification and development is interleaved.  Continuous changes may corrupt the structure of the software.  Finding maintenance people for specialized RAD tools may become difficult in future.

11 Software Engineering Process - II 5.11 Prototyping in Large/Critical Systems  A prototype can be used to explore requirements and experiment with design solutions.  With experience, you can have confidence that client requirements are being met.  Prototype is not intended for deployment but for generating common understanding.

12 Software Engineering Process - II 5.12 Prototyping and Incremental Development  In incremental approach, the best understood requirements are implemented first.  The architectural structure has to be robust and easy to maintain for years.  Throw-away prototyping is used to understand the vague set of requirements.  Throw-away prototypes need not be maintainable and reliable.

13 Software Engineering Process - II 5.13 Agile Methods  For small and medium-sized business systems, traditional methods may not be suitable because the overheads involved are high.  Agile methods focus on software by using an iterative development process for specification, development, and delivery.  Agile methods support business development where the requirements change rapidly.  The main aim of agile methods is to deliver the working software quickly to customers.

14 Software Engineering Process - II 5.14 Agile Methods - Principles  Customer involvement  Incremental delivery  People not process  Accommodate change  Maintain simplicity

15 Software Engineering Process - II 5.15 Class Activity - 2  Discuss and list the problems in implementing the principles of agile methods.

16 Software Engineering Process - II 5.16 Extreme Programming (XP)  Features of XP include:  Good practices like iterative development and customer involvement are used to extreme levels.  Requirements are given as user stories and are implemented as tasks.  Programmers work in pairs and develop test before starting development of a task.  Tests are executed before a new task is integrated into the system.  Gap between each release is short.

17 Software Engineering Process - II 5.17 Extreme Programming (XP)

18 Software Engineering Process - II 5.18 XP Practices  Incremental planning  Small releases  Simple design  Test-first development  Refactoring  Pair programming  Collective ownership  Continuous integration  Sustainable pace  On-site customer

19 Software Engineering Process - II 5.19 Testing in XP  The features of testing process are:  Test-first development  Scenario-based incremental test development  User involvement in test development and validation  Use of automated test harnesses

20 Software Engineering Process - II 5.20 Testing in XP (cont.)  Test-first development is one of the most important innovation of XP.  Writing test first, defines the interface and the functionality behavior.  Problems of requirement misunderstanding are minimized.  Scenario-based requirements are broken down into tasks. Each task describes a discrete feature of the system and one or more unit tests are designed for the task.

21 Software Engineering Process - II 5.21 Testing in XP (cont.)  Acceptance testing by the customer is incremental.  The customer helps in developing acceptance tests for the next release.  Testing is automated and the testing component is stand-alone. It simulates the submission of input and checks for the output as specified.

22 Software Engineering Process - II 5.22 Pair Programming - Implementation  Programmers work in pairs to develop the software.  It does not always involve same pair of people.  Pairs are created dynamically.  All team members get to work with others.

23 Software Engineering Process - II 5.23 Pair Programming – Advantages  Pair programming:  Helps develop common ownership and responsibility for the system.  Supports discussion of the working of software before starting development so there are fewer false starts and less rework.  Works as inexpensive informal review process as each line of code is checked by two people.  Helps code improvement through refactoring.

24 Software Engineering Process - II 5.24 Refactoring  Refactoring is a technique for restructuring an existing body of code.  It aims to alter the program’s internal structure without changing its external behavior.  Issues with refactoring can be:  A sequence of transformations can result in significant restructuring.  Each small transformation is less likely to go wrong.  The system needs to be kept working after each small refactoring.

25 Software Engineering Process - II 5.25 Class Activity - 3  Explain how the practices of XP fit into the principles of agile methods.

26 Software Engineering Process - II 5.26 RAD  RAD:  Evolved from fourth-generation languages in the 80s.  Used for business applications that are data intensive.  Organized as a set of tools that help to create, search, display, and present data using different formats.  Provides powerful facilities for screen definition and report generation.

27 Software Engineering Process - II 5.27 RAD (cont.)

28 Software Engineering Process - II 5.28 RAD – Screen Generation  Screen generation facility of a RAD tool must provide for:  Interactive form definition, where the developer defines the fields and their organization on the form.  Form linking, where the developer defines which field invokes a subsequent form.  Field verification, where the developer defines the applicable value ranges or the data types.

29 Software Engineering Process - II 5.29 RAD – Advantages and Limitations  Advantages:  Enables quick development of simple applications with small teams.  Implements a lot of functionality at a very low cost.  Users familiar with the technology do not have to learn new features.  Limitations:  No explicit system architecture and dependencies between parts of system.  Difficult to implement nonstandard user interfaces.

30 Software Engineering Process - II 5.30 Software Prototyping  A software prototype is an initial version of a software system and can be used to get some benefits of the incremental development process.  It helps:  Demonstrate concepts  Try out design options  Explore more about the problem and possible solutions

31 Software Engineering Process - II 5.31 Software Prototyping  Software prototypes can be used to:  Elicit and validate requirements.  Explore software solutions and to support user interface design.  Run back-to-back tests with the final system that will be delivered to the customer.

32 Software Engineering Process - II 5.32 Prototype Development Process

33 Software Engineering Process - II 5.33 Advantages of Prototyping  Improved system usability  More likelihood of meeting customer requirements  Improved design quality  Improved maintainability  Reduced development effort

34 Software Engineering Process - II 5.34 Summary  What was your key learning from the unit?

Download ppt "Software Engineering Process - II 5.1 Unit 5: Alternate Software Development Methodologies Software Engineering Process - II."

Similar presentations

Ads by Google