软件工程pptppt课件.ppt
《软件工程pptppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程pptppt课件.ppt(248页珍藏版)》请在三一办公上搜索。
1、软 件 工 程,2009,2,Software Engineering Group,课程介绍,一、课程主要内容,软件工程原理、方法和技术传统软件工程方法面向对象软件工程(统一建模语言UML)软件过程、管理与质量软件工程工具和项目实践,2009,3,Software Engineering Group,软件工程:实践者的研究方法 Roger S.Pressman著 黄柏素 梅宏 译 机械工业出版社http:/www.uml.org/http:/www.omg.org/mda/,2009,4,Software Engineering Group,二、参考文献,2009,5,Software Eng
2、ineering Group,三、软件工程所面对的问题,大规模、复杂软件系统的开发和维护,现代软件工程面对的困境,如何构造有效的过程、方法和工具以适应现代大规模、复杂性软件系统的开发和维护复杂设备中安全关键软件的正确性国家级分布式应用软件的可靠性大型实时指挥软件的时效性大型网络软件的可维护性互联网软件的安全性复杂软件系统的可生存性,2009,Software Engineering Group,2004年12月20日,美空军第422测试评估大队的一架F-22战斗机因软件问题在起飞过程中失控坠毁。,2007年2月9日同样因软件问题延迟在日本部署,复杂设备中安全关键软件的正确性,2009,7,So
3、ftware Engineering Group,事件:美国F-22猛禽战斗机,多计算机系统试图同时访问同一资源引起的软件失效,国家级分布式应用软件的可靠性,2009,8,Software Engineering Group,事件:美国电力监测与控制管理系统,原因是空管软件时钟缺陷,大型实时指挥软件的时效性,2009,9,Software Engineering Group,事件:美国空管软件,2005年11月1日,东京证券交易所因为软件升级出现系统故障,导致早间股市停摆。,大型网络软件的可维护性,2009,10,Software Engineering Group,事件:东京证券交易软件,约
4、80%的家庭用户感染了Spyware美国2004年网络犯罪非法谋利105亿美元50%以上的安全漏洞是由软件缺陷引起的,2009,11,Software Engineering Group,互联网软件安全的几个数据,互联网软件的安全性,复杂软件系统的可生存性,2009,12,Software Engineering Group,互联网安全趋势图,2002年NIST估计软件造成美国年经济损失约600亿美元,占GDP的0.6%,2009,13,Software Engineering Group,2009,14,Software Engineering Group,我们的信息基础设施正建立在脆弱的软
5、件之上!,软件的根本问题任何机构和个人都无法确保所开发的软件一定没有问题。,2009,15,Software Engineering Group,四、为什么?,计算机系统(软件系统):,2009,16,Software Engineering Group,五、建立人与机器之间的信任关系,人与机器之间的关系,人与人之间的关系,2009,17,Software Engineering Group,第一部分传统软件工程方法,问题定义需求分析概要设计详细设计编 码测 试维 护,2009,18,Software Engineering Group,传统软件工程方法,1、基本概念2、系统定义3、需求分析4
6、、设计5、编码6、测试7、维护,2009,19,Software Engineering Group,内容组织,软件 计算机系统中的程序及其有关文件。程序 计算任务中的处理对象和处理规则的描述。文件 为了便于了解程序所需的资料说明。,2009,20,Software Engineering Group,一、基本概念(1.1),软件的作用,2009,21,Software Engineering Group,用户与硬件的接口计算机系统的指挥者计算机系统结构设计的重要依据,1.1基本概念,软件的发展过程,2009,22,Software Engineering Group,第一阶段:从第一台计算机
7、上的第一个程序的出现到实用的高级程序设计语言出现之前(1946-1956);第二阶段:从实用的高级程序设计语言出现到软件工程出现之前(1956-1968);第三阶段:软件工程(1968-)。,1.1基本概念,软件的分类,2009,23,Software Engineering Group,系统软件支撑软件(中间件middleware)应用软件,1.1基本概念,软件危机,2009,24,Software Engineering Group,供求关系失调开发费用失控,进度拖延可靠性差难以维护,1.1基本概念,产生软件危机的原因(软件本身的特点),2009,25,Software Engineeri
8、ng Group,软件开发进展情况较难衡量软件开发质量难以评价管理和控制软件开发过程相当困难软件没有“磨损”概念,软件维护通常意味着改进或修改原来的设计,1.1基本概念,产生软件危机的原因(软件开发人员的错误观点),2009,26,Software Engineering Group,产生软件危机的原因(软件开发人员的错误观点)“有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充”“所谓软件开发就是编写程序并设法使它运行”“用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动”“软件投入生产性运行以后需要的维护工作并不多,而且维护是一件很容易做的简单工作”,1.1
9、基本概念,软件工程,2009,27,Software Engineering Group,应用计算机科学、数学及管理科学等原理,以工程化原则、方法解决软件问题的工程。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、降低成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。,1.1基本概念,软件工程的基本内容,2009,28,Software Engineering Group,软件设计方法论软件工具软件工程标准和规范软件工程管理软件工程理论,1.1基本概念,软件工程的基本原理:,2009,29,Software Engineering Group,严格按照计划进行
10、管理坚持进行阶段评审实行严格的产品控制采用现代的程序技术结果要能清晰地审计开发小组人员素质要好,数量不宜多要承认不断改善软件工程实践的必要性,1.1基本概念,软件生存期(过程)模型 软件生存期是软件产品或系统一系列相关活动的全周期。从形成概念开始,经过研制,交付使用,在使用中不断增补修订,直到最后被淘汰,让位于新的软件产品的过程。对软件生存期的不同划分,形成了不同的软件生存期模型。,2009,30,Software Engineering Group,1.1基本概念,瀑布式软件生存期模型,2009,31,Software Engineering Group,强调阶段的划分及其顺序性、各阶段工作
11、及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细化的开发模式。,1.1基本概念,瀑布式软件生存期模型把软件开发过程划分成若干阶段,每个阶段的任务相对独立,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度。在软件生存期的每个阶段都采用科学的管理技术和良好的方法与技术,而且每个阶段结束之前,都从技术和管理两个角度进行严格的审查,经确认之后才开始下一阶段的工作。,2009,32,Software Engineering Group,1.1基本概念,瀑布式模型的特点:,2009,33,Software Engineering Group,结构简单明了;历史较长、应用面广泛、为广大软件
12、工作者所熟悉;已有与之配套的一组十分成熟的开发方法和丰富的支撑工具。确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是非常困难的;反馈信息慢。,1.1基本概念,软件质量要素:,2009,34,Software Engineering Group,正确性:软件产品准确执行软件规格说明中所规定的能力。健壮性:在异常条件下软件仍能运行的能力。可靠性:软件在给定的时间内和规定的环境条件下,按规格说明的规定成功地运行的概率。可靠性理解为正确性和健壮性之和。,1.1基本概念,2009,35,Software Engineering Group,SE Humor,1.1基本概念,1、问题定义的
13、关键任务 确切地定义用户要求解决的问题,也就是确定问题的性质、工程的目标和规模。,2009,36,Software Engineering Group,二、问题定义(1.2),可行性研究对软件进行分析与估算确定软件作用范围,可行性研究:,2009,37,Software Engineering Group,经济可行性技术可行性法律可行性不同的方案,1.2 问题定义,对软件进行分析与估算:,2009,38,Software Engineering Group,确定软件的范围估算完成软件开发任务所需的资源估算软件的成本估算和安排软件开发项目的进度,1.2 问题定义,确定软件的作用范围,2009,3
14、9,Software Engineering Group,详细描述软件的任务和具体的要求,抱括软件的功能、性能、接口和可靠性等四个方面的内容。,1.2 问题定义,范围(研制的目标,主要功能,其他特性,开发概况)资源(人力资源、硬件资源、软件资源、可用性资源窗口)成本进度安排,2009,40,Software Engineering Group,2、软件计划:,1.2 问题定义,软件需求分析是软件生存期的一个重要阶段,是软件开发项目得以成功的基础。其最根本的任务是确定为了满足用户的需要软件系统必须做什么。软件需求分析是一个不断发现和决定的过程,在此过程中,软件开发者和软件申请者(用户)同样起着重
15、要的作用。在需求分析与说明过程中,需要大量交换意见,其间充满着传错信息和发生误解的可能性:“我知道你相信你明白了你认为我所说的是什么,但是我不能肯定你是否意识到你听到的并不是我所指的意思.”。,2009,41,Software Engineering Group,三、需求分析(1.3),1、需求分析几点说明,2009,42,Software Engineering Group,1.3 需求分析,2、软件需求分析实现以下几个目标:,2009,43,Software Engineering Group,给出软件系统的数据流程图与数据结构,构造一个完全的系统逻辑模型;提出详细的功能说明确定设计限定条
16、件,规定性能要求;密切与用户的联系,使用户明确自己的任务,以便实现上述两项目标。,1.3 需求分析,3、软件需求分析包括的工作:,2009,44,Software Engineering Group,问题的认识 需求分析人员通过频繁与用户联系,充分理解用户提出的每一个功能与性能要求,从软件系统特征、软件开发全过程以及软件计划给出的资源和时间约束,来确定软件开发的总策略。评价与综合 需求分析人员必须求得数据的流程和数据结构,评价优缺点;结合用户要求,修改现行的系统,提出新系统的功能,加以细化;提出软件的约束条件、响应时间、存储条件等。,1.3 需求分析,建立需求说明书 软件需求说明书包含软件功能
17、、性能、接口、有效性和逻辑模型的描述。为了证实软件能否被成功实现就要规定相应的检验标准,这些标准在软件开发期间将作为测试的依据。复审 由软件开发人员和用户共同对需求说明书进行严格的审查。,2009,45,Software Engineering Group,1.3 需求分析,4、软件需求分析人员应该具备的特征:,2009,46,Software Engineering Group,善于领会一些抽象的概念,重新整理使之成为各种逻辑成分,并根据各种逻辑成分综合出问题的解决办法;善于从各种相互冲突或混淆的原始资料中吸取恰当的论据;能够理解用户的环境及领域知识;,1.3 需求分析,具备把系统的硬件和软
18、件部分应用于用户环境的能力;具备良好的书面和口头形式进行讨论和交换意见的能力;具有“既能看到树木,又能看到森林”的能力。,2009,47,Software Engineering Group,1.3 需求分析,6、结构化分析方法(SA),2009,48,Software Engineering Group,SA方法采用“抽象”和“分解”两个基本手段,用抽象模型的概念,按照软件内部数据传递、变换关系,由顶向下逐层分解,直到找到满足功能需要的所有可实现的软件元素为止。SA方法采用“分解”的方式来理解一个复杂系统,“分解”需要有描述手段,数据流程图就是作为描述信息流程和分解的手段而引入的。,1.3
19、需求分析,数据流程图,2009,49,Software Engineering Group,流程图符号介绍,1.3 需求分析,5、基本系统模型,2009,50,Software Engineering Group,软件系统的全部功能被表示成一个单一的信息变换过程,1.3 需求分析,例:病员监视系统,病员病历,病员监视系统,病员,护士,护士,基本模型,病情信号,报告,警告信号,病历数据,请求提出报告,2009,51,Software Engineering Group,1.3 需求分析,2009,52,Software Engineering Group,1.3 需求分析,2009,53,Sof
20、tware Engineering Group,1.3 需求分析,数据流程图的特点:,2009,54,Software Engineering Group,可以表示任何一个系统(人工的、自动的、或混合的)中的数据流程;每个表示加工的圆圈可能需要进一步分解以求得对问题的全面理解;着重强调的是数据流程而不是控制流程。,1.3 需求分析,推导数据流程图的简单准则:,2009,55,Software Engineering Group,第一层数据流程图应当是基本的系统模型;应当仔细说明原始的输入/输出文件;所有箭头和圆圈均应当加上标注(使用有意义的名字);必须保持信息的连续性;每次只加工一个圆圈。,1
21、.3 需求分析,顶层数据流图,随着需求分析活动的深入,较高抽象级别的复杂加工逐步精化为一系列相互关联的数据流和子加工。,数据流图的精化与平衡,逐层精化必须保持数据流图的平衡数据流与加工精化必须保持一致需求分析活动只求对问题全面、清晰的理解,不考虑软件设计细节,例子:商店业务处理系统,第一层数据流图,加细每一个加工框 销售细化,采购细化,数据流程图中,所有的图形元素都进行了命名,所有名字的定义集中起来就构成一本数据字典。数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。对数据的这一系列严密一致的定义也有助于改
22、进在不同的开发人员之间或者不同开发小组之间的通信。如果要求所有开发人员都根据公共的数据字典描述数据或设计模块,则能避免许多麻烦的接口问题。,2009,62,Software Engineering Group,数据字典,1.3 需求分析,信息结构是各个数据成分之间逻辑关系的一种表示方法。数据结构决定信息的组织、存取方法、结合性程度以及不同的处理方案。典型的数据结构包括标量项、顺序向量、n维空间、链接表等。,2009,63,Software Engineering Group,信息结构,1.3 需求分析,分层数据结构表示法:,2009,64,Software Engineering Group,
23、分层框图Warnier图,1.3 需求分析,分层框图,2009,65,Software Engineering Group,分层框图把信息用多层方框按照树形结构组织起来。在结构的顶层,用一个方框代表整个结构。下面各层由表示不同信息类别的方框组成,它们可以看成是上一层方框的子集。在该图的最低一层,每个框包含单独的数据实体。,1.3 需求分析,.,.,.,2009,66,Software Engineering Group,分层框图示例,1.3 需求分析,Warnier图,2009,67,Software Engineering Group,Warnier图把信息表示成一种树形数据结构。可以规定某
24、些信息种类或信息量是重复性的,也可以说明在某一种类中信息是有条件出现的。,1.3 需求分析,2009,68,Software Engineering Group,Warnier图示例,1.3 需求分析,7、软件需求说明书,2009,69,Software Engineering Group,1.3 需求分析,8、初步的用户手册,2009,70,Software Engineering Group,手册的准备迫使分析人员从用户的角度来看待软件,从而及早考虑接口方面的人机环境工程。用户可以审查一个明确描述人机接口的实际文件。,当确定了人机交互作用的软件需求后,准备一份初步的用户手册是作为对所要求文
25、件的补充往往是有用的,这种手册将起到两个作用:,1.3 需求分析,9、软件需求说明的审查,2009,71,Software Engineering Group,审查需求的一致性审查需求的现实性审查需求的完整性和有效性,1.3 需求分析,软件需求说明审查中的问题,2009,72,Software Engineering Group,所规定的软件目标和任务与系统的目标和任务相符合吗?与所有系统成分的重要接口都已被描述了吗?研制项目的数据流程图、数据字典、数据结构充分确定了吗?图表都清楚吗?每个图表在不加补充说明的情况下能被理解吗?主要功能在规定的范围之内吗?每一种功能被充分说明了吗?,1.3 需求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 pptppt 课件
链接地址:https://www.31ppt.com/p-5415645.html