Software Development Methodologies Lecturer: Raman Ramsin Lecture 8 - - PowerPoint PPT Presentation

software development methodologies
SMART_READER_LITE
LIVE PREVIEW

Software Development Methodologies Lecturer: Raman Ramsin Lecture 8 - - PowerPoint PPT Presentation

Software Development Methodologies Lecturer: Raman Ramsin Lecture 8 Agile Methodologies: DSDM Sharif University of Technology Department of Computer Engineering 1 Software Development Methodologies Lecture 8 Agile Methodologies: Brief


slide-1
SLIDE 1

Software Development Methodologies

Lecturer: Raman Ramsin Lecture 8 Agile Methodologies: DSDM

Department of Computer Engineering

1

Sharif University of Technology

slide-2
SLIDE 2

Software Development Methodologies – Lecture 8

Agile Methodologies: Brief History g g y

First appeared in 1995.

pp

The once-common perception that agile methodologies are nothing

but controlled code-&-fix approaches with little or no sign of a but controlled code & fix approaches, with little or no sign of a clear-cut process, is only true of a small – albeit influential – minority.

Essentially based on practices of program design, coding and testing

that are believed to enhance software development flexibility and productivity productivity.

Most agile methodologies incorporate explicit processes, although

t i i t k th li ht i ht ibl striving to keep them as lightweight as possible.

Department of Computer Engineering

2

Sharif University of Technology

slide-3
SLIDE 3

Software Development Methodologies – Lecture 8

Agile Methodologies: Evolution Map g g p

Department of Computer Engineering

3

Sharif University of Technology

[Abrahamsson et al. 2003]

slide-4
SLIDE 4

Software Development Methodologies – Lecture 8

Agile Methodologies: Agile Manifesto g g g

Department of Computer Engineering

4

Sharif University of Technology

slide-5
SLIDE 5

Software Development Methodologies – Lecture 8

Agile Methodologies: Principles g g p

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.

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.

Department of Computer Engineering

5

Sharif University of Technology

slide-6
SLIDE 6

Software Development Methodologies – Lecture 8

Agile Methodologies: Principles (Contd.) g g p ( )

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. indefinitely.

Continuous attention to technical excellence and good design enhances

agility. agility.

Simplicity—the art of maximizing the amount of work not done—is

essential. essential.

The best architectures, requirements, and designs emerge from self-

  • rganizing teams.
  • rganizing teams.

At regular intervals, the team reflects on how to become more effective,

then tunes and adjusts its behaviour accordingly.

Department of Computer Engineering

6

Sharif University of Technology

then tunes and adjusts its behaviour accordingly.

slide-7
SLIDE 7

Software Development Methodologies – Lecture 8

Dynamic Systems Development Method (DSDM) y y p ( )

  • First introduced in 1995 by a consortium of UK companies.
  • Motivated by an ever-increasing need for a standard, generally-

accepted RAD methodology. accepted RAD methodology.

  • Produced as an iterative-incremental generic framework based on

evolutionary prototyping and principles that are nowadays attributed evolutionary prototyping and principles that are nowadays attributed to agile development. St ti ith 16 UK i th ti h th

  • Starting with 16 UK companies, the consortium now has more than

1000 members, including industry giants such as IBM, Microsoft and Siemens.

  • The framework proposed by DSDM is now considered the de facto

standard for RAD.

Department of Computer Engineering

7

Sharif University of Technology

slide-8
SLIDE 8

Software Development Methodologies – Lecture 8

DSDM: Process DSDM: Process

1. Pre-project: providing the necessary resources for starting the project, along with preliminary planning p y p g 2. Project-proper, during which the five main phases of the DSDM are applied; the first two sequentially at the start of the project, and the remaining three as interwoven cycles: as interwoven cycles:

  • 1. Sequential Phases: studying the business domain and performing a

preliminary analysis of the system:

  • 1. Feasibility Study

y y

  • 2. Business Study
  • 2. Iterative Phases (The Development Cycle): iterative and incremental

analysis, design, coding and deployment of the system through e ol tiona p otot ping evolutionary prototyping:

  • 1. Functional Model Iteration
  • 2. Design-and-Build Iteration

3 Implementation

  • 3. Implementation

3. Post-project: system maintenance through further iterations of the main phases

Department of Computer Engineering

8

Sharif University of Technology

phases

slide-9
SLIDE 9

Software Development Methodologies – Lecture 8

DSDM: Process – Sequential Phases DSDM: Process Sequential Phases

  • 1. Feasibility Study: analogous to the classic feasibility analysis,

albeit with a special focus on analyzing the suitability of DSDM for the project and coming up with an outline plan for the for the project, and coming up with an outline plan for the subsequent phases.

  • 2. Business Study: with the focus on identifying system-relevant

processes and information entities in the business domain, defining and prioritizing the high-level requirements of the g p g g q system, developing the system architecture, and producing a development plan.

Department of Computer Engineering

9

Sharif University of Technology

slide-10
SLIDE 10

Software Development Methodologies – Lecture 8

DSDM: Process – Iterative Phases DSDM: Process Iterative Phases

1 F ti l M d l It ti ith th f l ti

  • 1. Functional Model Iteration: with the focus on selecting

requirements according to their priority, and performing detailed analysis and modeling of the selected requirements th h t t i through prototyping. 2 Design-and-Build Iteration: with the focus on evolving the

  • 2. Design-and-Build Iteration: with the focus on evolving the

prototypes into final deliverable increments of the system.

  • 3. Implementation: with the focus on deploying the deliverable

increments into the operational environment, and reviewing and validating the system built so far. g y

Department of Computer Engineering

10

Sharif University of Technology

slide-11
SLIDE 11

Software Development Methodologies – Lecture 8

DSDM: Process

Department of Computer Engineering

11

Sharif University of Technology

[DSDM Consortium 2003]

slide-12
SLIDE 12

Software Development Methodologies – Lecture 8

DSDM: A Configurable Process Framework DSDM: A Configurable Process Framework

  • DSDM is referred to as a configurable process
  • DSDM is referred to as a configurable process

framework, since the developers can tailor the process to fit the project in hand:

The three iterative phases form an outer interwoven

cycle; the selection of the number of iterations in each cycle; the selection of the number of iterations in each cycle, and the way the iterations should interact, is completely dependent on the project and up to the development team to decide. development team to decide.

The introduction of multiple development sub-teams

ki i ll l bl th h t l ddi working in parallel enables the phases to overlap, adding another configurable dimension to the process.

Department of Computer Engineering

12

Sharif University of Technology

slide-13
SLIDE 13

Software Development Methodologies – Lecture 8

DSDM: Phases – Feasibility Study DSDM: Phases Feasibility Study

  • 1. Acquire high-level knowledge as to the nature of the project, its

d h k d l d g g j scope, and the risks and constraints involved.

2

Check whether DSDM is the suitable approach for the project in

  • 2. Check whether DSDM is the suitable approach for the project in
  • hand. This is done by applying a list of project and
  • rganizational criteria (called the Suitability Filter) to the

project project.

  • 3. Perform the traditional activities of feasibility analysis, paying

3

e o t e t ad t o a act t es o eas b ty a a ys s, pay g special attention to technical, schedule, and managerial feasibilities.

  • 4. Develop rough estimates and an overall Outline Plan for the

project.

Department of Computer Engineering

13

Sharif University of Technology

slide-14
SLIDE 14

Software Development Methodologies – Lecture 8

DSDM: Feasibility Study - Suitability Filter DSDM: Feasibility Study Suitability Filter

  • 1. The system to be developed should be interactive, with the

functionality amply visible at the user interface level (screens reports functionality amply visible at the user interface level (screens, reports and controls).

  • 2. The system should have a clearly defined user group, so that well-

informed representatives (called Ambassador Users) can be identified informed representatives (called Ambassador Users) can be identified and involved as active participants in the project.

  • 3. The system should not be computationally complex (more business-
  • riented rather than scientific)
  • riented rather than scientific).
  • 4. The requirements should not be too complex to elicit, delineate,

prioritize, or implement individually.

  • 5. There should be no constraint or criticality issue compelling the

developers to fully specify the requirements before any coding can commence.

  • 6. If the system is large, it should lend itself to partitioning.
  • 7. The sponsor/senior-management should understand and accept the

principles and practices of DSDM.

Department of Computer Engineering

14

Sharif University of Technology

p p p

slide-15
SLIDE 15

Software Development Methodologies – Lecture 8

DSDM: Phases – Business Study DSDM: Phases Business Study

  • 1. Identify the processes and information entities in the business

domain that are relevant to the system as well as the types of users domain that are relevant to the system, as well as the types of users interacting with or affected by it. 2 D fi d i iti th hi h l l f ti l d f ti l

  • 2. Define and prioritize the high-level functional and non-functional

requirements of the system.

  • 3. The results of the first two tasks are packaged as the Business Area

Definition document.

  • 4. Develop the System Architecture Definition, which highlights the

architecture of the software solution, and specifies the development and operational platforms. and operational platforms.

  • 5. Produce the Prototyping Plan, outlining the order of activities during

the iterative phases of the development

Department of Computer Engineering

15

Sharif University of Technology

the iterative phases of the development.

slide-16
SLIDE 16

Software Development Methodologies – Lecture 8

DSDM: Business Study - Prioritization Rules DSDM: Business Study Prioritization Rules

The requirements are prioritized according to what DSDM calls the MoSCoW Rules which is in effect categorizing each of the MoSCoW Rules, which is, in effect, categorizing each of the

requirements as one of the following:

Must-Haves: essential requirements on which the project’s success

q p j relies.

Should-Haves: important requirements, but not essential to the

project’s success.

Could-Haves: requirements that can be excluded from the system

functionality without having any serious effect on the project.

Won’t-Haves: requirements that will not be part of the system

functionality in the current project functionality in the current project.

The project must guarantee the implementation of the must-haves

and should strive hard to deliver the should-haves. The could-haves a d s ou d s e a d o de e e s ou d a es e

  • u d

a es will only be realized if time and resources allow their implementation.

Department of Computer Engineering

16

Sharif University of Technology

slide-17
SLIDE 17

Software Development Methodologies – Lecture 8

DSDM: Phases – Functional Model Iteration DSDM: Phases Functional Model Iteration

A risk analysis is conducted in order to assess the risks involved in

d l i th i t Th l i ill b fi d d i th developing the requirements. The analysis will be refined during the iterations (based on the prototypes), ultimately resulting in the Development Risk Analysis Report.

Requirements are selected according to their development risk and

functional prototypes are iteratively built in order to demonstrate and refine the relevant functionality. The prototypes form the main part refine the relevant functionality. The prototypes form the main part

  • f the Functional Model, and will ultimately evolve into the final

system. Non functional requirements are refined listed and added to the

Non-functional requirements are refined, listed and added to the

Functional Model.

If necessary, static models (class diagrams) are used for modeling

If necessary, static models (class diagrams) are used for modeling the structural aspects of the domain area being analyzed. These too are added to the Functional Model.

Department of Computer Engineering

17

Sharif University of Technology

slide-18
SLIDE 18

Software Development Methodologies – Lecture 8

DSDM: Phases – Design and Build Iteration DSDM: Phases Design and Build Iteration

  • 1. Prototypes are iteratively refined and gradually evolved into a

working software subsystem, ready to be deployed as an i t i t th ti l i t d i t t d increment into the operational environment, and integrated into the system built so far.

  • 2. Testing is performed on a continuous basis, with test cases and

relevant results and decisions carefully logged.

  • 3. Intermediate prototypes (called Design Prototypes) are kept on

d d i d t ti record as design documentation.

Department of Computer Engineering

18

Sharif University of Technology

slide-19
SLIDE 19

Software Development Methodologies – Lecture 8

DSDM: Phases – Implementation DSDM: Phases Implementation

1.

Users and support personnel are trained, and manuals are prepared.

2.

The increment is introduced into the operational environment.

3.

A comprehensive validation review is performed on the system, results of which are compiled in the Increment Review Document There are four which are compiled in the Increment Review Document. There are four possible outcomes:

  • All requirements planned to be realized have been implemented to the users’

satisfaction in which case the project is declared as finished satisfaction, in which case the project is declared as finished.

  • A major area of functionality was discovered during development that had to

be abandoned because of time-box constraints, but should be developed; in this case a return to the business study phase is required.

  • An area of functionality had to be left out because of time-box constraints,

but should be developed; in this case a return to the functional-model- iteration phase is required.

  • A non-functional requirement had to be ignored because of time-box
  • A non functional requirement had to be ignored because of time box

constraints, yet should be realized; in this case a return to the design-and- build-iteration phase is required.

Department of Computer Engineering

19

Sharif University of Technology

slide-20
SLIDE 20

Software Development Methodologies – Lecture 8

DSDM: Strengths and Weaknesses

  • Strengths
  • Iterative-incremental process

B d f i l d l d li f d

  • Based on functional and structural modeling performed
  • n the problem domain and the system
  • Early specification of the physical architecture
  • Early specification of the physical architecture
  • Flexible and configurable process (through defining the

main development cycle as consisting of interwoven main development cycle as consisting of interwoven Analyze-Design-Implement cycles)

  • Especially suitable for projects with highly volatile
  • Especially suitable for projects with highly volatile

requirements, since it is easily adaptable

Department of Computer Engineering

20

Sharif University of Technology

slide-21
SLIDE 21

Software Development Methodologies – Lecture 8

DSDM: Strengths and Weaknesses

  • Strengths (Contd.)
  • Carefully worked-out process

S l d l h h i

  • Seamless development through using prototypes
  • Incorporating a Suitability Filter to make sure that the

project can be carried out with DSDM project can be carried out with DSDM

  • Based on careful planning

T t b d d l t

  • Test-based development
  • Active user involvement

R ibilit f h

  • Reversibility of changes

Department of Computer Engineering

21

Sharif University of Technology

slide-22
SLIDE 22

Software Development Methodologies – Lecture 8

DSDM: Strengths and Weaknesses

  • Strengths (Contd.)
  • Early and frequent releases

S h i i f

  • Smooth transition from stage to stage
  • Traceability to requirements achieved through constant

testing and via the prototype produced testing and via the prototype produced

  • Based on prioritization of requirements by categorizing

them into specific types them into specific types

  • Design-based development

Department of Computer Engineering

22

Sharif University of Technology

slide-23
SLIDE 23

Software Development Methodologies – Lecture 8

DSDM: Strengths and Weaknesses

  • Weaknesses
  • Not scalable

Li i d li bili h j h ld l d i lf

  • Limited applicability scope: the project should lend itself

to RAD through evolutionary prototyping.

  • Stringent constraints on time and resources
  • Stringent constraints on time and resources
  • Severe model-phobia: text reports are abundant but

visual models are avoided unless absolutely essential visual models are avoided unless absolutely essential. The prototype is considered the main model.

  • Lack of formalism
  • Lack of formalism

Department of Computer Engineering

23

Sharif University of Technology

slide-24
SLIDE 24

Software Development Methodologies – Lecture 8

Reference

DSDM Consortium DSDM: Business Focused DSDM Consortium, DSDM: Business Focused

Development, 2nd Ed., J. Stapleton (Editor), Addison- Wesley, 2003. Wesley, 2003.

Department of Computer Engineering

24

Sharif University of Technology