You are on page 1of 33

Fundamentals of Software

Development 32555

Software Development Processes


Introduction to UML

FSD(Lecture 1) 1
Software Systems
 Nowadays most of the businesses are supported by the
software applications.
 Development of software systems to support the
business is a difficult and complicated process.
 Important to understand how the activity is performed
and how it contributes to the objectives of the
organization.

FSD(Lecture 1) 2
Building a Software System
 In between a nice idea and a working software, there is
much more than programming.
 Knowing an object-oriented language and having
access to a library is necessary but not sufficient in
order to create system software.
 One of the main problems in software development is
that many projects start programming too soon and
concentrate too much effort on writing code.
 Thus the use of modeling is required for the success of
software projects.

FSD(Lecture 1) 3
Software Development Process
• A software development process is an approach to
build, deploy and maintain software.
• In software development process, the goal is to
efficiently deliver a software product that meets the
needs of a business or satisfy the requirements of a
client.
• A comprehensive roadmap so that designers can walk
through the flexible multiple pathways of the
development process.

FSD(Lecture 1) 4
Software Development Process
Software development follows a lifecycle (SDLC).
Generic activities in all software processes are:
• Planning:- why a software system should be built
and how the project team will go about building it.
• Analysis: - answers the questions of who will use the
system, what the system will do, and where and
when it will be used.
• Design: - how the system will operate in terms of
hardware, software, and network infrastructure.
• Implementation:– system is actually built.

FSD(Lecture 1) 5
Software Development Methodologies
 Methodology is:
 a set of methods, rules, practices, procedures,
techniques and tools used to achieve a goal, or
or
 the theoretical understating of the principles that
determine how such methods, practices, tools, etc., are
used
 Software development consists of a wide spectrum of
activities that individual methodologies cover
selectively and from different viewpoints.

FSD(Lecture 1) 6
Ad Hoc Approach
 The ad hoc approach is development without an overall
theoretical framework.
 As should be expected, ad hoc is a high-risk approach.

FSD(Lecture 1) 7
Waterfall Model

• The waterfall model is a


software development
model in which
development is seen as
flowing steadily
downwards (like a
waterfall) through the
phases of requirements
analysis, design,
implementation, testing
(verification), integration,
and maintenance.

FSD(Lecture 1) 8
Waterfall Model
• One proceeds from one phase to the next in a
purely sequential manner.
• When and only when the requirements are fully
completed, one proceeds to design.
• The software in question is designed and a
"blueprint" is drawn for programmers to follow —
this design should be a plan for implementing the
requirements given.
• When and only when the design is fully
completed, an implementation of that design is
made by programmers.
FSD(Lecture 1) 9
Waterfall Model
• For simple systems, it might be feasible to
sequentially define the whole problem, design the
entire solution, build the software, and then test the
product.
• For complex and sophisticated systems, this linear
approach is not realistic.

FSD(Lecture 1) 10
Iterative and Incremental Process
• Development is organized into a series of short fixed-
length mini-projects called iterations.
• An iteration represents a complete development
cycle: it includes its own treatment of requirements,
analysis, design, implementation and testing
activities.
• Each iteration involves choosing a small subset of the
requirements and quickly design, implement and
testing them.
• The outcome of each iteration is a tested, integrated
and executable system.

FSD(Lecture 1) 11
Iterative and Incremental Process

 The system grows incrementally over time,


iteration by iteration.
or
 The iterative lifecycle is based on the successive
enlargement and refinement of a system through
multiple iterations with feedback and adaptation.

FSD(Lecture 1) 12
Advantages of an Iterative Process
• Reduce risks
– Risks are identified early, progress is easier to see.
• Handle evolving requirements
– Users provide feedback to operational systems.
– Responding to feedback is an incremental change.
• Attain early learning
– Everyone obtains an understanding of the different
workflows early on.
• Allow for changes
– System can adapt to problems

FSD(Lecture 1) 13
Drawbacks of an Iterative Process
 One strong objection to the incremental approach is
that architecture of the platform can’t accommodate
the changes each iteration requires.
or
 Design decisions can’t be made in pieces. For example,
it is very hard to change the structure of the building
while we are building it.

FSD(Lecture 1) 14
Prototyping
• Prototyping is the process of quickly putting
together a working model (a prototype) in order to
test or illustrate various aspects or ideas of a design
to gather early user feedback.
• The prototype is then sufficiently refined iteratively
through feedback and additional rounds of
gathering requirements, design and
implementation.
• Two types of prototyping:
• incremental or evolutionary
• throwaway
FSD(Lecture 1) 15
Rapid Application Development (RAD)

 Developed initially by James Martin in 1991


 Rapid application development is selecting
techniques, methods, practices and procedures
that result in faster development and shorter
schedules.
 Traditionally the rapid application development
approach involves compromises in usability,
features, and/or execution speed.

FSD(Lecture 1) 16
The Spiral Model

Copyright: http://ocw.mit.edu/courses/

FSD(Lecture 1) 17
Characteristics of the Spiral Model
• A spiral phase begins in the top left quadrant
(quadrant 1), by determining objectives of that
phase, alternatives and constraints.
• Next (quadrant 2), the strategy is analyzed form the
viewpoint of risk, and solutions to minimize these
risks are investigated, often using prototyping.
• This quadrant (3) corresponds to where the
traditional waterfall model phases are put into
practice.
• Finally (quadrant4), the results of the risk-reduction
strategies are assessed, and if all risks are resolved,
the next phase is planned and started.

FSD(Lecture 1) 18
When to use Spiral Model
 When costs and risk evaluation is important
 For medium to high-risk projects
 Long-term project commitment unwise because of
potential changes to economic priorities
 Users are unsure of their needs
 Requirements are complex
 New product line
 Significant changes are expected (research and
exploration)

FSD(Lecture 1) 19
Agile Methodologies
• Dissatisfaction with the overheads involved in
design methods led to the creation of agile
methods.
• Agile methodologies aim at being adaptive
rather than predictive.
• The theoretical framework of agile methods is
best expressed by the Manifesto for Agile
Software Development published in 2001.

FSD(Lecture 1) 20
Agile Methods
 Customer satisfaction by rapid, continuous
delivery of useful software
 Working software is delivered frequently (weeks
rather than months)
 Working software is the principal measure of
progress
 Even late changes in requirements are welcome
 Face-to-face conversation is the best form of
communication
 Continuous attention to technical excellence and
good design

FSD(Lecture 1) 21
Problems with Agile Methods
• It can be difficult to keep the interest of
customers who are involved in the process. They
may keep changing the requirements.
• Team members may be unsuited to the intense
involvement that characterizes agile methods.
• Prioritizing changes can be difficult where there
are multiple stakeholders.
• Hard to cost as there is no master schedule
contract

FSD(Lecture 1) 22
Some Agile Methods
 Extreme Programming (XP)
 Coding is the key activity throughout a software project
 Test Driven Development (TDD)
 first the developer writes a failing automated test case
that defines a desired improvement or new function,
then produces code to pass that test
 Adaptive Software Development (ASD)
 Combines RAD with software engineering best practices

FSD(Lecture 1) 23
Some Agile Methods
 Feature Driven Development (FDD)
 Develop an overall model, build a feature list, plan by
feature, design by feature, built by feature
 Aspect Oriented Software Development Method
 Orthogonal idea of crosscutting concerns(aspects) and
advocating the production separate modules for these
concerns

FSD(Lecture 1) 24
IBM Rational Unified Process (RUP)
 RUP organizes projects in two-
dimensional terms
 The horizontal dimension
represents the successive phases of
each project iteration:
Management
 Business modeling
Requirements

Environment  Requirements
 Analysis and Design
Configuration
 Implementation
Management
 Test
 Deployment
 The vertical dimension
represents supporting activities of
configuration and change
management, project
Start of the process management, and environment.

FSD(Lecture 1) 25
Tailored SDLC Models
 Any one model does not fit all projects
 If there is nothing that fits a particular project, pick a
model that comes close and modify it for your needs.
 Project should consider risk but complete spiral too
much –start with spiral and then pair with some other
model
 Project delivered in increments but there are serious
reliability issues –combine incremental model with
some other model
 Each team must pick or customize a SDLC model to fit
its project

FSD(Lecture 1) 26
Modelling with UML
• The Unified Modeling Language (UML) provides
industry standard mechanisms for visualizing, specifying,
constructing and documenting software system.
• UML is a general-purpose modeling language that
includes a standardized graphical notation that may be
used to create an abstract model of a system, sometimes
referred to as the UML model.
• UML is officially defined at the Object Management
Group (OMG). The complete specification is available at
http://www.uml.org/

FSD(Lecture 1) 27
Modelling with UML
UML is a modeling language for:
 Visualizing: graphical models with precise semantics
 Specifying: models are precise, unambiguous and
complete to capture all important Analysis, Design,
and Implementation decisions
 Constructing: models can be directly connected to
programming languages, allowing forward and reverse
engineering
 Documenting: diagrams capture all pieces of
information collected by development team, allowing
one to share and communicate the embedded
knowledge
FSD(Lecture 1) 28
Goals of UML
 Provide a common language that can be used by all
stakeholders
 Its main purpose is to allow stakeholders to
communicate
 Integrate best engineering practices that have
proven successful in the modeling of large and
complex systems
 Be independent of particular programming
languages and development processes
 Help project teams easily experiment to explore
multiple solutions

FSD(Lecture 1) 29
Modelling with UML
 In UML 2.0 there are 13 types of diagrams.
 We can categorize them hierarchically (see next slide).
1. Structure Diagrams: emphasize what things must be in
the system being modeled.
2. Behavior Diagrams: emphasize what must happen in
the system being modeled.
3. Interaction Diagrams: shows how objects collaborate to
do one job

FSD(Lecture 1) 30
Hierarchy of UML 2.0 diagrams

FSD(Lecture 1) 31
UML Elements
 Use-Case Diagrams: show user requirements
 Class Diagrams: shows static structure of the
design
 Sequence Diagrams : shows sequence of
interactions between different objects to do a
particular job.
 Package Diagram: shows groups of classes and
interdependencies.

FSD(Lecture 1) 32
Further Reading
 Chapter 3, Object-Oriented Systems Analysis and
Design. Noushin Ashrafi and Hessam Ashrafi
 Chapter 1, Applying UML and Patterns : An
Introduction to Object-Oriented Analysis and
Design and Iterative Development, Craig Larman,
Prentice-Hall.
 Chapter 1 ,System Analysis and Design : An Object
Oriented Approach, Alan Dennis, Barbara Wixom
and David Tegarden, John Wiley.

FSD(Lecture 1) 33

You might also like