SE_lec4.pdf
Document Details
Uploaded by UserFriendlyJadeite26
Tags
Full Transcript
Software Processes Lecture 4 Chapter 2 Software Processes 1 Topics covered ✧ Software process models ✧ Process activities ✧ Coping with change ✧ The Rational Unified Process ▪ An example of a modern software process. Chapter 2 Software Processes 2 The...
Software Processes Lecture 4 Chapter 2 Software Processes 1 Topics covered ✧ Software process models ✧ Process activities ✧ Coping with change ✧ The Rational Unified Process ▪ An example of a modern software process. Chapter 2 Software Processes 2 The software process ✧ A structured set of activities required to develop a software system. ✧ Many different software processes but all involve: ▪ Specification – defining what the system should do; ▪ Design and implementation – defining the organization of the system and implementing the system; ▪ Validation – checking that it does what the customer wants; ▪ Evolution – changing the system in response to changing customer needs. ✧ A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective. Chapter 2 Software Processes 3 Plan-driven and agile processes ✧ Plan-driven processes are processes where all of the process activities are planned in advance and progress is measured against this plan. ✧ In agile processes, planning is incremental and it is easier to change the process to reflect changing customer requirements. ✧ In practice, most practical processes include elements of both plan-driven and agile approaches. ✧ There are no right or wrong software processes. Chapter 2 Software Processes 4 Software process models ✧ The waterfall model ▪ Plan-driven model. Separate and distinct phases of specification and development. ✧ Incremental development ▪ Specification, development and validation are interleaved. May be plan-driven or agile. ✧ Reuse-oriented software engineering ▪ The system is assembled from existing components. May be plan-driven or agile. ✧ In practice, most large systems are developed using a process that incorporates elements from all of these models. Chapter 2 Software Processes 5 The waterfall model Chapter 2 Software Processes 6 Waterfall model phases ✧ There are separate identified phases in the waterfall model: ▪ Requirements analysis and definition ▪ System and software design ▪ Implementation and unit testing ▪ Integration and system testing ▪ Operation and maintenance ✧ The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. In principle, a phase has to be complete before moving onto the next phase. Chapter 2 Software Processes 7 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. ▪ In those circumstances, the plan-driven nature of the waterfall model helps coordinate the work. Chapter 2 Software Processes 8 Incremental development Chapter 2 Software Processes 9 Incremental development benefits ✧ The cost of accommodating changing customer requirements is reduced. ▪ The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model. ✧ It is easier to get customer feedback on the development work that has been done. ▪ Customers can comment on demonstrations of the software and see how much has been implemented. ✧ More rapid delivery and deployment of useful software to the customer is possible. ▪ Customers are able to use and gain value from the software earlier than is possible with a waterfall process. Chapter 2 Software Processes 10 Incremental development problems ✧ 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 that reflect every version of the system. ✧ System structure tends to degrade as new increments are added. ▪ Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly. Chapter 2 Software Processes 11 Reuse-oriented software engineering ✧ Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. ✧ Process stages ▪ Component analysis; ▪ Requirements modification; ▪ System design with reuse; ▪ Development and integration. ✧ Reuse is now the standard approach for building many types of business system Chapter 2 Software Processes 12 Reuse-oriented software engineering Chapter 2 Software Processes 13 Types of software component ✧ 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 software systems (COTS) that are configured for use in a particular environment. Chapter 2 Software Processes 14 Boehm’s spiral model ✧ 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. Chapter 2 Software Processes 15 Spiral model sectors ✧ Objective setting ▪ Specific objectives for the phase are identified. ✧ Risk assessment and reduction ▪ Risks are assessed and activities put in place to reduce the key risks. ✧ Development and validation ▪ A development model for the system is chosen which can be any of the generic models. ✧ Planning ▪ The project is reviewed and the next phase of the spiral is planned. Chapter 2 Software Processes 16 Boehm’s spiral model of the software process Chapter 2 Software Processes 17 Spiral model usage ✧ Spiral model has been very influential in helping people think about iteration in software processes and introducing the risk-driven approach to development. ✧ In practice, however, the model is rarely used as published for practical software development. ???? ✧ Disadvantages of Spiral Model ▪ For risk, analysis phase required an expert person to make an analysis. ▪ Not useful for small projects. ▪ Project duration and cost could be infinite because of the spiral feature. ▪ Documentation could be lengthy. Chapter 2 Software Processes 18