软件工程-总复习.ppt
《软件工程-总复习.ppt》由会员分享,可在线阅读,更多相关《软件工程-总复习.ppt(212页珍藏版)》请在咨信网上搜索。
1、1 概论1-1软件概念 1-2 软件工程概念、软件工程三要素1-3 软件工程基本原理1-4 四种软件工程方法之间的关系21-1软件概念软件概念软件=程序+数据+文档程序程序:按设计的功能和性能要求执行的指令序列按设计的功能和性能要求执行的指令序列数据数据:程序能正常运作的初始化数据程序能正常运作的初始化数据文档文档:为了理解程序所需的详细描述性资料。为了理解程序所需的详细描述性资料。31-2软件工程定义软件工程定义1968年NATO(北大西洋公约组织)会议上首次提出Fritz Bauer:建立并使用完善的工程原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。IEEE:软件工
2、程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;(2)(1)中所述方法的研究。2001年,软件工程大师Roger S Pressman 对软件工程的定义是:软件工程是一个过程、一组方法和一系列工具。计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程。习惯上,人们常常把软件工程的方法(开发方法)、工具(支持方法的工具)、过程(管理过程)称为软件工程三要素。4软件工程三要素:软件工程三要素:方法、工具和过程方法、工具和过程方法提供了方法提供了“如何做如何做”的技术的技术工具提供了自动的或半
3、自动的软件支撑环境工具提供了自动的或半自动的软件支撑环境过程定义了过程定义了:方法使用的顺序方法使用的顺序方法使用的顺序方法使用的顺序 要求交付的文档资料要求交付的文档资料要求交付的文档资料要求交付的文档资料 为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑51-3 软件工程基本原理习惯上,人们常常把软件工程的方法(开发方法)、工具(支持方法的工具)、过程(管理过程)称为软件工程三要素。而把美国著名的软
4、件工程专家B.W Boehm于1983年提出的7条原理,作为软件工程的基本原理。(1)用分阶段的生命周期计划严格管理软件开发。阶段划分为计划、分析、设计、编程、测试和运行维护。6(2)坚持进行阶段评审。上一阶段评审不通过,就不能进入下一阶段开发。(3)实行严格的产品版本控制。(4)采用现代程序设计技术。(5)结果应能清楚地审查。因此,对文档要有严格要求。(6)开发小组的成员要少而精。(7)要不断地改进软件工程实践的经验和技术,要与时俱进。上述七条原理是在面向过程的程序设计时代(结构化时代)提出来的。但是,直到今天,在面向元数据和面向对象的程序设计新时代,仍然有效。7根据“与时俱进”的原则,还有
5、一条基本原理在软件的开发和管理中特别重要,需要补充进去,作为软件工程的第八条基本原理。(8)二八定律。对软件项目进度和工作量的估计:一般人主观上认为已经完成了80%,但实际上只完成了20%;对程序中存在问题的估计:80%的问题存在于20%的程序之中;对模块功能的估计:20%的模块,实现了80%的功能;对人力资源的估计:20%的人,解决了软件中80%的问题;对投入资金的估计:企业信息系统中80%的问题,可以用20%的资金来解决。81-4 1-4 软件过程方法软件过程方法1.面向过程的方法2.面向对象的方法3.面向元数据的方法4.形式化方法91.1.面向过程方法面向过程方法(Procedure-(
6、Procedure-oriented method)oriented method)面向过程方法,习惯上称为传统软件工程开发方法,或结构化方法。有时又称面向功能的方法。面向过程方法包括面向过程需求分析、面向过程设计、面向过程编程、面向过程测试、面向过程维护、面向过程管理。面向过程方法的要点面向过程方法,设计时强调模块化的思想,采用“自顶向下,逐步求精”的技术对系统进行划分,分解和抽象是它的两个基本手段。面向过程方法编程时采用单入口单出口的控制结构,并且只包含顺序、选择和循环三种结构,目标之一是使程序的控制流程线性化,即程序的动态执行顺序符合静态书写结构。优点:以处理流程为基础,简单实用。缺点:
7、只注重过程化信息,因而忽略信息的层面关系以及相互联系。描述能力不强,最后可能导致软件设计、开发和维护陷入困难。10曾经出现过的面向过程方法:(1).面向结构化数据系统的开发方法DSSD(Data Structured Systems Development);(2).面向可维护性和可靠性设计的Parnas方法;(3).面向数据结构设计的Jackson方法;(4).面向问题设计的PAM方法;(5).面向数据流方法。其中,面向数据流方法最具代表性。当前,面向过程方法主要用在过程式的程序设计中112 2 面向对象方法面向对象方法 (Object-oriented method)(Object-ori
8、ented method)面向对象方法,在不少教材中,称为现代软件工程开发方法。该方法包括面向对象需求分析、面向对象设计、面向对象编程、面向对象测试、面向对象维护、面向对象管理。面向对象方法的要点运用对象、类、消息传递、继承、封装、聚合、多态性等概念来构造软件系统。特点:将现实世界的事物(问题域)直接映射到对象。分析设计时由对象抽象出类(Class),程序运行时由类还原到对象(Object)。基本特点:将对象的属性和方法封装起来,形成信息系统的基本执行单位,再利用对象的继承特征,由基本执行单位派生出其他执行单位,从而产生许多新的对象。众多的离散对象通过事件或消息连接起来,就形成了软件系统。12
9、优点:能描述无穷的信息世界,同时易于维护。缺点:对于习惯于面向过程方法的人,较难掌握。面向对象方法是当前计算机界关心的重点,是软件工程方法论的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到更宽的范围。如交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。业界流传的面向方面的方法、面向主体的方法和面向架构的方法,都是面向对象方法的具体应用案例。133.3.面向元数据方法面向元数据方法(Meta-data(Meta-data oriented method)oriented method)来源于关系数据库语言的程序设计思想。面向元数据方法包括面向元数
10、据需求分析、面向元数据设计、面向元数据编程、面向元数据测试、面向元数据维护。优点:通俗易懂,特别适合信息系统中数据层上的设计与实现。缺点:只能实现二维表格,不能实现窗口界面。14软件工程方法论小结软件工程方法论小结 四种基本的软件开发方法:包括面向过程方法、面向对象方法、面向元数据方法和形式化方法这四种基本的软件开发方法。在大型多层(B/A/S)结构的信息系统建设中,这四种方法的关系是:面向元数据方法用在数据库服务器S层面上系统的设计与实现,面向对象方法用在除数据库服务器层面之外的其他层面上(B/A)系统的设计与实现,面向过程方法用在其他两种方法本身内部函数的设计与实现,形式化方法用在某些核心
11、程序的正确性证明上。2 软件生命周期模型2-1软件生命周期各阶段2-2常见过程模型本意、特点、选用条件2-2-1瀑布、2-2-2增量、2-2-3原型、2-2-4迭代、2-2-5螺旋、2-2-6喷泉、2-2-7XP162-1软件生存周期软件生存周期(softwarelifecycle)软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期。软件生存周期分为如下几个阶段:计算机系统工程(立项与合同)、需求分析、设计、编码、测试、运行和维护17计算机系统工程(立项与合同)确定软件总体要求和范围,以及其与其它计确定软件总体要求和范围,以及其与其它计算机系统元素之间关系算机系
12、统元素之间关系计算机系统元素:硬件软件使用者数据库文档等成本估算和进度安排成本估算和进度安排进行可行性分析进行可行性分析经济、技术、法律等方面是否有可行方案?在可行解决方案中作出选择。18软件需求分析确定待开发软件要确定待开发软件要“做什么做什么”。确定软件的功能、性能、数据、界面等要求,生成软确定软件的功能、性能、数据、界面等要求,生成软件需求规约。件需求规约。软件设计确定待开发软件确定待开发软件“怎么做怎么做”。分为系统设计和详细设计:分为系统设计和详细设计:系统设计:也称概要设计或总体设计。设计软件系统的体系结构,包括:软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计
13、全局数据结构;详细设计:设计各个组成成分的实现细节,包括局部数据结构和算法等19编码将设计的结果转换为可执行的程序代码。将设计的结果转换为可执行的程序代码。测试保证软件质量的重要环节。保证软件质量的重要环节。发现并纠正软件中的错误和缺陷。主要包括单元测试、发现并纠正软件中的错误和缺陷。主要包括单元测试、集成测试、确认测试和系统测试。集成测试、确认测试和系统测试。运行和维护在软件运行期间,当发现了软件中潜藏的错误或需要在软件运行期间,当发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出增加新的功能或使软件适应外界环境的变化等情况出现时对软件进行修改。现时对软件进行修改。2
14、02-2-1瀑布模型瀑布模型1970年年W.Royce提出瀑布模型提出瀑布模型1.模型的本意模型的本意:阶段间具有顺序性和依赖性:阶段间具有顺序性和依赖性l2.模型的模型的特点特点:文档驱动过程不可逆转l3.模型的模型的选择条件选择条件:(1)在开发时间内需求没有或很少变化。(2)分析设计人员对应用领域很熟悉。(3)低风险项目(对目标、环境很熟悉)。(4)用户使用环境很稳定。(5)用户除提出需求以外,很少参与开发工作。214.模型的优点模型的优点:开发阶段清晰,便于评审、开发阶段清晰,便于评审、审计、跟踪、管理和控制。审计、跟踪、管理和控制。5.模型的缺点模型的缺点按顺序完成每个工作流程,即瀑
15、布式生命周期。瀑布只能一个个台阶地往下流,不可能倒着往上流,这就是它致命的缺点。瀑布式生命周期通常会导致在项目后期,出现“问题堆积”,更可怕的是,错误的传递会采取发散扩大的方式。221模型的本意模型的本意要开发一个大的软件系统,先开发其中的要开发一个大的软件系统,先开发其中的一个核心模块(或子系统),然后再开发一个核心模块(或子系统),然后再开发其他模块(或子系统),这样一个个模块其他模块(或子系统),这样一个个模块(或子系统)地增加上去,就像搭积木一(或子系统)地增加上去,就像搭积木一样,直至整个系统开发完毕为止。样,直至整个系统开发完毕为止。在每增加一个模块前,先要对该模块进行在每增加一个
16、模块前,先要对该模块进行模块测试。通过后再将此模块加入到系统模块测试。通过后再将此模块加入到系统中,然后还要进行系统集成测试。系统集中,然后还要进行系统集成测试。系统集成测试成功后,再增加新的模块。成测试成功后,再增加新的模块。这样多次循环,直到系统搭建完毕为止。这样多次循环,直到系统搭建完毕为止。2-2-2增量模型增量模型232模型的特点模型的特点(1)任务或功能模块驱动,可以分阶段提交产品。)任务或功能模块驱动,可以分阶段提交产品。(2)有多个任务单,这些多个任务单的集合,构成项目的)有多个任务单,这些多个任务单的集合,构成项目的一个总一个总任务书任务书,或总,或总用户需求报告用户需求报告
17、/需求规格说需求规格说明书明书。3选择模型的条件选择模型的条件(1)在整个项目开发过程中,需求可能发生变化,客户接)在整个项目开发过程中,需求可能发生变化,客户接受分阶段交付。受分阶段交付。(2)分析设计人员对应用领域不熟悉,难以一步到位。)分析设计人员对应用领域不熟悉,难以一步到位。(3)中等或高风险项目(工期过紧且可分阶段提交的系统)中等或高风险项目(工期过紧且可分阶段提交的系统或目标、环境不熟悉)。或目标、环境不熟悉)。(4)用户可参与到整个软件开发过程中。)用户可参与到整个软件开发过程中。(5)使用面向对象语言或第四代语言。)使用面向对象语言或第四代语言。(6)软件公司自己有较好的类库
18、、构件库。)软件公司自己有较好的类库、构件库。244模型的优点模型的优点(1)由于将一个大系统分解为多个小系统,这就)由于将一个大系统分解为多个小系统,这就等于将一个大风险分解为多个小风险,从而降低了等于将一个大风险分解为多个小风险,从而降低了开发难度。开发难度。(2)人员分配灵活,刚开始不用投入大量人力资)人员分配灵活,刚开始不用投入大量人力资源。如果核心模块产品很受欢迎,则可增加人力实源。如果核心模块产品很受欢迎,则可增加人力实现下一个增量。当配备的人员不能在设定的期限内现下一个增量。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。完成产品时,它提供了一种先推出
19、核心产品的途径。即可先发布部分模块给客户,对客户起到镇静剂的即可先发布部分模块给客户,对客户起到镇静剂的作用。作用。5模型的缺点模型的缺点如果软件系统的组装和拆卸性不强,或开发人员全如果软件系统的组装和拆卸性不强,或开发人员全局把握水平不高(没有数据库设计专家进行系统集局把握水平不高(没有数据库设计专家进行系统集成),或者客户不同意分阶段提交产品,或者开发成),或者客户不同意分阶段提交产品,或者开发人员过剩,就不宜采用这种模型。人员过剩,就不宜采用这种模型。25原型的解释原型的解释:预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有
20、约束,其目的是能快速、低成本地构建。2-2-3原型模型原型模型部署交付和部署交付和反馈反馈构建原型构建原型交流交流快速设计方式快速设计方式建模建模快速计划快速计划26原型模型原型模型 软件企业界的主流开发模型软件企业界的主流开发模型.1模型的本意模型的本意原型模型(原型模型(Prototype Model)的本意是:)的本意是:在初步需求分析之后,马上向客户展示一个在初步需求分析之后,马上向客户展示一个软件产品原型软件产品原型(样品样品),对客户进行培训,让,对客户进行培训,让客户试用,在试用中收集客户意见,根据客客户试用,在试用中收集客户意见,根据客户意见立刻修改原型,之后再让客户试用,户意
21、见立刻修改原型,之后再让客户试用,反复循环几次,直到客户确认为止。反复循环几次,直到客户确认为止。272模型的特点模型的特点原型驱动。因此,开发者必须先有一个原原型驱动。因此,开发者必须先有一个原型型(样品样品),至少要有一个原型的核心。,至少要有一个原型的核心。原型模型与迭代模型相同点是:反复循环原型模型与迭代模型相同点是:反复循环几次,直到客户确认为止。不同点是:原几次,直到客户确认为止。不同点是:原型模型事先有一个展示性的产品原型型模型事先有一个展示性的产品原型(样品样品),而迭代模型可能没有。,而迭代模型可能没有。283选择模型的条件选择模型的条件(1)已有产品或产品的原型)已有产品或
22、产品的原型(样品样品),只需,只需客户化的工程项目。客户化的工程项目。(2)简单而熟悉的行业或领域。)简单而熟悉的行业或领域。(3)有快速原型开发工具。)有快速原型开发工具。(4)进行产品移植或升级。)进行产品移植或升级。由于上述条件不太苛刻,所以凡是有软件由于上述条件不太苛刻,所以凡是有软件产品的产品的IT企业,在他们熟悉的业务领域内,企业,在他们熟悉的业务领域内,当客户招标时,他们都会以原型模型作为当客户招标时,他们都会以原型模型作为软件开发模型,去制作投标书,去讲解标软件开发模型,去制作投标书,去讲解标投标。投标。294模型的优点模型的优点开发速度快,用户意见反馈实时,有利于开发速度快,
23、用户意见反馈实时,有利于开发商在短时间内推广并实施多个客户。开发商在短时间内推广并实施多个客户。正因为原型模型具有这些优点,所以它一正因为原型模型具有这些优点,所以它一直是软件企业界的主流开发模型。凡是有直是软件企业界的主流开发模型。凡是有软件产品积累的软件公司,他们在投标、软件产品积累的软件公司,他们在投标、开发、实施项目的过程中,都非常喜欢用开发、实施项目的过程中,都非常喜欢用原型模型。原型模型。5模型的缺点模型的缺点因为事先有一个展示性的产品原型,所以因为事先有一个展示性的产品原型,所以在一定程度上,不利于开发人员的创新。在一定程度上,不利于开发人员的创新。306快速原型法快速原型法由于
24、原型模型的开发速度较快,有时也将它称作快由于原型模型的开发速度较快,有时也将它称作快速原型法(速原型法(Rapid Prototyping)。)。在开发工具和开发环境迅速发展的今天,在信息系在开发工具和开发环境迅速发展的今天,在信息系统开发中,原型法和快速原型法又被赋予新的内容:统开发中,原型法和快速原型法又被赋予新的内容:事先没有原型产品,也可以采取这种办法。事先没有原型产品,也可以采取这种办法。基本思路是:采用以面向元数据为主的方法,在需基本思路是:采用以面向元数据为主的方法,在需求分析的基础上,利用求分析的基础上,利用Power Designer等数据库等数据库分析和设计工具,快速建立信
25、息系统的概念数据模分析和设计工具,快速建立信息系统的概念数据模型型CDM和物理数据模型和物理数据模型PDM;然后利用面向对象;然后利用面向对象的编程工具,快速地实现需求分析中确认的流程、的编程工具,快速地实现需求分析中确认的流程、功能、性能和接口;之后交付给用户试用,反复循功能、性能和接口;之后交付给用户试用,反复循环几次,直到客户确认满意为止。环几次,直到客户确认满意为止。31快速原型法选择的条件之一是:项目组中快速原型法选择的条件之一是:项目组中有数据库分析和设计的专家,有面向对象有数据库分析和设计的专家,有面向对象编程的专家,文档制作有成熟的模板,而编程的专家,文档制作有成熟的模板,而且
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。