Sunteți pe pagina 1din 48

Lecture 02

Software Process

1
Outline
What is a process?
Fundamental assumptions of process
Purpose of Process
Process description
Software process
Process framework
Generic process framework
Framework activities
Umbrella activities
SE Phases
Software Process characteristics

2
Process
Set of activities, actions, tasks that
lead to the production of software
product.
OR
Set of activities, constraints and
resources that produce an intended
output.

3
Fundamental Assumption of Process

Good process enables team work.


Good process ensures good quality.
Good process reduces risk of
software failure.
Good process enhances visibility.

4
Purpose of Process
Is that we want to produce
economical and efficient software
within time.
Set of activities in these processes
such as
Specifying the data model.
Designing the user interface
Ordering of these activities.

5
ERD
Is a well-tried Software Engineering
tool for data modeling, system
design.
3 basic elements
Entities
Attributes
Relationships

6
ERD
Example
A company has several departments.
Each department has a supervisor and
at least one employee. Employees must
be assigned to at least one, but possibly
more departments. At least one
employee is assigned to a project, but
an employee may be on vacation and
not assigned to any project.

7
ERD
A department is assigned an
employee.
A department run by supervisor.
An employee works on a project.
A supervisor runs a
department.....

8
Process Description
Products
Roles
Pre and post conditions

9
Software process

Building a software product is


actually known as software product.

10
Software process
Categories
Plan-driven processes
Process activities are planned in advance
and progress is measured against this plan.
Agile Processes
Planning is incremental.

11
Process framework

A process framework establishes the


foundation for a complete SE process
by identifying a small number of
framework activities that are
applicable to all software project
regardless of their size or complexity.

12
Process Framework

13
Process Framework

Task sets
Defines the actual work to be done to
accomplish the objectives of a SE.

14
Generic Process Framework
Activities
Communication
Involves communication among the
customer and other stake holders;
encompasses requirements gathering
Planning
Establishes a plan for software engineering
work; addresses technical tasks, resources,
work products, and work schedule

15
Generic Process Framework
Activities
Modeling (Analyze, Design)
Encompasses the creation of models to
better understand the requirements and the
design
Construction (Code, Test)
Combines code generation and testing to
uncover errors
Deployment
Involves delivery of software to the
customer for evaluation and feedback
16
Modeling: Software Requirement
Analysis
Helps software engineers to better
understand the problem they will work
to solve.
Encompasses the set of tasks that lead
to an understanding of what the
customer wants, and how end-users
will interact with the software.
Uses a combination of text and
diagrams to depict requirements for
data, function and behavior.
17
Modeling: Software Design
Brings together customer
requirements, business needs, and
technical considerations to form the
blueprint for a product.
Creates a model that provides detail
about software data structures,
software architecture, interfaces, and
components that are necessary to
implement the system.
18
Modeling: Software Design
Architectural Design
Represents the structure of data and
program components that are required to
build the software.
User Interface Design
Creates effective communication medium
between a human and a computer.
Identifies interface objects and actions and
then creates a screen layout that forms
the basis for a user interface prototype.

19
Modeling: Software Design
Component-level Design
Defines the data structures, algorithms,
interface characteristics, and
communication mechanisms allocated
to each software component.

20
Software Engg. Phases
Definition Phase
Focuses on what
What information is to be processed.
What function and performance are desired.
What interfaces are to be established.
Major tasks
Software project planning.
Requirement analysis

21
Software Engg. Phases
Development Phase
Focuses on how
How function is to be implemented within a
software architecture.
How the design will be translated into
programming language.
How testing will be performed.
Major tasks
Software design
Code Generation
Software testing
22
Software Engg. Phases
Support Phase
Focuses on changes
Correction
Adaptation
Enhancement

23
Umbrella activities

Applied throughout the software


process and help a software team
manage and control progress,
quality, change and risk.

24
Umbrella activities
Software project tracking and control
When plan, tasks, models all have been done
then a software engineering tasks that will
enable to get the job done on time will have
to be created.
Risk management
A series of steps that help a software team to
understand and manage uncertainty.
Project risk
Product risk
Budget risk
25
Umbrella activities
Software quality assurance
This is very important to ensure the quality
measurement of each part to ensure them.
Software configurationmanagement
A set of activities designed to control
change.
Includes revision control.
Technical reviews
This includes reviewing the techniques that
has been used in the project.
26
Umbrella activities

Measurement
This will include all the measurement of
every aspects of the software project.
Direct measures
Indirect measures

27
Essence of Software Engineering
Practices
The practices of SE fit in the process
activities as
Understand the problem
(Communication and analysis)
Who are the stakeholders.
What data, functions, and features are
required to solve the problem.
Can the problem be represented graphically.

28
Essence of Software Engineering
Practices
The practices of SE fit in the process
activities as
Plan a solution (modelling and software
design)
Is there existing software that implements
the data, functions and features that are
applied?
Has a similar problem be solved?
Can a design model be created?

29
Essence of Software Engineering
Practices
The practices of SE fit in the process
activities as
Carry out the plan (Code generation)
Does the solution conform the plan?
Is each component part of solution correct?

30
Essence of Software Engineering
Practices
The practices of SE fit in the process
activities as
Examine the result (testing and quality
assurance)
Is it possible to test each component part of
the solution?
Has the software been validated against all
stakeholder requirements?

31
Software Process
Characteristics
Visibility
Process activities are properly performed and
progress of the process is visible or not.
Reliability
Product developed is free of errors
Understandability
Extent to which process is defined and ease to
understand the process definition.
Supportability
Either the process is supported by tools or not?

32
Software Process Models

A development strategy designed to


solve an actual problem in an
industry setting.

33
Software Process Models

Process models defines a distinct set


of activities, tasks, milestones and
work products that are required to
engineer high quality software.

34
Traditional Process Models
Waterfall model
Incremental model
Evolutionary models
Prototyping model
Spiral model

35
Waterfall Model
(Diagram)

36
Waterfall Model
(Description)
Oldest software lifecycle model
Used when requirements are well
understood and risk is slow.
Work flow is in a linear (i.e.
sequential) fashion.
Used often with well-defined
adaptations or enhancement to
current software.

37
Waterfall Model
(Problems)
Doesnt support iterations, so
changes can cause confusion
Difficult for customers to state all
requirements explicitly and upfront
Requires customer patience because
a working version of the program
doesnt occur until the final phase

38
Incremental Model
(Diagram)

39
Incremental Model
(Description)
Used when requirements are well
understood
Multiple independent deliveries are
identified
Work flow is in a linear (i.e. sequential)
fashion within an increment and is
staggered between increments.
Iterative in nature; focuses on an
operational product with each increment

40
Incremental Model
(Description)

Provides a needed set of functionality


sooner while delivering optional
components later
Useful also when staffing is too short
for a full-scale development.

41
Prototyping Model
(Diagram)

42
Prototyping Model
(Description)
Follows an evolutionary and iterative
approach
Used when requirements are not well
understood
Servers as a mechanism for identifying
software requirements
Focuses on those aspects of the software
that are visible to the customer/user
Feedback is used to refine the prototype

43
Prototyping Model
(Potential Problems)
The customer sees a working version
of the software, wants to stop all
development and then buy the
prototype after a few fixes are made
Developers often make implementation
compromises to get the software
running quickly (e.g., language choice,
user interface, operating system
choice, inefficient algorithms)

44
Prototyping Model
(Potential Problems)

Lesson learned
Define the rules up front on the final
disposition of the prototype before it is
built
In most circumstances, plan to discard
the prototype and engineer the actual
production software with a goal toward
quality.

45
Spiral Model
(Diagram)

46
Spiral Model
(Description)
Follows an evolutionary approach
Used when requirements are not well
understood and risks are high
Inner spiral focus on identifying software
requirements and project risks, may also
incorporate prototyping.
Outer spiral take on a classical waterfall
approach after requirements have been
defined, but permit iterative growth of the
software.
47
Spiral Model
(Description)
Operates as a risk-driven model a
go/no-go decision occurs after each
complete spiral in order to react
determinations.
Requires considerable expertise in
risk assessment
Serves as a realistic model for large-
scale software development

48