Software development processes - PowerPoint PPT Presentation

About This Presentation
Title:

Software development processes

Description:

'I guess if you had to pick one thing out that is most ... Verified by activities that are essential to prove the consistence of. x-code and the related ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 53
Provided by: frank420
Category:

less

Transcript and Presenter's Notes

Title: Software development processes


1
Software development processes
  • People
  • Products
  • Processes Life-cycle models
  • Traceability

2
Software development
People
Processes
Products
3
The players
  • Senior managers define business issues
  • Technical managers Plan, motivate, organize,
    control developers
  • Developers (Practitioners) Engineer product
  • Customer Specifies requirements
  • End users Use the product

4
Three engineering vice presidents
  • I guess if you had to pick one thing out that is
    most important in our environment. Id say its
    not the tools that we use, its the people
  • The most important ingredient that was
    successful on the project was having smart
    people....very little else matters in my opinion
  • The only rule I have in management is to ensure
    I have good people - real good people - and that
    I grow good people

5
What are companies looking for?
  • Problem solving skills
  • Being able to work in all phases
  • Soft skills
  • communication
  • teamwork
  • motivation to be productive
  • project management
  • Technical skills
  • OO technology
  • Databases
  • Conceptual design

6
Software development processes
  • People
  • Products
  • Processes Life-cycle models
  • Traceability

7
Which product or lifecycle model?
  • There exist many lifecycle models that differ in
  • number / type of the resulting physical products
    (documents)
  • number / type / coordination of the steps of
    development

8
Product reference model
  • Overlap of product models between different
    life-cycle modelsa logical model of software
    products is the base of a reference model for
    software development

9
V - model for documentation of large software
products
10
Problem description
  • Which problems exist for the customer?
  • Which of those shall be solved by the software
    system?
  • Problems in problem descriptions
  • Not precise - Incomplete
  • Ambiguous - Superficial
  • Redundant - Not on target

11
System requirements
  • Based on problem description .... and
    communication with customer
  • What functional and non-functional
    characteristics are expected from the software
    system?
  • What Black box description
  • User requirements describes system requirements
    from the users perspective
  • Developer requirements describes system
    requirements from the developers perspective
    (contract!)

12
System design
  • Describes the structure of the system that
    fulfills given developer requirements
  • components
  • component interfaces
  • component requirements
  • How White box description
  • Component requirements describes component
    interfaces

13
Components design
  • Describes the structure of a component that
    fulfills given component requirements
  • data structure
  • algorithms
  • How (Very detailed)

14
Components code
  • How can a component be realized on a concrete
    execution engine (e.g. Java) ?
  • Source code

15
Validation of results
16
Software products (7)
  • X is developed inDeveloped by activities that
    are essential to build the x-code ( construction
    plan for executable x)

17
Software products (8)
  • X is verified againstVerified by activities
    that are essential to prove the consistence of
    x-code and the related x-requirements

18
Software products (9)
  • X is integrated inIntegrated by activities
    that are essential to create an executable
    component from the x-code (compiling, binding,
    loading, debugging)

19
Software products (10)
  • X is validated againstValidated by activities
    that are essential to convince oneself or others
    that the executable component does not contain
    any inconsistencies with the x-requirements

20
V - model for documentation of large software
products
21
Software development processes
  • People
  • Products
  • Processes Life-cycle models
  • Traceability

22
Processes are everywhere
  • Process connected series of actionsseries
    of operations deliberately undertaken
  • A S Hornby Oxford Advanced Learners
    Dictionary of Current English, Oxford University
    Press
  • Work processes
  • Production processes
  • Development processes
  • Social processes

23
Software engineering layers
24
Generic View
  • Definition phase What
  • Requirements analysis
  • Project planning
  • Development phase How
  • Software design
  • Coding
  • Testing
  • Maintenance

25
Umbrella activities
  • Software project tracking and control
  • Formal technical reviews
  • Software quality assurance
  • Software configuration management
  • Document preparation and production
  • Managing software reuse
  • Risk management

26
Common misconceptions about the software process
  • We must start with firm requirements
  • The problems are technical
  • We need better people
  • Software management is different

27
The phases of a problem solving loop
28
Process model
  • Describe development strategy encompassing
  • process
  • methods
  • tools
  • Bring order into chaotic activity
  • Assist in controlling and coordination of SE
    projects

29
The linear sequential model (Waterfall model)
30
Linear sequential model (2)
  • Systems engineering Software is part of a larger
    system
  • Software requirements analysis
  • information domain, function, behavior,
    performance, interfacing
  • Design
  • Code generation (ev. Automatic)
  • Testing

31
Problems with the linear sequential model
  • Real projects rarely follow a sequential flow
  • Stating all requirements at the beginning of a
    project is difficult
  • Customer must have patience
  • Applicable for projects that are well understood

32
The prototyping paradigm
build / revise mock-up
listen to customer
customer test-drives mock-up
33
Prototyping model (2)
  • Only general objectives available
  • Being unsure about
  • efficiency of an algorithm
  • human-computer interaction
  • Often used for identifying requirements
  • Throw-away prototype (Risk?)
  • Fast decisions are not always good decisions!
  • Often Code generators, report generators etc.
  • fast enough?

34
Evolutionary software process models
  • Software evolves over time
  • Straight path to an end product is unrealistic
  • Tight market deadlines
  • Deliver limited version
  • Core product requirements well understood
  • Need for extensions foreseeable

35
The incremental model
Increment 1
Increment 2
.
36
Incremental model
  • Combines elements of the linear model and
    prototyping
  • Produces deliverable increments
  • First increment often core product
  • Focuses on operational product (not throw-away
    prototype)
  • Used when not enough resources are available to
    deliver the complete product in time
  • Increments help to manage technical risks (e.g.
    currently unavailable hardware)

37
Spiral model
38
Spiral model (2)
  • Customer communication Establish effective
    communication
  • Planning Define resources, timelines etc.
  • Risk analysis Assess technical and management
    risks
  • Construction release construct, test, install,
    provide user support
  • Customer evaluation obtain feedback

39
Spiral model (3)
  • Couples iterative nature of prototyping with
    controlled and systematic aspect of the linear
    sequential model
  • Early iterations may be paper models or
    prototypes
  • Can be used throughout the life of the product
  • Reduces risk if properly applied

40
The component assembly model
41
Component assembly model (2)
  • Object technologies provide technical basis
  • Software reuse reliability, cost reduction
  • Problems
  • Finding components
  • Are components reusable?
  • Adaptation

42
The concurrent development model
43
Concurrent development model
  • Tasks have states and are carried out in parallel
  • Process support system (assignment) supports this
    model
  • Assignment is developed following this model

44
The formal methods model
  • Specify, develop, verify a system by applying a
    rigorous mathematical foundation
  • Discovers ambiguity, incompleteness,
    inconsistency by mathematical analysis
  • Problems
  • Time consuming and expensive
  • Education insufficient
  • No basis for communication with customer

45
Process technology tools allow ...
  • to analyze current processes
  • to organize work tasks
  • to control and monitor progress
  • to generate To-Do lists

46
Software development processes
  • People
  • Products
  • Processes Life-cycle models
  • Traceability

47
Changes Happen
  • Software is not stable over time
  • Correction defect correction
  • Adaptation Environment changes
  • Enhancement New requirements
  • Prevention Overcome deteriorating software
  • Software and related documents have to be kept up
    to date

48
What is Impact Analysis?
  • Software change impact analysis estimates what
    will be affected in software and related
    documentation if a proposed changed is made
    Bohner/Arnold Software Change Impact Analysis,
    Preface, IEEE Computer Society Press, 1996

49
Traceability
  • Traditionally Impacts are determined by people
    using their heads
  • Now Repositories store interdependent software
    artifacts
  • Relationships between artifacts are often
    implicit
  • Impact analysis makes relationships explicit

50
Traceability illustration
  • vertical between abstraction levels
  • horizontal on abstraction levels

51
Examples of impact analysis techniques
  • cross-referenced listings to determine parts that
    reference a variable of procedure
  • program slicing to determine the subset of a
    program that can affect the value of a variable
  • browsing of (hyper linked) files
  • using traceability matrixes
  • configuration management systems to find and
    track changes
  • consulting design and specification documents to
    determine the scope of a change

52
Traceability matrix
Req 1 Req 2 Design 1 Design 2 Design 3 Code
1 Code 2 Code 3 Test 1 Test 2
Req 1 1 1 1 Req 2 1 Design 1 1 1 Design
2 1 1 Design 3 Code 1 1 Code
2 Code 3 1 Test 1 Test 2 1
Write a Comment
User Comments (0)
About PowerShow.com