软件开发生命周期与统一建模语言UML 01 软件工程概述.ppt
《软件开发生命周期与统一建模语言UML 01 软件工程概述.ppt》由会员分享,可在线阅读,更多相关《软件开发生命周期与统一建模语言UML 01 软件工程概述.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程概述软件工程概述软件开发生命周期与统一建模语言软件工程概述软件工程概述1结构化程序设计与面向对象程序设计结构化程序设计与面向对象程序设计 2统一建模语言与现代软件工程统一建模语言与现代软件工程 3用例图用例图 4静态模型静态模型 5软件开发生命周期与统一建模语言UML软件工程概述软件工程概述软件开发生命周期与统一建模语言动态模型动态模型 6UML实现与部署实现与部署 7新闻发布系统的实例新闻发布系统的实例 8Rational Rose简介简介 9软件开发生命周期与统一建模语言UML软件工程概述软件工程概述第1章 软件工程概述 v1.1 用例概述用例概述 1.1.1 软件及其特点 1.1
2、.2 软件危机 1.1.3 软件工程的定义1.1.4 软件工程的基本原理v1.2 软件开发生命周期软件开发生命周期 v1.3 过程模型过程模型 1.3.1 常见的生命周期模型 1.3.2 生命周期模型的应用 v1.4 软件工程方法学软件工程方法学 软件开发生命周期与统一建模语言UML软件工程概述软件工程概述第1章 软件工程概述 v教学要求教学要求理解:软件和软件工程的概念;软件开发生命周期。掌握:软件过程模型运用的原则。软件开发生命周期与统一建模语言UML软件工程概述软件工程概述v软件开发是一个专业领域的人在为另一个专业领域的软件开发是一个专业领域的人在为另一个专业领域的人服务人服务v在软件开
3、发过程中,需求可能经常在变,每次需求变在软件开发过程中,需求可能经常在变,每次需求变化会带来软件系统的开发延迟,甚至出现变更反复,化会带来软件系统的开发延迟,甚至出现变更反复,被推倒了的内容又要重新确立被推倒了的内容又要重新确立v在软件没有最终交付时,用户如何了解开发进展情况在软件没有最终交付时,用户如何了解开发进展情况v系统难以维护和扩展,经常重复开发类似的功能系统难以维护和扩展,经常重复开发类似的功能v项目经常延期,实际成本往往远远高于估计成本项目经常延期,实际成本往往远远高于估计成本v开发团队内部使用了不同的技术,在交流时常常有障开发团队内部使用了不同的技术,在交流时常常有障碍碍v如何应
4、对软件开发过程中如何应对软件开发过程中的种种不确定因素,更有的种种不确定因素,更有效地开发与维护软件?效地开发与维护软件?1.1 软件、软件危机和软件工程的定义软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.1 软件、软件危机和软件工程的定义软件与硬件软件与硬件软件开发生命周期与统一建模语言UML软件工程概述软件工程概述软件的特点软件的特点软件是脑力劳动的产品,但它不同于追求个性化的艺术作品;软件是脑力劳动的产品,但它不同于追求个性化的艺术作品;软件是产品,但它又不同于工业化生产得到的有形产品软件是产品,但它又不同于工业化生产得到的有形产品 1.1 软件、软件危机和软件工程的定
5、义软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.1 软件、软件危机和软件工程的定义软件的特点描述抽象性抽象性软件是一种逻辑实体而不是具体的物理实体,必须通过测试、分析、思考、判断来了解它的功能、性能及其他特性可复制性可复制性软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。一旦某一软件项目研制成功,以后就可以大量地复制同一内容的副本,即其研制成本远远大于其生产成本不会磨损不会磨损在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,但软件也会出现故障,软件维护比硬件维护要复杂得多,与硬件的维修有着本质的差别依赖性依赖性软件的开发和运
6、行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖。为了消除这种依赖,在软件开发中提出了软件移植的问题,并且把软件的可移植性作为衡量软件质量的因素之一开发效率低开发效率低软件的开发尚未完全摆脱手工的方式,依然有大量重复性的劳动开发费用高开发费用高软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,需要较高的成本。软件的开发是一个复杂的过程,因而管理是软件开发过程中必不可少的内容软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.1 软件、软件危机和软件工程的定义v什么是软件软件软件=程序程序+数据数据+文档文档 数据包括初始化数据、测试数据、研发数据、运行数据、维护数据
7、,以及软件企业积累的项目工程数据和项目管理数据。文档是开发、使用和维护程序所需要的图文资料。软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.1 软件、软件危机和软件工程的定义v什么是软件危机什么是软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题如何开发软件,以满足对软件日益增长的需求 如何维护数量不断增加的已有软件 软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.1 软件、软件危机和软件工程的定义消除软件危机的途径消除软件危机的途径v正确认识软件。正确认识软件。软件=程序+数据+文档在软件开发的各个阶段都要有完备的文档。v加强管理。加强管
8、理。软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,应该推广使用在实践中总结出来的开发软件的成功的技术和方法。v使用软件工具。使用软件工具。在软件开发的每个阶段都有许多烦琐重复的工作需要做,在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。v总之,为了解决软件危机,既要有技术措施(方法和工具),总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门学科。面研究如何更好地开发和维护计算机软件的一门学科。软件开发
9、生命周期与统一建模语言UML软件工程概述软件工程概述1.1 软件、软件危机和软件工程的定义软件工程的定义软件工程的定义v软件工程软件工程=管理管理+技术技术v软件工程的目标软件工程的目标 软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.1 软件、软件危机和软件工程的定义软件工程的基本原理软件工程的基本原理(1)用分阶段的生命周期计划严格管理。)用分阶段的生命周期计划严格管理。统计发现,不成功的软件项目中有一半左右是由于计划不周造成的。因此,有必要制定完善的计划,分阶段地进行管理和控制。(2)坚持进行阶段评审。)坚持进行阶段评审。软件中的大部分错误是在编码之前造成的;错误发现与改
10、正得越晚,所需付出的代价也就越高,如图1-4所示。因此,在每个阶段都进行严格的评审以尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。早中晚低中高变化出现的时期代价(3)实行严格的产品控制。)实行严格的产品控制。软件开发过程中,需求的变更往往需要付出较高的代价,但这种改变又是难以避免的,因此不能硬性禁止客户提出改变需求的要求,而要依靠科学的产品控制技术来顺应这种要求,按照严格的规程进行变更控制。(4)采用现代程序设计技术。)采用现代程序设计技术。如“清晰第一、效率第二”的程序风格;面向对象的分析方法;各种框架技术的使用、模式的应用;软件建模方法的运用等。实践表明,采用先进的技术不仅
11、可以提高软件开发和维护的效率,而且可以提高软件产品的质量。(5)结果应能清楚地审查。)结果应能清楚地审查。软件是脑力劳动的逻辑产品,应该根据软件开发项目的总目标及完成期限规定开发组织的责任和产品标准,制定出完备的文档,从而提高其“可见性”。(6)开发小组的人员应该少而精。)开发小组的人员应该少而精。(7)不断改进软件工程实践的经验和技术。)不断改进软件工程实践的经验和技术。软件开发生命周期与统一建模语言UML软件工程概述软件工程概述v改正同一错误付出的代价随时间变化的趋势改正同一错误付出的代价随时间变化的趋势早早中中晚晚低低中中高高变化出现的时期变化出现的时期代代价价1.1 软件、软件危机和软
12、件工程的定义软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.2 软件开发生命周期软件开发生命周期v如何盖一栋大楼?如何盖一栋大楼?软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.2 软件开发生命周期软件开发生命周期 1问题定义问题定义“要解决的问题是什么?要解决的问题是什么?”2可行性论证可行性论证“有行得通的解决办法吗?有行得通的解决办法吗?”3需求分析需求分析“系统必须做什么?系统必须做什么?”4总体设计总体设计“概括地说,怎样做?概括地说,怎样做?”5详细设计详细设计“具体怎样做?具体怎样做?”6编码和单元测试编码和单元测试7综合测试综合测试8运行运行/维
13、护维护软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.2 软件开发生命周期软件开发生命周期1问题定义“要解决的问题是什么?”v通过对客户的访问调查,系统分析员扼要地写出通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客经过讨论和必要的修改之后这份报告应该得到客户的确认。户的确认。软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.2 软件开发生命周期软件开发生命周期2可行性论证及软件计划“有行得通的解决办法吗?”v目的:用最小的代价在尽可能短的时
14、间内确定该目的:用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。软件项目是否能够开发,是否值得去开发。v主要任务:了解客户的要求及现实环境,从技术、主要任务:了解客户的要求及现实环境,从技术、经济和社会因素三方面研究并论证本软件项目的经济和社会因素三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步的项目可行性,编写可行性研究报告,制定初步的项目开发计划。开发计划。软件开发生命周期与统一建模语言UML软件工程概述软件工程概述1.2 软件开发生命周期软件开发生命周期可行性论证及软件计划(续)v具体步骤:具体步骤:(1)确定项目规模和目标。)确定项目规模和目标
15、。(2)研究正在运行的系统。)研究正在运行的系统。(3)建立新系统的高层逻辑模型。)建立新系统的高层逻辑模型。(4)导出和评价各种方案。)导出和评价各种方案。(5)推荐可行的方案。)推荐可行的方案。(6)编写可行性研究报告。)编写可行性研究报告。v系统分析员需要进行一次大大压缩和简化了的系统分析和系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程,研究问题的范围,探索这个问题是否值得去解设计过程,研究问题的范围,探索这个问题是否值得去解决,是否有可行的解决办法。如果可行,制定出初步的开决,是否有可行的解决办法。如果可行,制定出初步的开发计划。发计划。软件开发生命周期与统一建模语言UML
16、软件工程概述软件工程概述1.2 软件开发生命周期软件开发生命周期3需求分析“系统必须做什么?”v确定目标系统必须具备哪些功能。确定目标系统必须具备哪些功能。v软件开发是一个专业领域的人在为另一个专业领域的人做软件开发是一个专业领域的人在为另一个专业领域的人做事。用户了解他们所面对的问题,知道必须做什么,但是事。用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知道怎样利通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题;软件开发人员知道怎样用软件用计算机解决他们的问题;软件开发人员知道怎样用软件实现人们的要求,但是对特定用户的具体要求并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件开发生命周期与统一建模语言UML 01 软件工程概述 软件 开发 生命周期 统一 建模 语言 UML 软件工程 概述
限制150内