软件工程总复习.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件工程总复习.pptx》由会员分享,可在线阅读,更多相关《软件工程总复习.pptx(212页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、11-1软件概念软件概念软件=程序+数据+文档程序程序:按设计的功能和性能要求执行的指令序列按设计的功能和性能要求执行的指令序列数据数据:程序能正常运作的初始化数据程序能正常运作的初始化数据文档文档:为了理解程序所需的详细描述性资料。为了理解程序所需的详细描述性资料。第1页/共212页21-2 软件工程定义软件工程定义1968年NATO(北大西洋公约组织)会议上首次提出Fritz Bauer:建立并使用完善的工程原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。IEEE:软件工程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件
2、中;(2)(1)中所述方法的研究。2001年,软件工程大师Roger S Pressman 对软件工程的定义是:软件工程是一个过程、一组方法和一系列工具。计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程。习惯上,人们常常把软件工程的方法(开发方法)、工具(支持方法的工具)、过程(管理过程)称为软件工程三要素。第2页/共212页3软件工程三要素:软件工程三要素:方法、工具和过程方法、工具和过程 方法提供了方法提供了“如何做如何做”的技术的技术 工具提供了自动的或半自动的软件支撑环境工具提供了自动的或半自动的软件支撑环境 过程定义了过程定义
3、了:方法使用的方法使用的方法使用的方法使用的顺序顺序顺序顺序 要求交付的要求交付的要求交付的要求交付的文档文档文档文档资料资料资料资料 为保证质量和适应变化所需要的为保证质量和适应变化所需要的为保证质量和适应变化所需要的为保证质量和适应变化所需要的管理管理管理管理 软件开发各个阶段完成的软件开发各个阶段完成的软件开发各个阶段完成的软件开发各个阶段完成的里程碑里程碑里程碑里程碑第3页/共212页41-3软件工程基本原理习惯上,人们常常把软件工程的方法(开发方法)、工具(支持方法的工具)、过程(管理过程)称为软件工程三要素。而把美国著名的软件工程专家B.WBoehm于1983年提出的7条原理,作为
4、软件工程的基本原理。(1)用分阶段的生命周期计划严格管理软件开发。阶段划分为计划、分析、设计、编程、测试和运行维护。第4页/共212页5(2)坚持进行阶段评审。上一阶段评审不通过,就不能进入下一阶段开发。(3)实行严格的产品版本控制。(4)采用现代程序设计技术。(5)结果应能清楚地审查。因此,对文档要有严格要求。(6)开发小组的成员要少而精。(7)要不断地改进软件工程实践的经验和技术,要与时俱进。上述七条原理是在面向过程的程序设计时代(结构化时代)提出来的。但是,直到今天,在面向元数据和面向对象的程序设计新时代,仍然有效。第5页/共212页6根据“与时俱进”的原则,还有一条基本原理在软件的开发
5、和管理中特别重要,需要补充进去,作为软件工程的第八条基本原理。(8)二八定律。对软件项目进度和工作量的估计:一般人主观上认为已经完成了80%,但实际上只完成了20%;对程序中存在问题的估计:80%的问题存在于20%的程序之中;对模块功能的估计:20%的模块,实现了80%的功能;对人力资源的估计:20%的人,解决了软件中80%的问题;对投入资金的估计:企业信息系统中80%的问题,可以用20%的资金来解决。第6页/共212页71-4 软件过程方法软件过程方法1.面向过程的方法2.面向对象的方法3.面向元数据的方法4.形式化方法第7页/共212页81.面向过程方法面向过程方法(Procedure-o
6、riented method)面向过程方法,习惯上称为传统软件工程开发方法,或结构化方法。有时又称面向功能的方法。面向过程方法包括面向过程需求分析、面向过程设计、面向过程编程、面向过程测试、面向过程维护、面向过程管理。面向过程方法的要点面向过程方法,设计时强调模块化的思想,采用“自顶向下,逐步求精”的技术对系统进行划分,分解和抽象是它的两个基本手段。面向过程方法编程时采用单入口单出口的控制结构,并且只包含顺序、选择和循环三种结构,目标之一是使程序的控制流程线性化,即程序的动态执行顺序符合静态书写结构。优点:以处理流程为基础,简单实用。缺点:只注重过程化信息,因而忽略信息的层面关系以及相互联系。
7、描述能力不强,最后可能导致软件设计、开发和维护陷入困难。第8页/共212页9曾经出现过的面向过程方法:(1).面向结构化数据系统的开发方法DSSD(DataStructuredSystemsDevelopment);(2).面向可维护性和可靠性设计的Parnas方法;(3).面向数据结构设计的Jackson方法;(4).面向问题设计的PAM方法;(5).面向数据流方法。其中,面向数据流方法最具代表性。当前,面向过程方法主要用在过程式的程序设计中第9页/共212页102 面向对象方法面向对象方法(Object-oriented method)面向对象方法,在不少教材中,称为现代软件工程开发方法。
8、该方法包括面向对象需求分析、面向对象设计、面向对象编程、面向对象测试、面向对象维护、面向对象管理。面向对象方法的要点运用对象、类、消息传递、继承、封装、聚合、多态性等概念来构造软件系统。特点:将现实世界的事物(问题域)直接映射到对象。分析设计时由对象抽象出类(Class),程序运行时由类还原到对象(Object)。基本特点:将对象的属性和方法封装起来,形成信息系统的基本执行单位,再利用对象的继承特征,由基本执行单位派生出其他执行单位,从而产生许多新的对象。众多的离散对象通过事件或消息连接起来,就形成了软件系统。第10页/共212页11优点:能描述无穷的信息世界,同时易于维护。缺点:对于习惯于面
9、向过程方法的人,较难掌握。面向对象方法是当前计算机界关心的重点,是软件工程方法论的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到更宽的范围。如交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。业界流传的面向方面的方法、面向主体的方法和面向架构的方法,都是面向对象方法的具体应用案例。第11页/共212页123.面向元数据方法面向元数据方法(Meta-data oriented method)来源于关系数据库语言的程序设计思想。面向元数据方法包括面向元数据需求分析、面向元数据设计、面向元数据编程、面向元数据测试、面向元数据维护。优点:通俗易懂,特别
10、适合信息系统中数据层上的设计与实现。缺点:只能实现二维表格,不能实现窗口界面。第12页/共212页13软件工程方法论小结软件工程方法论小结 四种基本的软件开发方法:包括面向过程方法、面向对象方法、面向元数据方法和形式化方法这四种基本的软件开发方法。在大型多层(B/A/S)结构的信息系统建设中,这四种方法的关系是:面向元数据方法用在数据库服务器S层面上系统的设计与实现,面向对象方法用在除数据库服务器层面之外的其他层面上(B/A)系统的设计与实现,面向过程方法用在其他两种方法本身内部函数的设计与实现,形式化方法用在某些核心程序的正确性证明上。第13页/共212页2软件生命周期模型2-1软件生命周期
11、各阶段2-2常见过程模型本意、特点、选用条件2-2-1瀑布、2-2-2增量、2-2-3原型、2-2-4迭代、2-2-5螺旋、2-2-6喷泉、2-2-7XP第14页/共212页152-1软件生存周期软件生存周期(software life cycle)软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期。软件生存周期分为如下几个阶段:计算机系统工程(立项与合同)、需求分析、设计、编码、测试、运行和维护第15页/共212页16计算机系统工程(立项与合同)确定软件确定软件总体要求和范围总体要求和范围,以及其与其,以及其与其它计算机系统它计算机系统元素之间关系元素之间关系
12、计算机系统元素:硬件软件使用者数据库文档等成本估算和进度安排成本估算和进度安排进行进行可行性分析可行性分析经济、技术、法律等方面是否有可行方案?在可行解决方案中作出选择。第16页/共212页17软件需求分析确定待开发软件要确定待开发软件要“做什么做什么”。确定软件的功能、性能、数据、界面等要求,生成软件需求规约。确定软件的功能、性能、数据、界面等要求,生成软件需求规约。软件设计确定待开发软件确定待开发软件“怎么做怎么做”。分为系统设计和详细设计:分为系统设计和详细设计:系统设计:也称概要设计或总体设计。设计软件系统的体系结构,包括:软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同
13、时设计全局数据结构;详细设计:设计各个组成成分的实现细节,包括局部数据结构和算法等第17页/共212页18编码将设计的结果转换为可执行的程序代码。将设计的结果转换为可执行的程序代码。测试保证软件质量的重要环节。保证软件质量的重要环节。发现并纠正软件中的错误和缺陷。主要包括单元测试、集成测试、确认发现并纠正软件中的错误和缺陷。主要包括单元测试、集成测试、确认测试和系统测试。测试和系统测试。运行和维护在软件运行期间,当发现了软件中潜藏的错误或需要增加新的功能或使在软件运行期间,当发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时对软件进行修改。软件适应外界环境的变化等情
14、况出现时对软件进行修改。第18页/共212页192-2-1瀑布模型1970年W.Royce提出瀑布模型1.模型的本意:阶段间具有顺序性和依赖性l2.模型的特点:文档驱动过程不可逆转l3.模型的选择条件:(1)在开发时间内需求没有或很少变化。(2)分析设计人员对应用领域很熟悉。(3)低风险项目(对目标、环境很熟悉)。(4)用户使用环境很稳定。(5)用户除提出需求以外,很少参与开发工作。第19页/共212页204.模型的优点:开发阶段清晰,便于评审、审计、跟踪、管理和控制。5.模型的缺点按顺序完成每个工作流程,即瀑布式生命周期。瀑布只能一个个台阶地往下流,不可能倒着往上流,这就是它致命的缺点。瀑布
15、式生命周期通常会导致在项目后期,出现“问题堆积”,更可怕的是,错误的传递会采取发散扩大的方式。第20页/共212页211模型的本意要开发一个大的软件系统,先开发其中的一个核心模块(或子系统),然后再开发其他模块(或子系统),这样一个个模块(或子系统)地增加上去,就像搭积木一样,直至整个系统开发完毕为止。在每增加一个模块前,先要对该模块进行模块测试。通过后再将此模块加入到系统中,然后还要进行系统集成测试。系统集成测试成功后,再增加新的模块。这样多次循环,直到系统搭建完毕为止。2-2-2 增量模型第21页/共212页222模型的特点(1)任务或功能模块驱动,可以分阶段提交产品。(2)有多个任务单,
16、这些多个任务单的集合,构成项目的一个总任务书,或总用户需求报告/需求规格说明书。3选择模型的条件(1)在整个项目开发过程中,需求可能发生变化,客户接受分阶段交付。(2)分析设计人员对应用领域不熟悉,难以一步到位。(3)中等或高风险项目(工期过紧且可分阶段提交的系统或目标、环境不熟悉)。(4)用户可参与到整个软件开发过程中。(5)使用面向对象语言或第四代语言。(6)软件公司自己有较好的类库、构件库。第22页/共212页234模型的优点(1)由于将一个大系统分解为多个小系统,这就等于将一个大风险分解为多个小风险,从而降低了开发难度。(2)人员分配灵活,刚开始不用投入大量人力资源。如果核心模块产品很
17、受欢迎,则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。即可先发布部分模块给客户,对客户起到镇静剂的作用。5模型的缺点如果软件系统的组装和拆卸性不强,或开发人员全局把握水平不高(没有数据库设计专家进行系统集成),或者客户不同意分阶段提交产品,或者开发人员过剩,就不宜采用这种模型。第23页/共212页24原型的解释:预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建。2-2-3 原型模型部署交付和部署交付和反馈反馈构建原型构建原型交流交流快速设计
18、方式快速设计方式建模建模快速计划快速计划第24页/共212页25原型模型 软件企业界的主流开发模型.1模型的本意原型模型(PrototypeModel)的本意是:在初步需求分析之后,马上向客户展示一个软件产品原型(样品),对客户进行培训,让客户试用,在试用中收集客户意见,根据客户意见立刻修改原型,之后再让客户试用,反复循环几次,直到客户确认为止。第25页/共212页262模型的特点原型驱动。因此,开发者必须先有一个原型(样品),至少要有一个原型的核心。原型模型与迭代模型相同点是:反复循环几次,直到客户确认为止。不同点是:原型模型事先有一个展示性的产品原型(样品),而迭代模型可能没有。第26页/
19、共212页273选择模型的条件(1)已有产品或产品的原型(样品),只需客户化的工程项目。(2)简单而熟悉的行业或领域。(3)有快速原型开发工具。(4)进行产品移植或升级。由于上述条件不太苛刻,所以凡是有软件产品的IT企业,在他们熟悉的业务领域内,当客户招标时,他们都会以原型模型作为软件开发模型,去制作投标书,去讲解标投标。第27页/共212页284模型的优点开发速度快,用户意见反馈实时,有利于开发商在短时间内推广并实施多个客户。正因为原型模型具有这些优点,所以它一直是软件企业界的主流开发模型。凡是有软件产品积累的软件公司,他们在投标、开发、实施项目的过程中,都非常喜欢用原型模型。5模型的缺点因
20、为事先有一个展示性的产品原型,所以在一定程度上,不利于开发人员的创新。第28页/共212页296快速原型法由于原型模型的开发速度较快,有时也将它称作快速原型法(RapidPrototyping)。在开发工具和开发环境迅速发展的今天,在信息系统开发中,原型法和快速原型法又被赋予新的内容:事先没有原型产品,也可以采取这种办法。基本思路是:采用以面向元数据为主的方法,在需求分析的基础上,利用PowerDesigner等数据库分析和设计工具,快速建立信息系统的概念数据模型CDM和物理数据模型PDM;然后利用面向对象的编程工具,快速地实现需求分析中确认的流程、功能、性能和接口;之后交付给用户试用,反复循
21、环几次,直到客户确认满意为止。第29页/共212页30快速原型法选择的条件之一是:项目组中有数据库分析和设计的专家,有面向对象编程的专家,文档制作有成熟的模板,而且系统或项目又不是非常大。快速原型法选择的条件之二是:项目组的开发环境为分行业的业务基础平台(比如JustepX3业务基础平台),该业务基础平台又完全适合所需开发的系统或项目,而且系统或项目又不是非常大。以上两个条件,只要符合一个,就可以采用快速原型法。第30页/共212页31原型的类型:探索型:弄清要求,确定特性,并探讨多种方案的可行性实验型:大规模开发和实现前,验证方案或算法的合理性。演化型:原型作为目标系统的一部分。原型的使用策
22、略:废弃(throw away)策略:用于探索型和实验型原型。追加(add on)策略:用于演化型原型。原型可作为单独的过程模型,也常被作为一种方法或实现技术应用于其它过程模型中。第31页/共212页322-2-4 迭代模型(Iterative Model)代表:RUP(RationalUnifiedProcess)模型第32页/共212页33这里所讲的迭代模型是RUP推出的一种“逐步求精”的面向对象的软件开发过程模型,被认为软件界迄今为止最完善的、商品化的开发过程模型。1模型的本意多次执行各个开发工作流程,从而更好地理解需求,设计出更为强壮的软件构架,逐步提高开发组织能力,最终交付一系列逐步
23、完善的实施成果,这就是迭代式生命周期模型。每次按顺序完成这一系列工作流程就叫做一次迭代,每次迭代,均以次要里程碑结束,按照特定的迭代成功标准,对迭代的结果进行评估。每个阶段都可以进一步细分为迭代。迭代是产生可执行的产品发布的完整开发循环,所发布的产品是开发过程最终产品的子集,它将通过一次又一次的迭代,实现递增成长,最后形成最终的软件系统或产品。第33页/共212页342模型的特点迭代或迭代循环驱动,每一次迭代或迭代循环,均要走完初始(先启)、精化、构建、产品化(移交)这四个阶段。RUP的主要特征如下:1.采用迭代的、增量式的开发过程;2.采用UML语言描述软件开发过程;3.有功能强大的软件工具
24、RationalRose支撑。第34页/共212页353模型的选取条件(1)项目组的管理人员和核心成员,应对迭代的开发方式比较熟悉。(2)管理人员和核心成员应对软件工程的核心过程:系统建模、需求分析、系统设计、系统实现、项目管理、配置管理、测试等比较熟悉。(3)采用面向对象技术(如OOA,OOD等)的项目组,建议使用迭代式生命周期。(4)项目组的核心设计人员,应具备一定程度的软件架构的知识,并熟练掌握软件架构设计技能。(5)项目组全体成员应熟悉UML,并能利用建模工具(如RationalRose等)进行分析、策划、设计、测试等。(6)项目组的管理人员应具备风险管理的知识和技能。(7)拥有实施软
25、件产品开发、组装的软件组织。第35页/共212页364模型的四个阶段(1)初始阶段。本阶段主要工作是确定系统的业务用况和定义项目的范围。(2)精化阶段。本阶段主要工作是分析问题域、细化产品定义,定义系统的构架并建立基线,为构建阶段的设计和实施工作提供一个稳定的基础。(3)构建阶段。本阶段主要工作是反复地开发,以完善产品,达到用户的要求。(4)产品化(移交)阶段。本阶段主要工作是将产品交付给用户,包括安装、培训、交付、维护等工作。第36页/共212页375模型的九个核心流程(1)业务建模。(2)需求获取。(3)分析设计。(4)实施。(5)测试。(6)部署。(7)配置与变更管理。(8)项目管理。(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内