软件工程学概论.ppt

上传人:牧羊曲112 文档编号:6027904 上传时间:2023-09-16 格式:PPT 页数:35 大小:218KB
返回 下载 相关 举报
软件工程学概论.ppt_第1页
第1页 / 共35页
软件工程学概论.ppt_第2页
第2页 / 共35页
软件工程学概论.ppt_第3页
第3页 / 共35页
软件工程学概论.ppt_第4页
第4页 / 共35页
软件工程学概论.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《软件工程学概论.ppt》由会员分享,可在线阅读,更多相关《软件工程学概论.ppt(35页珍藏版)》请在三一办公上搜索。

1、1,软件工程概论,教材:软件工程导论编著:张海藩 主讲:周荣辉,2,软件的魅力,计算机软件已经成为一种驱动力,它是进行商业决策的引擎;它是现代科学研究和工程问题解决的基础;它是区分现代产品和服务的关键因素。计算机软件无处不在。人们把软件看作是生活中的现实技术。在很多情况下,人们把他们的生活、他们的舒适、他们的安全、他们的娱乐、他们的决策、甚至他们的整个生活都依赖于计算机软件。,3,软件工程概论,第一章 软件工程学概论,4,任何计算机系统由硬件(hard)和软件(software)两大部分构成。硬件只是提供了计算的可能性。必须有支持和管理计算机的软件,系统才能实现计算。,计算机硬件与软件,5,软

2、件的定义,程序:能够完成预定功能、并满足性能要求的可执行的指令序列。软件是计算机程序以及开发、使用和维护程序所需要的所有文档。软件是包括程序、数据及其相关文档的完整集合。软件=知识+程序+文档+数据 软件是知识的载体。软件包括:能够完成预定功能和性能的可执行的指令;保证程序运行的配置信息和初始数据等。描述程序的开发、使用和维护的文档,6,软件的定义,软件是客观世界中问题空间与解空间的具体描述,它追求的是表达能力强、更符合人类思维模式,具有构造性和易演化性的计算模型。-软件的实质,7,软件的任务和特点,软件的任务是将现实世界中需要处理的问题映射到计算机世界中,同时又服务于现实世界。特点:软件即服

3、务(Software as a service,SaaS)。,8,软件的特点,软件是一种逻辑产品,无形态,具有抽象性。同时又具有一般机器的属性-原料加工的工具。软件是开发而形成的,无明显的制造过程。软件对硬件和环境有着不同程度的依赖性,这导致了软件升级和移植的问题。主要靠脑力劳动生产,开发和维护成本高。大多数软件是定做的,不是通过已有构件组装而成,规范性差。软件不会“磨损”和老化,但存在退化问题。软件服务于社会各行各业,常常涉及不同领域的专门知识。,9,软件的发展,1、程序设计时期(19461956)软件=程序 开发方式:个体 主要特征:计算机硬件=计算机 用途少,规模小;不作为商品;开发者=

4、使用者:自己开发,自己使用。2、程序系统时期(19561968)软件=程序+说明 开发方式:作坊式 主要特征:程序规模增大,多人分工合作。软件作为商品,即程序设计者使用者;程序开发和使用的文档资料已不可缺少。3、软件工程时期(1968现在)软件=程序+数据+文档 开发方式:工程化 主要特征:按工程管理的方法管理整个软件开发过程。,10,软件发展中的问题,60年代中后期,软件商品化的出现,使计算机应用的广度和深度得到迅速扩大,由此而带来的问题是:应用领域不断扩大-软件需求量倍增。要求计算机解决更多的问题-软件规模增大。要求解决问题的深度增加-软件复杂程度增大。软件开发反映出的问题:软件是手工劳动

5、,是智力产品-生产率低。程序是逻辑实体,出错容易,纠错困难,质量难以保证,维护费用高于开发费用。软件规模和复杂度与开发者花费的精力和时间不是简单的正比关系,成本上升快。,11,软件危机,软件生产的进度、数量、质量、成本与社会对软件的需求量和希望要求甚远,开发成本和进度难以控制,指令难以保证,与硬件发展形成强烈反差。这就是所谓的“软件危机”。-现实与希望形成的巨大落差,12,软件危机的具体表现,1、软件开发:软件开发过程和成本无法有效控制,且成本逐年上升;软件开发生产率提高的速度跟不上需求的增加;用户对已完成的软件系统不满意;软件产品质量靠不住,没有确保质量的有效措施。2、软件维护:软件常常是不

6、可维护的(缺乏文档或文档质量)。维护成本高。软件维护花费的时间和费用占整个软件开发组织的60%以上。,13,产生软件危机的原因,客观原因:软件是手工劳动,是智力产品-生产率低。软件是逻辑实体,出错容易,纠错困难。软件的复杂性使得仅靠人的智力难以驾驭。主观原因 开发方式:认为开发软件就是写程序。组织方式:作坊式的生产方式;开发无计划、开发过程无规范、开发过程难控制。用户方面:对软件需求描述不精确。开发人员方面:对用户需求的理解与用户本来愿望有差异,相互之间的信息交流不及时、不准确、有误解。,14,“软件工程”的提出,寻求新的软件开发组织形式和开发方法。北大西洋公约组织成员国的软件工作者于1968

7、、1969年连续两年召开软件研讨会,即有名的NATO会议,集中研究对策,讨论如何摆脱软件危机,提出了“软件工程”的概念。于是,计算机科学与技术的新领域“软件工程”诞生了,它对软件产业的形成和发展起了决定性的作用,对于科学地开发软件、有效地管理软件和提高软件质量具有重要作用。,15,软件工程的定义,IEEEIEE83:软件工程是开发、运行、维护和修复软件的系统方法。IEEEIEE93:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。计算机大百科全书:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的

8、定义、开发、发布和维护的工程,或以之为研究对象的学科。,16,软件工程的目标,在给定成本、进度的前提下,开发出满足用户需求的高质量的、易于维护的软件产品。软件工程是从技术和管理两方面研究如何更好地开发和维护计算机软件。成本、进度和质量将是未来若干年中导致软件激烈竞争的主要因素。,17,软件工程研究的内容,软件工程的核心:软件质量保证软件工程三要素:过程、方法和工具软件工程过程:完成把用户需求转换为软件产品的一组有组织的活动。没有软件工程过程就没有软件管理。软件工程方法:提供过程中“如何做”的技术软件工程工具:提供自动或半自动地支持软件的开发和管理,支持各种软件文档的生成。全面的质量管理是推动软

9、件工程过程不断改进的动力,导致了更加成熟的软件工程方法的涌现。过程和方法的结合使得软件被合理和高质量地开发出来。工具为软件工程方法和过程提供了自动或半自动的支撑环境。,18,软件工程方法,结构化方法:结构化分析方法、结构化设计方法和结构化程序设计方法。其精髓是自顶向下、逐步求精。面向数据结构的方法:从要求的输入/输出数据结构入手,导出软件结构,再补充细节,得到完整的程序结构。面向对象方法:从建立问题模型开始,然后是识别对象、构造类。可视化方法:原型构造方法,通过图形界面构造工具构造用户操作界面来描述需求和用户试用过程。,19,软件工程工具,图稿绘制工具:officevisio 2007。源码浏

10、览工具:管理和组织源代码。配置管理工具:VSS、PVCS、SVN。数据库建模工具:ERWin、PowerDesign。UML建模工具项目管理工具:MS Project,20,软件工程的知识体系,目前,IEEE最新发布的软件工程知识体系(SWEBOK)将软件工程知识体系分解成10个知识域,21,软件生存周期,定义:软件生存周期是指一个软件从提出开发要求开始直到不再使用(报废)为止的整个时期。软件生存周期阶段划分原理:软件工程采用软件生存周期方法,从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。划分:软件生

11、存周期包括三个时期:软件定义 软件开发 软件使用和维护,22,软件生存周期软件定义,1、问题定义:确定要求解决的问题是什么?2、可行性研究:确定在时间和资源的约束条件下,能否完成指定的任务?包括:技术可行性、经济可行性、法律可行性、社会可行性。若可行,则制定项目所需费用、资源、时间的开发计划。3、需求分析:准确地确定“软件系统必须做什么”,即明确目标系统必须具备的功能和对系统的约束。,23,软件生存周期软件开发,1、概要设计:确定在总体上应该怎样实现目标系统,包括系统的软件结构设计、接口设计和数据结构设计。-软件架构设计2、详细设计:对软件结构中的模块进行精确描述算法设计。3、编码及模块测试:

12、把模块算法转换成特定程序设计语言的正确的、容易理解、容易维护的程序模块。4、综合测试:发现和纠正程序中的错误,保证软件功能和性能符合需求规格说明书规定的要求。包括集成测试、确认测试和系统测试。,24,软件生存周期软件维护,软件投入使用后继续对软件的查错、纠错和改进。使系统持久地满足用户的需要。包括:改正性维护 适应性维护 完善性维护 预防性维护,25,软件过程,过程:为实现一个给定目标所进行的一系列活动。软件过程:开发和维护软件及其相关产品所涉及的一系列活动。【计算机科学技术百科全书】软件过程是软件生存周期中一系列相关过程。过程是活动的集合;活动是任务的集合;任务是把输入转换为输出的操作。软件

13、过程指为获得高质量软件所需要完成的一系列任务以及完成这些任务的工作步骤。过程还规定了运用的方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施、任务完成的标志等。,26,软件过程模型,软件过程模型是软件过程的一种抽象表示,描述了从问题提出直到软件废弃为止的软件系统开发、运行和维护所实施的全部过程、活动和任务的结构框架。软件过程模型实际上是一种开发策略。软件生存周期规定了一个软件开发应该经历的工作阶段,但这些阶段按照一种什么策略来组织,这就是软件过程模型要讨论的问题。在软件开发过程中,软件项目的性质不同、运用的开发方法不同、支持软件开发的工具不同,其开发策略也不同,即适用

14、的软件过程模型不同。不同的软件过程模型,很难说哪个最好。只能说某个软件项目用哪个模型更好。,27,软件过程模型-瀑布模型,严格按照软件生存期的阶段划分顺序和各阶段的目标、任务、文档的要求来进行开发。该模型以文档为驱动。每一活动结束后,通过严格的阶段复审和确认,得到一致、完整、准确的良好文档,以“冻结”这些文档为该阶段结束的标志,并作为下一阶段活动的唯一基础;以每一步的正确性和完整性来保证最终系统的质量。适应性:瀑布模型适合功能和性能明确、完整、无重大变化的软件开发。局限性:用户很难完整、准确表达对系统的全面要求,需求说明也很难做到把一切描述得完整、准确、一致,并与实际环境相符。,28,瀑布模型

15、,强调阶段的划分及其顺序性、各阶段工作及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细化的开发模式。,软件过程模型-瀑布模型,29,软件过程模型-瀑布模型,瀑布模型的特点:结构简单明了;历史较长、应用面广泛、为广大软件工作者所熟悉;已有与之配套的一组十分成熟的开发方法和丰富的支撑工具。确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是非常困难的;反馈信息慢。,30,软件过程模型-原型模型,听取用户意见,建造/修改原型,用户测试运行原型,31,软件过程模型-原型模型,先根据用户对需求的描述,通过软件工具构造一个软件系统的原型来描述目标系统的主要功能,让用户进行评价,并根据用

16、户意见进行改进。随着不断实验、评价和修改,最后使得在功能上完全满足用户需求。软件系统原型一般不是最终目标系统。原型作为标识软件需求的一种机制,原型被建造仅是为了定义需求,并且只是在功能上描述了用户需求,忽略了软件质量特性要求和管理对质量的控制。开发原型系统的条件:用户对目标系统只有模糊笼统的认识,难以准确。软件开发者和用户之间存在通信障碍。有快速构造原型的工具。开发的软件系统可以通过对原型系统的完善来实现,也可以抛弃原型系统,重新规划和设计。,32,软件过程模型增量模型,先按瀑布模型开发一个满足基本要求的系统,然后根据用户在使用中提出的新需求在进一步完善形成新的版本,这个过程不断重复,直到最终

17、的完善产品。软件需求不完整时,可以采用该模型的开发方案。如早期的MDOS系统和现在的WINDOWS系统。与原型模型的区别:增量模型的每个版本都是可操作产品。增量模型中,第一个增量往往是核心的产品,即实现了基本要求。以后的每一个增量都是在前一个版本的基础上进行的补充、修改和完善的结果。,33,软件过程模型螺旋模型,螺旋模型是风险驱动模型,将开发过程分为几个螺旋周期,每个螺旋周期大致与瀑布模型相同。每个螺旋周期可分为四个工作步骤:1、制定计划:确定软件目标,选定实施方案,明确开发限制条件;2、风险分析:分析所选方案,识别风险和消除风险;3、开发实施:实施软件开发;4、用户评估:评价开发工作,提出修改意见。与增量模型的区别:增量模型的每一次结果都是可操作的系统,而螺旋模型的最后一个周期的结果才是可操作的。与原型模型的区别:开发原型模型重点在系统的功能。螺旋模型重点在系统的风险。螺旋模型适合风险大的大型软件开发。,34,35,习题,P221 3 6 7什么是软件生存周期?按照软件生存周期,将一个软件从问题提出到软件退役划分成哪几个阶段,每个阶段的任务是什么?,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号