UML统一建模项目教程138886[334页]课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《UML统一建模项目教程138886[334页]课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 334页 UML 统一 建模 项目 教程 138886 334 课件
- 资源描述:
-
1、中国人民大学出版社中国人民大学出版社第1单元 软件工程概述第2单元 面向对象技术简介第3单元 UML语言基础第4单元 类图和对象图第5单元 包图第6单元 用例图第7单元 交互图第8单元 活动图第9单元 状态机图第10单元 交互概述图第11单元 构件图第12单元 部署图第13单元 UML应用实例网络教学系统建模【单元目标】【单元目标】1.理解软件的概念与特点。2.了解软件危机的形成并掌握缓解软件危机的方法与途径。3.了解软件工程的概念与基本目标。4.掌握软件生存周期的各个阶段需要完成的主要任。5.掌握常用的软件开发模型。6.能够使用软件工程的思想来解决软件开发中遇到的问题。【任务描述】【任务描述
2、】计算机软件的发展与进步,是与计算机硬件的发展和计算机的普及是分不开的。同其他事物的发展规律一样,也经历了从产生、发展到成熟的过程。在这个过程中也经历了软件的危机,为吸取历史经验教训,应该认真研究产生软件危机的原因,探讨消除软件危机的途径。【任务目标】【任务目标】首先,了解软件的概念与软件的发展情况,并掌握软件的特点。其次,了解软件危机的形成与表现形式,并学会解决软件危机的方法与途径。1.1.1 软件的发展软件的发展 现在对软件的一种公认的解释为:软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据为进行
3、通信、解释和处理而使用的信息的形式化表现形式。文档是与程序开发、维护和使用有关的图文材料。1.1.2 1.1.2 软件的特点软件的特点与硬件相比,软件主要有以下特点。1.软件是一种逻辑实体,不是具体的物理实体 2.软件与硬件的生产方式不同3.软件与硬件的维护不同 4.软件是复杂的 5.软件成本相当昂贵 1.1.3 1.1.3 软件危机软件危机 1.软件危机的表现(1)人们对软件开发的成本和进度的估计常常不够准确。(2)用户对已完成的软件不满意的现象时有发生。(3)软件常常是不可维护的。(4)软件产品的质量往往不可靠。(5)软件开发生产率提高的速度远远跟不上日益增长的软件需求,满足不了社会发展的
4、需要。2.缓解软件危机的途径(1)加强软件开发过程的管理,做到组织有序、各类人员协同配合,共同保证工程项目完成,避免软件开发过程中个人单干的现象。(2)推广使用开发软件的成功技术和方法,并且不断探索更好的技术和方法,消除一些错误的概念和做法。(3)开发和使用好的软件工具,支持软件开发的全过程。【任务描述】【任务描述】学习软件工程的基本理论与方法,建立并使用正确的工程方法开发出成本低、可靠性高并能高效运转的软件,从而解决或缓解软件危机。【任务目标】【任务目标】了解软件工程的概念,掌握软件工程的三要素,理解软件工程的基本原理,掌握软件工程的基本目标。学会使用软件工程的理论来解决软件危机的方法。1.
5、2.1 1.2.1 软件工程的概念软件工程的概念软件工程包括3个要素:方法、工具和过程。(1)软件工程方法为软件开发提供了“如何做”的技术,是指导研制软件的某种标准规范。(2)软件工具是指软件开发、维护和分析中使用的程序系统,为软件工程方法提供自动的或半自动的软件支撑环境。(3)软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。1.2.2 1.2.2 软件工程的基本原理软件工程的基本原理软件工程的这7条基本原理包括:1.用分阶段的生存周期计划严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查6.开发
6、小组的人员应少而精7.承认不断改进软件工程实践的必要性 1.2.3 1.2.3 软件工程的基本软件工程的基本目标目标从技术和管理上采取多项措施以后,组织实施软件工程项目的最终目的是保证项目成功,即达到以下几个主要目标:付出较低的开发成本;达到预期的软件功能;取得较好的软件性能;使软件易于移植;需要较低的维护费用;能按时完成开发工作,及时交付使用。软件工程目标之间的关系 【任务描述】【任务描述】利用所学知识进行软件生存周期的各个阶段任务的划分。划分原则是保证各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过
7、程的组织管理。【任务目标】【任务目标】首先了解软件生存周期的概念,其次,熟练掌握软件生存周期各个阶段的工作流程及主要工作任务。1.3.1 1.3.1 软件生存周期的概念软件生存周期的概念同任何事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。软件生存周期是指一个计算机软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直到停止该软件的使用的全过程。1.3.2 1.3.2 软件生存周期的主要阶段软件生存周期的主要阶段软件生存周期主要包括制定计划、需求分析、软件设计、程序编码、软件测试和运行维护等6个阶段。以下对这6个阶段的工作流程及主要任务做一概括的描述。1.
8、制定计划 在软件系统开发之前,首先应当制定项目开发计划,该阶段是软件生存周期的第一阶段。其主要任务如。确定要开发软件系统的总目标。给出功能、性能、可靠性以及接口等方面的要求。完成该软件任务的可行性研究。估计可利用的资源(硬件、软件和人力等)、成本、效益和开发进度。制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。2.需求分析当完成计划制定之后,需要对用户的需求去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言表达出来。其主要任务如下。去用户处做需求调研,让用户提出对软件系统的所有需求。对用户提出的需求进行分析、综合,并给出详细的定义。编写软件需求说明书及初步的系统用户手
9、册,提交管理机构评审。3.软件设计 需求分析和定义阶段结束之后,对于软件必须“做什么”的结论已经明确,下一步是如何实现软件的需求,即进入软件设计阶段,该阶段又可分为概要设计和详细设计两部分。其主要工作如下。概要设计:把各项软件需求转化为软件系统的总体结构和数据结构,结构中每一部分都是意义明确的模块,每个模块都和某些需求相对应。详细设计:即过程设计,对每个模块要完成的工作进行具体的描述,即给出详细的数据结构和算法,为源程序的编写打下基础。编写设计说明书,提交评审。4.程序编写 软件设计解决了软件“怎么干”的问题,而程序编写是在计算机上真正实现一个具体的软件系统。具体的工作包括以下两个方面。把软件
10、设计转换成计算机可以接受的程序代码,即写成以某一种特定的程序设计语言表示的“源程序清单”。这一步工作也称为编码。要求写出的程序应该是结构良好、清晰易读的,且与设计相一致。5.软件测试 软件分析和设计、程序编写过程其中难免有各种各样的错误,需要通过测试来查找和修改,以保证软件的质量。其主要工作如下。单元测试:查找各模块在功能和结构上存在的问题并加以纠正。集成测试:将已测试通过的模块按一定顺序组装起来进行测试。有效性测试:按规定的各项需求,逐项进行测试,判断已开发的软件是否合格,能否交付用户使用。6.运行/维护 软件维护有4种类型,它们分别完成以下任务。纠正性维护:运行中发现了软件中的错误而进行的
11、修改工作。适应性维护:为了适应变化了的软件工作环境,而做出适当的变更。完善性维护:为了增强软件的功能而做出的变更。预防性维护:为未来的修改与调整奠定更好的基础而进行的工作。【任务描述】【任务描述】在某个信息系统组织中,作为应用程序项目的管理者,开发小组之前已开发过项目,此次项目规模大且复杂,并且需求已由用户写出文档,请选择适当的软件开发模型来完成。【任务目标】【任务目标】掌握常用的软件开发模型的特点,能够根据不同软件开发项目的特点来选择合适的软件开发模型进行建模。1.4.1 瀑布模型瀑布模型规定了各项软件工程活动,包括制定开发计划、需求分析和说明、软件设计、程序编码、测试和运行、维护,并且规定
12、了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,如图所示。1.4.2 1.4.2 快速原型模型快速原型模型 快速原型模型的基本思想是:软件开发人员根据用户提出的软件基本需求快速开发一个原型,以便向用户展示软件系统应有的部分或全部的功能和性能,在征求用户对原型的评价意见后,进一步使需求精确化、完全化,并据此改进、完善原型,如此迭代,直到软件开发人员和用户都确认软件系统的需求并达成一致的理解为止。软件需求确定后,便可进行设计、编码、测试等以后的各个开发步骤。可见,原型主要是为了完成需求分析阶段的任务而构建的。利用原型确定软件系统需求的过程如图所示。1.4.3 1.4.3 螺旋模型螺旋模
13、型螺旋模型的结构如图所示,它由 4 部分组成:制定计划、风险分析、实施开发、客户评估。在笛卡儿坐标的4个象限上分别表达了4个方面的活动。1.4.4 1.4.4 增量模型增量模型在增量模型中,产品的设计、实现、集成和试验是以一系列增量构件为基础进行的,构件是由一些模块的编码构成并能提供特定的功能。例如,在操作系统中,调度程序是一个构件,文件管理系统也是一个构件。在增量模型的每一个阶段,都要编码一个新的构件,然后集成到先前已构成的产品中并作为一个整体进行测试,当这个产品满足规定的功能,即满足它的需求规范时,这个过程停止。1.4.5 1.4.5 喷泉模型喷泉模型喷泉模型是一种以对象为驱动、以用户需求
14、为动力的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程中自下而上周期的各阶段是相互重叠和多次反复的,类似一个喷泉,水喷上去又可以落下来。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。采用喷泉模型的软件开发过程如图所示。【单元小结单元小结】在本单元中,我们对软件工程的基本知识进行了概要的讲解。首先介绍了软件与软件危机的概念,接着介绍了软件工程的概念以及软件的生存周期,最后对软件的开发模型进行了简要的介绍。本单元是对软件工程的概念进行的综合描述,重点是软件生存周期各阶段的主要任务以及各种软件开发模型。【概念复习】【概念复习
15、】软件 软件危机 软件工程 软件生存周期 软件开发模型【习题练习】【习题练习】1.填空题(1)通常软件包括 、三方面的内容。(2)软件工程的三要素包括 、。(3)软件生存周期一般可分为 、_ 、6 个阶段。(4)软件开发模型主要包括 、_ 、。(5)螺旋模型的结构由4个部分组成:、。2.选择题(1)软件工程的目的是()。A.建造大型的软件系统 B.软件开发的理论研究 C.软件的质量保证 D.研究软件开发的原理(2)软件产品的开发主要是()。A.进行软件复制 B.进行软件的研制 C.进行软件的销售 D.进行软件的测试(3)在软件开发模型中,提出最早、应用最广泛的模型是()。A.瀑布模型 B.喷泉
16、模型 C.增量模型 D.螺旋模型(4)需求分析是在()进行的。A.客户 B.用户和分析设计人员之间 C.开发人员内部 D.使用和维护人员间(5)软件的主要结构和功能是在()阶段决定的。A.分析设计 B编程 C.测试 D维护(6)软件危机具有下列表现()。.对软件开发成本估计不准确 .软件产品的质量往往靠不住.软件常常不可维护 .软件成本逐年上升 A.、和 B.、和 C.、和 D.以上都正确(7)软件工程的出现是由于()。A.软件危机的出现 B.计算机硬件技术的发展 C.软件社会化的需要 D.计算机软件技术的发展(8)()分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。A.
17、增量模型 B.喷泉模型 C.快速原型模型 D.瀑布模型(9)“软件危机”是指()。A.计算机病毒的出现 B.利用计算机进行经济犯罪活动 C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统(10)为了克服软件危机,人们提出了用()的原理来设计软件,这就是软件工程诞生的基础。A.数学 B.软件学 C.运筹学 D.工程学【问题思考】【问题思考】1.软件的发展过程。2.软件的特点。3.软件危机主要有哪几种表现?4.软件工程的基本原理。5.软件工程的目标是什么?6.什么是软件生存周期?7.什么是软件开发模型?主要有哪些?各有何特点?8.假设要求你开发一个软件,该软件的功能是把读入的浮点数开
18、平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你做出选择的理由。【单元目标】【单元目标】1.了解面向对象的基本概念。2.掌握面向对象的三大特征。3.了解软件建模的基本概念,深刻体会软件建模的目的和原则。4.能够运用面向对象建模原则建立系统模型。5.学会面向对象的系统分析与设计方法。【任务描述】【任务描述】面向对象的程序设计(Object-Oriented Programming,OOP)旨在创建软件重用代码,具备更好的模拟现实世界环境的能力,这使得它被公认为是编程的最佳选择。面向对象的编程语言使得复杂的工作条理清晰、编写容
19、易。通过对面向对象的基本概念的学习来掌握面向对象的程序设计方法。【任务目标】【任务目标】了解面向对象的发展以及它的特点,掌握面向对象的基本概念。能够运用面向对象的思想进行程序设计。2.1.1 2.1.1 面向对象的概念面向对象的概念面向对象的方法起源于面向对象的程序设计语言。在20世纪60年代中期Simula-67的设计者Dahl和Nygaard提出对象的概念,在程序设计语言中开始使用数据封装的概念。面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。在结构上,面向对象程序设计和结构化程序设计也有很大的不同。结构化程序设计首先应该确定的是程序的流程怎样走,函数间的调用
20、关系怎样,也就是函数间的依赖关系是什么。2.1.2 2.1.2 对象对象对象是面向对象系统的基本构造块,是一些相关变量和方法的软件集。对象经常用于建立现实世界中我们身边的一些对象的模型。对象是理解面向对象技术的关键。对象的特性包括:(1)对象具有封装性。(2)对象具有自治性。(3)对象具有通信性。(4)对象具有被动性。(5)对象具有暂存性。2.1.3 2.1.3 类类类的确定和划分没有一个统一的标准和方法,基本上依赖于设计人员的经验、技巧以及对实际项目中问题的把握。通常的标准是“寻求共性、抓住特性”,即在一个大的系统环境中,寻求事物的共性,将具有共性的事物用一个类进行表述,在用具体的程序实现时
21、,具体到某一个对象,要抓住对象的特性。确定一个类的步骤通常包含以下方面。(1)确定系统的范围。(2)在系统范围内寻找对象,该对象通常具有一个和多个类似的事物。(3)将对象抽象成为一个类,按照上面类的定义,确定类的数据和操作。2.1.4 2.1.4 消息与事件消息与事件1.消息所谓消息,是指描述事件发生的信息,是对象间相互联系和相互作用的方式。一个消息主要由五部分组成:消息的发送对象、消息的接收对象、消息的传递方式、消息内容、消息的返回。传入消息内容的目的有两个,一个是让接收请求的对象获取执行任务的相关信息,另一个是行为指令。2.事件所谓事件,通常是指一种由系统预先定义而由用户或系统发出的动作。
22、事件作用于对象,对象识别事件并作出相应的反应。与对象的方法集可以无限扩展不同,事件的集合通常是固定的,用户不能随便定义新的事件。但是现代高级语言中可以通过一些其他技术在类中加入事件。我们通常所熟悉的一些事件,比如Click,鼠标左键单击对象时发生的事件;Load,当界面被加载到内存中时发生的事件等。【任务描述】【任务描述】研究面向对象的三大特征:封装、继承、多态,这些特征保证了程序的安全性、可靠性、可重用性和易维护性。随着技术的发展,把这些思想用于硬件、数据库、人工智能技术、分布式计算、网络、操作系统等领域,越来越显示出其优越性。【任务目标】【任务目标】掌握面向对象的三大基本特征,深刻理解封装
23、、继承和多态的含义。2.2.1 2.2.1 封装封装(Encapsulation)(Encapsulation)封装就是把对象的状态和行为绑到一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的内部细节。通过公共访问控制器来限制对象的私有属性,有以下好处:避免对封装数据的未授权访问。当对象为维护一些信息,并且这些信息比较重要,不能够随便向外界传递,这个时候,只需要将这些信息属性设置为私有的即可。帮助保护数据的完整性。当对象的属性设置为公共访问的时候,代码可以不经过对象所属类希望遵循的业务流程而去修改对象的值,对象很容易失去对其数据的控制。当类的私有方法必须修改时,限制了对整个应用程序内
24、的影响。2.2.2 2.2.2 继承继承(Inheritance)(Inheritance)继承是一种使用户得以在一个类的基础上建立新的类的技术。新的类自动继承旧类的属性和行为特征,并可具备某些附加的特征或某些限制。继承是一种连接类与类之间的层次模型。继承是指特殊类的对象拥有其一般类的属性和行为。继承意味着“自动地拥有”,即在特殊类中不必重新对已经在一般类中定义过的属性和行为进行定义,而是自动地、隐含地拥有其一般类的属性和行为。继承对类的重用性提供了一种明确表述共性的方法。2.2.3 2.2.3 多态多态(Polymorphism)(Polymorphism)多态是指两个或多个属于不同类的对象
25、对于同一个消息或方法调用所做出不同响应的能力。面向对象设计也借鉴了客观世界的多态性,体现在不同的对象可以根据相同的消息产生各自不同的动作。下图就是多态性的表现。【任务描述】【任务描述】我们在解决问题之前首先要理解所要解决的问题,对问题理解得越透彻,就越容易解决它。为了更好地理解问题,通常采用建立问题模型的方法。【任务目标】【任务目标】掌握面向对象建模的概念,理解软件建模的原因、目的及原则,掌握面向对象建模的三种模型,能够对实际问题进行建模。2.2.3 2.2.3 面向对象的建模概述面向对象的建模概述1.模型所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。(1)
展开阅读全文