软件开发过程概述报告课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件开发过程概述报告课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 过程 概述 报告 课件
- 资源描述:
-
1、软件开发过程实践软件开发过程实践neusoft.2011软件开发过程概述软件开发过程概述 Beyond Technology南海东软信息技术学院2012.03第1页,共82页。软件开发过程实践软件开发过程实践neusoft.2011本节教学目标 本节的目标是介绍软件过程的思想。学习本节,需要了解以下内容:软件过程和软件过程模型的概念 几个一般的软件过程模型及它们的使用范围 软件需求、软件开发、测试和进化中所涉及到的活动概貌第2页,共82页。软件开发过程实践软件开发过程实践neusoft.2011本节主要内容 什么是软件过程 软件过程与软件工程的关系 什么是软件过程模型 过程反复 过程活动第3页
2、,共82页。软件开发过程实践软件开发过程实践neusoft.2011几个概念 什么软件:计算机程序和相关文档。软件产品可为特定客户或通用市场开发 什么是软件工程:软件工程是关于软件生产的各个方面的工程学科 什么是软件过程:以软件开发和进化为目的的一系列活动 什么是软件过程模型:以特定角度提出的软件过程的简化表示形式第4页,共82页。软件开发过程实践软件开发过程实践neusoft.2011软件过程 软件过程是复杂的,像所有智力过程一样,它依赖于人的判断 软件过程具有极大的差异型。没有一个理想的过程,并且不同的机构采用的是完全不同的软件开发方法。对于一些系统,需要使用一种非常结构化的开发过程;而对
3、于业务系统,由于需求的变更频繁,采用一个灵活、敏捷的过程可能更有效第5页,共82页。软件开发过程实践软件开发过程实践neusoft.2011软件过程 虽然不同软件过程有很大的差异,但是有些基本活动还是所有软件过程都具有的。它们是:软件描述:软件的功能以及软件操作上的约束必须定义 软件设计和实现:软件一定要按照描述来生产 软件有效性验证:软件要被确定是有效的,即软件能做客户想要的事情 软件进化:软件一定按客户需要的变更来进化第6页,共82页。软件开发过程实践软件开发过程实践neusoft.2011软件过程模型 软件过程模型是软件过程的抽象表示法。每个过程模型从一个特定的角度表现一个过程,只提供过
4、程的某一侧面的信息。从体系结构的角度来分析一些非常一般的过程模型,来解释不同的软件开发方法。在实际的开发过程中,往往将这些模型看做过程框架,对其进行扩展并匹配它们来创建符合实际环境的专用的软件开发过程。讨论以下过程模型:瀑布模型 进化式开发 基于组件的软件工程这三个一般模型广泛的用于当前的软件工程实践。它们相互不排斥,而且经常一起使用,尤其是在大型系统开发当中。第7页,共82页。软件开发过程实践软件开发过程实践neusoft.2011瀑布模型 这个模型采用一些基本的过程活动,即描述、开发、有效性验证和进化,并且使用单独的过程阶段(如需求描述、软件设计、实现和测试等阶段)表现这些活动。该模型图从
5、一个阶段到另一个阶段逐次下降,因此命名为“瀑布模型”或软件生命周期模型:第8页,共82页。软件开发过程实践软件开发过程实践neusoft.2011瀑布模型 需求分析与定义:通过咨询系统用户建立系统的服务、约束和目标。并对其详细定义从而为系统描述服务 系统和软件设计:系统设计过程区分硬件和软件系统的需求。它建立一个总体的系统体系结构。软件设计包括识别和描述一些基本的软件系统的抽象及其之间的关系第9页,共82页。软件开发过程实践软件开发过程实践neusoft.2011实现和单元测试:在这个阶段,软件设计是作为一组程序或者程序单元实现的,单元测试就是检验每个单元是否符合描述 集成和系统测试:集成单个
6、的程序单元或者程序,并对他能够整体进行测试以确保其满足需求。在测试之后,软件系统交付给客户使用运行和维护:正常情况下(虽然不是必须的),这是一个具有最长生命周期的阶段。系统被安装并且进入实际的使用中。维护包括改正在早期各阶段末发现的错误,改善系统单元的实现,当新的需求出现时提供系统的服务能力第10页,共82页。软件开发过程实践软件开发过程实践neusoft.2011瀑布模型 主要优势:它的每个阶段都生成文档,而且它与其他工程过程模型相一致 主要缺点:他将项目生硬得分解成这些确切的阶段。委托事项一定要在过程的早期阶段清晰给出,而这意味着他难以响应用户需求的变更 实用范围:只有在全面理解需求,而且
7、在系统开发过程中不太可能发生重大改变的时候,应该采用瀑布模型。第11页,共82页。软件开发过程实践软件开发过程实践neusoft.2011进化式开发模型这个方法在描述活动、开发活动和有效性验证活动中不断修改内容,即用抽象描述快速开发出一个初始的系统,然后由客户提供的信息来精炼系统,直到客户满意为止该方法主张描述、开发和有效性验证等活动并行执行,同时让这些活动都能得到快速的反馈信息第12页,共82页。软件开发过程实践软件开发过程实践neusoft.2011进化式开发模型 进化式开发有两个基本类型:探索式开发:其目标是与用户一起工作,共同探讨系统需求,直至最后交付系统。这类开发是从需求较清楚的部分
8、开始,根据用户的建议逐渐向系统中添加功能 抛弃式原型:这种开发方法的目标是理解用户需求,然后再给出系统的一个较好的需求定义。原型着重对客户需求理解差的那一部分的实验第13页,共82页。软件开发过程实践软件开发过程实践neusoft.2011进化式开发模型 主要优势:进化式方法在应付客户紧急需要的情况下较瀑布模型更为有效。基于进化式方法的软件过程的好处是不断的补充完善。当用户对系统需求有更深刻理解时,能够很快在软件系统中得到反映。从工程学和管理学角度来看,此方法存在两个问题:过程不可见:如果系统开发很快,要产生每个版本的文档来反映变更就很不划算 系统结构通常较差:这是因为连续的变革损坏了系统的结
9、构。越往后变更系统就越困难,而且成本逐渐上升第14页,共82页。软件开发过程实践软件开发过程实践neusoft.2011进化式开发模型 实用范围:对于很小规模或者中型系统(达到500000行代码),采用进化式开发方法不失为一种最佳选择。对于大型的,生命周期很长的系统,由不同的团队负责开发系统的不同部分,进化式开发的问题就变得很突出。采用这种方法很难建立一个稳定的系统框架,保证来自不同团队的贡献可以很好的集成。因此对于大型系统,可以采用混合型开发方法。结合瀑布模型和进化式开发方法的优点。第15页,共82页。软件开发过程实践软件开发过程实践neusoft.2011基于组件的软件工程模型 这种方法是
10、基于已存在的很多可复用的组件。系统的开发过程主要是把这些组件集成到新系统中,而非从头开发。复用时常对快速系统开发来说是必不可少的。面向复用的方法依赖可以存取的可复用软件组件以及能集成这些组件的框架。第16页,共82页。软件开发过程实践软件开发过程实践neusoft.2011基于组件的软件工程模型初始需求和有效性验证方面和其他开发过程一样,但是中间过程就有很大的不同:组件分析:按照需求描述,搜寻能满足需求的组件 需求修改:根据得到的组件信息修改需求,如不允许修改需求,则要重新寻求组件使用复用的系统设计:在这个阶段设计系统的框架,或者重复使用一个已存在的框架。如果没有合适的框架,则需要重新设计一个
11、新的软件开发和集成:当没有合适的组件时,就要自己开发,然后再集成这些自己开发的和现成的组件,使之成为一个整体。第17页,共82页。软件开发过程实践软件开发过程实践neusoft.2011基于组件的软件工程模型 主要优点:减少了需要开发的软件数量,从而降低了软件开发成本,同时也降低了风险。通常也可以使软件快速交付 主要缺点:有时为了适应某个组件,存在对客户需求的修改,而且这可能导致一个不符合用户真正需要的系统。此外,对系统进化的控制也不起作用,因为可复用的组件新的版本是不受机构控制的第18页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程反复 对于所有的大型软件项目来说,
12、变更是不可避免的。这意味着软件过程不是一个一次性的过程,在有变更请求,系统需要重新去做的时候,过程活动就会有规律的重复进行 重复式开发对于软件来说是一个十分基础的内容,在这里我们通过两个过程模型的描述来介绍这个主题,这两个过程模型是专门设计用于支持过程重复的:增量式开发 螺旋式开发第19页,共82页。软件开发过程实践软件开发过程实践neusoft.2011增量式开发模型 在增量开发的过程中,客户大概地提出系统需要提供的服务,指明哪些服务是最重要的,哪些是最不重要的。此时,一系列的交付增量被确定,每个增量提供系统功能的子集。对增量中服务的分配取决于服务的优先次序。最高优先级的服务首先被交付。第2
13、0页,共82页。软件开发过程实践软件开发过程实践neusoft.2011增量式开发模型第21页,共82页。软件开发过程实践软件开发过程实践neusoft.2011增量式开发模型 每个增量开发没有必要使用相同的过程方法,当一个增量中的服务有了完善的描述时,开发可以使用瀑布模型。在描述不清楚的地方,就可能用一个进化式开发模型第22页,共82页。软件开发过程实践软件开发过程实践neusoft.2011增量式开发模型主要优点:客户无需等到整个系统实现。第一个增量会满足他们大多数关键需求,因此,软件马上就能使用 客户可以将早期的增量作为原型,从中获得对后面系统增量的需求经验 项目总体性失败的风险比较低。
14、虽然可能在一些增量中遇到问题,但是其他一些增量将会成功的交付客户 因为最重要的增量最先提交,而后面的增量也不断的被集成进来,这就使得最重要的系统服务得到了最多的测试。主要缺点:很难把客户的需求映射到适当规模的增量上。大多数系统功能都用到的公共服务很难在初期定义出来第23页,共82页。软件开发过程实践软件开发过程实践neusoft.2011增量式方法模型 增量式方法的一个最近的进化方法称作“极限编程”(extreme programming)。它是建立在开发和交付非常小的功能增量方式上的,客户参与在开发的过程中,经常性的参与代码改进和结对编程。第24页,共82页。软件开发过程实践软件开发过程实践
15、neusoft.2011螺旋式开发模型 它不是将软件过程用一系列的活动和活动间的回溯来表示,而是将过程用螺旋线表示。在螺旋线中,每个回路表示软件过程的一个阶段。因此,最里面的回路可能与系统可行性分析有关,下一个回路与系统需求定义有关,再下一个回路与系统设计有关,等等。第25页,共82页。软件开发过程实践软件开发过程实践neusoft.2011螺旋式开发模型 螺旋式开发中每个回路分成四个部分:目标设置:为项目的每个阶段定义专门目标 风险评估和规避:每个项目风险确定以后要进行详细的分析,并采取措施规避风险 开发和有效性验证:在风险预估之后,就可以为系统选择开发模型 规划:对项目进行评审之后确定是否
16、需要进入螺旋线的下一个回路 特点:对风险考虑是明确的,对每个环节都有风险评估 适用于:风险比较大的项目第26页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动 在软件开发过程中,如何来组织描述、开发、验证和进化这四个基本过程,取决于软件类型、人员以及机构的组织结构第27页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件描述 软件描述或者需求工程主要是理解定义系统需要哪些服务以及找出开发和运行期间受到哪些约束 需求工程对于软件过程是一个特别关键的阶段,这个阶段的错误将不可避免的带到后续的系统设计和实现阶段中第28页,共82页。软件开发过
17、程实践软件开发过程实践neusoft.2011第29页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件描述需求工程过程有四个主要阶段:可行性研究:从软硬件技术上能否实现,从业务角度成本是否划算来判断。研究的结果就是要得出结论,该系统是否值得进行更细致的分析 需求导出和分析:这是一个通过对现有系统分析、与潜在用户和购买者讨论、进行任务分析等导出系统需求的过程。也许需要开发一个或多个不同的系统模型和原型。这样有助于分析员了解所描述的系统 需求描述:就是把在分析活动中收集的信息以文档的形式确定下来。在这个文档中有两类需求:用户需求:从客户和最终用户角度对系统需求的抽象
18、描述 系统需求:对系统要提供的功能的详尽描述 需求有效性验证:检查文档的描述的准确性、完备性等第30页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件描述 需求工程过程的产出:产出用以描述系统的文档。在这个文档中包含两个层次的需求描述:最终用户和客户需求高层次的需求描述;系统开发人员需要比较详细的系统描述。第31页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件设计与实现 该阶段是把系统描述转换成一个可运行的系统的过程 包含设计和编码两个部分。如果是进化式开发方法,可能还包含软件的精炼过程 软件设计是对实现软件的结构、系统的数据、
19、系统组件间的接口以及所用的算法的描述。设计者不可能一次就完成一个完整的设计,这是一个多次反复的过程。第32页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件设计与实现 设计过程中一些专门的活动:体系结构设计:确定系统是由哪些子系统构成的,以及这些子系统之间的关系是怎样的,并对这些内容编写文档 抽象描述:对每个子系统提供的服务以及子系统在什么范围内运行给出抽象描述 接口设计:对每个子系统,都要给出与其他子系统间的接口设计并编写文档。这个接口描述一定是无二义的 组件设计:把服务分配到不同的组建,并设计这些组件的接口 数据结构设计:详细设计系统实现阶段要试用的数据结构
20、,并给出描述 算法设计:详细设计服务将要采用的算法并对此给出描述以上是设计过程中非常一般的模型,实际的过程中有不同程度的调整第33页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件设计与实现 对设计过程可能的调整:设计的最后两个阶段数据结构和算法设计可能推迟到实现过程完成 如果试用探索式开发方法,系统界面的设计可能要在数据结构得到定义之后进行 抽象描述阶段可能要忽略掉 随着敏捷开发方法的越来越多的使用,设计过程的输出不再是单独的文档了,可能是用程序代码来表示。在系统体系结构完成之后,后面的设计阶段都是渐增式的。每个增量可以表示为一段程序代码而不是设计模型 结构化
21、的设计方法(面向功能的设计)与面向对象的设计方法第34页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件设计与实现 系统设计完成后,就是实现系统的程序开发过程 程序设计因人而异,通常没有统一的模式 程序设计人员要对自己开发的程序进行调试 错误检测和调试不是一回事,检测是要发现存在的错误,而调试是要定位错误并改正这些错误 进行程序调试时,首先要对程序的行为有一个最初的预计,然后执行程序看输出结果是否同预期的一样。调试过程需要程序员一步步地手动跟踪代码,同时会需要一些测试用例来定位问题。第35页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程
22、活动软件有效性验证 软件有效性验证,或更一般的称为检验和有效性检验,是要看系统是否符合他的描述以及系统是否符合客户的预期目标。他包括检查过程和从用户需求定义到程序开发的每个软件过程阶段。通常的测试过程:先是组件测试,其次是集成系统测试,最后是用客户数据对系统的测试。这是一个多次反复的过程。第36页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件有效性验证 测试过程的阶段:组件(或单元)测试:测试单个组件,以确保其操作的正确性,独立的测试每个组件,而不受其他系统组件的影响。组件可能是简单的实体,如函数或对象类,或是这些实体的组合 集成系统测试:组件得以集成形成系统
展开阅读全文