ii - software processes Flashcards
coherent set of activities for software production
software process
process descriptions may also include…
- products
- roles
- pre- and post-conditions
[1] discuss, each approach is suitable for different types of software
Boehm and Turner (2003)
what are the process models covered?
- waterfall model
- incremental development
- reuse-oriented software engineering
fundamental process activities of specification,
development, validation, and evolution and represents them as separate process phases such as requirements specification, software design, implementation, testing, and so on.
waterfall model
interleaves the activities of specification,
development, and validation. The system is developed as a series of versions (increments), with each version adding functionality to the previous version.
incremental development
This approach is based on the existence of a significant number of reusable components. The system development process focuses on integrating these components into a system rather than developing
them from scratch.
Reuse-oriented software engineering
The [1] model is an example of a plan-driven process—in principle, you must plan and schedule all of the process activities before starting work on them.
waterfall
enumerate
principal stages of waterfall model
- requirements analysis and definition
- system and software design
- implementation and unit testing
- integration and system testing
- operation and maintenance
An example of a formal development process, originally developed by IBM; each software increment is formally specified and this specification is transformed into an
implementation
Cleanroom process
Description: A sequential software development model that follows distinct phases, producing documentation at each stage.
Key Feature: Consistency with engineering process models, visibility for managers to monitor progress, but inflexible partitioning of the project.
waterfall model
Description: Major problem lies in the inflexible partitioning of the project into distinct stages.
Key Challenge: Commitments made early in the process, difficulty in responding to changing customer requirements.
Use Case: Suitable when requirements are well understood and unlikely to change radically during system development.
Waterfall Model Challenges
Description: A variant of the waterfall model involving creating a mathematical model of a system specification, refined into executable code using mathematical transformations.
Use Case: Particularly suited for systems with stringent safety, reliability, or security requirements.
Advantage: Simplifies the production of a safety or security case, demonstrating compliance with requirements to customers or regulators.
Formal System Development
Description: Typically applied to the development of safety-critical or security-critical systems, requiring specialized expertise.
Consideration: Not generally cost-effective for the majority of systems, but beneficial for projects with stringent safety or security requirements.
Examples: B method (Schneider, 2001; Wordsworth, 1996).
Processes Based on Formal Transformations
based on the idea of developing an initial implementation, exposing this to user comment and evolving it through several versions until an adequate system has been developed
incremental development
From a management perspective, the incremental approach has two problems
- process is not visible
- system structure tends to degrade as new increments are added
stages in reuse-oriented process
- component analysis
- requirements modification
- system design with reuse
- development and integration
3 types of software component in reuse-oriented process
- web services
- collections of objects developed as package
- stand-alone software systems
Specifications are written on cards.
Executable tests are developed before the actual program.
Evolution may involve substantial system restructuring or refactoring.
extreme programming
particularly critical stage of the software process as errors at this stage inevitably lead to later problems in the system design and implementation.
Requirements engineering
programs that are used to support software engineering process activities. These tools therefore include design
editors, data dictionaries, compilers, debuggers, system building tools, etc.
Software development tools (sometimes called Computer-Aided Software Engineering or CASE tools)
4 main activities in requirements engineering process
- feasibility study
- requirements elicitation and analysis
- requirements specification
- requierments validation
description of the structure of the software to be implemented, the data models and structures used by the system, the interfaces between system components
and, sometimes, the algorithms used.
software design
4 activities part of design process for information systems
- architectural design
- interface design
- component design
- database design