chapter 2 october 14, 1997 1 software as a process zsoftware engineering -- a definition: y[software...
Post on 21-Dec-2015
217 views
TRANSCRIPT
October 14, 1997 1Chapter 2
Software as a Process
Software Engineering -- a definition: [Software engineering is] the establishment and use of sound
engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.
Software Engineering is a layered technology.
October 14, 1997 2Chapter 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.
October 14, 1997 3Chapter 2
Some Generic Engineering Phases
Definition System or information engineering (leading to requirements)
Software project planning Requirements analysis
Development Software design Coding Testing
October 14, 1997 4Chapter 2
Some Generic Engineering Phases
Maintenance Correction -- bugs will appear Adaptation -- to changing operating systems, CPU’s, etc.
Enhancement -- changing customer needs Prevention -- software reengineering
October 14, 1997 5Chapter 2
Some Generic Engineering Phases
Typical activities in these phases Project tracking and control Formal reviews Software quality assurance Configuration management Documentation Reusability management Measurement Risk management
October 14, 1997 6Chapter 2
SEI Software Maturity Model
Level 1: Initial -- The software process is characterized as ad hoc, and occasionally even chaotic. Few processes defined.
Level 2: Repeatable -- Basic project management processes established to track cost, schedule and functionality.
Level 3: Defined -- Process for both management and engineering is documented, standardized and integrated.
Level 4: Managed -- Detailed measures of the process and product quality collected. Both are quantitatively understood and controlled.
Level 5: Optimizing -- Continuous process improvement enabled by quantitative feedback and testing innovative ideas.
October 14, 1997 7Chapter 2
Key Process Areas
Maturity Level 2 Software Configuration Management Software Quality Assurance Subcontract management Project tracking and oversight Software project planning Requirements management
October 14, 1997 8Chapter 2
Key Process Areas
Maturity Level 3 Peer Reviews Intergroup coordination Integrated software management Training program Organization process definition Organization process focus
October 14, 1997 9Chapter 2
Key Process Areas
Maturity Level 4 Software quality management Quantitative process management
Maturity Level 5 Process change management Technology change management Defect prevention
October 14, 1997 11Chapter 2
Waterfall Model
RequirementsRequirements AnalysisAnalysis DesignDesign CodeCode
TestTest
System/Information Engineering
MaintainMaintain
October 14, 1997 17Chapter 2
Other Models
Formal Methods Rigorous mathematical representation of requirements
Provides basis for automatic verification test generation
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, configuration
management, quality assurance management, etc.