0% found this document useful (0 votes)
282 views

Lecture 1 Fundamentals of Software Development UTS

The document discusses various software development processes and methodologies including waterfall model, iterative and incremental process, prototyping, rapid application development, spiral model, and agile methods. It covers the characteristics, advantages, disadvantages and examples of these processes and when each may be suitable.

Uploaded by

turok_gt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
282 views

Lecture 1 Fundamentals of Software Development UTS

The document discusses various software development processes and methodologies including waterfall model, iterative and incremental process, prototyping, rapid application development, spiral model, and agile methods. It covers the characteristics, advantages, disadvantages and examples of these processes and when each may be suitable.

Uploaded by

turok_gt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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