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过程活动软件有效性验证 测试过程的阶段:组件(或单元)测试:测试单个组件,以确保其操作的正确性,独立的测试每个组件,而不受其他系统组件的影响。组件可能是简单的实体,如函数或对象类,或是这些实体的组合 集成系统测试:组件得以集成形成系统
23、。这个过程侧重于找出组件间非预期的交互行为和组件接口问题。也关注系统是否满足功能上和非功能上的需求,并测试系统的总体特性。对于大型系统可能有:子系统集成测试、最终系统集成测试等多阶段测试过程 系统接收测试:系统在运行之前进行的最后阶段测试。是用客户提供的真实数据进行测试。能暴露系统需求中的错误和遗漏以及系统是否达到性能要求等其他的问题第37页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件有效性验证 组件的开发和测试是交叉进行的。程序员自己构造用来测试的数据,在代码开发过程中增量的进行测试 对于增量式开发方法,每一个增量在开发的时候就应该测试,这种测试根据对增量
24、的需求来设计 对于极限编程,测试和需求都是先于开发过程。这帮助测试者和开发者理解需求并保证不会由于设计测试案例而拖延时间 一个独立的测试团队需要有一个拟定的测试计划并按照这个测试计划来工作,制定测试计划的依据是系统描述和设计第38页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件有效性验证 测试计划是如何把测试和开发活动联系起来的?接收测试也叫做测试,需要持续到客户与开发者都满意为止系统需要上市销售时,要进行的测试叫做测试第39页,共82页。软件开发过程实践软件开发过程实践neusoft.2011过程活动软件进化 软件的变更可以发生在系统开发之中或之后的任何时间
25、里 现在已经不再将软件工程看作是开发和维护两个完全独立的过程,而是将其看作一个进化的过程,即在软件的生命期内不断的随着需求的变化而变更的进化式过程第40页,共82页。软件开发过程实践软件开发过程实践neusoft.2011Rational统一过程 Rational统一过程(RUP)是现代过程模型的一个实例。他是混合过程模型的一个很好的实例。他集合了所有一般过程模型的要素,支持反复,并给出了描述和设计上的一个好的实践。RUP过程认识到传统过程模型展现的是过程的一个视角,RUP一般从三个视角来描述:动态视角,给出模型随时间所经历的各个阶段 静态视角,给出所有规定的过程活动 实践视角,建议在过程中采
26、用好的实践实例第41页,共82页。软件开发过程实践软件开发过程实践neusoft.2011Rational统一过程RUP动态视角(组织成几个可以重复的阶段)开端:建立系统的一个业务案例。评估系统对业务的贡献,决定项目是否有必要继续进行 细化:增进对问题的理解,建立系统的体系框架,给出项目计划并识别关键项目风险,本阶段完成时,就得到系统的需求模型,是软件的一个体系描述和开发计划 构造:主要关心的是系统设计、编码和测试。系统的各个部分在并行开发,再集成在一起。在这个阶段完成时,就得到了一个能工作的软件系统了,还有能交付给用户的相关文档 转换:RUP的最后阶段,关注如何将系统从开发单位转移到用户单位
27、,并使之在真是环境中工作。此阶段完成时,就有了一个在操作环境下能正常工作的软件系统及其文档了第42页,共82页。软件开发过程实践软件开发过程实践neusoft.2011Rational统一过程 RUP的静态视角(静态工作流)工作流描述业务建模使用业务对业务过程进行建模需求找出与系统进行交互的参与者并开发用例完成对系统需求的建模分析和设计使用体系结构模型、组件模型、对象模型和序列模型来创建并记录设计模型实现实现系统中的组件并将他们合理安排在子系统中,从设计模型自动代码生成有助于加快此过程测试测试是一个反复过程,他的执行是与实现紧密相关联的。系统测试紧随实现环节的完成部署创建和奋发产品版本并安装到
28、他们的工作场所第43页,共82页。软件开发过程实践软件开发过程实践neusoft.2011Rational统一过程 RUP的实践视角:反复的开发软件:根据客户的轻重缓急来规划系统的增量,在开发过程中先开发和交付最高优先权的系统特征 管理需求:明确的记录客户的需求并跟踪这些需求的变更。在接受之前分析系统的变更所带来的影响 使用基于组件的体系结构:将系统体系结构设计成组件式 可视化模型软件:使用图形化UML模型来表现软件的静态和动态视图 验证软件质量:确保软件满足了机构质量标准 控制对软件的变更:使用变更管理软件及配置管理过程和工具来管理软件的变更第44页,共82页。软件开发过程实践软件开发过程实
29、践neusoft.2011Rational统一过程 RUP并不适合于所有的开发类型,但是他却是代表了新的一代的一般过程。最重要的创新在于对阶段的分解和工作流,以及将软件部署到用户环境视为过程的一部分。阶段是动态的而且是有目标的。工作流是静态的,且是不与单个阶段相关的技术活动,但是可以在整个开发过程中使用,以便达到每个阶段的目标第45页,共82页。软件开发过程实践软件开发过程实践neusoft.2011通常描述的过程活动及产出文档 需求分析 概要设计 详细设计 编码 集成测试 确认测试 撰写用户文档 用户培训 打包和交付第46页,共82页。软件开发过程实践软件开发过程实践neusoft.2011
30、需求分析(1/3)任务 进行需求调查,定义软件的用户需求,撰写软件需求规格说明书(SRS)根据SRS,撰写软件确认测试计划 评审SRS和软件确认测试计划 输入 用户的初步需求描述 输出 软件需求规格说明书 软件确认测试计划第47页,共82页。软件开发过程实践软件开发过程实践neusoft.2011需求分析和软件定义(2/3)实施 根据用户需求描述,分析和定义软件系统的需求,按照软件需求规格说明书编写指南编写软件需求规格说明书(SRS)根据SRS,制定软件确认测试计划,按照软件确认测试计划编写指南编写软件确认测试计划文档 对需求分析的结果(软件需求规格说明书和软件确认测试计划)进行评审第48页,
31、共82页。软件开发过程实践软件开发过程实践neusoft.2011需求分析和软件定义(3/3)说明 用户需求描述了用户对目标软件系统的期望和要求(包括功能、性能和设计约束等),因此,需求分析只需关心要解决的问题,而无需关心这些问题的解决方案 软件确认测试计划应该包含软件需求规格说明书中所定义的所有需求的测试内容第49页,共82页。软件开发过程实践软件开发过程实践neusoft.2011概要设计(1/3)任务 根据SRS,进行软件的总体结构设计、接口设计和数据设计,撰写软件总体结构设计、接口设计和数据设计规格说明书 根据软件的概要设计,制定软件集成测试计划 输入 软件需求规格说明书SRS 输出
32、软件总体结构设计规格说明书 软件数据设计规格说明书 软件接口设计规格说明书 软件集成测试计划第50页,共82页。软件开发过程实践软件开发过程实践neusoft.2011概要设计(2/3)实施 根据SRS来进行软件设计 按照软件总体结构设计规格说明书编写指南编写软件总体结构设计文档 按照软件数据设计规格说明书编写指南编写软件数据设计文档 按照软件接口设计规格说明书编写指南编写软件接口设计文档 按照软件集成测试计划编写指南编写软件集成测试计划文档第51页,共82页。软件开发过程实践软件开发过程实践neusoft.2011概要设计(3/3)说明 概要设计要给出满足用户需求的软件解决方案,主要是指软件
33、的总体结构、接口设计和数据设计,不涉及具体模块的内部细节第52页,共82页。软件开发过程实践软件开发过程实践neusoft.2011详细设计(1/3)任务 进行软件的详细设计,撰写软件详细设计规格说明书 根据软件的详细设计,制定软件单元测试计划 输入 软件需求规格说明书SRS 软件总体设计规格说明书 软件接口设计规格说明书 软件数据设计规格说明书第53页,共82页。软件开发过程实践软件开发过程实践neusoft.2011详细设计(2/3)实施 根据SRS和软件总体结构、接口和数据设计规格说明书,进行软件的详细设计,根据软件详细设计规格说明书编写指南撰写软件详细设计文档 根据每个模块的内部实现细
34、节的设计,以及软件单元测试计划编写指南编写软件单元测试计划文档 输出 软件详细设计规格说明书 软件单元测试计划第54页,共82页。软件开发过程实践软件开发过程实践neusoft.2011详细设计(3/3)说明 详细设计主要根据软件需求规格说明书,在软件总体结构设计、接口设计和数据设计的基础上,涉及软件解决方案的详细细节,尤其是模块的实现算法和思想第55页,共82页。软件开发过程实践软件开发过程实践neusoft.2011编码(1/2)任务 编写程序 进行单元测试,撰写单元测试报告 输入 软件总体结构设计规格说明书 软件数据设计规格说明书 软件接口设计规格说明书 软件详细设计规格说明书 单元测试
35、计划第56页,共82页。软件开发过程实践软件开发过程实践neusoft.2011编码(2/2)实施 根据软件总体结构设计规格说明书、软件数据设计规格说明书、软件接口设计规格说明书、软件详细设计规格说明书进行编码 根据单元测试计划对各个模块进行单元测试 输出 经过单元测试的软件模块源程序 单元测试报告第57页,共82页。软件开发过程实践软件开发过程实践neusoft.2011集成测试(1/2)任务 集成各个软件模块进行测试 输入 软件模块的程序代码 软件总体结构设计规格说明书 软件数据设计规格说明书 软件接口设计规格说明书 软件集成测试计划第58页,共82页。软件开发过程实践软件开发过程实践ne
36、usoft.2011集成测试(2/2)实施 根据软件总体结构设计规格说明书、软件接口设计规格说明书、软件数据设计规格说明书和软件集成测试计划,逐步组装模块进行软件的集成测试,撰写集成测试报告 输出 可运行的、经过集成测试的目标软件系统 集成测试报告第59页,共82页。软件开发过程实践软件开发过程实践neusoft.2011确认测试(1/2)任务 根据软件需求规格说明书和软件确认测试计划进行确认测试,撰写确认测试报告 输入 软件需求规格说明书 确认测试计划第60页,共82页。软件开发过程实践软件开发过程实践neusoft.2011确认测试(2/2)实施 根据软件需求规格说明书和确认测试计划,对软
37、件进行确认测试,撰写确认测试报告 输出 可运行的、经过确认测试的目标软件系统 确认测试报告 说明 确认测试由用户进行测试第61页,共82页。软件开发过程实践软件开发过程实践neusoft.2011撰写用户文档(1/2)任务 撰写用户文档 输入 软件需求规格说明书 软件总体结构、接口设计和数据设计规格说明书 可运行的目标软件系统第62页,共82页。软件开发过程实践软件开发过程实践neusoft.2011撰写用户文档(2/2)实施 根据用户软件需求规格说明书,软件总体结构、接口设计和数据设计规格说明书撰写用户文档 用户文档一般包括:用户使用手册,安装手册,软件开发手册等等 输出 用户手册 安装手册
38、 开发指南第63页,共82页。软件开发过程实践软件开发过程实践neusoft.2011用户培训(1/2)任务 对用户进行培训 输入 软件需求规格说明书 用户使用手册、安装手册、开发手册 可运行的目标软件系统第64页,共82页。软件开发过程实践软件开发过程实践neusoft.2011用户培训(2/2)实施 根据可运行的目标软件系统、用户使用手册,安装手册,开发手册对用户进行培训 输出 无第65页,共82页。软件开发过程实践软件开发过程实践neusoft.2011打包交付(1/2)任务 对软件进行打包,并交付用户使用 输入 可执行的目标软件系统 各种要交付的文档和资料,包括电子版和打印版第66页,
39、共82页。软件开发过程实践软件开发过程实践neusoft.2011打包交付(2/2)实施 制作安装软件 安装并配置目标软件系统 交付安装软件、文档和资料 输出 安装软件 交付给用户的文档和资料第67页,共82页。软件开发过程实践软件开发过程实践neusoft.2011RUP补充介绍 RUP(Rational Unified Process)是软件工程化过程 RUP是一个流程工具平台,一个流程框架RUP犹如一个菜谱,通过菜谱做成各种菜系 RUP是一个定制流程的工具平台第68页,共82页。软件开发过程实践软件开发过程实践neusoft.2011RUP核心第69页,共82页。软件开发过程实践软件开发
40、过程实践neusoft.2011RUP的组织方式 时间轴阶段和迭代 内容轴工作流程第70页,共82页。软件开发过程实践软件开发过程实践neusoft.2011 RUP通过时间轴的组织先启(Inception):定义项目目标和范围精化(Elaboration):计划项目、指定特性、构架基线化构建(Construction):构建产品产品化(Transition):将产品发布到用户社区第71页,共82页。软件开发过程实践软件开发过程实践neusoft.2011 RUP的工作流程业务建模需求分析设计 实施测试部署配置与变更管理项目管理环境第72页,共82页。软件开发过程实践软件开发过程实践neuso
41、ft.2011相关活动相关活动组组迭代过程迭代过程第73页,共82页。软件开发过程实践软件开发过程实践neusoft.2011RUP核心概念第74页,共82页。软件开发过程实践软件开发过程实践neusoft.2011参考资料 RUP 学堂 http:/ 揭开RUP的神秘面纱 http:/ 下一代业务驱动的开发流程定制平台 https:/ RUP导论第75页,共82页。软件开发过程实践软件开发过程实践neusoft.2011标准文档 SPP的60余个文档模板 http:/ 文档目录 讲义SPP-Template第76页,共82页。软件开发过程实践软件开发过程实践neusoft.2011讨论:模型
42、选择 汽车防抱死制动系统 大学记账系统,准备替换一个已存在的系统 一个位于火车站的交互式火车车次查询系统 第77页,共82页。软件开发过程实践软件开发过程实践neusoft.2011案例分析 阅读案例回答以下问题:软件开发过程的案例分析 问题一描述以上软件开发的过程,并指出采用该过程可能存在哪些风险?问题二运用学习过的软件过程模型,请你设计你认为合适的开发过程,并说明理由。第78页,共82页。软件开发过程实践软件开发过程实践neusoft.2011本章小节 了解软件开发的几种模型 怎样来描述软件开发过程文档第79页,共82页。软件开发过程实践软件开发过程实践neusoft.2011本节要点回顾
43、 软件过程是产生一个软件系统的一系列活动。软件过程模型是这些过程的抽象表示 所有的软件过程包括:软件描述、软件设计于实现、软件有效性验证以及软件进化 一般的过程模型描述软件过程的组织。一般的模型实例包括瀑布模型、进化式开发和基于组件的软件工程 过程反复模型反映软件过程是一个循环活动。这个方法的好处是他允许对系统描述或者设计的进一步修改。反复模型的例子包括增量式开发模型和螺旋式模型第80页,共82页。软件开发过程实践软件开发过程实践neusoft.2011本节要点回顾 需求工程是开发软件描述的过程。他包括产生一个面向用户的系统描述和一个面向开发者的更详尽的描述 设计和实现过程是将一个需求描述转换
44、为一个可以运行的软件系统的过程。系统的设计方法被用来完成这个转换 软件有效性检验是检查系统是否与他的描述相一致以及是否符合系统用户的真正需要 软件进化是修改已存在的软件系统以适应用户新的需求的过程。这也是小型和中型系统开发的一般方法 Rational统一过程是现在一般过程模型,特点是组织成阶段(开端、细化、构造和转换),但是把活动(需求、分析和设计等)和这些阶段想分离第81页,共82页。软件开发过程实践软件开发过程实践neusoft.2011练习与思考 为一下各个系统提出合适的软件过程模型,并基于系统所属类型给出你的理由:银行自动汇员机处理系统 一个支持软件维护的虚拟现实系统 大学记帐系统,准备替换一个已存在的系统 一个位于火车站的交互式火车车次查询系统 解释为什么用进化式开发方法开发的系统可能难以维护 说明为什么在需求工程中区分用户需求开发和系统需求开发是重要的 描述在软件设计过程中的主要活动以及这些活动的输出。使用一个实体关系图,说明这些活动之间可能存在的关系第82页,共82页。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。