《软件工程》ppt课件 .ppt
《《软件工程》ppt课件 .ppt》由会员分享,可在线阅读,更多相关《《软件工程》ppt课件 .ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程课件课件张张权范权范软件工程软件工程第一章第一章概述概述第二章第二章软件计划软件计划第三章第三章软件需求分析软件需求分析第四章第四章软件总体设计软件总体设计第五章第五章软件详细设计软件详细设计第六章第六章软件编码软件编码第七章第七章软件测试软件测试第八章第八章软件维护软件维护第九章第九章软件项目管理软件项目管理第十章第十章面向对象技术面向对象技术第一章第一课时第一章第一课时几个基本概念软件及其组成软件的概念软件的组成软件危机(概念、表现、产生原因与解决办法)软件工程软件发展简史(无程序的阶段、程序阶段、软件阶段与软件工程阶段)软件生命周期(软件生存的七个阶段:软件计划、软件需求
2、分析、软件总体设计、软件详细设计、软件编码、软件测试、软件维护)第二课时第一章第二课时第一章第二课时软件开发模型瀑布模型快速原型瀑布模型的定义瀑布模型的定义瀑布模型遵循软件生存周期的划分,明确规定每个阶段的任务,各个阶段的工作顺序展开,恰如奔流不息拾级而下的瀑布。问题定义可行性研究需求分析概要设计详细设计编码测试运行维护开发时期计划时期有错运行时期对应的文档资料与系统目标方案论证报告或计划任务书需求规格说明书系统功能结构图设计规格书程序规格书、源程序测试记录、用户操作手册评价报告、维护记录瀑布模型的特点瀑布模型的特点(1)软件生存周期的顺序性:只有前一阶段工作完成以后,后一阶段的工作才能开始,
3、前一阶段的输出文档,就是后一阶段的输入文档。只有前一阶段有正确的输出,后一阶段才可能有正确的结果。如果在生存周期的某一阶段出现了错误,往往要追溯到在它之前的一些阶段。瀑布模型开发适合于在软件需求比较明确,开发技术比较成熟,工程管理比较严格的场合下使用。(2)尽可能推迟软件的编码:程序设计也称为编码。实践表明,大、中型软件编码开始得越早,完成所需的时间反而越长。瀑布模型在编码之前安排了需求分析、总体设计、详细设计等阶段,从而把逻辑设计和编码清楚地划分开来,尽可能推迟程序编码阶段。(3)保证质量:为了保证质量,瀑布模型软件开发在每个阶段都要完成规定的文档,每个阶段都要对已完成的文档进行复审,以便及
4、早发现隐患,排除故障。快速原型快速原型正确的需求定义是系统成功关键。软件开发人员需要反复多次地和用户交流信息,才能全面、准确地了解用户的要求。理想的做法是先根据需求分析的结果开发一个原型系统,请用户试用一段时间,以便能正确地认识到他们的实际需要是什么,这相当于工程上先制作“样品”试用后,作适当改进,然后再批量生产一样,这就是快速原型法。虽然此法要额外花费一些成本,但是可以尽早获得更正确完整的需求,可以减少测试和调试的工作量,提高软件质量。因此快速原型法使用得当,能减少软件的总成本,缩短开发周期,是目前比较流行的实用开发模式。根据建立原型的目的不同,实现原型的途径也有所不同,通常有下述三种类型。
5、(1)渐增型(2)用于验证软件需求的原型(3)用于验证设计方案的原型快速原型(续)快速原型(续)类型之一类型之一先选择一个或几个关键功能,建立一个不完全的系统,此时只包含目标系统的一部分功能或对目标系统的功能从某些方面作简化,通过运行这个系统取得经验,加深对软件需求的了解,逐步使系统扩充和完善。如此反复进行,直到软件人员和用户对所设计的软件系统满意为止。渐增型开发的软件系统是逐渐增长和完善的,所以从整体结构上不如瀑布型方法开发的软件那样清晰。但是,由于渐增型开发过程自始至终都有用户参与,因而可以及时发现问题加以修改,可以更好地满足用户需求。快速原型(续)快速原型(续)类型之二类型之二系统分析人
6、员在确定了软件需求之后,从中选出某些应验证的功能,用适当的工具快速构造出可运行的原型系统,由用户试用和评价。这类原型往往用后就丢弃,因此构造它们的生产环境不必与目标系统的生产环境一致,通常使用简洁而易于修改的超高级语言对原型进行编码。快速原型(续)快速原型(续)类型之三类型之三为了保证软件产品的质量,在总体设计和详细设计过程中,用原型来验证总体结构或某些关键算法。如果设计方案验证完成后就将原型丢弃,则构造原型的工具不必与目标系统的生产环境一致。如果想把原型作为最终产品的一部分,原型和目标系统可使用同样的程序设计语言。快速原形的开发过程快速原形的开发过程原型设计编码系统定义与用户需求分析测试原型
7、产品系统的设计实现完善原型第三课时第一章第三课时第一章第三课时喷泉模型软件重用模型喷泉模型喷泉模型演化集成测试编程设计分析喷泉模型原理图 基基于于喷喷泉泉模模型型,HodgeHodge等等人人提提出出将将软软件件开开发发过过程程划划分分为为概概念念模模型型分分析析、系系统统设设计计、对对象象设设计计与与实实现现、测测试试和和系系统统组组装装集集成成等等五五个个阶阶段段,它它也也体体现现出出分分析析和和设设计计之之间间的的重重叠叠 概概念念模模型型分分析析:这这个个阶阶段段主主要要目目标标是是建建立立系系统统模模型型。系系统统模模型型中中的的对对象象是是现现实实世世界界中中的的客客观观对对象象的
8、的抽抽象象,应应结结构构清清晰晰、易易于于理理解解、易易于于描描述述其其规规范范。在在分分析析阶阶段段面面向向问问题题域域,建建立立起起对对象象模模型型和和过过程程模模型型。系系统统设设计计:给给出出模模型型对对象象和和过过程程的的规规范范描描述述。对对象象设设计计与与实实现现:面面向向对对象象设设计计方方法法强强调调软软件件模模块块的的再再用用和和软软件件合合成成,因因而而在在对对象象设设计计和和实实现现时时,并并不不要要求求所所有有的的对对象象都都从从头头开开始始设设计计,而而是是充充分分利利用用以以前前的的设设计计工工作作。在在软软件件开开发发时时检检索索对对象象库库,若若是是对对象象库
9、库中中已已有有的的,则则可可再再用用;否否则则,重重新新定定义义新新的的对对象象,进进行行设设计计和和实实现现。测测试试;测测试试所所有有的的对对象象及及对对象象相相互互之之间间的的关关系系是是否否符符合要求。合要求。喷泉模型(续)喷泉模型(续)系统组装集成:面向对象软件特点之一是软件重用和组装技术。对象是数据和操作的封装载体,组装在一起才构成完整的系统。软件是对象模块的复合,而软件设计是对象模块经过进程控制而构造生成。软件重用模型软件重用模型旨在开发具有各种一般性功能的软件模块,将它们组成软件重用库,这些模块设计时考虑其适应各种界面的接口规格,可供软件开发时利用。主要优点是减少软件生产中的重
10、复开发,避免软件开发人员的大量重复劳动,提高开发效率,缩短开发周期,降低开发成本。软件重用库的模块不仅要便于选择使用,而且还应具有允许扩充、积累其成分的性能。软件重用分两种:(1)重用程序以各种源程序形式存库;(2)重用程序是经过编译的目标程序。软件重用模式开发过程如下:设计重用库模块:重用库中的模块要经历模块定义、功能规格描述、模块设计、编码、模块功能测试、模块登记、模块目录编制,此后可放人重用库中。软件系统设计:在重用库建立后,软件系统的设计步骤如下:需求分析,功能定义、设计,在重用库中选择模块,编码,测试,验收,运行维护。第四课时第一章第四课时第一章第四课时喷泉模型软件工程的任务与研究范
11、围软件开发的原则与开发方法返回喷泉模型喷泉模型瀑布模型要求在软件开发的初期就完全确定软件的需求,这在很多情况下往往是做不到的。螺旋模型试图克服瀑布模型的这一不足。SM把软件开发过程安排为逐步细化的螺旋周期序列,每经历一个周期,系统就细化和完善一些。SM每螺旋周期由六个步骤组成:(1)确定任务目标:根据初始需求分析项目计划,确定任务目标、可选方案和限制。(2)选择对象:对各种软硬件设备、开发方法、技术、开发工具、人员、开发管理等对象进行选择:并决定软件是进行研制、购买还是利用现有的。(3)分析约束条件:软件开发的时间、经费等限制条件。(4)风险分析:评估目标、对象、约束条件三者之间的联系,列出可
12、能出现的问题及问题的严重程度等,把最重要的问题作为尚未解决的关键问题的风险。(5)制定消除风险的方法:应有详尽的说明和周密的计划,并估计可能产生的后果。依此来开发软件,为制订下一周期的计划打下基础。(6)制定下一周期的工作计划:在第一个螺旋周期,确定目标、选择对象、分析约束,通过风险分析制订消除风险的方法,初步开发原型1,制定系统生存周期计划。喷泉模型(续)喷泉模型(续)在第二个螺旋周期,进一步明确系统的目标、开发方案及约束条件,通过风险分析制定消除风险的方法,在原型1的基础上开发原型2。进一步明确软件需求,进行需求确认,修改开发计划。在第三个螺旋周期,再进一步确认系统目标、开发方案及约束条件
13、,进行风险分析,制订进一步消除风险的方法,在原型2的基础上开发原型3。此时可进行产品设计,再对设计进行验证和确认,制订集成测试计划。在第四个螺旋周期,软件开发方案、系统目标和约束条件得到确定,在风险分析的基础上,开发具有实用价值的可操作性原型,此时可对产品进行详细设计,进入编码、单元测试、集成测试阶段,最后进入验收测试,验收合格后交付用户使用,进入运行、维护阶段。喷泉模型原理图逐步执行评价方案,标识、消除风险计划下阶段工作运行维护验证测试集成测试单元测试编码详细设计风 险分析集成测试计划设计验证与确认产品设计原型3风险分析开发 计划需求确认软件需求原型2风险分析需求计划生存周期计划确定 目标方
14、案 约束原型1风险分析操作性原型确 定目 标方 案与 约束螺旋模型的开发过程开发验证下一级产品软件工程的任务与研究范围软件工程的任务与研究范围软件产品的特点软件工程的研究内容与方法软件工具与软件支撑环境软件管理软件开发的原则与方法软件开发的原则与方法软件开发的原则自顶向下与模块结构软件开发的方法1.非自动形式的系统开发方法(1)系统流程图(2)结构分析法(3)结构化设计法(4)数据结构法(5)层次输入处理输出方法(HIPO法)2.半自动形式的系统开发方法(1)软件需求工程法(2)问题说明语言与分析法 3.自动形式的系统开发方法(HOS方法):由计算机自动确定规范、自动分析、自动编程、自动执行与
15、模拟,以规范语言AXES、资源分配工具RTA为工具。能自动进行分析、设计,工作量少、设计规范,也能自动进行修改和维护。该方法适用于系统分析和设计。第二章第一课时第二章第一课时问题定义与可行性研究问题定义可行性研究问题定义问题定义问题是指用户的基本要求,就是确切地定义用户要求解决的问题,即确定问题的性质、工程的目标和规模。怎样定义问题?问题定义的来源是用户,是提出问题、请求解决的人。若问题是以书面形式提出来,那么分析员应该认真阅读和分析书面材料;如果问题是以口头形式提出,那么分析员应该认真倾听并仔细记录要点,在适当的时候认真地请用户解释。分析员还应该通过对用户的访问调查进一步搞清楚,用户为什么提
16、出这样的问题,问题的背景是什么,用户的目标是什么。问题定义的目的是要在短时间内,对用户的要求有一个比较准确的估计,对要实现的系统规模做到胸中有数。但仅有这些还不够,还要搞清用户不打算干什么,在这个系统中哪些内容不用实现。工作的宗旨是搞清要做什么并划清要实现的系统的范围边界。在完成问题定义的过程中,用户在一开始,可能会给你大堆大堆的表格,因为他们可能认为只要把表格给你讲清楚,你就会对这个问题定义(续)问题定义(续)系统全部弄清楚了。还有一些人可能会给你展示一些企业的十分详尽的管理示图,如物资流管理图、生产管理图、计划财务管理图等。因为他们也可能认为,只要分析员把这些图看懂了,就会对他们要建立的系
17、统搞清楚了。但是,在问题定义阶段千万不要陷入到这些表格和图纸中。因为不管是表格还是图纸,其中都包含了大量的、只有用户才能懂的术语。当然,并不是说在问题定义阶段,这些图纸表格没有一点作用。对一些关键性的语汇可以请用户讲清楚,这样有利于问题定义的准确性。总之,在问题定义阶段,分析员应尽可能站在较高的角度去抽象、概括所要干的事情。分析员对问题有了明确认识之后,应该把自己的认识写成书面报告,提交给用户和使用部门的负责人审查,以检验分析员对所要解决的问题的理解是否正确。因为分析员对问题的理解为今后开发工作确定了方向。分析员对问题理解正确,这是确保今后系统开发成功的关键。反之,分析员对问题理解不正确,最终
18、开发出来的问题定义(续)问题定义(续)系统必然不能解决实际要求解决的问题。如果一个系统,不能解决要求它解决的问题,那么这个系统就一点价值也没有,只不过是浪费了开发它所用的时间和资源。所以及时审查问题的定义是极端重要的。理想的做法是分析员、用户和使用部门的负责人一起阅读讨论这份报告,明确含糊不清的地方,改正不正确的地方。通过修改得到一份大家一致同意的文档。在问题定义阶段,分析员应该对工程成本做出粗略的预算,并对下阶段可行性研究所需要时间和成本做出较精确的估计。对问题定义的书面报告应该尽可能清楚简洁,最好写在一页内。这份报告通常应包括工程项目的名字,对问题概括定义、项目的目标,项目的规模,对可行性
19、研究的具体建议(既需要用的时间和成本)等等。一旦分析员和用户及使用部门的负责人对所要解决的问题,取得完全一致的看法且在报告书上签了字,问题定义阶段工作就宣告完成,可行性研究就可以开始。可行性研究可行性研究所谓可行性研究就是分析员站在较高的角度去调查现行手工系统及用户提出的项目目标,并且去寻找是否有一种手段能够在现有条件下,实际地达到项目目标,并使用户满意。同时向用户指出该系统实现的意义,以使用户去权衡花费这样的代价去实现这样的系统是否值得。可行性研究的目的就是用最小的代价在尽可能短的时间内,确定问题是否能够解决,从而确定问题是否值得去解。如何才能达到这个目的呢?进行客观分析,通过对几种可能解法
20、,分析其利弊,才能判断原定系统的目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程序。因此,可行性研究实质上是进行一个大大压缩简化了的软件分析和设计过程,也就是在较高层上,以较抽象的方式进行软件分析和设计的过程。可行性研究应在以下三方面进行:技术可行性;经济可行性;操作可行性。可行性研究(续)可行性研究(续)1.技术可行性 对技术可行性研究,首先应从对现行系统进行调查入手。因为现行系统是信息的重要来源。显然,如果目前有一个系统正被人使用,那么这个系统必定能完成某些有用的工作,因此,新的目标系统必须也能完成它的基本功能;另一方面,如果现行系统是完美无缺的,用户自然不会提
21、出开发新的系统要求,因此,现行系统必然有某些缺点。新系统必须能解决旧系统中存在的问题。所以,应先对现行系统的组成部分、功能和存在问题进行调查研究。但这种调查研究不可能做得很细,对一些内容细节必须先把它们暂时忽略,而先抓住主要的问题。此时,分析员应把调查到的现行系统的情况画成高层数据流程图(数据流程图的画法在第三章介绍)。其次,导出新系统的高层逻辑模型(数据流程图)。新系统的高层的逻辑模型建立在现行系统的高层数据流程图的基础上。因为通过前一步的工作,分析员对目标系统(新系统)应该具的基本功能和所受的约束,已有一定的了解,使用数据流程图描绘数据在系统中可行性研究(续)可行性研究(续)流动和处理的情
22、况,从而概括地表达出对新系统的设想。用数据流程图和数据字典来定义新系统的高层逻辑模型。其三,重新定义问题。新系统的逻辑模型实质上表达了分析员对新系统必须做什么的看法。此时,分析员应该和用户一起复查问题定义、工程规模和目标。这次复查应该把数据流程图和数据字典作讨论的基础。如果分析员对问题有误解或者用户曾经遗漏了某些要求,那么现在是发现和改正这些错误的时候了。其四,导出供选择的解法。分析员应从他所建议的系统逻辑模型出发,推导出若干个较高层次的解决办法,供比较和选择。最简单的途径,是从技术角度出发,考虑解决问题的不同方案。这些不同方案可以在数据流程图上划分不同的自动化边界而得到。所以分析员在确定了几
23、组不同的自动化边界之后,再针对每组边界,考虑如何实现所要求的系统。当从技术角度提出了一些系统模型之后,应根据技术可行性的考虑,初步排除一些不现实的系统。例如,如果要求系统的响应时间可行性研究(续)可行性研究(续)不超过几秒钟,显然应该排除任何批处理方案。把技术上行不通的解法(方案)去掉之后,就剩下了一组技术上可行的方案。也就是根据现有的技术条件,考虑所提出的方案是否能实现。例如现有的计算机是否能达到所要求的速度,现有的输入输出设备能否承担得了要求的数据输入输出量。一般来说,技术可行性还可以从硬件(包括外围设备)的性能要求、软件的性能要求(包括操作系统、软件包、数据库管理系统、各种软件工具)能源
24、及环境条件以及软件系统所采用的技术是否先进,实现的可能性如何,实现软件系统的人员素质是否具备等方面进行考虑。2.经济可行性研究经济可行性,不仅仅是了解为完成用户提出的要求是否有足够的资金支持(这是目前很多分析员重点要做的事情),而更主要是把成本与获利分析清楚。也就是对经济合理性进行评价,即带来的经济效益是否超过其开发和维护所需要的费用。这工作包括估计费用和估计效益两个方面。可行性研究(续)可行性研究(续)估计费用。主要考虑以下几部分:设备费用,包括计算机硬件和软件的费用;人力费用,包括开发人员和维护人员的工资;材料费用;管理费用以及维护费用等。估计效益。可以从以下几个方面考虑:提供了哪些以前提
25、供不了的信息,提供信息的速度提高了多少?质量有什么提高?对使用者查询和使用信息的方便程度有什么提高,节省多少人力?对组织的领导人和管理人员正确做出决策提供了哪帮助?有时不能直接用金钱来衡量效益,如一个邮购单位,由于能够及时、准确地处理订货,缩短了顾客收到货物的时间,从而在竞争中得到了更多的顾客。这一类的收益就不容易用具体金钱来衡量,只能由管理人员根据经验来做出大约的估计。在估计效益时,要谨慎把各种可能影响效益发挥的各种因素考虑在内,打上折扣。3.操作和维护可行性人员操作和维护可行性的研究是了解当用户所要求的软件系统可行性研究(续)可行性研究(续)建立起来之后,用户对它的操作是否方便?管理和维护
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件工程ppt课件 ppt 课件
限制150内