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

software development methodologies
SMART_READER_LITE
LIVE PREVIEW

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

Software Development Methodologies Lecturer: Raman Ramsin Lecture 1: Basics Sharif University of Technology Department of Computer Engineering 1 Software Development Methodologies Lecture 1 Software Development Methodology (SDM) Software


slide-1
SLIDE 1

Software Development Methodologies

Lecturer: Raman Ramsin Lecture 1: Basics

Department of Computer Engineering

1

Sharif University of Technology

slide-2
SLIDE 2

Software Development Methodologies – Lecture 1

Software Development Methodology (SDM) Software Development Methodology (SDM)

  • A framework for applying software engineering practices with the specific

aim of providing the necessary means for developing software-intensive p g y p g systems C i ti f t i t

  • Consisting of two main parts:

A set of modeling conventions comprising a Modeling Language

(syntax and semantics) ( y )

A Process, which

provides guidance as to the order of the activities, specifies what artifacts should be developed using the Modeling

Language,

directs the tasks of individual developers and the team as a whole, directs the tasks of individual developers and the team as a whole,

and

  • ffers criteria for monitoring and measuring a project’s products

and a ti ities

Department of Computer Engineering

2

Sharif University of Technology

and activities.

slide-3
SLIDE 3

Software Development Methodologies – Lecture 1

Object-Oriented Software Development Methodology (OOSDM) Object O e ted So t a e e e op e t et odo ogy (OOS )

  • Specifically aimed at viewing, modeling and implementing the system as a

collection of interacting objects collection of interacting objects

  • First appeared in late 1980s

pp

  • Categorized as

Seminal (First and Second Generations) Integrated (Third Generation) Agile Agile

  • UML was the result of the ‘war' among seminal methodologies

g g

  • Process has now replaced modeling language as the main contentious issue

Department of Computer Engineering

3

Sharif University of Technology

slide-4
SLIDE 4

Software Development Methodologies – Lecture 1

Genealogy: Seminal and Integrated Methodologies (until 1996)

Department of Computer Engineering

4

Sharif University of Technology

[Webster 1996]

slide-5
SLIDE 5

Software Development Methodologies – Lecture 1

UML UML

Department of Computer Engineering

5

Sharif University of Technology

[Graham 2001]

slide-6
SLIDE 6

Software Development Methodologies – Lecture 1

Genealogy: Agile Methodologies Genealogy: Agile Methodologies

Department of Computer Engineering

6

Sharif University of Technology

[Abrahamsson et al. 2003]

slide-7
SLIDE 7

Software Development Methodologies – Lecture 1

Analysis: Selected Methodologies y g

  • Seminal Methodologies

1.

Shlaer-Mellor (1988, 1992)

2.

Coad-Yourdon (1989, 1991)

  • Agile Methodologies

1.

DSDM (1995, 2003)

2.

Scrum (1995, 2001)

3.

RDD (1990)

4.

Booch (1991, 1994)

5.

OMT (1991)

3.

XP (1996, 2004)

4.

ASD (1997, 2000)

5.

dX (1998)

6.

OSA (1992)

7.

OOSE (1992)

8.

BON (1992, 1995) H d M k (1992)

6.

Crystal (1998, 2004)

7.

FDD (1999, 2002)

P P tt

9.

Hodge-Mock (1992)

10.

Syntropy (1994)

11.

Fusion (1994)

  • Process Patterns

1.

Ambler (1998)

P M t d l

  • Integrated Methodologies

1.

OPM (1995, 2002)

2

Catalysis (1995 1998)

  • Process Metamodels

1.

OPF – as part of the OPEN methodology (2001)

2.

Catalysis (1995, 1998)

3.

OPEN (1996)

4.

RUP (1998, 2000, 2003) /USDP (1999)

5

EUP (2000 2005) (2001)

2.

SPEM (2002)

  • MDA

Department of Computer Engineering

7

Sharif University of Technology

5.

EUP (2000, 2005)

6.

FOOM (2001)

  • MDA
slide-8
SLIDE 8

Software Development Methodologies – Lecture 1

Problems Problems

Requirements engineering is still the weak link, and requirements

t bilit i l t d traceability is rarely supported.

Model inconsistency is a dire problem. Integrated methodologies are too complex to be effectively Integrated methodologies are too complex to be effectively

mastered, configured, and enacted.

Agile methods are not mature enough:

g e e

  • ds a e
  • a u e e oug

Unrealistic assumptions (e.g. Scrum) Lack of scalability (All, more or less) Lack of a specific, unambiguous process (e.g. XP, Crystal)

S l d l t i d b i l th d l i i t

Seamless development, pioneered by seminal methodologies, is not

adequately appreciated and supported in modern-day methodologies.

Department of Computer Engineering

8

Sharif University of Technology

slide-9
SLIDE 9

Software Development Methodologies – Lecture 1

Methodology Development gy p

Methodologies can be categorized according to the circumstances

leading to their development, including the approach and method applied:

Revolutionary: novel ideas and approaches Evolutionary: based on existing methodologies Evolutionary: based on existing methodologies

Extension: adding new features to an existing methodology Integration: consolidating ideas from two or more methodologies

Merger: typically carried out through a design-by-committee

procedure

Ad hoc: features are scavenged from prominent methodologies in

  • rder to fill the needs of the methodologist

Engineered: based on analysis of the problem domain and

requirements thereby identified, and pre-implementation design

‘Software processes are software too.’

Department of Computer Engineering

9

Sharif University of Technology

slide-10
SLIDE 10

Software Development Methodologies – Lecture 1

Analysis Criteria y

OOSDM Process

Clarity, rationality, accuracy, and consistency of definition Coverage of the generic development lifecycle activities (Analysis, Design,

Implementation Test Maintenance) Implementation, Test, Maintenance)

Support for umbrella activities, especially including:

Risk management Project management Project management Quality assurance

Seamlessness and smoothness of transition between phases, stages and

activities

Basis in the requirements (functional and non-functional) Testability and Tangibility of artifacts, and traceability to requirements Encouragement of active user involvement

g

Practicability and practicality Manageability of complexity Extensibility/Configurability/Flexibility/Scalability

Department of Computer Engineering

10

Sharif University of Technology

y/ g y/ y/ y

Application scope

slide-11
SLIDE 11

Software Development Methodologies – Lecture 1

Analysis Criteria y

OOSDM Modeling Language

g g g

Support for consistent, accurate and unambiguous object-oriented

modeling: modeling:

Structural – Functional – Behavioural Logical to Physical (business-process/problem domain to solution

domain to implementation domain) domain to implementation domain)

Enterprise level – System level – Subsystem/Package level – Inter-

  • bject level – Intra-object level

Formal and Informal modeling facilities Formal and Informal modeling facilities

Provision of strategies and techniques for tackling model

g q g inconsistency and managing model complexity

Department of Computer Engineering

11

Sharif University of Technology

slide-12
SLIDE 12

Software Development Methodologies – Lecture 1

R f References

  • Webster, S., “On the evolution of OO methods”, Bournemouth University,

, , , y, 1996.

  • Graham, I., Object-oriented Methods: Principles and Practice (3rd Edition),

, , j p ( ), Addison-Wesley, 2001.

  • Abrahamsson, P., Warsta, J., Siponen, M. T., Ronkainen, J., “New Directions

, , , , p , , , ,

  • n Agile Methods: a comparative analysis”, Proceedings of the International

Conference on Software Engineering – ACM/ICSE 2003, 2003, pp. 244-254.

Department of Computer Engineering

12

Sharif University of Technology