精品课程《软件工程》PPT课件-.ppt

上传人(卖家):三亚风情 文档编号:3157095 上传时间:2022-07-24 格式:PPT 页数:182 大小:4.54MB
下载 相关 举报
精品课程《软件工程》PPT课件-.ppt_第1页
第1页 / 共182页
精品课程《软件工程》PPT课件-.ppt_第2页
第2页 / 共182页
精品课程《软件工程》PPT课件-.ppt_第3页
第3页 / 共182页
精品课程《软件工程》PPT课件-.ppt_第4页
第4页 / 共182页
精品课程《软件工程》PPT课件-.ppt_第5页
第5页 / 共182页
点击查看更多>>
资源描述

1、软件工程软件工程第一章 概述使用规范说明图表应用图表应用强调强调背景背景文本和线条文本和线条阴影阴影标题文本标题文本填充填充强调强调超链接超链接已访超链接已访超链接标准配色标准配色单击此处添加标题单击添加目录内容1单击添加目录内容2单击添加目录内容3单击添加目录内容4单击添加目录内容5单击添加目录内容6单击添加目录内容7一、软件定义软件软件程序文档数据程序程序按事先设计的功能和性能要求执行的指令序列数据数据能使程序正常操作信息的数据结构文档文档与程序开发、管理、维护和使用有关的图文资料二、软件的特点和分类软件是一个逻辑实体,而不是具体的物理实体,因而具有抽象性软件生产与硬件生产不同,没有明显的

2、制造过程软件不会用坏,但比较难维护软件本身是复杂的,使人类能够创造的最复杂的产物软件本身成本昂贵软件分类见表软件分类见表1.2三、软件危机1、什么是软件危机:、什么是软件危机:如何开发软件,以满足不断增长,日趋复杂的需求;如何开发软件,以满足不断增长,日趋复杂的需求;如何维护数量不断膨胀的软件产品。如何维护数量不断膨胀的软件产品。软件开发成本和进度的估算常常不准确用户对完成的软件系统不满意现象经常发生软件产品的质量往往靠不住;Bug一大堆软件常常是不可维护的软件通常没有适当的文档资料2、软件危机的表现、软件危机的表现软件成本在计算机系统成本中所占的比例逐年上升软件开发生产率提高的速度远远跟不上

3、硬件的发展和人们需求的增长软件本身特点:软件本身特点:逻辑部件:管理和控制软件开发过程相当困难,较难维护逻辑部件:管理和控制软件开发过程相当困难,较难维护规模庞大:代码长度不正比程序复杂程度规模庞大:代码长度不正比程序复杂程度软件产品的质量往往靠不住;Bug一大堆软件常常是不可维护的软件通常没有适当的文档资料软件成本在计算机系统成本中所占的比例逐年上升软件开发生产率提高的速度远远跟不上硬件的发展和人们需求的增长3、产生软件危机的原因、产生软件危机的原因单击此处添加标题文字内容文字内容文字内容单击此处添加单击此处添加段落文字内容段落文字内容单击此处添加单击此处添加段落文字内容段落文字内容单击此处

4、添加单击此处添加段落文字内容段落文字内容n 单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字。n 单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字。单击此处添加标题单击此处添加标题段落一段落一单击添加内容文字单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字。单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加标题单击添加单击添加单击添加单击添加单击添

5、加单击添加单击添加单击添加单击添加单击添加单击添加内容文字单击添加单击添加单击添加内容文字单击添加单击添加单击添加内容文字单击添加单击添加单击添加内容文字单击此处添加标题单击此处添加标题文字内容文字内容文字内容单击此处添加标题此处添加内容此处添加内容单击添加段落文字单击添加段落文字此处添加内容此处添加内容单击添加段落文字单击添加段落文字1234567此处添加内容此处添加内容单击添加段落文字单击添加段落文字此处添加内容此处添加内容单击添加段落文字单击添加段落文字此处添加内容此处添加内容单击添加段落文字单击添加段落文字此处添加内容此处添加内容单击添加段落文字单击添加段落文字此处添加内容此处添加内容

6、单击添加段落文字单击添加段落文字单击此处添加标题单击添加内容文字单击此处添加标题单击添加图片标题文字单击此处添加标题单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容文字内容文字内容文字内容单击此处添加标题标题一标题一标题二标题二标题三标题三 标题四标题四内容一内容一内容二内容二内容三内容三内容四内容四内容五内容五内容六内容六内容七内容七标示符号标示符号单击此处添加标题单击添加标题文字单击添加标题文字n单击添加段落文字单击添加段落文字单击添加段落文字单击

7、添加段落文字。n单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字。单击此处添加标题此处添加标题单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字单击添加段落文字单击此处添加标题单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加标题内容标题标题单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容内容内容此处添加内容此处添加内容单击添加段落文字单击添

8、加段落文字此处添加内容此处添加内容单击添加段落文字单击添加段落文字此处添加内容此处添加内容单击添加段落文字单击添加段落文字The end谢谢 本次课程到此结束25软件生存周期及模型第二章第二章26一、软件工程研究内容序序号号研究方面研究方面具体内容具体内容1软件开发软件开发模型模型如:瀑布模型、增量模型、迭如:瀑布模型、增量模型、迭代模型代模型2软件开发软件开发方法方法如:面向过程方法、面向数据如:面向过程方法、面向数据方法、面向对象方法方法、面向对象方法3软件支持软件支持过程过程如:如:CASE工具工具Rose、北大青、北大青鸟系统、鸟系统、PowerDesigner4软件管理软件管理过程过

9、程如:如:ISO9000、CMM、软件企、软件企业文化业文化271、软件生存周期(Life cycle)软件有一个孕育、诞生、成长、成软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。熟、衰亡的生存过程。软件生存周期通常包括可行性研软件生存周期通常包括可行性研究和项目开发计划、需求分析、概究和项目开发计划、需求分析、概要设计、详细设计、编码、测试、要设计、详细设计、编码、测试、维护等活动(维护等活动(GB8567GB8567中规定)中规定)。28定义定义分析分析蓝图、图表、库蓝图、图表、库存、采购单等存、采购单等设计设计实现实现产品产品292、软件生存周期模型概念n 模型是为了理解事物而对事物

10、作出的一种抽模型是为了理解事物而对事物作出的一种抽象,它忽略了不必要的细节,是事物的一种象,它忽略了不必要的细节,是事物的一种抽象形式抽象形式。n软件生存周期模型是描述软件开发过程中各种软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。它确立了软件开发和演活动如何执行的模型。它确立了软件开发和演绎中各阶段的次序以及各阶段活动的准则,确绎中各阶段的次序以及各阶段活动的准则,确立开发过程所必须遵守的规定和限制等。立开发过程所必须遵守的规定和限制等。n目前有瀑布模型、增量模型、螺旋模型、目前有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。喷泉模型、变换模型和基于知识的

11、模型等。2022-7-24303、软件工程的传统途径维维 护护开开发发定定义义DefinitionFeasibility StudyRequirements AnalysisProgram DesignCoding&Module TestingIntegration&System TestingDelivery&MaintenanceSystem Design31二、瀑布模型瀑布模型瀑布模型1970年由W.Royce提出n瀑布模型是传统软件瀑布模型是传统软件工程的基础。工程的基础。n瀑布模型的基本思想瀑布模型的基本思想是将软件生命周期划是将软件生命周期划分为若干明确定义的分为若干明确定义的阶段

12、。每一阶段活动阶段。每一阶段活动具有严格性,要实施具有严格性,要实施评审工作,以便及早评审工作,以便及早发现错误,改正错误发现错误,改正错误 ;n以文档形式驱动的,以文档形式驱动的,上一阶段的结果作为上一阶段的结果作为本阶段的输入本阶段的输入 ;软件维护报告软件维护报告要求定义要求定义确认确认设计设计确认确认编码编码确认确认测试测试确认确认维护维护确认确认测试报告测试报告源程序清单源程序清单设计说明书设计说明书需求说明书需求说明书321、软件定义时期基本任务基本任务:回答:回答 要解决的问题是什么?该问题有要解决的问题是什么?该问题有行的通的解决办法吗?若有解决问题的办法,则行的通的解决办法吗

13、?若有解决问题的办法,则需要多少费用、资源、时间?需要多少费用、资源、时间?结束标准结束标准:提出关于问题性质、工程目标和规模:提出关于问题性质、工程目标和规模的问题定义书面报告;提出可行性研究报告;若的问题定义书面报告;提出可行性研究报告;若问题值得去解决,制定项目开发计划。问题值得去解决,制定项目开发计划。可行性研究和项目开发计划可行性研究和项目开发计划需求分析需求分析基本任务基本任务:回答:回答“为了解决这个问题,目标系统为了解决这个问题,目标系统必须做什么必须做什么”,确定目标系统的功能。,确定目标系统的功能。结束标准结束标准:给出软件需求说明书:给出软件需求说明书332、软件开发时期

14、系统设计概要设计概要设计基本任务基本任务:回答:回答 “概括地说,应如何解决这个问概括地说,应如何解决这个问题题”。把确定的各项功能需求转换成需要的体系。把确定的各项功能需求转换成需要的体系结构。设计软件的结构,确定程序由哪些模块组结构。设计软件的结构,确定程序由哪些模块组成及模块间的关系,同时设计该项目的应用系统成及模块间的关系,同时设计该项目的应用系统的总体数据结构和数据库结构。的总体数据结构和数据库结构。结束标准结束标准:给出概要设计文档。:给出概要设计文档。详细设计详细设计基本任务基本任务:回答:回答 “应怎样具体地实现这个系统应怎样具体地实现这个系统”。为每个模块完成的功能进行具体描

15、述,把功能描为每个模块完成的功能进行具体描述,把功能描述转变为精确的、结构化的过程描述。述转变为精确的、结构化的过程描述。结束标准结束标准:设计出程序的详细规格说明。:设计出程序的详细规格说明。342、软件开发时期系统实现编码编码基本任务基本任务:把每个模块的控制结构转换成计算机:把每个模块的控制结构转换成计算机可接受的程序代码。写出的程序应是结构好,清可接受的程序代码。写出的程序应是结构好,清晰易读,并且与设计一致。晰易读,并且与设计一致。结束标准结束标准:以某种程序设计语言表示的源程序清:以某种程序设计语言表示的源程序清单。单。测试测试基本任务基本任务:通过各种类型的测试使软件达到预定:通

16、过各种类型的测试使软件达到预定的要求。的要求。结束标准结束标准:软件合格,能交付用户使用。:软件合格,能交付用户使用。353、软件维护时期基本任务基本任务:通过各种必要的维护活动使系:通过各种必要的维护活动使系统持久地满足用户需要。统持久地满足用户需要。364、技术审查和管理复审 v技术审查是从技术角度进行的审查,是保证软件质量和降低软件成本的重要措施。在每一阶段结束前进行,对于持续时间很长的开发阶段,在阶段中间还要根据需要进行多次正式的或非正式的技术审查。技术审查通常由技术专家组成的审查小组来承担审查工作。审查过程包括:准备和阅读被审文档、开审查会、返工、复查。v管理复审的主要任务是在软件生

17、存周期的每个重要的里程碑,对工程项目的成本、实际花费的经费、投资回收的前景、项目的进度等经济因素从管理角度进行审查。从管理角度对软件开发工程进行复审,是对工程进行管理和控制的主要手段,对发现的问题可以及时采取措施加以解决,必要时甚至可以取消开发工程以避免更大的损失。37名词名词解释解释软件工软件工作产品作产品在在CMMCMM中,它是软件开发活动中的人工制品,如需求说明书、概要设计中,它是软件开发活动中的人工制品,如需求说明书、概要设计说明书、详细设计说明书、源程序、测试报告、用户手册,也包括软件说明书、详细设计说明书、源程序、测试报告、用户手册,也包括软件管理文档,如软件开发计划、软件质量保证

18、计划、各种评审报告、里程管理文档,如软件开发计划、软件质量保证计划、各种评审报告、里程碑报告、变更申请表、不符合项跟踪报告等。碑报告、变更申请表、不符合项跟踪报告等。软件产品软件产品在在CMMCMM中软件产品是最终用户使用的软件。它是软件工作产品的一部分中软件产品是最终用户使用的软件。它是软件工作产品的一部分。基线基线它是软件工作产品。它是要经内部和外部评审过的,并且是下一阶段工它是软件工作产品。它是要经内部和外部评审过的,并且是下一阶段工作的基础,一根基线是一个里程碑或一个检查点。作的基础,一根基线是一个里程碑或一个检查点。检查点检查点它是由时间、计划、事件驱动的检查工作进度和质量的一个记号

19、,一个它是由时间、计划、事件驱动的检查工作进度和质量的一个记号,一个检查点不一定是基线或里程碑。检查点不一定是基线或里程碑。里程碑里程碑它是一个记号,只需经过内部评审。它是一个检查点,但不一定是基线。它是一个记号,只需经过内部评审。它是一个检查点,但不一定是基线。评审评审是对软件工作产品质量的一次开会或汇签活动。是对软件工作产品质量的一次开会或汇签活动。审计审计是复查评审活动程序的合法性,是否按程序与规范进行。是复查评审活动程序的合法性,是否按程序与规范进行。顾客顾客 客客户户 用户用户客户是顾客的一部分,顾客包括潜在的客户。用户是软件产品的最终使客户是顾客的一部分,顾客包括潜在的客户。用户是

20、软件产品的最终使用者,用户是客户的一部分。用者,用户是客户的一部分。现有系统现有系统目标系统目标系统现有系统是用户当前正在使用的系统(可能是手工系统);目标系统是现有系统是用户当前正在使用的系统(可能是手工系统);目标系统是将要实现的系统。将要实现的系统。Capability Maturity Model forsoftware385、瀑布模型特点n 是一个理想化过程。是一个理想化过程。会掩饰项目中真正的风险,当你会掩饰项目中真正的风险,当你太晚发现它们时已无济于事。太晚发现它们时已无济于事。n 过程逆转性很差,因为上游的错误会在下游进过程逆转性很差,因为上游的错误会在下游进行发散性传播。所以

21、逆转会造成很大损失。行发散性传播。所以逆转会造成很大损失。n 缺乏灵活性缺乏灵活性;特别是无法解决软件需求不明确或特别是无法解决软件需求不明确或不准确的问题后期错误,修正代价高不准确的问题后期错误,修正代价高 。n 纯瀑布模型的缺点是在项目开始的时候,在设纯瀑布模型的缺点是在项目开始的时候,在设计工作完成前和代码写出来前,很难充分描述计工作完成前和代码写出来前,很难充分描述需求。需求。n 瀑布模型最主要的问题是缺乏灵活性。必须在瀑布模型最主要的问题是缺乏灵活性。必须在项目开始前说明全部需求。但这恰恰是非常困项目开始前说明全部需求。但这恰恰是非常困难的。难的。6、瀑布模型适用场合n 当有一个稳定

22、的产品定义和很容易被理解的技术解决方案时,纯瀑布模型特别合适n 当你对一个定义得很好的版本进行维护或将一个产品移植到一个新的平台上,瀑布模型也特别合适。n 纯瀑布模型能够降低管理费用,因为你可以预先完成所有计划。n 对于那些容易理解但很复杂的项目,采用纯瀑布模型比较合适,因为可以用顺序方法处理问题。n 在质量需求高于成本需求和进度需求的时候,它尤为出色。n 当开发队伍的技术力量比较弱或者缺乏经验时,瀑布模型更为适合。39407、瀑布模型变种:V型模型418、瀑布模型变种:生鱼片模型软件概念需求分析架构设计详细设计编码和调试系统测试428、瀑布模型变种:生鱼片模型n 传统的瀑布模型强调阶段之间最

23、小的重叠,而生鱼片模型强调大幅度的重叠,即在需求分析完成之前就可以进行架构设计和部分详细设计n 纯瀑布模型强调在任意两个阶段交接时,文档从一个团队交给另一个完全隔离的团队,但是如果一个团队完成各个阶段任务时,可以没有那么多文档。n 生鱼片模型因为阶段重叠,因而里程碑不明确,很难有效地进行过程跟踪和控制439、瀑布模型变种:具有子项目的瀑布模型n 纯瀑布模型的一个问题是必须完成全部的架构设计后才能进行详细设计,但是,整个系统中有些部分可能有些特殊性,可以有自己的步骤,即将这些部分划分为为子项目。n 这种方法的主要风险是相关性无法预料。4410、瀑布模型变种:能够降低风险的瀑布模型n 纯瀑布模型要

24、求在开始架构设计前,必须将用户的所有需求都搞清楚,但是实际中是很困难的。n 可降低风险的瀑布模型是在顶端,即需求分析和架构设计阶段引入螺旋以便降低风险。n 在该螺旋中,先开发一个用户界面原型,采用系统情节串联图版(system storyboarding)引导用户提出需求,记录用户与系统的交互操作方式,或者采用其它需求获取方法。45客户评价原型客户评价原型快速设计快速设计停止停止开始开始4647三、螺旋模型螺旋模型是一种风险驱动的模型。螺旋模型是一种风险驱动的模型。螺旋模型需要有相当丰富的风险评估螺旋模型需要有相当丰富的风险评估经验和专门知识。经验和专门知识。2022-7-2448Review

25、CommitmentPartitionRisk analy-sisPrototype 1Simulations,models,benchmarksRequirements plan,life-cycle planConcept of operationPrototype 2Risk analysisSoftware requirementsRequirements validationDevelop-ment planRisk analysisPrototype 3Software product designDesign validation and verificationIntegrat

26、ion and test planRisk analysisOperational prototypeDetailed designUnit testCodeIntegration and testAcceptance testImplementationPlan next phasesDevelop,verify next-level productDetermine objectives,alternatives,constrainsEvaluate alternatives,identify,resolve risksCumulative costProgress through ste

27、psThe spiral model49螺螺旋旋模模型型决定目标、决定目标、方案和限制方案和限制评价方案、评价方案、识别风险、识别风险、弱化风险弱化风险开发、验证、开发、验证、下一级产品下一级产品计划下一阶段计划下一阶段集成测试50四、增量模型123491011125678需求分析需求分析设计设计编码编码测试测试第第1块块第第1次集成次集成第第2次集成次集成第第3次集成次集成第第N次集成次集成第第4次集成次集成第第1块块第第1块块第第1块块第第1块块第第N块块第第4块块第第3块块第第2块块第第2块块第第2块块第第2块块第第3块块第第3块块第第4块块51四、增量模型遵循递增方式进行软件开发。开发

28、一部遵循递增方式进行软件开发。开发一部分,向用户展示一部分。分,向用户展示一部分。增量模型是一种非整体开发的模型。增量模型是一种非整体开发的模型。适用条件:适用条件:1 1)使用面向对象语言或第四代语言;)使用面向对象语言或第四代语言;2 2)需求可能发生变化,客户接受分阶段交)需求可能发生变化,客户接受分阶段交付;付;3 3)分析设计人员对应用领域不熟悉,难以)分析设计人员对应用领域不熟悉,难以一步到位;一步到位;4 4)项目风险高;)项目风险高;52五、原型模型-概念快速原型模型:快速原型模型:先开发一个先开发一个“原型原型”软件,完成主软件,完成主要功能,展示给用户并征求意见,然后逐步完

29、善。要功能,展示给用户并征求意见,然后逐步完善。探索型原型:用于需求分析阶段;探索型原型:用于需求分析阶段;实验型原型:用于设计阶段;实验型原型:用于设计阶段;演化型原型:软件开发全过程,及早向演化型原型:软件开发全过程,及早向用户提交一个原型系统。用户提交一个原型系统。原型运用方式原型运用方式:抛弃策略和附加策略。:抛弃策略和附加策略。53五、原型开发过程-开发步骤原型开发步骤原型开发步骤:快速分析:快速分析:分析人员与用户配合,迅速确定系统的基分析人员与用户配合,迅速确定系统的基本要求。要根据原型所要体现的特征,描述基本需求。本要求。要根据原型所要体现的特征,描述基本需求。关键是要注意分析

30、描述内容的选取。关键是要注意分析描述内容的选取。构造原型:构造原型:在软件工具支持下尽快实现一个可运行的在软件工具支持下尽快实现一个可运行的系统。系统。运行原型:运行原型:是发现问题、消除误解、开发者与用户充是发现问题、消除误解、开发者与用户充分协调的一个步骤。分协调的一个步骤。评价原型:评价原型:评价原型的特性,纠正误解与错误,增添评价原型的特性,纠正误解与错误,增添新要求或提出要求变动,提出全面的修改意见。新要求或提出要求变动,提出全面的修改意见。修改:修改:原型开发的循环。原型开发的循环。54五、原型模型的评价原型的优点原型的优点:可及早为用户提供有用的产品。可及早为用户提供有用的产品。

31、可及早发现问题,随时纠正错误。可及早发现问题,随时纠正错误。减少技术、应用风险,缩短开发时间,减少费用。减少技术、应用风险,缩短开发时间,减少费用。促使用户主动参与开发活动,促进各类人员的协调,促使用户主动参与开发活动,促进各类人员的协调,减少误解,适应需求的变化,能有效提高系统质量。减少误解,适应需求的变化,能有效提高系统质量。原型存在的问题:原型存在的问题:缺乏丰富而强有力的软件工具和开发环境。缺乏丰富而强有力的软件工具和开发环境。缺乏有效的管理机制,还未建立起自己的开发标准。缺乏有效的管理机制,还未建立起自己的开发标准。对设计人员水平和开发环境要求较高。对设计人员水平和开发环境要求较高。

32、在多次重复改变原型的过程中,程序员会感到厌烦。在多次重复改变原型的过程中,程序员会感到厌烦。系统的易变性对测试有一定影响,难于做到彻底测系统的易变性对测试有一定影响,难于做到彻底测试,更新文档较为困难。试,更新文档较为困难。2022-7-2455五、原型模型五、原型模型-快速快速原型法原型法PrototypeFeedbackModification56快速原型模型需求分析需求分析需求说明需求说明设计说明设计说明源程序源程序软件产品软件产品设计设计编码编码测试测试维护维护快速分析快速分析需求说明需求说明原型原型修改意见修改意见修改类型修改类型构造原型构造原型运行原型运行原型评价原型评价原型停止修

33、改停止修改修改说明修改说明修改原型修改原型57六、喷泉模型n主要用于采用面向对象技术的项目n喷泉体现迭代和无间隙的特征n软件的某些部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分n在分析、设计、实现等各项活动之间无明显边界58六、喷泉模型六、喷泉模型59需求阶段需求阶段分析阶段分析阶段设计阶段设计阶段编程阶段编程阶段集成与测试阶段集成与测试阶段维护与演进阶段维护与演进阶段60七、迭代模型(RUP模型)Rational Unified Process初始初始精化精化构建构建移交移交9个核个核心流程心流程对初学者来说,使用比较困难对初学者来说,使用比较困难61八、智能模型八、智能

34、模型62用户要求用户要求需求分析需求分析概要设计概要设计详细设计详细设计程序编码程序编码测试测试维护维护支持需求支持需求 分析的分析的专家系统专家系统支持软件支持软件 设计的设计的专家系统专家系统支持测试支持测试的专家系统的专家系统支持维护支持维护的专家系统的专家系统6364九、软件生存周期模型的剪裁在一个成熟的在一个成熟的ITIT企业或软件组织内部,通常要根据各企业或软件组织内部,通常要根据各种软件开发模型的特点,结合本单位的开发经验和行种软件开发模型的特点,结合本单位的开发经验和行业特点的具体实际,还需要定制适合本单位的业特点的具体实际,还需要定制适合本单位的“生存生存周期模型裁剪指南周期

35、模型裁剪指南”,有针对性地对选定的软件开发,有针对性地对选定的软件开发模型中定义的生存周期,进行适当剪裁,使它完全适模型中定义的生存周期,进行适当剪裁,使它完全适合于本单位的需求。合于本单位的需求。所谓裁剪,就是对原模型中定义的内容进行增、改、所谓裁剪,就是对原模型中定义的内容进行增、改、删,去掉对本单位不适用的内容,同时进一步细化,删,去掉对本单位不适用的内容,同时进一步细化,从而构成了完全适合本单位的从而构成了完全适合本单位的“软件生存周期模型裁软件生存周期模型裁剪指南剪指南”。该指南在软件组织内部,专供高层经理和。该指南在软件组织内部,专供高层经理和项目经理在软件策划中选取软件开发模型时

36、使用。项目经理在软件策划中选取软件开发模型时使用。65n在软件开发过程中必须遵循的软件工程原则有:在软件开发过程中必须遵循的软件工程原则有:66n软件工程的基本原理有:软件工程的基本原理有:67案例分析整定软件采用了以原型模型为主的软件开发模型。故障分析是电力系统中非常基本的运算,算法比较成熟,软件用户对此模块的功能也较熟悉,需求变动相对较小,因而本功能模块可以采用瀑布模型。但由于我们已有故障分析程序,只需对该程序的接口、部分功能算法进行修改和调整,所以采用原型模型较为合适。软件开发阶段中重点关注需求分析阶段,弄清楚已有程序与用户需求间的差距。图形建模在建模范围方面基本明确,但在具体内容方面仍

37、有不确定性,原因是用户对此功能模块的想法还不够清晰,通常用“待基本的出来后再讨论”来回答一些细节问题。此外,我们有以前其他项目的图形建模软件基础,所以本模块采用了演化型原型模型,采用附加策略。先在以前图形建模的软件基础上去除一些不需要的内容和添加新的内容,向用户提交初步的原型系统,然后再根据用户的意见进行修改,在反复多次中才达成需求的彻底清晰,此时本模块软件也可以基本开发完成。整定计算是专业性很强的内容,通常需要较多的整定人员工作经验,而整定经验的获得往往无法一次完成,因此开发方需要经常与用户交流沟通。此外,整定计算模块用户最关心的是软件的可用性,即计算过程是否方便、透明,计算结果是否合理。因

38、此,整定计算也采用了原型模型,以某种原理的保护为例反复设计与修改整定的流程,直到满足用户的可用性和实用性为止,其他原理的保护整定则以此为模板进行开发。68总结n 掌握:软件生存期各个阶段的基本任务;软件生存期模型。掌握:软件生存期各个阶段的基本任务;软件生存期模型。n 了解:软件生存期的各种模型及特点。了解:软件生存期的各种模型及特点。69第三讲第三讲70学习内容n可行性研究n项目开发计划n软件需求分析71项目来源合同合同:为别人做;:为别人做;立项:为自己做;立项:为自己做;失败:无盈利赔钱声誉影响官司失败:尽赔钱公司倒闭东山再起难!学到的远比失去的多!72可行性研究(Feasibility

39、 Study)可行性研究的可行性研究的目的目的就是用最小的代价在就是用最小的代价在尽可能短的时间内确定该软件项目是否能尽可能短的时间内确定该软件项目是否能够开发,是否值得开发,最后给决策者提够开发,是否值得开发,最后给决策者提供做与不做的依据。供做与不做的依据。可行性研究可行性研究实质实质上是要进行一次简化、上是要进行一次简化、压缩了的需求分析和设计过程,要在较高压缩了的需求分析和设计过程,要在较高层次上以抽象的方式进行需求分析和设计层次上以抽象的方式进行需求分析和设计过程。过程。73可行性研究的任务 首先首先需要进行概要的分析研究,初步确定项需要进行概要的分析研究,初步确定项目的规模和目标,

40、确定项目的约束和限制。目的规模和目标,确定项目的约束和限制。然后然后进行简要的需求分析,抽象出该项目的进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。逻辑结构,建立逻辑模型。最后最后从逻辑模型出发,经过压缩的设计,探从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决办法,对每种索出若干种可供选择的主要解决办法,对每种解决方法都要从以下三方面研究它的可行性。解决方法都要从以下三方面研究它的可行性。u技术可行性技术可行性u经济可行性经济可行性u社会可行性社会可行性74技术可行性n 在现有资源条件下,项目能否实现,风险有多大(技术、资源是否成熟)。社会可行性社会可行性u是否存在

41、侵权、软件操作方式是是否存在侵权、软件操作方式是否适合用户所在组织、现有管理否适合用户所在组织、现有管理制度、人员素质是否可行?制度、人员素质是否可行?75经济可行性(成本效益分析)成本成本效益分析首先是估算将要开发的系统效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较的开发成本,然后与可能取得的效益进行比较和权衡。效益分有形效益和无形效益。有形效和权衡。效益分有形效益和无形效益。有形效益可以用货币的时间价值、投资回收期和纯收益可以用货币的时间价值、投资回收期和纯收入等指标进行度量;无形效益主要从性质上、入等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进

42、行量的比较。心理上进行衡量,很难直接进行量的比较。货币的时间价值货币的时间价值:通常用利率表示。:通常用利率表示。F=P(1+n i)不计复利不计复利投资回收期投资回收期:就是使累计的经济效益等于最初:就是使累计的经济效益等于最初的投资费用所需的时间。的投资费用所需的时间。纯收入纯收入:就是在整个生存周期之内的累计经济:就是在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。效益(折合成现在值)与投资之差。76提示不是解决问题,而是确定是否可解不是解决问题,而是确定是否可解值得解值得解所以不要花过多精力,占总成本的所以不要花过多精力,占总成本的 5 10%例:实践性大作业例:实践性大作

43、业 3 方面考虑:方面考虑:技术上技术上-23 学生学生,7 周周,电脑电脑,开发经验开发经验,决心,风险(影响其它课程)决心,风险(影响其它课程).社会上社会上-产品有没有人用产品有没有人用 经济上经济上-预算预算,盈利盈利,.77可行性研究的具体步骤1、确定项目规模和目标,明确限制和约束。我们认为用户要的 用户要的?2、研究老系统、研究老系统 解决老系统问题解决老系统问题老系统功老系统功能能新增新增功能功能 注:注:注意注意了解与了解与其它系其它系统的接统的接口。口。新系统效益新系统效益?老系统效益老系统效益 78可行性研究的具体步骤3、导出高层逻辑模型、导出高层逻辑模型(conceptu

44、al design)抽象抽象实现实现改进改进老系统老系统模型模型新模型新模型新系统新系统应该告诉用户应该告诉用户“What”而不是而不是“How”79系统流程图(事务图)高层逻辑模型高层逻辑模型80可行性研究的具体步骤 3、逻辑模型4、复查和重新定义 1、复查定义 注:此时合同未签,应考虑成本,不宜反复太多次。5、导出和评价多种解法、导出和评价多种解法进度表进度表经济上合算经济上合算技术上可行技术上可行操作上可行操作上可行技术上不可行技术上不可行用户用户不不可可能能操操作作不合算不合算81可行性研究的具体步骤6、推荐行动方针Yes or No?NoYesWhy?Which one is the

45、 best?Why?(cost/benefit)8、审查、存档、审查、存档7、编写可行性报告(开发计划)、编写可行性报告(开发计划)任务分解,确定负责人任务分解,确定负责人 大致进度规划大致进度规划 财务预算财务预算 风险分析及对策风险分析及对策粗略粗略82文档:可行性报告 参考参考GB856788中的可行性研究报告,进行适当中的可行性研究报告,进行适当裁剪。裁剪。83项目开发计划 是对开发项目的费用、时间、进度、人员组织、硬件是对开发项目的费用、时间、进度、人员组织、硬件设备的配置、软件开发环境和运行环境的配置等进行说明设备的配置、软件开发环境和运行环境的配置等进行说明和规划。和规划。是项目

46、管理人员对项目进行管理的依据,据此对项目是项目管理人员对项目进行管理的依据,据此对项目的费用、进度和资源进行控制和管理。的费用、进度和资源进行控制和管理。工具:工具:Project85注意事项标书标书:我国对软件成本认识不足:我国对软件成本认识不足人月不能互换:人月不能互换:需求的变更、人员的流动、环境的变化;需求的变更、人员的流动、环境的变化;困难:就是缺乏数据估计,导致估计不科学;困难:就是缺乏数据估计,导致估计不科学;估算估算项目复杂度(熟悉程度)、规模项目复杂度(熟悉程度)、规模 86软件需求分析:“做什么?”需求分析的过程是开发人员与用户共同协需求分析的过程是开发人员与用户共同协商,

47、明确系统的全部功能、性能以及运行规商,明确系统的全部功能、性能以及运行规格,并且使用软件开发人员和用户都能理解格,并且使用软件开发人员和用户都能理解的语言准确地表达出来,即完成需求规格说的语言准确地表达出来,即完成需求规格说明的过程。明的过程。87软件需求重要性例子“喂,是喂,是JackJack吗?我是人力资源部的吗?我是人力资源部的Tom,Tom,我们在使用你编写的职员系我们在使用你编写的职员系统时遇到一个问题,一个职员想把她的名字改成统时遇到一个问题,一个职员想把她的名字改成Sparkle Starlight,Sparkle Starlight,而而系统不允许,你能帮帮忙吗?系统不允许,你

48、能帮帮忙吗?”“她嫁给了一个姓她嫁给了一个姓StarlightStarlight的人吗?的人吗?”JackJack问道。问道。“不,她没有结婚,而仅仅是要更改她的名字,不,她没有结婚,而仅仅是要更改她的名字,”TomTom回答,回答,“就是就是这问题,好象我们只能在婚姻状况改变时才能更改姓名。这问题,好象我们只能在婚姻状况改变时才能更改姓名。”“当然这样,我从没想到谁会莫名其妙地更改姓名,我也不记得你曾当然这样,我从没想到谁会莫名其妙地更改姓名,我也不记得你曾告诉我系统需要处理这样的事情。告诉我系统需要处理这样的事情。”JackJack说。说。TomTom说:说:“我想你当然知道每个人只要愿意

49、都可以随时合法更改其姓我想你当然知道每个人只要愿意都可以随时合法更改其姓名。但不管怎样,你在本周五之前解决这问题,否则名。但不管怎样,你在本周五之前解决这问题,否则SparkleSparkle不能支付不能支付她的帐单。她的帐单。”“这不是我的错!我现在正忙着做一个新的系统,还要做一些别的需这不是我的错!我现在正忙着做一个新的系统,还要做一些别的需求变更请求。很抱歉,只能下周才能修改。求变更请求。很抱歉,只能下周才能修改。”88故事带给我们的启示 u影响影响:作为客户,很恼火,因为软件系统不:作为客户,很恼火,因为软件系统不能进行一项基本的操作。哪怕开发者给其解决能进行一项基本的操作。哪怕开发者

50、给其解决了,也不会感谢他。作为开发者,也很烦人,了,也不会感谢他。作为开发者,也很烦人,迫使你增加了当前的工作,又要你优先处理。迫使你增加了当前的工作,又要你优先处理。u原因原因:由于收集、编写、协商、修改需求过:由于收集、编写、协商、修改需求过程的手续或方法失误带来的。这里是非正式信程的手续或方法失误带来的。这里是非正式信息的收集、未确定或不明确的功能、未发现或息的收集、未确定或不明确的功能、未发现或未经交流的假设、不完善的需求文档,以及突未经交流的假设、不完善的需求文档,以及突发的需求变更过程所造成的。发的需求变更过程所造成的。u解决办法解决办法:重视需求分析,派经验丰富的人:重视需求分析

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(精品课程《软件工程》PPT课件-.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|