Four activities fundamental to software engineering: a coherent set of activities for software production, which leads to production/creation of a software product Four activities fundamental to software engineering: 1. Software Specification 2. Software Design and Implementation 3. Software Validation 4. Software Evolution
1. Software specification - The functionality of the software and constraints on its operation must be defined. 2. Software design and implementation - The software to meet the specification must be produced. 3. Software validation - The software must be validated to ensure that it does what the customer wants. 4. Software evolution - The software must evolve to meet changing customer needs. Software process
Process Description 1. Products - the outcomes of a process activity 2. Roles - reflect the responsibilities of the people involved in the process 3. Pre- and post-conditions - statements that are true before and after a process activity has been enacted or a product produced
Software Process Models
Software Process Models Simplified representation of software process Each process model represents a process from a particular perspective, and thus provides only partial information about that process Framework of the process but not the details of specific activities Abstractions of the process that can be used to explain different approaches to software development
3 Major Software Process Models 1. The waterfall model 2. Incremental development 3. Reuse-oriented software engineering
The Waterfall Model takes the fundamental process activities of specification, development, validation, and evolution Represents them as separate process phases such as requirements specification, software design, implementation, testing, and so on It 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.
The Waterfall Model
Principal stages of waterfall model: Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance
Incremental development This approach interleaves the activities of specification, development, and validation It is 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 By developing the software incrementally, it is cheaper and easier to make changes in the software as it is being developed In a plan-driven approach, the system increments are identified in advance; if an agile approach is adopted, the early increments are identified but the development of later increments depends on progress and customer priorities
Benefits of Incremental development The cost of accommodating changing customer requirements is reduced.
You've reached the end of your free preview.
Want to read all 57 pages?
- Fall '20