Lecture 2 Software Engineering CS-2105
Lecture 2 Software Engineering CS-2105
How the How the project How the How the How the sales
customer leader understood engineer programmer executive
explained it it designed it wrote it described it
How the project What operations How the How the help What the
was documented installed customer was desk supported customer really
billed needed
Social Learning Process
Software is embodied knowledge that is
initially dispersed, implicit and incomplete.
Phase patterns
define the sequence of framework activities that occur with the
process, even when the overall flow of activities is iterative in
nature.
Example includes SprialModel or Prototyping.
An Example of Process
Pattern
Describes an approach that may be applicable when stakeholders have
a general idea of what must be done but are unsure of specific
software requirements.
Pattern name. RequiremetnsUnclear Type. Phase pattern
Intent. This pattern describes an approach for building a model
that can be assessed iteratively by stakeholders in an effort to
identify or solidify software requirements.
Initial context. Conditions must be met
1. stakeholders have been identified
2. a mode of communication between stakeholders and the software team has been
established
3. the overriding software problem to be solved has been identified by stakeholders
4. an initial understanding of project scope, business requirements and project
constraints has been developed
Problem. Requirements are hazy or nonexistent. stakeholders are
unsure of what they want.
Solution. A description of the prototyping process would be
presented here.
Resulting context. A software prototype that identifies basic
requirements. is approved by stakeholders. Following this,
1. 1. This prototype may evolve through a series of increments to become
the production software
2. 2. the prototype may be discarded.
Process Assessment and
Improvement
SP cannot guarantee that
software will be delivered on time
meet the needs
has the desired technical characteristics.
Process stages
Component analysis
Requirements modification
System design with reuse
Development and integration
Development System
and integration validation
Reuse-oriented development
Advantages:
Reduced cost and risk
Fast delivery
Challenges:
Requires a large enough component base
Some control over the system evolution is lost
as new versions of reusable components are
not under the control of organization using the
component
Potential issues in backward/forward
compatibility
Still Other Process
Models
Unified Process
Personal Software Process
Agile Process Model
The Unified Process (UP)
Iterative, incremental model to adapt to
specific project needs
Risk driven development
Combining spiral and Prototyping models
Iterative process
development is divided into short fixed length
mini projects (called iterations).
Each iteration has requirement analysis,
design, implementation and testing.
Output of each iteration is tested integrated
executed system that grows with each iteration.
Stages of the UP
development cycle
iteration phase
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations #1 #2 #n-1 #n
Personal Software Process
(PSP)
The personal software process is a structured
set of process descriptions, measurements
and methods that can help engineers improve
their personal performance
The goal of PSP is to discipline software
process
The PSP introduces process concepts in a
series of steps. Each step includes all the
elements of the prior steps together with one
or two additions.
Personal Software Process
The Cyclic PSP 3
Cycle development
personal
process
PSP2.1
Personal Quality PSP2 Design template
Management Code reviews
Design Reviews
PSP1.1
Task planning
Personal PSP1
Size estimating Schedule planning
Planning Test report
PSP0.1
Coding standard
The Baseline PSP0 Size measurement
Current process
Personal Time recording
Process improvement
Proposal
Process Defect recording
Defect type standard
Credits
Pressman Slides
Sommerville Slides
Whitten-Bentley Slides