版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1Unit 5 Software ProcessSection A: Software Process Models2Introduction A software process is a set of activities that leads to the production of a software product. These activities may involve the development of software from scratch in a standard programming language like Java or C. Increasingly,
2、 however, new software is developed by extending and modifying existing systems and by configuring and integrating off-the-shelf software or system components.3 A software process model is an abstract representation of a software process. Each process model represents a process from a particular per
3、spective, and thus provides only partial information about that process.This section introduces a number of very general process models (sometimes called process paradigms) and presents them from an architectural perspective. That is, we see the framework of the process but not the details of specif
4、ic activities.4 These generic models are not definitive descriptions of software process. Rather, they are abstractions of the process that can be used to explain different approaches to software development. You can think of them as process frameworks that may be extended and adapted to create more
5、 specific software engineering processes.5 The process models covered here are the waterfall model, evolutionary development and component-based software engineering. These three generic process models are widely used in current software engineering practice. They are not mutually exclusive and are
6、often used together, especially for large systems development. Sub-systems within a larger system may be developed using different approaches. Therefore, although it is convenient to discuss these models separately, you should understand that, in practice, they are often combined.6. The waterfall mo
7、del The first published model of the software development process was derived from more general system engineering processes. This is illustrated in Figure 5A-1. Because of the cascade from one phase to another, this model is known as the waterfall model or software life cycle. The principal stages
8、of the model map onto fundamental development activities:7RequirementdefinitionSystem andsoftware design Implementation and unit testingIntegration and system testingOperation andmaintenanceFigure 5A-1: The Software Life Cycle8Requirements analysis and definition. The systems services, constraints a
9、nd goals are established by consultation with system users. They are then defined in detail and serve as a system specification.System and software design. The systems design process partitions the requirements to either hardware or software systems. It establishes an overall system architecture. So
10、ftware design involves identifying and describing the fundamental software system abstractions and their relationships.93. Implementation and unit testing. During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets i
11、ts specification.4. Integration and system testing. The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer.105. Operation and maintenance. Normally
12、 (although not necessarily) this is the longest life-cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors which were not discovered in earlier stages of the life cycle, improving the implementation of system units and enhancing the systems services
13、as new requirements are discovered.11 In principle, the result of each phase is one or more documents that are approved. The following phase should not start until the previous phase has finished. In practice, these stages overlap and feed information to each other. During design, problems with requ
14、irements are identified; during coding design problems are found and so on. The software process is not a simple linear model but involves a sequence of iterations of the development activities. 12 Because of the costs of producing and approving documents, iterations are costly and involve significa
15、nt rework. Therefore, after a small number of iterations, it is normal to freeze parts of the development, such as the specification, and to continue with the later development stages. Problems are left for later resolution, ignored or programmed around. This premature freezing of requirements may m
16、ean that the system wont do what the user wants. It may also leads to badly structured systems as design problems are circumvented by implementation tricks.13 During the final life-cycle phase (operation and maintenance), the software is put into use. Errors and omissions in the original software re
17、quirements are discovered. Program and design errors emerge and the need for new functionality is identified. The system must therefore evolve to remain useful. Making these changes (software maintenance) may involve repeating previous process stages.14 The advantages of the waterfall model are that
18、 documentation is produces at each phase and that is fits with other engineering process models. Its major problem is its inflexible partitioning of the project into distinct stages. Commitments must be made at an earlier stage in the process, which makes it difficult to respond to changing customer
19、 requirements.15 Therefore, the waterfall model should only be used when the requirements are well understood and unlikely to change radically during system development. However, the waterfall model reflects the type of process model used in other engineering projects. Consequently, software process
20、es based on this approach are still used for software development, particularly when the software project is part of a larger systems engineering project.16. Evolutionary Development Evolutionary development is based on the idea of developing an initial implementation, exposing this to user comment
21、and refining it through many versions until an adequate system has been developed (Figure 5A-2). Specification, development and validation activities are interleaved rather than separate, with rapid feedback across activities. 17OutlinedescriptionInitialversionIntermediateversionsFinalversionSpecifi
22、cationValidationDevelopmentConcurrentactivitiesFigure 5A-2: Evolutionary Development18 There are two fundamental types of evolutionary development: 1. Exploratory development where the objective of the process is to work with the customers to explore their requirements and deliver a final system. Th
23、e development starts with the parts of the system that are understood. The system evolves by adding new features proposed by customer.19 2. Throwaway prototyping where the objective of the evolutionary development process is to understand the customers requirements and hence develop a better require
24、ments definition for the system. The prototype concentrates on experimenting with the customer requirements that are poorly understood.20 An evolutionary approach to software development is often more effective than the waterfall approach in producing system that meet the immediate needs of customer
25、s. The advantage of a software process that is based on an evolutionary approach is that the specification can be developed incrementally. As users develop a better understanding of their problem, this can be reflected in the software system. However, from an engineering and management perspective,
26、the evolutionary approach has two problems:21The 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.Systems are often poorly structured. Continual cha
27、nge tends to corrupt the software structure. Incorporating software changes becomes increasingly difficult and costly.22 For a small and medium-sized systems(up to 500,000 lines of code), the evolutionary approach may be the best approach to development. The problems of evolutionary development beco
28、me particularly acute for large, complex, long-life-time systems, where different teams develop different parts of the system. It is difficult to establish a stable system architecture using this approach, which makes it hard to integrate contributions from the teams.23 For large systems, a mixed pr
29、ocess is recommended which incorporates the best features of the waterfall and the evolutionary development models. This may involve developing a throwaway prototype using an evolutionary approach to resolve uncertainties in the system specification. You can then re-implement the system using a more
30、 structured approach. Parts of the system that are well understood can be specified and developed using a waterfall-based process. Other parts of the system, such as the user interface, which are difficult to specify in advance, should always be developed using an exploratory programming approach.24
31、. Component-Based Software Engineering In the majority of software projects, there is some software reuse. This usually happens informally when people working on the project know of designs or code which is similar to that required. They look for these, modify then as needed and incorporate them int
32、o their system. In the evolutionary approach, reuse is often essential for rapid system development. 25 This informal reuse takes place irrespective of the development process that is used. However, in the last few years, an approach to software development called component-based software engineerin
33、g (CBSE), which relies on reuse, has emerged and is becoming increasingly used. 26 This reuse-oriented approach relies on a large base of reusable software components and some integrating framework for these components. Sometimes, these components are systems in their own right (COTS or commercial o
34、ff-the-shelf systems) that may provide specific functionality such as text formatting or numeric calculation. The generic process model for CBSE is shown in Figure 5A-3.27requirements specificationComponentanalysisRequirementsmodificationSystem designwith reuseDevelopmentand integrationSystemvalidat
35、ionFigure 5A-3: Component-Based Software Engineering28 While the initial requirements specification stage and the validation stage are comparable with other processes, the intermediate stages in a reuse-oriented process are different. These stages are:1. Component analysis. Given the requirement spe
36、cification, a search is made for components to implement that specification. Usually, there is no exact match, and the components that may be used only provide some of the functionality required.29 2. Requirements modification. During this stage, the requirements are analyzed using information about the components that have been discovered. They are then modified to reflect the available component
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度公共場所窗簾清洗與保養(yǎng)服務(wù)合同3篇
- 2025年度離婚后子女撫養(yǎng)權(quán)協(xié)商服務(wù)合同3篇
- 2025年度稅收籌劃與稅務(wù)籌劃合規(guī)性審查合同2篇
- 2025年度恐怖劇本定制與特效設(shè)計(jì)合同3篇
- 2024版輕鋼房屋建造協(xié)議模板協(xié)議
- 二零二四商鋪?zhàn)赓U合作協(xié)議:教育培訓(xùn)機(jī)構(gòu)商鋪?zhàn)赓U合同3篇
- 2025年度餐飲品牌連鎖拓展合同范本3篇
- 二零二四年家居裝飾團(tuán)購合同3篇
- 2025年度材料墊資供應(yīng)鏈金融服務(wù)合同3篇
- 2024年鐵礦石采購中介服務(wù)合同樣本
- 使用錯(cuò)誤評估報(bào)告(可用性工程)模版
- 公司章程(二個(gè)股東模板)
- GB/T 19889.7-2005聲學(xué)建筑和建筑構(gòu)件隔聲測量第7部分:樓板撞擊聲隔聲的現(xiàn)場測量
- 世界奧林匹克數(shù)學(xué)競賽6年級(jí)試題
- 藥用植物學(xué)-課件
- 文化差異與跨文化交際課件(完整版)
- 國貨彩瞳美妝化消費(fèi)趨勢洞察報(bào)告
- 云南省就業(yè)創(chuàng)業(yè)失業(yè)登記申請表
- UL_標(biāo)準(zhǔn)(1026)家用電器中文版本
- 國網(wǎng)三個(gè)項(xiàng)目部標(biāo)準(zhǔn)化手冊(課堂PPT)
- 快速了解陌生行業(yè)的方法論及示例PPT課件
評論
0/150
提交評論