Software Processes Flashcards
what is a process
series of activities
Name some characteristics of processes
pescribes all major activities.
Has entry and exit criteria
organized in a sequence
contraints may apply
what is a life cycle
process involves the building of some product.
What is the software process
structured set of activities require to develop a software system consisting of specification, design and implementation, validation and evolution.
What is a software process model
abstract representation of a process.
What is the waterfall problem
seperate and distinct phases of specification and development
Problems with waterfall problem
difficult of accomodating change after the process is underway - inflexible partioning. static view of requirements so ignores changing needs. Lack of user involvement. Problems arent detected until late in the process.
Where is the waterfall model used in?
military and aerospace industries
When is it appropriate to use the waterfall model?
when the final requirements are well understood which is rare
Advantages of waterfall model
easy to remember
each step is an important step in software development
squence is important. Design before code.
What is evolutionary development
based upon the idea of developing an initial implementation, exposing to user and refining it based on their response.
what is throw away prototyping
understand system requirements. Start with poorly understood requirements. Develop quick and dirty system, expose to user comment, refine.
Problems with evolutionary development
lack of process visibility, systems are sometimes poorly structred, special skills may be required. Used in all types of system but rare in safety critical.
What is formal systems development?
based on the transformation of a mathematical specification.
what does correctness preserving mean in terms of transformation?
program conforms to its specification. Embodied in the ‘cleanroom’ approach.
Problems with formal system development
need for specialised skill and training. (higher inital cost).
can be difficult to formally specify aspects of the system like user interface
can be more time consuming
Used in critical systems
what is incremental development?
development and delivery is broken down into increments. User requirements are prioritised and once development is started the requirements are frozen so later increments continue to evolve.
name some advantages of increment development
customer value
early increments
lower risk of overall project failure
highest priority system services tend to recieve more testing
In reality, which method of development to software use and why?
Prototyping and iterative buiding as it reduces the risk of making wrong product, allows the software to undergo more testing, less chance of inventory loss.
what is the software specification
process of establishing what services are required and the constraints.
Name some design process activities
architectural design (sub systems) abstract specification interface design component design data structure design algorithm design
what is a model
graphical view of the operation/structure of the system. Can be dynamic or static.
Why have models?
formalises the type and format of require info.
easier to get a big picture than text
do not rely on natural language.
what is verification, validation and system testing
verification - systems conforms to its specifications
validation - meets the requirements of the user
system testing involves executing the system with test cases