Software Development Methodologies
Lecturer: Raman Ramsin Lecture 1: Basics
Department of Computer Engineering
1
Sharif University of Technology
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
Department of Computer Engineering
1
Sharif University of Technology
Software Development Methodologies – Lecture 1
aim of providing the necessary means for developing software-intensive p g y p g systems C i ti f t i t
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
and a ti ities
Department of Computer Engineering
2
Sharif University of Technology
and activities.
Software Development Methodologies – Lecture 1
collection of interacting objects collection of interacting objects
pp
Seminal (First and Second Generations) Integrated (Third Generation) Agile Agile
g g
Department of Computer Engineering
3
Sharif University of Technology
Software Development Methodologies – Lecture 1
Genealogy: Seminal and Integrated Methodologies (until 1996)
Department of Computer Engineering
4
Sharif University of Technology
[Webster 1996]
Software Development Methodologies – Lecture 1
Department of Computer Engineering
5
Sharif University of Technology
[Graham 2001]
Software Development Methodologies – Lecture 1
Genealogy: Agile Methodologies Genealogy: Agile Methodologies
Department of Computer Engineering
6
Sharif University of Technology
[Abrahamsson et al. 2003]
Software Development Methodologies – Lecture 1
1.
Shlaer-Mellor (1988, 1992)
2.
Coad-Yourdon (1989, 1991)
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)
1.
Ambler (1998)
P M t d l
1.
OPM (1995, 2002)
2
Catalysis (1995 1998)
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)
Department of Computer Engineering
7
Sharif University of Technology
5.
EUP (2000, 2005)
6.
FOOM (2001)
Software Development Methodologies – Lecture 1
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
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
Software Development Methodologies – Lecture 1
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
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
Software Development Methodologies – Lecture 1
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
Software Development Methodologies – Lecture 1
OOSDM Modeling Language
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-
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
Software Development Methodologies – Lecture 1
, , , y, 1996.
, , j p ( ), Addison-Wesley, 2001.
, , , , p , , , ,
Conference on Software Engineering – ACM/ICSE 2003, 2003, pp. 244-254.
Department of Computer Engineering
12
Sharif University of Technology