1、长沙学院软件工程专业,软件工程,上节课布置的阅读任务:,1、优秀软件应具有的四项属性?,2、通用软件和定制软件的不同?,可维护性、可依赖性、有效性、可用性,通用和定制软件的最大区别是需求描述的获取者不同,二、软件过程,开发逻辑,是获取正确软件的关键,.,本次课我们要掌握:,什么是软件生命周期?(掌握),什么是软件生命周期过程?任务与活动?(掌握),基本过程、支持过程和组织过程(了解),软件开发本质,软件生存周期过程,定义,软件生存周期模型,软,件,工,程,生,存,周,期,过,程,支持过程方向,(,活动与定序,),的建立,形成,软件开发方法学,结构化方法,面向对象方法,面向数据结构,方法,维也
2、纳开发方,法(,VDM,),给出实现开发过程的途径,支持,/,管理技术与方法,作用于,2),过程分类,按过程的主体,可分为三类过程,:,(1),基本过程,(primary processes),是指那些与,软件生产,直接相关的活动集。,(2,)支持过程,(supporting processes),是有关各方按其目标所从事的一系列,支持,活动集。,(3,)组织过程,(institutional processes),是指那些与,软件生产组织,有关的活动集。,基本过程,支持过程,组织过程,(1,),基本过程,又按过程中活动的不同主体,将基本过程(类)分,为,5,个过程,:获取过程、供应过程、开发
3、过程、,运行过程、维护过程,获取过程,基本过程,支持过程,组织过程,组织为,供应过程,开发过程,运行过程,维护过程,1,:获取过程,获取过程是获取者所从事的活动和任务。,其目的是获得满足客户所表达的那些要求的产品或服务。,功能需求和非功能需求,约束和满足条件,2,:供应过程,供应过程是供方为了向客户提供满足需求的软件产品或服务所从事的一系列活动和任务。,其目的是向客户提供一个满足已达成需求的产品或服务。,该过程的启动,或通过为应答需方的招标书而开始编制投标书的决定,或通过与需方签订一项提供系统、软件产品或软件服务的合同。,继之,确定为管理和保证项目所需的规程和资源,包括编制项目计划,执行计划,
4、一直到将系统、软件产品或软件服务交付给需方为止。,3,:,开发过程,是,软件开发者,所从事的一系列活动。,包括,13,个活动:,过程的实施准备,系统需求分析 系统结构设计,软件需求分析 软件体系结构设计,软件详细设计 软件编码和测试,软件集成 软件合格测试,系统集成 系统合格测试,软件安装 软件验收支持,4,:运行过程,运行过程是系统操作者所从事的一系列活动和任务。,包含如下四个活动:,过程实现;,运行测试;,系统运行;,用户支持。,5,:维护过程,维护过程是维护者所从事的一系列的活动和任务。,包括如下活动:,过程实现;问题和修改分析;修改实现;维护评审,/,验收;迁移;软件退役。,(,2,)
5、支持过程,又按过程中活动的不同主体,将支持过程(类)分为,8,个过程,:,文档过程、配置管理过程、质量保证、验证过程、,确认过程、联合评审、审计过程、问题解决等。,文档过程,基本过程,支持过程,组织过程,组织为,配置管理过程,质量保证过程,验证过程,联合评审过程,确认过程,审计过程,问题解决过程,1:,文档过程,是记录由某一过程或活动所产生信息的过程,4,个活动,:过程的实施准备 设计与开发,制作与发行 维护,2,:配置管理过程,是应用管理上和技术上的规程来支持整个软件生存周期的过程。,6,个活动:过程实现 配置标识,配置控制 配置状态统计,配置评价 发布管理和交付,3:,质量保证过程,是为
6、项目生存周期内的软件过程和软件产品提供适当保障的过程。,4,个活动,:过程实现 产品保证,过程保证 质量体系保证,4,:验证过程,证实一个过程或项目的每一软件工作产品或服务是否恰当第反映了已规定的需求。,2,个活动:过程实现 验证,5:,确认过程,是一个确定需求和最终的、已建成的系统或软件产品是否满足特定预期用途的过程。,2,个活动,:过程实现 确认,6,:联合评审过程,7,:审计过程,8,:问题解决过程,(3),组织过程,(,Organizational life cycle processes,),分为,4,个过程,:,管理过程、基础设施过程、培训过程、改进过程,管理过程,基本过程,支持过
7、程,组织过程,组织为,基础设施过程,培训过程,过程改进过程,1,:管理过程,管理过程包括由管理其对应过程的任何一方所执行的一般,性活动和任务,管理人员负责:,产品管理;,项目管理,以及,对所应用的那些过程(例如,获取、供应、开发、运,行、维护或支持过程)的任务管理。,主要活动包括,:,过程的启动和范围定义,规划,实施与控制,评审与评估,测量,表决(,closure,),2,:,基础设施,过程,基础设施过程是为其他过程建立和维护所需基础设施的,过程。基础设施可以包括用于开发、运行或维护的硬件、软,件、工具、技术、标准和设施。,包括下述活动:,a),过程实施的准备;,b),建立基础设施;,c),维
8、护基础设施。,3,:,改进过程,是一个建立、评估、测量、控制和改进软件生存周期过程,的过程。,主要活动,:,过程建立 过程评估过程改进,4,:,培训过程,是为组织和项目提供具有技能和知识人员的过程。,主要活动,:,过程实现定义培训需求补充合格的员工,评估员工业绩 建立项目团队需求 知识管理,3),软件过程之间的关系,获取过程,获取过程,供应过程,管理过程,运行过程,开发过程,维护过程,获取者,供应者,管理者,运行者,用 户,开发者,维护者,开发者,维护者,组织过程:管理、改进,.,支持过程:文档、质量保证、,配置管理,.,合,同,使,用,合同观点,管理观点,运行观点,开发观点,支持观点,小结,
9、软件生命周期,软件生命周期过程,基本过程、支持过程、组织过程,2.2,软件生存周期模型,),基本概念,软件生存周期模型,IEEE Standard 12207.0-1996,把一个软件生存周期模型描述为:一个包括软件产品开,发、运行和维护中有关过程、活动和任务的框架,覆盖了从该,系统的需求定义到系统的使用终止。,中国计算机科学与技术百科全书,称软件生存周期模型为“软件开发模型”,并把它定义为:,软件过程、活动、任务的结构框架。,系统需求,软件需求,需求分析,设 计,编 码,测 试,运 行,),瀑布模型,.,(),项目的开发依次经过:需求、设计、编码和单元测试、,集成以及维护,这一基本路径。,(
10、在每一阶段提交以下产品:软件需求规约、设计文档、,实际代码、测试用例、最终产品等。工作产品(又称可,提交的产品,,Deliverables,)流经,“,正向,”,开发的基本步,骤路径。,()“,反向,”,步骤流表示对前一个可提交产品的重复变更(又,称为,“,返工,”,(Rework),)。,由于所有开发活动的非确定性,因此是否需要重复变,更,这仅在下一个阶段或更后的阶段才能认识到。,返工不仅在以前阶段的某一地方需要,而且对当前正,在进行的工作也是需要的。,关于瀑布模型的几点说明,(,)瀑布模型的优点,虽然瀑布模型是一个比较,“,老,”,的、甚至过时的开发模型,,但其优点为:,在决定系统怎样做
11、之前,存在一个需求阶段,鼓励对系,统,“,做什么,”,进行规约(即设计之前的规约)。,在建造构件之前,存在一个设计阶段,鼓励规划系统结,构(即编码之前的设计)。,在每一阶段结束时进行复审,允许获取方和用户的参与。,允许基线和配置早期接受控制。,前一步工作产品可作为下一步被认可的、文档化的基线。,(),瀑布模型存在的不足,客户必须能够完整、正确和清晰地表达他们的需求;开发,人员一开始就必须理解其应用。,在开始的两个或三个阶段中,很难评估真正的进度状态,;,设计、编码和测试阶段都可能发生延期。,在一个项目的早期阶段,过分地强调了基线和里程碑处,的文档,;,可能要花费更多的时间,用于建立一些用处不,
12、大的文档。,当接近项目结束时,出现了大量的集成和测试工作。,直到项目结束之前,都不能演示系统的能力。,(,3,),瀑布模型适用的情况,在开发中,向下、渐进的路径占支配地位。也就是说,,需求已被很好地理解;并且,过程设计人员也很清楚:开发组织非常熟悉为实现这一模,型所需要的过程(或经过培训后,熟悉什么时候来支持这,一项目,以实现这一模型所需要的过程)。,因此为了避免产生过多,的反复迭代工作,增加开发成本,,一般在准备采用瀑布模型,(,也包括其他模型,),时,需要考虑以下,2,个问题:第一个问题是,过程设计人员必须对初始产品,(,通常,是软件需求规约,,SRS),的不确定性进行评估。,另一个问题是,组织是否具有熟练实施每个活动和,任务的历史经验。,阅读任务;,教材:王立福,软件工程,第二章第一节,问题:,什么是基本过程?什么是支持过程?什么是组织过程?,软件开发过程的主要活动是什么?每个活动都有什么输出?,






