Chapter 2 Flashcards
What is software process?
A software process is a structured set of activities required to develop a software system. Note that we are talking about a “software process” – not a “software development process.”
What are four types of fundamental activities in software processes?
Software specification - defining what the system should do;
Software design and implementation - defining the organization of the system and implementing the system;
Software validation - checking that it does what the customer wants;
Software evolution - changing the system in response to changing customer needs.
Process descriptions may include:
Products (what), which are the outcomes of a process activity;
Roles (who), which reflect the responsibilities of the people involved in the process;
Pre- and post-conditions (how), which are statements that are true before and after a process activity has been enacted or a product produced.
What are Plan-driven processes?
Plan-driven processes are processes where all of the process activities are planned in advance and progress is measured against this plan.
What are Agile processes?
In agile processes, planning is incremental and it is easier to change the process to reflect changing customer requirements.
What is software process model?
A software process model is an abstract representation of a process
What types of Software process models are there?
The waterfall model
Incremental development
Integration and configuration
What are features of the Waterfall model?
Plan-driven model. Separate and distinct phases of specification, software design, implementation, testing, and maintenance.
What are features of the Incremental development model?
Specification, development and validation are interleaved. The system is developed as a series of versions (increments), with each version adding functionality to the previous version. May be plan-driven or agile.
What are features of the Integration and configuration model?
Based on the existence of a significant number of reusable components/systems. The system development process focuses on integrating these components into a system rather than developing them from scratch. May be plan-driven or agile.
In practice, most large systems are developed using…
a process that incorporates elements from all Software process models.
What are phases of Waterfall model?
Requirements analysis and definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
What are drawbacks of waterfall model?
Difficult to address change
Very few real-world applications
Benefits of incremental development are:
Lower cost of changes
Frequent feedback
Faster delivery
Problems with incremental development (from the management perspective):
The process is not visible
System structure tends to degrade as new increments are added
Integration and configuration
This approach is based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems.
Process stages of Integration and configuration:
Component analysis;
Requirements modification;
System design with reuse;
Development and integration.
Types of reusable software components:
Web services that are developed according to service standards and which are available for remote invocation.
Collections of objects that are developed as a package to be integrated with a component framework such as .NET or J2EE.
Stand-alone commercial-off-the-shelf systems (COTS) that are configured for use in a particular environment.
Real software processes are …
inter-leaved sequences of technical, collaborative and managerial activities with the overall goal of specifying, designing, implementing and testing a software system.
What is Software specification?
The process of establishing what services are required and the constraints on the system’s operation and development.