软件工程与UML概述课件

上传人:我*** 文档编号:144723302 上传时间:2020-09-13 格式:PPT 页数:91 大小:5.80MB
返回 下载 相关 举报
软件工程与UML概述课件_第1页
第1页 / 共91页
软件工程与UML概述课件_第2页
第2页 / 共91页
软件工程与UML概述课件_第3页
第3页 / 共91页
软件工程与UML概述课件_第4页
第4页 / 共91页
软件工程与UML概述课件_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《软件工程与UML概述课件》由会员分享,可在线阅读,更多相关《软件工程与UML概述课件(91页珍藏版)》请在金锄头文库上搜索。

1、1,UML面向对象分析与设计,马维俊,Beyond Technology,2,第1章 软件工程与UML概述,3,第1章 软件工程与UML概述,1.1 软件工程概述 1.3 UML语言概述,4,1.1 软件工程概述,1.1.1 软件工程的发展历史 1.1.2 软件工程的生命周期,5,软件 定义,软件是程序、数据和相关文档的完整集合。 程序:按照事先设计的功能和性能要求执行的指令序列; 数据:程序能正常操纵信息的数据结构; 文档:与程序开发和使用相关的各种图文资料,6,1.1.1 软件工程的发展历史,从20世纪60年代中期到70年代中期,软件业进入了一个发展时期。此时出现了所谓的软件公司。 196

2、8年,出现“软件工程(SoftwareEngineering)”这一术语。 30余年来,尽管软件的一些毛病仍然无法根治,但软件的发展速度却超过了任何传统工业,并未出现真正的软件危机,这的确是前人的先见之明。如今软件工程成了一门学科。,7,软件的发展历程,软件工程,“软件作坊”,个体化的软件环境,上世纪60年代中期,上世纪70年代,上世纪80年代,面向对象软件开发,软件规模小,编写者和使用者往往是同一个人,除程序清单外,无其它文档资料。,面向对象技术的应用改变了软件界的开发方式。,计算机应用领域越来越广,系统规模越来越大,逻辑越来越复杂,而且功能上需要不断更改和扩充。软件开发需要多个开发者一起开

3、发,开发人员按各自的爱好和习惯进行工作,没有统一的标准可以遵循,以手工艺的方式形成“软件作坊”来进行。,1968年,北大西洋公约组织的计算机科学家,在联邦德国召开国际会议,讨论软件危机问题。正式提出“软件工程”这个名词新兴工程学诞生了。 用“工程化”的思想作指导,可以大大减少软件开发成本并提高软件开发质量,“工程化”为人们开辟了新的道路,“软件工程学”蓬勃发展起来。,8,软件危机,随着硬件成本的降低,电脑开始变得普及,人们对软件的需求越来越高,而这时候的软件行业还处于“手工作坊”阶段,软件的产量和质量远远不能满足人们的需要,于是出现了一系列严重问题,被称为“软件危机”,9,拉布雷阿的焦油坑(M

4、ural of La Brea Tar Pits),过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。,10,软件危机的表现,用户需求不明确,变更过多 软件成本日益增长 开发进度难以控制 软件质量差 软件维护困难,11,软件危机 消除软件危机的途径,对计算机软件有一个正确的认识: 软件程序 软件程序数据文档,12,软件危机 消除软件危机的途径,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。 推广使用在实践中总结出来的开发软件的成功技术和方法。 开发和使用更好的软件工具。,13,软件工程的

5、产生,为了解决“软件危机”,于是出现了 “软件工程”学科,其目的是倡导以工程的原理、原则和方法进行软件开发。有众多专家学者致力于软件工程方法学的研究,并将研究结果应用于实践中进行检验,解决了软件开发中存在的各种问题,使得软件制造的质量大大提高。,14,软件工程 方法学,把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。,15,软件工程 方法学,软件工程方法学包含3个要素:方法、工具和过程 方法 完成软件开发的各项任务的技术方法,回答“怎样做”的问题; 工具 为运用方法而提供的自动的或半自动的软件工程支撑环境; 过程 为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项

6、任务的工作步骤。,16, 软件工程:技术层次,17,软件工程 基本原理,用分阶段的生命周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性,18,案例分析1:,A 组和B组都有共同的目标:十一期间到云南丽江旅游. A 组组员在组长带领下,制定了详细的出游计划,作好了准备. B组组员却什么都没有准备. 通过分析,比较两个小组可能出现的结果.,19,原理1:用分阶段的生命周期计划严格管理,据统计,在不成功的软件项目中,50左右是由于计划不周造成的 应该把软件生命周期划分成若干各阶段,并相应制定出

7、切实可行的计划,然后严格地按照计划对软件的开发与维护工作进行管理,20,案例分析2:,A组做了出游的计划如下表所示:,如果其中任何一个活动没有按照计划进行,将导致整个出游计划的失败 如何解决?,21,原理2:坚持进行阶段评审,软件的质量保证工作不能等到编码阶段结束后再进行,在每个阶段都应进行严格的审查 据Boehm等人统计,设计错误占软件错误的63,编码错误占37 HP公司:有1/3以上的错误是由于不熟悉用户对界面的需求而引起的,通过建立大量的原型和设计评审计划,减少产品发布后的缺陷数,在公布的四次缺陷数据中,前两次发布后的缺陷占25,第三次降到10以下,第四次则为零,22,案例分析3:,A组

8、做了出游的计划如下表所示:,在定票期间,由于负责定票的人Lily在没有通知大家的情况下将返回学校的票定在10.7日,此时将造成什么影响?在整个活动中允许随意的变更吗?,23,原理3:实行严格的产品控制,加强配置管理 建立严格的变更控制流程,24,原理4:采用现代程序设计技术,结构化分析(SA) 结构化设计(SD) 面向对象技术(OOA OOD) 实践表明:采用先进的技术既可以提高软件开发的效率,又可以提高软件维护的效率。,25,原理5:结果应能清楚地审查,根据软件开发项目的总目标和完成期限,规定开发小组的责任、产品标准及完成日期,从而使得所得到的结果能够清楚地审查。,26,原理6:开发小组的人

9、员应少而精,软件开发小组成员的素质要高,而人数则不宜过多。 开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。,27,案例分析4:,丽江活动结束了, A 小组这时应该做些什么呢?,28,原理7:不断改进软件工程实践,不断改进软件工程的实践。软件工程不应该停留在已有的技术水平上,应该积极主动地采取或创造新的软件技术,要注意不断总结经验,收集工作量、进度、成本等数据,并运行出错类型和问题报告的统计。,29,人是有生命期的,那么软件呢?什么是软件生命周期?,30,概念:软件生命周期,软件生命周期表明从功能确定、设计到开发成功投入使用,并在使用中不断地修改、增补和完善,直到被新的需要所代

10、替而停止使用该软件的全过程。,31,问题定义、 可行性研究 需求分析 概要设计 详细设计 实现 组装测试 验收测试 使用和维护 退役,1.1.2 软件生命周期的基本任务,软件定义过程,软件开发过程,运行维护过程,每个阶段都有需要完成的任务,32,案例分析,某电力公司A,希望软件公司B 为他们制造一种”电费结算系统”,该系统用于结算每一户电表1个月期间应该缴纳的电费。 B 公司得到电力公司A的这个要求之后,开始进入制作“电费结算系统”软件的生命周期。,33,问题定义阶段,该阶段的关键任务是要明确: 要解决的问题是什么?,思考:以下几个选项中,哪个是B公司得出的结论: A.要解决某小区用电总度数问

11、题 B.要解决某小区总收电费问题 C.要解决电力公司A管辖范围内的所有电表每月每户电费结算问题 D.要解决西南区域内电表结算问题,34,可性行研究阶段,该阶段的关键任务是要明确: 做不做 用最小的代价在尽可能短的时间内从经济、技术、社会因素等方面论证解决方案的可行性,思考:B公司在可行性分析阶段应该做些什么事情,会得出什么结论?,35,需求分析阶段,该阶段的关键任务是要明确: 做什么 通过与客户不断的讨论、协商,对目标系统提出完整、准确、清晰、具体的要求. 用正式的文档准确地记录对目标系统的需求,形成软件需求规格说明书(SRS),注意点,B公司在这个阶段应该对用户的要求进行详细的调研与分析,需

12、要去了解电费结算中需要涉及到信息、结算电费的标准与公式、这个电费结算系统的产出文档是什么等内容,确定该系统需要实现的功能,例如:对使用电表的用户进行管理,对1个用户1个月的电费计算,能够生成结算单。最后以文档的形式描述出需求规格。这些是指导B公司进行下一步工作的依据。,36,概要设计(总体设计)阶段,该阶段的关键任务是要明确: 怎么做 提出实现目标系统的几种方案,制定最佳方案的详细计划 系统的体系结构设计 阶段性成果:概要设计说明书、数据库或者数据结构说明书、组装测试计划等,根据上一 步得到的需求规格说明书,将需求功能进行模块化分,B公司的设计人员开始了对“电费结算系统”的设计。例如,系统管理

13、模块,电费计算模块,生成结算单模块等。,37,详细设计阶段,该阶段的关键任务是要明确: 具体做法 设计出程序的详细规格说明,即详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。 阶段性成果:详细设计规格说明书和单元测试计划等,对每一个模块,设计它的实现算法和数据结构。例如,电费计算模块,需要根据计算公式进行电费的计算。B公司的设计人员开始了对“电费结算系统”的设计。,38,编码和单元测试阶段,该阶段的关键任务是 编码和单元测试 编写出正确的、易理解的、易维护的程序模块; 仔细测试编写出的每一个模块 阶段成果:经过单元测试后的代码,单元测试报告等。,B公司程序员们开始对每个模块进行分工

14、,各自负责1个或者多个模块,然后写代码阿写代码,代码写好了,还需要对自己所写模块的代码进行测试,保证自己的正确性。,39,综合测试阶段,该阶段的关键任务是通过各种类型的测试(及调试)使软件达到预定的要求 组装测试:根据设计的软件结构,把经过单元测试检验的模块按某种策略装配起来,在装配过程中对程序进行必要的测试。 验收测试:按照规格说明书的规定,由用户对目标系统进行验收,看其是否达到需求规格说明书中定义的全部功能和性能等方面的需求。 验收测试结束后,经过评审的软件产品就可以交付投入使用了。,经过上面的几个步骤,B公司的人员终于拿出了“电费结算系统”,他们需要对该系统进行各种测试,包括集成测试,系

15、统测试,用户环境测试,验收测试等等,确保该系统能够平稳的运行在A公司中。,40,软件维护阶段,该阶段的关键任务是通过各种必要的维护活动使系统持久地满足用户的要求。 改正性维护:诊断和改正在使用过程中发现的软件错误 适应性维护:修改软件易适应环境的变化 完善性维护:根据用户的要求改进或扩充软件使它更完善 预防性维护:修改软件为将来的维护活动预先做准备,在电力公司A的实际使用当中,“电力结算系统”出现了一些问题,B公司需要派人员进行维护。 此外,A公司对B公司所开发的系统比较满意,愿意继续让B公司对其进行其他方面功能的扩充,例如:分小区进行用电量和电费收益的统计分析等。,41,软件开发的这些阶段,

16、是按什么样的顺序排列的呢?经过软件工程领域科学家在实际项目的基础上不断研究和发现,总结出了一些可以遵循的规律过程模型,42,1.1.2.4 软件开发模型,瀑布模型 快速原型模型 螺旋模型 喷泉模型,43,过程模型的选择,首先,了解每一种过程模型的特点和适用性。 其次,根据软件项目的特点选择合适的过程模型。 值得注意的是,由于现实中项目的复杂性,通常会在一个项目中选择几种过程模型嵌套使用。,44,案例:,某个老师(T)想要考察一个同学(S)的学习情况和技术水平,于是交给该学生一个任务。 T : 我有一个朋友想要一个图象浏览软件,能够查看多种格式的图象,包括BMP、TIFF、JPG、PNG,并且能够支持一般的放大、缩小、漫游。你能做这样一个软件吗? S:就是类似ACDSEE这样的软件吗? T: 差不多,不过不需要那么强大的功能,我这个朋友计算机是外行,最好能做的比较方便,傻瓜型的,例如象ACDSEE自动翻页这种功能还是要的。 S:我以前学过BMP和JPG的图象格式解析,我想没有问题 T:好的,给你30天时间,下周你再来一趟,跟我讲一下你的工作

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号