0% found this document useful (0 votes)
34 views42 pages

ISD Lec 4 & 5

The document discusses different process models for software engineering including waterfall, V-model, prototyping, phased development, spiral model, unified process, and agile methods. It describes the characteristics, advantages, and disadvantages of each model.

Uploaded by

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

ISD Lec 4 & 5

The document discusses different process models for software engineering including waterfall, V-model, prototyping, phased development, spiral model, unified process, and agile methods. It describes the characteristics, advantages, and disadvantages of each model.

Uploaded by

WF EVIL ASH
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 42

Introduction to

Software Engineering
What Do We Mean by a Process?
• Is a series of steps involving activities, constraints, and
resources to produce an intended output
• Prepare for exams
• Conduct a software competition
• Organize a trip
• Write a term project report
• Involves a set of tools and techniques
• Block diagrams
• Notations
How is a Process Useful?
• Impose consistency and structure on a set of
activities
• Guide us to understand, control, examine, and
improve the activities
• Enable us to capture our experiences and pass
them along
Characteristics of a Process
• Prescribes all major process activities
• Uses resources, subject to set of constraints (such as schedule)
• Produces intermediate and final products
• May be composed of sub-processes with hierarchy or links
• Each process activity has entry and exit criteria
• Activities are organized in sequence, so timing is clear
• Each process guiding principles, including goals of each activity
• Constraints may apply to an activity, resource or product
Characteristics of a Process
• Prescribes all major process activities
• Uses resources, subject to set of constraints (such as schedule)
• Produces intermediate and final products
• May be composed of sub-processes with hierarchy or links
• Each process activity has entry and exit criteria
• Activities are organized in sequence, so timing is clear
• Each process guiding principles, including goals of each activity
• Constraints may apply to an activity, resource or product
Software Lifecycle
• When a process involves building a software (product),
the process may be referred to as software (product)
lifecycle
• Requirements analysis and definition
• System (architecture) design
• Program (detailed/procedural) design
• Writing programs (coding/implementation)
• Testing: unit, integration, system
• System delivery (deployment)

• Maintenance
What is a Process Model?
• Description of a process, evolved overtime, in a certain
format
• May use text, pictures, or a combination
• Contains key process features
Why is a Process Model Needed?
• To form a common understanding
• To find inconsistencies, redundancies, omissions
• To find and evaluate appropriate activities for reaching
process goals
• To tailor a general process for a particular situation in
which it will be used
What is a Software Process Model?
• Models that prescribe how should development of
software progress
• Models that describe how is software developed in
actuality
Software Development Process Models
• Waterfall model
• V model
• Prototyping model
• Operational specification
• Transformational model
• Phased development: increments and iteration
• Spiral model
• Unified process
• Agile methods
Waterfall Model
• One of the first process development models proposed
• Works for well understood problems with minimal or no changes in
the requirements
• Simple and easy to explain to customers
• It presents
• a very high-level view of the development process
• sequence of process activities
• Each major phase is marked by milestones and deliverables
(artefacts)
Waterfall Model (Contd.)
Waterfall Model (Contd.)

Uncontrolled Software Development Process


No Iterations in WF
Waterfall Model (Contd.)

Provides no guidance how to handle changes to products


and activities during development (assumes requirements
can be frozen)
Views software development as manufacturing process
rather than as creative process
There is no iterative activities that lead to creating a final
product
Long wait before a final product
Generates lots of documentation
Suitable for large projects
Waterfall Model with Prototyping

A prototype is a partially developed product


Prototyping helps
developers assess alternative design strategies (design
prototype)
users understand what the system will be like (user
interface prototype)
Waterfall Model with Prototyping
V Model
• A variant of the waterfall model
• Uses unit testing to verify procedural design
• Uses integration testing to verify architectural (system)
design
• Uses acceptance testing to validate the requirements
• If problems are found during verification and validation, the
left side of the V can be re-executed before testing on the
right side is re-enacted
V Model (Contd.)
Prototyping Model
• Allows repeated investigation of the requirements
or design
• Reduces risk and uncertainty in the development
Prototyping Model (Contd.)
• Types:
• Evolutionary
• Throwaway
• Features
• User involvement?
• Smaller projects?
Phased Development
• Cycle time
• Time between when requirements document was written and when the system was
delivered
• Shorter cycle time
• Decomposed system
• System delivered in pieces
• enables customers to have some functionality while the rest is
being developed
• Two systems functioning in parallel
• the production system (release n): currently being used
• the development system (release n+1): the next version
Phased Development (Contd.)
Phased Development (Contd.)
• Incremental development: starts with small functional
subsystem and adds functionality with each new release
• Iterative development: starts with the full system, then
changes the functionality of each subsystem with each
new release
Phased Development (Contd.)
• Training on early release
• Responsive developers
• Markets for early functionality
• Quick and Global fixing on unanticipated problems
• Ability to work on different areas of expertise
with different releases
Lecture 5
Spiral Model
• Suggested by Boehm (1988)
• Combines development activities with risk management to
minimize and control risks
• The model is presented as a spiral in which each iteration is
represented by a circuit around four major activities
• Plan
• Determine goals, alternatives and constraints
• Evaluate alternatives and risks
• Develop and test
Spiral Model (Contd.)
Unified Process Model
• Object-oriented system development methodology
(system development process)
• Offered by Rational/IBM, UP developed by Booch,
Rumbaugh, and Jacobson
• UP should be tailored to organizational and project needs
• Highly iterative life cycle
• Project will be use-case driven and modeled using UML
Unified Process Model (Contd.)
• UP life cycle:
• Includes four phases which consist of iterations
• Iterations are “mini-projects”
• Four Phases:
• Inception – develop and refine system vision
• Elaboration – define requirements and design and implement core
architecture
• Construction – continue design and implementation of routine, less risky
parts
• Transition – move the system into operational mode
Unified Process Model (Contd.)

Images’ Source: Systems Analysis and Design in a Changing World, 4th


Edition
Unified Process Model (Contd.)
• Related development activities are called disciplines
• UP disciplines:
Business modeling, requirements, design, implementation,
testing, deployment, project management, configuration and change
management, and environment

• Each iteration includes activities from all disciplines


• Activities in each discipline produce artefacts – models,
documents, source code, and executables
Unified Process Model (Contd.)
Image Source: Systems Analysis and Design in a Changing World, 4th Edition
Agile Methods
• Emphasis on flexibility in producing software quickly and
capably in rapidly changing environment
• Agile manifesto
• Concentrate on responding to change rather than on creating a plan
and then following it (chaordic)
• Value individuals and interactions over process and tools
• Prefer to invest time in producing working software rather than in
producing comprehensive documentation
• Focus on customer collaboration rather than contract negotiation
Agile Methods
Agile Methods (Contd.)
Agile Methods (Contd.)

Extreme Programming (XP)


XP
Development
Approach
Agile Methods (Contd.)
• Scrum:
• A quick, adaptive, and self-organizing development
methodology
• Responds to a current situation as rapidly and
positively as possible
Agile Methods (Contd.)
• Scrum Philosophy
• Responsive to a highly changing, dynamic environment
• Focuses primarily on the team level
• Team exerts total control over its own organization
and work processes
• Uses a product backlog as the basic control mechanism
• The product backlog includes user functions (such as
use cases), features (such as security), and technology
(such as platforms).
Agile Methods (Contd.)

• The product backlog list is continually being prioritized, and only a few of the high-
priority items are worked on at a time, according to the current needs of the project
and its sponsor.
Agile Methods (Contd.)
• Scrum Organization
• Product owner

• The client stakeholder for whom a system is being built


• Maintains the product backlog list
• Scrum master

• Person in charge of a Scrum project


• Scrum team or teams

• Small group of developers


• Set their own goals and distribute work among themselves
Agile Methods (Contd.)
• Scrum Practices
• Sprint
• The basic work process in Scrum
• A time-controlled mini-project
• Firm 30-day time box with a specific goal or deliverable
• Parts of a sprint
• Begins with a one-day planning session
• A short daily Scrum meeting to report progress
• Ends with a final half-day review
Special THANK FOR THE MATERIALS
• ENGR. SAJID SALEEM
• Pfleeger’s Book slides from UCF
• Software Fundamentals

You might also like