2-ch

download 2-ch

of 17

Transcript of 2-ch

  • 8/7/2019 2-ch

    1/17

    October 14, 1997 Chapter 2

    Software as a Process

    Software Engineering -- a definition: [Software engineering is] the establishment and

    use of sound engineering principles in order toobtain economically software that is reliable andworks efficiently on real machines.

    Software Engineering is a layered technology.

  • 8/7/2019 2-ch

    2/17

    October 14, 1997 Chapter 2

    A Layered Technology

    Tools Editors Design aids

    Compilers Computer Aided Software Engineering (CASE)

    Methods

    Includes standards (formal or informal) May include conventions, e.g., low level such as

    naming, variable use, language construct use,etc.

    May involve design methodologies.

  • 8/7/2019 2-ch

    3/17

    October 14, 1997 Chapter 2

    Some Generic EngineeringPhases

    Definition System or information engineering (leading to

    requirements) Software project planning Requirements analysis

    Development

    Software design Coding Testing

  • 8/7/2019 2-ch

    4/17

    October 14, 1997 Chapter 2

    Some Generic EngineeringPhases

    Maintenance Correction -- bugs will appear

    Adaptation -- to changing operating systems,CPUs, etc.

    Enhancement -- changing customer needs Prevention -- software reengineering

  • 8/7/2019 2-ch

    5/17

    October 14, 1997 Chapter 2

    Some Generic EngineeringPhases

    Typical activities in these phases Project tracking and control

    Formal reviews Software quality assurance Configuration management Documentation Reusability management

    Measurement Risk management

  • 8/7/2019 2-ch

    6/17

    October 14, 1997 Chapter 2

    SEI Software Maturity Model

    Level 1: Initial -- The software process is characterizedas ad hoc, and occasionally even chaotic. Fewprocesses defined. Level 2: Repeatable -- Basic project managementprocesses established to track cost, schedule andfunctionality. Level 3: Defined -- Process for both management andengineering is documented, standardized andintegrated. Level 4: Managed -- Detailed measures of the process

    and product quality collected. Both are quantitativelyunderstood and controlled.

    Level 5: Optimizing -- Continuous process improvementenabled by quantitative feedback and testing innovativeideas.

  • 8/7/2019 2-ch

    7/17

    October 14, 1997 Chapter 2

    Key Process Areas

    Maturity Level 2 Software Configuration Management

    Software Quality Assurance Subcontract management Project tracking and oversight Software project planning Requirements management

  • 8/7/2019 2-ch

    8/17

    October 14, 1997 Chapter 2

    Key Process Areas

    Maturity Level 3 Peer Reviews

    Intergroup coordination Integrated software management Training program Organization process definition Organization process focus

  • 8/7/2019 2-ch

    9/17

    October 14, 1997 Chapter 2

    Key Process Areas

    Maturity Level 4 Software quality management

    Quantitative process management

    Maturity Level 5 Process change management

    Technology change management Defect prevention

  • 8/7/2019 2-ch

    10/17

    October 14, 1997 Chapter 2

    Software Process Models

  • 8/7/2019 2-ch

    11/17

    October 14, 1997 Chapter 2

    Waterfall Model

    Requirements Analysis Design Code

    Test

    System/InformationEngineering

    Maintain

  • 8/7/2019 2-ch

    12/17

    October 14, 1997 Chapter 2

    The Rapid Prototyping Model

  • 8/7/2019 2-ch

    13/17

    October 14, 1997 Chapter 2

    Evolutionary Process Models

    The Incremental Model

  • 8/7/2019 2-ch

    14/17

    October 14, 1997 Chapter 2

    Evolutionary Process Models

    The Spiral Model

  • 8/7/2019 2-ch

    15/17

    October 14, 1997 Chapter 2

    Evolutionary Process Models

    The Component Assembly Model

  • 8/7/2019 2-ch

    16/17

    October 14, 1997 Chapter 2

    Evolutionary Process Models

    The Concurrent Development Model

  • 8/7/2019 2-ch

    17/17

    October 14, 1997 Chapter 2

    Other Models

    Formal Methods Rigorous mathematical representation of

    requirements

    Provides basis for automatic verification testgeneration

    Fourth Generation Techniques Use code generators to produce specific parts of

    product Process Technology Provides a variety of tools to aid software

    developers, e.g., workload flow, configurationmanagement, quality assurance management,

    etc.