Presentation is loading. Please wait.

Presentation is loading. Please wait.

The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.

Similar presentations


Presentation on theme: "The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve."— Presentation transcript:

1 The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve the development of software from scratch, or extending and modifying existing systems. There are fundamental activities which are common to all software processes. These are: 1

2 The software process 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. 2

3 Generic software process models A software process model is an abstract representation of a software process. Each process model represents a process from a particular perspective, provides partial information about used to develop different parts of the system. The process models are: 3

4 The process models 1- The waterfall model : Separate and distinct phases of specification and development. 2- Evolutionary development : Specification, development and validation are interleaved. 3- Component-based software engineering : The system is assembled from existing components. - There are many variants of these models e.g. formal model. 4

5 Waterfall model 5

6 Waterfall model phases - First model of the software development process was derived from more general system engineering process - The principal stages of the model map onto fundamental development activities: 1- Requirements analysis and definition: The system’s services, constraints and goals are established by consultation with system users. 2- System and software design : It involves identifying and describing the fundamental software system abstractions and their relationships. 6

7 Waterfall model phases 3- Implementation and unit testing : The system design is realized as a set of programs or program units. Unit testing involves that each unit meets its specification. 4- Integration and system testing : The individual program units or programs are integrated and tested as a complete system to ensure that as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer. 5- Operation and maintenance : The system is installed and put into practical use maintenance involves correcting errors which were not discovered in earlier stages. The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. One phase has to be complete before moving onto the next phase. 7

8 Waterfall model problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. Few business systems have stable requirements. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites. 8

9 Evolutionary development Evolutionary development is based on the idea of developing an initial implementation, exposing this to user comment and refining this through many versions until an adequate system has been developed. Development and validation activities are carried out concurrently with rapid feedback across these activities. There are two types of evolutionary development: 9

10 Evolutionary development 1- Exploratory development : Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer. 2- Throw-away prototyping : Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed. 10

11 Evolutionary development 11

12 Evolutionary development There are three problems: 1- The process is not visible : Managers need regular deliverables to measure progress. If systems are developed quickly, it is not cost-effective to produce documents which reflect every version of the system. 2- Systems often poorly structured : Continual change tends to corrupt the software structure. Incorporating software changes becomes increasingly difficult and costly. 3- Special tools and techniques may be required : These may be incompatible with others and few people may have the skills to use them. Applicability : ( For small or medium-size interactive systems; For parts of large systems (the user interface); For short-lifetime systems ). 12

13 Component-based software engineering Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. Reuse-oriented approach relies on a large base of reusable software components which can be accessed. 13

14 CBSE Process stages 1- Component analysis : Given the requirements specification, a search is made for components to implement that specification. Usually, there is not an exact match and the components may provide some of required functions. 2- Requirements modification : The requirements are analyzed using information about the components which have been discovered. They are then modified to reflect the available components. 3- System design with reuse : The framework of the system is designed or an existing framework is reused. 14

15 CBSE Process stages 4- Development and integration : Software which cannot be bought is developed; the components and COTS are integrated to create the system. This approach is becoming increasingly used as component standards have emerged. The advantages are: 1- reduce the amount of software to be developed 2- reduce the cost and risks 3- lead to faster delivery of the software 15

16 Reuse-oriented development 16

17 Process iteration For most large system, there is a need to use different approaches for different parts of the system, so a hybrid model must be used. There is also a need to support process iteration where parts of the process are repeated as system requirements. Iteration can be applied to any of the generic process models. Two (related) approaches – Incremental delivery; – Spiral development. 17

18 Incremental delivery In an incremental development process, customers identify, in outline, the services to be provided by the system. A number of delivery increments are then defined, with each increment providing a subset of the system functionality. The allocation of services to increments depends on the service priority. The highest priority services are delivered first to the customer. The requirements for the services to be delivered in the first increment are defined in detail. 18

19 Incremental delivery Further requirements analysis for later increments can take place but requirements changes for the current increment are not accepted. Customers can classify their requirements for later increment. A new increments are integrated with existing increments so that the system functionality improves with each delivered increment. 19

20 Incremental development 20

21 Incremental development advantages The advantages are: 1- customers do not have to wait until the entire system is delivered. 2- customers can use the early increments as a form of prototype. 3- there is a lower risk of overall project failure 4- as the highest priority services are delivered first and later increments are integrated with them, the most important system services receive the most testing. 21

22 Spiral development Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. Risks are explicitly assessed and resolved throughout the process. 22

23 Spiral model of the software process 23

24 Spiral model sectors Each loop in the spiral is split into four sectors: 1- Objective setting Specific objectives for that phase of the project are defined. Constraints on the process and the product and identified. A detailed management plan is drawn up. Project risks are identified. Alternative strategies depending on these risks may be planned. 2- Risk assessment and reduction For each identified project risks, a detailed analysis is carried out. Steps are taken to reduce the risk. (Risk is something can go wrong). 24

25 Spiral model sectors 3- Development model for the system is then chosen. 4- Planning The project is reviewed and a decision made whether to continue a further loop of the spiral. If it is decided to continue, plans are drawn up for the next phase of the project. 25


Download ppt "The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve."

Similar presentations


Ads by Google