《软件工程》PPT课件PPT文档格式.ppt
《《软件工程》PPT课件PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《《软件工程》PPT课件PPT文档格式.ppt(82页珍藏版)》请在冰豆网上搜索。
![《软件工程》PPT课件PPT文档格式.ppt](https://file1.bdocx.com/fileroot1/2022-10/3/477841f2-f5f5-4c4b-8bcb-8e5849b585c0/477841f2-f5f5-4c4b-8bcb-8e5849b585c01.gif)
为了保证质量,瀑布模型软件开发在每个阶段都要完成规定的文档,每个阶段都要对已完成的文档进行复审,以便及早发现隐患,排除故障。
快速原型,正确的需求定义是系统成功关键。
软件开发人员需要反复多次地和用户交流信息,才能全面、准确地了解用户的要求。
理想的做法是先根据需求分析的结果开发一个原型系统,请用户试用一段时间,以便能正确地认识到他们的实际需要是什么,这相当于工程上先制作“样品”试用后,作适当改进,然后再批量生产一样,这就是快速原型法。
虽然此法要额外花费一些成本,但是可以尽早获得更正确完整的需求,可以减少测试和调试的工作量,提高软件质量。
因此快速原型法使用得当,能减少软件的总成本,缩短开发周期,是目前比较流行的实用开发模式。
根据建立原型的目的不同,实现原型的途径也有所不同,通常有下述三种类型。
(1)渐增型
(2)用于验证软件需求的原型(3)用于验证设计方案的原型,快速原型(续)类型之一,先选择一个或几个关键功能,建立一个不完全的系统,此时只包含目标系统的一部分功能或对目标系统的功能从某些方面作简化,通过运行这个系统取得经验,加深对软件需求的了解,逐步使系统扩充和完善。
如此反复进行,直到软件人员和用户对所设计的软件系统满意为止。
渐增型开发的软件系统是逐渐增长和完善的,所以从整体结构上不如瀑布型方法开发的软件那样清晰。
但是,由于渐增型开发过程自始至终都有用户参与,因而可以及时发现问题加以修改,可以更好地满足用户需求。
快速原型(续)类型之二,系统分析人员在确定了软件需求之后,从中选出某些应验证的功能,用适当的工具快速构造出可运行的原型系统,由用户试用和评价。
这类原型往往用后就丢弃,因此构造它们的生产环境不必与目标系统的生产环境一致,通常使用简洁而易于修改的超高级语言对原型进行编码。
快速原型(续)类型之三,为了保证软件产品的质量,在总体设计和详细设计过程中,用原型来验证总体结构或某些关键算法。
如果设计方案验证完成后就将原型丢弃,则构造原型的工具不必与目标系统的生产环境一致。
如果想把原型作为最终产品的一部分,原型和目标系统可使用同样的程序设计语言。
快速原形的开发过程,第三课时,第一章第三课时,喷泉模型软件重用模型,喷泉模型,基于喷泉模型,Hodge等人提出将软件开发过程划分为概念模型分析、系统设计、对象设计与实现、测试和系统组装集成等五个阶段,它也体现出分析和设计之间的重叠概念模型分析:
这个阶段主要目标是建立系统模型。
系统模型中的对象是现实世界中的客观对象的抽象,应结构清晰、易于理解、易于描述其规范。
在分析阶段面向问题域,建立起对象模型和过程模型。
系统设计:
给出模型对象和过程的规范描述。
对象设计与实现:
面向对象设计方法强调软件模块的再用和软件合成,因而在对象设计和实现时,并不要求所有的对象都从头开始设计,而是充分利用以前的设计工作。
在软件开发时检索对象库,若是对象库中已有的,则可再用;
否则,重新定义新的对象,进行设计和实现。
测试;
测试所有的对象及对象相互之间的关系是否符合要求。
喷泉模型(续),系统组装集成:
面向对象软件特点之一是软件重用和组装技术。
对象是数据和操作的封装载体,组装在一起才构成完整的系统。
软件是对象模块的复合,而软件设计是对象模块经过进程控制而构造生成。
软件重用模型,旨在开发具有各种一般性功能的软件模块,将它们组成软件重用库,这些模块设计时考虑其适应各种界面的接口规格,可供软件开发时利用。
主要优点是减少软件生产中的重复开发,避免软件开发人员的大量重复劳动,提高开发效率,缩短开发周期,降低开发成本。
软件重用库的模块不仅要便于选择使用,而且还应具有允许扩充、积累其成分的性能。
软件重用分两种:
(1)重用程序以各种源程序形式存库;
(2)重用程序是经过编译的目标程序。
软件重用模式开发过程如下:
设计重用库模块:
重用库中的模块要经历模块定义、功能规格描述、模块设计、编码、模块功能测试、模块登记、模块目录编制,此后可放人重用库中。
软件系统设计:
在重用库建立后,软件系统的设计步骤如下:
需求分析,功能定义、设计,在重用库中选择模块,编码,测试,验收,运行维护。
第四课时,第一章第四课时,喷泉模型软件工程的任务与研究范围软件开发的原则与开发方法,返回,喷泉模型,瀑布模型要求在软件开发的初期就完全确定软件的需求,这在很多情况下往往是做不到的。
螺旋模型试图克服瀑布模型的这一不足。
SM把软件开发过程安排为逐步细化的螺旋周期序列,每经历一个周期,系统就细化和完善一些。
SM每螺旋周期由六个步骤组成:
(1)确定任务目标:
根据初始需求分析项目计划,确定任务目标、可选方案和限制。
(2)选择对象:
对各种软硬件设备、开发方法、技术、开发工具、人员、开发管理等对象进行选择:
并决定软件是进行研制、购买还是利用现有的。
(3)分析约束条件:
软件开发的时间、经费等限制条件。
(4)风险分析:
评估目标、对象、约束条件三者之间的联系,列出可能出现的问题及问题的严重程度等,把最重要的问题作为尚未解决的关键问题的风险。
(5)制定消除风险的方法:
应有详尽的说明和周密的计划,并估计可能产生的后果。
依此来开发软件,为制订下一周期的计划打下基础。
(6)制定下一周期的工作计划:
在第一个螺旋周期,确定目标、选择对象、分析约束,通过风险分析制订消除风险的方法,初步开发原型1,制定系统生存周期计划。
喷泉模型(续),在第二个螺旋周期,进一步明确系统的目标、开发方案及约束条件,通过风险分析制定消除风险的方法,在原型1的基础上开发原型2。
进一步明确软件需求,进行需求确认,修改开发计划。
在第三个螺旋周期,再进一步确认系统目标、开发方案及约束条件,进行风险分析,制订进一步消除风险的方法,在原型2的基础上开发原型3。
此时可进行产品设计,再对设计进行验证和确认,制订集成测试计划。
在第四个螺旋周期,软件开发方案、系统目标和约束条件得到确定,在风险分析的基础上,开发具有实用价值的可操作性原型,此时可对产品进行详细设计,进入编码、单元测试、集成测试阶段,最后进入验收测试,验收合格后交付用户使用,进入运行、维护阶段。
喷泉模型原理图,软件工程的任务与研究范围,软件产品的特点软件工程的研究内容与方法软件工具与软件支撑环境软件管理,软件开发的原则与方法,软件开发的原则自顶向下与模块结构软件开发的方法1.非自动形式的系统开发方法
(1)系统流程图
(2)结构分析法(3)结构化设计法(4)数据结构法(5)层次输入处理输出方法(HIPO法)2.半自动形式的系统开发方法
(1)软件需求工程法
(2)问题说明语言与分析法3.自动形式的系统开发方法(HOS方法):
由计算机自动确定规范、自动分析、自动编程、自动执行与模拟,以规范语言AXES、资源分配工具RTA为工具。
能自动进行分析、设计,工作量少、设计规范,也能自动进行修改和维护。
该方法适用于系统分析和设计。
第二章第一课时,问题定义与可行性研究问题定义可行性研究,问题定义,问题是指用户的基本要求,就是确切地定义用户要求解决的问题,即确定问题的性质、工程的目标和规模。
怎样定义问题?
问题定义的来源是用户,是提出问题、请求解决的人。
若问题是以书面形式提出来,那么分析员应该认真阅读和分析书面材料;
如果问题是以口头形式提出,那么分析员应该认真倾听并仔细记录要点,在适当的时候认真地请用户解释。
分析员还应该通过对用户的访问调查进一步搞清楚,用户为什么提出这样的问题,问题的背景是什么,用户的目标是什么。
问题定义的目的是要在短时间内,对用户的要求有一个比较准确的估计,对要实现的系统规模做到胸中有数。
但仅有这些还不够,还要搞清用户不打算干什么,在这个系统中哪些内容不用实现。
工作的宗旨是搞清要做什么并划清要实现的系统的范围边界。
在完成问题定义的过程中,用户在一开始,可能会给你大堆大堆的表格,因为他们可能认为只要把表格给你讲清楚,你就会对这个,问题定义(续),系统全部弄清楚了。
还有一些人可能会给你展示一些企业的十分详尽的管理示图,如物资流管理图、生产管理图、计划财务管理图等。
因为他们也可能认为,只要分析员把这些图看懂了,就会对他们要建立的系统搞清楚了。
但是,在问题定义阶段千万不要陷入到这些表格和图纸中。
因为不管是表格还是图纸,其中都包含了大量的、只有用户才能懂的术语。
当然,并不是说在问题定义阶段,这些图纸表格没有一点作用。
对一些关键性的语汇可以请用户讲清楚,这样有利于问题定义的准确性。
总之,在问题定义阶段,分析员应尽可能站在较高的角度去抽象、概括所要干的事情。
分析员对问题有了明确认识之后,应该把自己的认识写成书面报告,提交给用户和使用部门的负责人审查,以检验分析员对所要解决的问题的理解是否正确。
因为分析员对问题的理解为今后开发工作确定了方向。
分析员对问题理解正确,这是确保今后系统开发成功的关键。
反之,分析员对问题理解不正确,最终开发出来的,问题定义(续),系统必然不能解决实际要求解决的问题。
如果一个系统,不能解决要求它解决的问题,那么这个系统就一点价值也没有,只不过是浪费了开发它所用的时间和资源。
所以及时审查问题的定义是极端重要的。
理想的做法是分析员、用户和使用部门的负责人一起阅读讨论这份报告,明确含糊不清的地方,改正不正确的地方。
通过修改得到一份大家一致同意的文档。
在问题定义阶段,分析员应该对工程成本做出粗略的预算,并对下阶段可行性研究所需要时间和成本做出较精确的估计。
对问题定义的书面报告应该尽可能清楚简洁,最好写在一页内。
这份报告通常应包括工程项目的名字,对问题概括定义、项目的目标,项目的规模,对可行性研究的具体建议(既需要用的时间和成本)等等。
一旦分析员和用户及使用部门的负责人对所要解决的问题,取得完全一致的看法且在报告书上签了字,问题定义阶段工作就宣告完成,可行性研究就可以开始。
可行性研究,所谓可行性研究就是分析员站在较高的角度去调查现行手工系统及用户提出的项目目标,并且去寻找是否有一种手段能够在现有条件下,实际地达到项目目标,并使用户满意。
同时向用户指出该系统实现的意义,以使用户去权衡花费这样的代价去实现这样的系统是否值得。
可行性研究的目的就是用最小的代价在尽可能短的时间内,确定问题是否能够解决,从而确定问题是否值得去解。
如何才能达到这个目的呢?
进行客观分析,通过对几种可能解法,分析其利弊,才能判断原定系统的目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程序。
因此,可行性研究实质上是进行一个大大压缩简化了的软件分析和设计过程,也就是在较高层上,以较抽象的方式进行软件分析和设计的过程。
可行性研究应在以下三方面进行:
技术可行性;
经济