Software Process - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Software Process

Description:

Some of the activities are still highly creative and heavily dependent on the people. The major software activities are (each of which may be a process itself) ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 17
Provided by: Frank47
Category:
Tags: process | software

less

Transcript and Presenter's Notes

Title: Software Process


1
Software Process
  • Software Process is a set of ordered activities
    or tasks utilized to produce a software solution.
  • Some of the activities are still highly creative
    and heavily dependent on the people.
  • The major software activities are (each of which
    may be a process itself)
  • Collecting and specifying the requirements
  • Develop an architecture and a design
  • Implement the design in terms of code, document,
    etc.
  • Validate (testing) the solution(s)
  • Integrating the sub-solutions
  • Deliver and install the solution
  • Supporting the solution, fixing problems, and
    enhancing-evolving the solution(s)

2
Quick Outline of Major Software Activities
  • Requirements
  • Elicit and collect
  • Analyze and specify
  • Validate and document
  • Design
  • Architecture of major components and interfaces
  • Analysis, specify and validate
  • Component design, specify, and validate
  • Interface design, specify and validate
  • Data structure and Data Base design, specify, and
    validate
  • Algorithm design, specify and validate
  • Code and document
  • program the executables and unit test
  • create the non-executables such as help text,
    messages, and manuals

3
Quick Outline of Major Software Activities
  • Validation and Testing
  • Unit , component, and system tests
  • test plan and test case generation
  • test execution, error reporting, and fix
    management
  • Integration
  • promote from unit to component to system
  • locking and parts management
  • packaging the system
  • Delivery and Installation of solution
  • loading the system
  • initialization of the system
  • Support, Fix and Enhancements
  • customer support process
  • problem fix process
  • enhancements and multiple release(s) process

4
Where do People Start with Process?
  • Most people will ask what is the problem?
  • Then jump into figuring the solution - low level
    design and coding.

Low Level Design Coding
Design
Testing
Requirements
Integration
5
Why Have a Software Process ?
  • Large Software development requires a group of
    people - coordination of activities is a key
  • It imposes a set of structure and consistency
  • forms a common understanding of the ordered
    tasks, constraints, and needed resources
  • allows the detection of omission and problems in
    the development of solution
  • clarifies the goals of the software solutions via
    emphasizing and modifying the process (e.g.
    introducing review for quality)
  • allows the tailoring and improvement for
    development of different types of software.
  • It allows us to capture our experiences and reuse
    or pass it on to others

6
Software Process Models
  • Process Model is a high level abstraction of the
    actual activities performed in some sequence(s)
  • Some major models are
  • Waterfall
  • Evolutionary (Prototyping)
  • Incremental and Iterative
  • Spiral
  • Agile (X-treme Programming)
  • Minor models
  • Formal - Transformational
  • Re-use and Component based

7
Waterfall Process
  • The most familiar and modeled after hardware and
    manufacturing process
  • This process with each stage not starting until
    the previous one is completed was attractive
  • close to and easy to track for management
  • deliverables are well defined
  • There are some severe drawbacks
  • the actual testing of the code comes very late
    in the process
  • customer interaction did not happen except at the
    requirements phase
  • development stages are not that crisp in that
    more interaction and iteration is required
    because software development has no manufacturing
    except at the packaging and copying stage

Requirements
Design
Program Unit Test
(Spec.)
Test
Integrate System Test
(Spec.)
(Code)
Package Release
(Spec. result)
(System)
(System)
8
Prototyping Model
  • Allows better understanding and revisions of the
    users requirements, especially UI. (requirements
    may also be provided incrementally)
  • Allows better explorations of feasibility of
    unknown areas.
  • Continual changes make overall design structure
    difficult to see and manage may also need
    special tools.
  • May be coupled with waterfall or any other
    processes.

Requirements
Design
Integrate System
changes
changes
Prototype
Prototype
Prototype
9
Incremental and Iterative Model
  • Many reasons to develop the solution in phases
  • Delivering some parts (e.g. high priority) fast
    and early
  • Getting reactions early and being able to adjust
  • Some early training and familiarization of users
  • Allows some amount of technology and skill
    staggering
  • There are 2 major approaches
  • Incremental breaking the requirements into
    separate vertical application parts develop and
    deliver the parts as fully functional application
    subsystems.
  • Iterative break the system into separately
    designed horizontal cross application parts
    (applications with simple screens with little
    error recovery, enhanced error messages and
    context sensitive help, enhanced performance and
    speed, etc..) develop and deliver the parts as
    complete, cross application components
  • Sometimes we need to combine iterative with
    incremental to provide a consistent structure of
    horizontal services

10
Spiral Model
  • Introduced by Barry Boehm at TRW to combine
    development process with enhanced risk
    manahement.
  • There are four major aspects
  • planning
  • setting goals and looking at alternatives
  • evaluate the alternatives and the risks
  • develop and test
  • Each of development phases such as requirements,
    design, etc. went through the four aspects.

Setting goal alternatives
Prototype analyze risks
Design
Develop Test
Plan
11
Extreme Programming (XP)
  • A Programming practice or set of principles
    originated by Kent Beck in the mid-90s.
  • Based on the concept of quick and constant
    Feedback Mechanism involving
  • Planning Game (Small Units of Requirements)
  • Onsite Customer (Immediate and better feedback)
  • Metaphor (Use one set of metaphor for
    design/architecture)
  • Simple Design (Just enough to cover whats
    needed)
  • Coding Standard (Facilitates better
    communication)
  • Collective Code Ownership (Peer pressure to
    improve code)
  • Pair Programming (Feedback and shared
    improvements)
  • Refactoring (Continuous examination for
    duplicative code)
  • Continuous Functional and Unit Testing (100
    completion)
  • Continuous Integration (integrating small
    functional releases)
  • 40 hour work (high morale and energy level)

12
Extreme Programming Process
Onsite Customers
Simple Design
Coding standards
Planning Game

Pair Programming
Functional Unit Test
Small Release
System Metaphors
Continuous Integration
Refactoring
Collective Code Ownership
Larger Release
Adhere to 40 hour work week as much as possible !
13
Minor Process Models
  • Formal process model
  • requires a very precise and formal specification
    of requirements, followed by transformation into
    design (with formal design notation) and then
    into program code.
  • The transformations may be shown to be correct
    - very complex and difficult tasks.
  • Re-Use and Component based model
  • major concept is to ensure that existing
    solutions such as (COTS) commercial off-the shelf
    solutions have been taken into account.
  • May have to compromise the requirements - - needs
    special skills to handle this
  • Interface design and integration is a continuous
    process

14
Process Study Improvements
  • Process Modeling and Studying
  • building static models to depict understand the
    process model
  • building dynamic models to run and predict
    outcomes of process model
  • Process improvements and enforcement
  • ISO 9000
  • CMM and CMMI

15
Studying Process or Sub-Process
Pre- conditions
Post- conditions
Process or Sub-process Description
Outputs
Inputs
Measurements of Success - schedule reduction -
cost reduction - improved quality - etc.
16
How Do We Describe the Process
  • Pre and Post conditions how much do we specify
    (people skills, tools readiness, previous process
    completion status, etc.)
  • Input all the inputs and to what degree
  • Outputs all the outputs and to what degree
  • Process Description how detailed how should
    it be represented (graphical, textual, etc.)
  • Should all these descriptions be static
    descriptions or dynamic and possibly executable
    ? (Leon Osterweils proposal)
Write a Comment
User Comments (0)
About PowerShow.com