版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 软件工程概述 本章学习导航本章学习要点 软件的定义与分类 软件工程的定义与基本思想 软件危机的出现 软件生存周期思想 软件生存周期各阶段任务 教学课时:4课时任务1 了解软件、软件工程和软件危机的基本概念,理解软件开发的工程化思想任务目标 小组讨论法 资料查询法学习方法任务1(1)易用性:指软件产品对用户来说有效、易学、高效、好记、少错和令人满意的程度 。 (2)可靠性:指在给定的时间内,计算机软件系统能实施应有功能的能力。 (3)可维护性:指软件维护人员对该软件进行维护的难易程度。 (4)安全性:确保软件系统不会被内部或外部因素危及的能力。 软件的评价因素软件是人们写给计算机的一系列
2、指令以及相关文档的集合。 软件由以下三部分组成:(1)在运行中能提供所希望的功能和性能的指令集(即程序)。(2)使程序能够正确运行的数据结构。(3)描述程序研制过程、方法所用的文挡。 软件的定义任务1软件发展的四个阶段出现的典型技术和主要特点 1程序设计阶段(20世纪50至60年代)2程序系统阶段(20世纪60至70年代)3软件工程阶段(20世纪70年代中后期) 4第四阶段(约20世纪90年代以来) 软件的发展任务11抽象性 指软件生产无明显制造过程,软件是一种逻辑实体,而不是具体的物理实体 。2可复制性 指软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来
3、的,它可以很简单的制作副本。 3不会磨损 在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,而只有版本更新和升级的问题。4依赖性 软件的开发和运行经常受到计算机系统的限制,对计算机系统和用户需求有着不同程度的依赖性。5开发效率低 软件的开发至今尚未完全摆脱手工的开发方式,软件也很难象其它工业产品一样实现标准化、自动化生产。6开发费用高 随着社会的发展和信息化进程的推进,在计算机系统中,软件费用占有的比例越来越大。 软件的特点任务1软件的分类任务1(1)软件开发费用和进度失控 丹佛新国际机场 。(2)软件的可靠性差 “阿丽阿娜”运载火箭 (3)生产出来的软件难以维护 典型例子-IBM36
4、0的操作系统 软件危机的特征 指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象 (始于20 世纪60年代 )。什么是软件危机(1)与软件本身的特点有关(2)与软件开发人员本身的弱点有关 用户需求不明确 缺乏正确的理论指导 软件开发规模越来越大 软件开发复杂度越来越高 软件危机的原因任务1(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术软件工程的7条基本原理 1968年的NATO 、IEEE【IEEE83】 、IEEE【IEEE93】 软件工程的理解: 软件工程学科是一门指导计算
5、机软件开发和维护的工程学科; 软件工程不是科学,其目的是创造而不是发现; 软件工程不是传统意义的工程:没有成熟的系统化方法。 软件工程的定义(5)结果应能清楚地审查 (6)开发小组的人员应该少而精 (7)承认不断改进软件工程实践的必要性 任务1(1)确定性 (2)一致性(3)完备性(4)可验证性新的设计原则(1)抽象 (2)信息隐蔽 (3)模块化 (4)局部化 新的思想方法课堂实践 1(1)通过学习小组讨论和上网查询资料形式完成。(2)找到一些常用的软件工程相关的网站,方便自己的学习。 操作提示(1)根据您的理解,您认为怎样才能解决软件危机。(2)你所了解的目前我国的软件开发是一种什么样的状态
6、,您认为哪些地方可以改进。(3)了解了软件工程的概念以后,你是怎样理解软件开发和编程的? 操作要求任务2 了解软件生存周期模型及软件生存周期的阶段划分及各阶段的主要任务任务目标 小组讨论法 资料查询法 类比学习法学习方法任务2软件生存周期定义时期开发时期维护时期任务2“对于上一个阶段所确定的问题有行得通的解决办法吗?” 系统分析员需要在较抽象的高层次上进行的分析和设计的过程,可以通过系统流程图、数据流图和数据字典进行描述。 (1)技术可行性:使用现有的技术能实现这个系统吗?(2)经济可行性:这个系统的经济效益能超过它的开发成本吗?(3)操作可行性:系统的操作方式在这个用户组织内部行得通吗? 2
7、-可行性研究“要解决的问题是什么?” 系统分析员应该提出关于问题性质、工程目标和规模的书面报告。并组织认真讨论这份书面报告。问题定义阶段是软件生存周期中最简短的阶段,一般只需要一天甚至更少的时间。 1-问题定义任务22-可行性研究(系统流程图)任务21什么是软件需求 IEEE软件工程标准中关于需求的定义 用户解决问题或达到目标所需的条件或权能。 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。 一种反映上面两条所描述的条件或权能的文档说明。 3-需求分析2需求的特点 (1)需求是根本的(2)需求是变化的 (3)需求是多层次的 任务23需求的层次 3-需求分析4需求的
8、标准 (1)明确性 (2)完整性 (3)一致性 (4)可测试性 (5)可跟踪性和可修改性 任务2 需求分析阶段通常借助于数据流图描述对现有系统的认识或对目标系统的设想。 3-需求分析任务2 “概括地说,应该如何解决这个问题?”通常用层次图或结构图描绘软件的结构。 (1)低成本的解决方案。 (2)中等成本的解决方案。 (3)高成本的完美的解决方案。 4-总体设计任务2 “应该怎样具体地实现这个系统呢?” 通常用HIPO图或PDL语言或程序流程图描述详细设计的结果 。5-详细设计任务2 通过各种类型的测试及相应的调试,保证软件达到预定的的要求。最基本的测试是集成测试和验收测试。 8-综合测试也称为
9、软件的实现,也是程序员的主要工作。(1)选择程序设计语言(2)养成程序设计风格(3)遵循编码规范(4)进行单元测试7-编码和单元测试(1)改正性维护 (2)适应性维护 (3)完善性维护 (4)预防性维护 9-软件维护课堂实践 2(1)通过学习小组讨论和上网查询资料形式完成。(2)结合自己的软件开发实践,进一步理解软件生命周期及各阶段的任务。 操作提示(1)怎样理解软件生存周期模型?(2)软件生存周期模型中各阶段的主要描述工具有哪些? (3)需求分析在软件生存周期过程中处于怎样的地位?(4)查找一份需求规格说明书,通过阅读该说明书准确的获取系统的需求。(5)查找一份总体设计说明书,参照模板编写“
10、B-C电子商务系统”的总体设计说明书。(6)查找一份详细设计说明书,参照模板编写“B-C电子商务系统”的详细设计说明书。操作要求课外拓展(1)通过一次完整的借还书过程体验应用图书管理系统借书和还书的基本流程。(2)参考已有图书管理系统说明书进行图形的绘制。(3)本次实践的目的在于培养使用辅助工具绘制图形的能力,而不在于设计。操作提示(1)在网上搜索人月神话的电子书,并进行阅读。(2)使用Word或Visio工具,绘制如图1-3所示的图书管理系统系统流程图。(3)使用Word或Visio工具,绘制如图1-5所示的图书管理系统系统中借还书操作的数据流图。(4)使用Word或Visio工具,绘制如图
11、1-6所示的图书管理系统的功能模块图。 操作要求第2章 软件过程模型与面向对象方法 本章学习导航本章学习要点 瀑布模型的特点及应用 螺旋模型的特点及应用 原型模型的特点及应用 XP/敏捷方法的特点及应用 RUP的特点及应用 面向对象方法 教学课时:4课时任务1 比较常用软件过程模型的特点,能根据实际软件开发需要选择过程模型任务目标 小组讨论法 资料查询法 对比学习法学习方法任务1 核心思想是采用“工序”的思想将复杂的软件开发问题简化。将软件设计与软件功能的实现分开由不同的阶段完成,便于分工协作。采用结构化的分析与设计方法,将逻辑实现与物理实现分开。 瀑布模型任务1主要特点:(1)上一阶段活动的
12、成果作为本阶段活动的输入;(2)利用这一输入实施本阶段活动应完成的内容;(3)得到本阶段活动的工作成果,再传递传给下一阶段活动;(4)在每一阶段活动结束时,对阶段活动的工作成果进行评审,如果工作成果得到确认,则继续下一项活动,否则返回前一阶段,甚至更前阶段的活动进行返工。瀑布模型主要缺点:(1)由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果。这样,软件与用户见面的时间间隔较长,增加了一定的风险。(2)在软件开发前期末发现的错误传到后面的开发活动中时,可能会扩散,进而可能会造成整个软件项目开发失败。(3)在软件需求分析阶段,要完全确定用户的所有需求是比较困难的,甚至可以
13、说是不太可能的。 任务1 将瀑布模型和演化模型结合起来,融合了两个模型的优点,而且还强调了其他模型均忽略了的风险分析和评价。 螺旋模型任务1主要特点: 在“瀑布模型”的每一个开发阶段前,引入一个非常严格的风险识别、风险分析和风险控制。它把软件项目分解成一个个小项目,每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。 螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高目标软件的适应能力,为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发风险。 螺旋模型主要缺点:(1)过多的迭代次数会增加开发成本,延迟提交时间。(2)采用螺旋模型,需
14、要具有相当丰富的风险评估经验和专门知识。在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。 任务1 以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。喷泉模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的 喷泉模型任务1主要特点:(1)软件的某个部分(如:组件)通常被重复工作多次 ;(2)可以实现并行开发,提高软件项目开发效率,节省开发时间 ;(3)适应于面向对象的软件开发过程 ;喷泉模型主要缺点:(1)由于喷泉模型在各个开发阶段是重叠的,因此,在开发过程中,需要大量的开发人员,不利于项目的管理;(2)喷泉模型要求对文档的管理较为严格,审核的
15、难度加大,尤其是面对可能随时加入各种信息、需求与资料。任务1 融合了瀑布模型的基本成分和原型实现的迭代特征。采用随着时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。 增量模型任务1主要特点:(1)人员分配灵活,刚开始不用投入大量人力资源,如果核心产品很受欢迎,则可增加人力实现下一个增量 。 (2)当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,以满足客户的局部需求 。 (3)能够有计划地管理技术风险 增量模型主要缺点: 如果增量包之间存在相交的情况且不能很好地处理,就必须做全盘的系统分析。 课堂实践 1(1)
16、以学习小组为单位分组讨论一个模型,讨论活动结束后,由小组代表进行演讲。(2)可以通过上网查阅相关资料获取软件过程模型更为详细的信息。 (3)绘制的模型图以文件名Chap02-1.doc上交。 操作提示 (1)讨论瀑布模型的主要特点,并举例说明在哪些类型的软件系统开发中可以采用瀑布模型。 (2)讨论螺旋模型的主要特点,并举例说明在哪些类型的软件系统开发中可以采用螺旋模型。 (3)讨论喷泉模型的主要特点,并举例说明在哪些类型的软件系统开发中可以采用喷泉模型。 (4)讨论增量模型的主要特点,并举例说明在哪些类型的软件系统开发中可以采用增量模型。 (5)使用Word工具,分别绘制瀑布模型、螺旋模型、喷
17、泉模型和增量模型的基本模型图。操作要求任务1 是从需求收集开始,在获得一定的需求后,进行“快速设计”,在此基础上创建软件系统的原型,并由用户对原型进行评估并进一步精化待开发软件的需求。 原型模型任务1主要特点:(1)开发效率高,原型使总的开发费用降低,时间缩短;(2)开发者与用户交流直观,可以澄清模糊需求,调动用户的积极参与,能及早的暴露系统潜在的一些问题;(3)原型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程。 喷泉模型主要缺点:(1)产品原型在一定程度上限制了开发人员的创新,没有考虑软件的整体质量和长期的可维护性,由于达不到质量要求产品可能被抛弃,而采用新的模型重新设
18、计。因此,原型实现模型不适合嵌入式、实时控制、科学数值计算等大型软件系统的开发。(2)原型的开发需要耗费一定的人力和物力,增加了软件开发的成本。任务1 是一个增量型的软件开发过程模型,强调极短的开发周期。RAD模型是瀑布模型的一个“高速”变种,通过大量使用可复用构件,采用基于构件的建造方法实现快速开发。 RAD模型任务1主要特点:(1)采用基于构件的开发方法,复用已有的程序结构或使用可复用构件和或是创建可复用的构件。 (2)通过大量使用可复用构件加快了开发速度,对信息系统的开发特别有效。 RAD模型主要缺点:(1)RAD模型对模块化要求比较高,如果软件系统中有哪一项功能不能被模块化,那么创建R
19、AD所需要的构件就会有问题。因此,并非所有应用都适合RAD。 (2)开发者和客户必须在很短的时间完成一系列的需求分析,任何一方配合不当都会导致RAD项目失败。 (3) RAD只适用于信息系统开发,不适合技术风险很高系统的开发。任务1 一种轻量级的开发方法,敏捷方法强调适应性而非预测性,强调以人为中心而非以流程为中心,强调对变化的适应和对人性的关注。 XP/敏捷模型任务1主要特点:(1)轻载(2)基于时间(3)Just Enough(4)并行(5)基于构件 。 XP/敏捷模型主要思想: XP开发模型与传统模型相比具有很大的不同,它的核心思想是交流、简单、反馈和进取。XP开发模型强调小组内成员之间
20、要经常进行交流;在尽量保证质量可以运行的前提下,力求过程和代码的简单化;在XP开发小组中不仅包括开发人员,还包括管理人员和客户,来自客户、开发人员和最终用户的具体反馈意见可以提供更多的机会来调整设计,保证把握正确的开发方向;进取则包含在交流、简单和反馈三个原则中。 任务1 一种重量级的开发方法,又是文档化的软件工程产品 。 统一软件开发过程任务1 RUP有6个核心工作流和3个核心支持工作流,采用迭代式开发 。 统一软件开发过程任务1主要特点:(1)用例驱动 (2)以体系结构为中心 (3)迭代式开发统一软件开发过程 通过以上各种软件过程模型的分析,我们可以看到:软件过程模型随着软件设计思想的改变
21、而发展,经历了由最初的以结构化程序设计思想为指导的瀑布模型等,到以面向对象思想为指导的喷泉模型等,到以构件开发思想为指导的基于体系结构的开发模型等,到基于UML的RUP,到现在的4GT技术。每次新的软件设计思想的突破都会出现新的软件开发过程模型,以达到提高软件的生产效率和质量为目标,提出新的解决“软件危机”问题的方案。 软件开发过程小结课堂实践 2(1)以学习小组为单位分组讨论一个模型,讨论活动结束后,由小组代表进行演讲。(2)可以通过上网查阅相关资料获取软件过程模型更为详细的信息。 (3)绘制的模型图以文件名Chap02-2.doc上交。操作提示 (1)讨论原型模型的主要特点,并举例说明在哪
22、些类型的软件系统开发中可以采用原型模型。 (2)讨论RAD模型的主要特点,并举例说明在哪些类型的软件系统开发中可以采用RAD模型。 (3)讨论XP/敏捷方法的主要特点,并举例说明在哪些类型的软件系统开发中可以采用XP/敏捷方法。 (4)讨论统一软件开发过程的主要特点,并举例说明在哪些类型的软件系统开发中可以采用统一软件开发过程。 (5)使用Word工具,分别绘制原型模型、RAD模型、XP/敏捷方法和统一软件开发过程的基本模型图。 操作要求任务2 了解面向对象软件工程的基本思想和OOA、OOD、OOP和OOT的基本内容任务目标 小组讨论法 资料查询法学习方法任务2 “对象”,指的是解决信息领域内
23、所遇到问题的方法,特别是应用软件技术来解决问题的方法。如:面向对象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)和面向对象的编程(Object-Oriented Programming)等 。 面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法,是建立在“对象”概念基础上的方法学。 面向对象方法的发展 60年代中后期,Simula语言; 80年代以来,人们将面向对象的基本概念和运行机制运用到其它领
24、域,获得了一系列相应领域的面向对象的技术 ; 1986年在美国举行了首届“面向对象编程、系统、语言和应用(OOPSLA86)”国际会议 。 面向对象思想任务2(1)对象 对象是要研究的任何事物。从一本书、一个人、一家图书馆、一家极其复杂的自动化工厂、架航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。(2)类 类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一
25、组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。(3)消息 消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。 面向对象基本概念任务2(1)封装性封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。 (2)继承性 继承性是子类自动共享父类数据和方法的机制。它由类的派生功能体现。一个类直接继承其它类的全部描述,同时可修改和扩充。 (3)多态性 对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。 面向对象主要特征任务2了解问题
26、域所涉及的对象、对象间的关系和作用(即操作),然后构造问题的对象模型,力争该模型能真实地反映出所要解决的“实质问题”。 OOA基本步骤: (1)确定对象和类 (2)确定结构 (3)确定主题(subject) (4)确定属性(attribute) (5)确定方法(method) 面向对象分析任务2对面向对象分析的结果作进一步的规范化整理,以便能够被面向对象编程直接接受并设计软件的对象模型。 OOD主要工作: (1)对象定义规格的求精过程 (2)数据模型和数据库设计 (3)优化 面向对象设计任务2即指软件功能的编码实现,主要工作为面向对象的编程(OOP,Object Oriented Progra
27、mming) 。 面向对象编程的基本步骤:(1) 分析确定在问题空间和解空间出现的全部对象及其属性。(2) 确定应施加于每个对象的操作,即对象固有的处理能力。(3) 分析对象间的联系,确定对象彼此间传递的消息。 (4) 设计对象的消息模式,消息模式和处理能力共同构成对象的外部特性。(5) 分析各个对象的外部特性,将具有相同外部特性的对象归为一类,从而确定所需要的类。(6) 确定类间的继承关系,将各对象的公共性质放在较上层的类中描述,通过继承来共享对公共性质的描述。(7) 设计每个类关于对象外部特性的描述。(8) 设计每个类的内部实现(数据结构和方法)。(9) 创建所需的对象(类的实例),实现对
28、象间应有的联系(发消息)。 面向对象实现课堂实践3(1)以学习小组为单位分组讨论进行讨论,每小组推荐一名成员进行演讲。(2)通过上网查阅面向对象方法相关资料进行更为详细的信息。 操作提示(1)使用面向对象方法对DVD和播放DVD的情景进行描述。(2)举例说明OOA、OOD和OOP的具体任务及相关之间的联系。(3)根据您的编程经验,比较面向对象编程和结构化编程的优缺点。操作要求课外拓展(1)通过软件过程模型图的绘制,加深对软件过程模型的理解。(2)查阅百度百科()的相关词条的内容,并对相关词条进行适当的补充。 操作提示(1)使用Word或Visio工具,绘制瀑布模型的基本模型图,并理解瀑布模型各
29、阶段的主要任务。(2)使用Word或Visio工具,绘制XP方法的基本模型图,并解释XP方法的核心思想。操作要求第3章 UML简介 本章学习导航本章学习要点 UML的发展 UML的特点 UML的结构 UML的视图 UML基本图形符号 教学课时:4课时任务1 了解UML的发展历程,并理解为什么要使用UML进行建模任务目标 小组讨论法 资料查询法学习方法任务1UML(统一建模语言,Unified Modeling Language)是一种建模语言,是第三代用来为面向对象开发系统的产品进行说明、可视化和编制文档的方法。 UML的发展历程任务1UML是一种标准的图形化建模语言,它是面向对象分析与设计的
30、一种标准表示。UML不是一种可视化的程序设计语言,而是一种可视化的建模语言;UML不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准;UML不是过程,也不是方法,但允许任何一种过程和方法使用它。 理解UML易于使用、表达能力强,进行可视化建模;与具体的实现无关,可应用于任何语言平台和工具平台;与具体的过程无关,可应用于任何软件开发的过程;简单并且可扩展,具有扩展和专有化机制,便于扩展,无需对核心概念进行修改;为面向对象的设计与开发中涌现出的高级概念(例如协作、框架、模式和组件) 提供支持,强调在软件开发中对架构、框架、模式和组件的重用;与最好的软件工程实践经验集成;可升级,
31、具有广阔的适用性和可用性;有利于面对对象工具的市场成长。UML的目标任务11标准的表示方法 UML是一种建模语言,是一种标准的表示,而不是一种方法(或方法学)。 2与软件开发的成功经验集成 UML的价值在于它体现了世界上面向对象方法实践的最好经验,并以建模语言的形式把它们打包,以适应开发大型复杂系统的要求。 3UML的应用贯穿在系统开发的五个阶段 (1)需求分析。 (2)系统分析。 (3)系统设计。 (4)构造。 (5)测试。 UML的特点任务1(1)结构事物 类 、接口 、协作 、用例 、活动类 、组件 、结点 (2)行为事物 交互 、状态机 (3)分组事物 (4)注释事物 UML的事物 U
32、ML由图和元模型组成,图是语法,元模型是语义。UML主要包括三个基本构造块:事物(Things)、关系(Relationships)和图(Diagrams)。 UML的结构(1)依赖关系 (2)关联关系 (3)泛化关系 (4)实现关系 UML的关系任务2 了解UML的5种视图和9种图形及功能,了解UML建模的基本流程任务目标 小组讨论法 资料查询法学习方法任务2 UML中的视图包括:用例视图(Use-case view)、逻辑视图(Logical view)、并发视图(Concurrency View)、组件视图(Component view)、部署视图(Deployment View)等五种
33、。 UML的视图任务2 用于描述系统应该具有的功能集。它是从系统的外部用户角度出发,对系统的抽象表示。用例视图所描述的系统功能依靠于外部用户或另一个系统触发激活,为用户或另一个系统提供服务,实现用户或另一个系统与系统的交互。 用例视图 用来显示系统内部的功能是怎样设计的,它利用系统的静态结构和动态行为来刻画系统功能。静态结构描述类、对象和它们之间的关系等。 逻辑视图任务2 用来显示系统的并发工作状况。并发视图将系统划分为进程和处理机方式,通过划分引入并发机制,利用并发高效地使用资源、并行执行和处理异步事件。 并发视图 用来显示代码组件的组织方式。它描述了系统的实现模块和它们之间的依赖关系。组件
34、视图由组件图构成。组件是代码模块,不同类型的代码模块形成不同的组件,组件按照一定的结构和依赖关系呈现。 组件视图课堂实践 1(1)通过学习小组讨论和上网查询资料形式完成。(2)UML的作用与工程设计和机械设计的绘图标准进行比较。 操作提示(1)UML的发展历程是怎样的,目前的UML的版本是多少?(2)UML与面向对象分析和设计是什么样的关系?(3)类比说明建模在软件开发过程中的重要作用?操作要求任务2 用例图用于显示若干角色(actor)以及这些角色与系统提供的用例之间的连接关系。用例图任务2 类图用来表示系统中的类和类与类之间的关系,它是对系统静态结构的描述 。类图(对象图)任务2 状态图是
35、对类所描述事物的补充说明,它显示了类的所有对象可能具有的状态,以及引起状态变化的事件 。状态图任务2 反映一个连续的活动流,相对于描述活动流(比如,用例或交互)来说,活动图更常用于描述某个操作执行时的活动状况。 活动图任务2 用来反映若干个对象之间的动态协作关系,也就是随着时间的流逝,对象之间是如何交互的 。 顺序图任务2 除了显示消息变化(称为交互)外,协作图还显示了对象和它们之间的关系(称为上下文有关) 。 协作图任务2 用来反映代码的物理结构。代码的物理结构用代码组件表示。组件可以是源代码、二进制文件或可执行文件组件。 组件图任务2 显示系统中软件和硬件的物理架构。通常部署图中显示实际的
36、计算机和设备(用结点表示),以及各个结点之间的关系(还可以显示关系的类型)。 部署图任务2 在系统开发的每个阶段都要建造不同的模型,建造这些模型的目的也是不同的。 UML建模的多个侧面任务2UML建模的基本流程课堂实践 3(1)通过学习小组讨论和上网查询资料形式完成。(2)比较UML1.4和UML2.0图形元素的不同。操作提示(1)UML有哪几种图形,各有什么样的功能?(2)UML建模的过程是怎样的?操作要求课外拓展(1)学习过程中收集UML学习的相关网站,以便于课外拓展学习。(2)课外拓展学习过程中要加强学习小组内的讨论。 操作提示 (1)登录,进入该网站UML专题模块进一步学习UML的基本
37、知识。 (2)通过搜索引擎,查找UML2.0的相关说明文档,了解UML2.0的新特性。 操作要求第4章 Rational Rose简介 本章学习导航本章学习要点 Rational Rose的安装 Rational Rose的配置 Rational Rose的简单使用 Rational Rose建模的基本步骤 图书管理系统的设计 教学课时:4课时任务1 确定Rational Rose 2003的运行环境并安装Rational Rose 2003任务目标 小组讨论法 资料查询法学习方法任务1强有力的浏览器,用于查看模型和查找可重用的组件;可定制的目标库或编码指南的代码生成机制;既支持目标语言中的标
38、准类型,又支持用户自定义的数据类型;保证模型与代码之间转化的一致性;通过OLE连接,Rational Rose图表可动态链接到Microsoft Word中;能够与Rational Visual Test和SQA Suite文档工具无缝集成;强有力的正/反向建模工作;缩短软件系统开发周期,提高软件开发效率;降低软件维护成本。Rose的特点任务1详细步骤参阅教材Rose的安装任务1常规设置Rose的配置任务1其他设置Rose的配置课堂实践 1(1)通过学习小组讨论和上网查询资料形式完成。(2)如果是正式使用,建议购买正版产品。操作提示(1)小组讨论Rational Rose与UML是什么样的关系
39、?(2)登录IBM公司网站,了解Rational Rose的最新版本信息,下载其最新版本的试用版。(3)安装所选择的Rational Rose产品。(4)设置默认的字体和颜色。操作要求任务2 了解Rational Rose 2003的界面组成,使用Rose创建简单的UML模型任务目标 小组讨论法 资料查询法 模仿实践学习方法任务2主界面Rose 2003主要菜单任务2主菜单和工具栏Rose 2003主要菜单任务2Rose 2003 视图Rose 2003主要菜单任务21创建模型 2保存模型 3发布模型4导入/导出模型 Rose 建模的基本过程课堂实践 2(1)注意模型文件对应的文件扩展名为.m
40、dl。(2)可以打开已有的实例查看模型文件的组成情况。(3)主菜单的功能通过查阅附录C进行了解。(4)注意模型文件对应的文件扩展名为.mdl。(5)选择发布的图形文件类型为JPG。操作提示(1)启动所安装的Rational Rose。(2)在Rational Rose中创建一个名为first.mdl的空白模型。(3)了解Rational Rose主界面中主菜单的作用。(4)使用【Tools】【Options】中的【Toolbars】选项卡对标准工具栏和图形工具栏进行配置。(5)了解Rational Rose主界面各个组成部分的功能。(6)查看Rational Rose中的视图。(7)在firs
41、t.mdl模型中添加一个简单的用例图。(8)保存first.mdl后,将其发布到c:tempfirst.htm文件。(9)查看发布的模型。操作要求任务3 了解图书管理系统和B-C电子商务系统的基本需求、架构设计和功能模块设计任务目标 小组讨论法 资料查询法 模仿实践学习方法任务3图书管理系统需求分析任务3图书管理系统功能设计读者类别管理 读者管理 图书类别管理 图书信息管理 罚款管理 用户管理 借还图书 统计分析 后台信息发布 任务3电子商城需求分析任务3电子商城网站结构课堂实践 3(1)可以从网站下载“瑞天图书管理系统2008标准版”的试用版。(2)使用图书管理系统时可以以两人为一个小组模拟
42、借书、还书等操作。(3)在进行读者、图书、借还书处理时,请注意处理的详细数据。操作提示(1)从网上下载并安装瑞天图书管理系统。(2)使用下载的图书管理系统,体验图书登记、办理借阅证、借书和还书等业务流程,进一步明确图书管理系统的基本功能。 操作要求课外拓展(1)到IBM公司网站下载Rational Rose的试用版。(2)安装完成后,可以通过建立一个简单的模型进行验证。操作提示(1)了解目前有哪些比较流行的UML建模工具,并对这些建模工具进行比较。(2)下载并安装一款其它的UML建模工具(如EA),与Rational Rose的操作进行比较。(3)在自己的机器上下载并安装Rational Ro
43、se的合适版本。(4)根据需要对Rational Rose进行简单的配置。(5)选择一个合适的电子商务网站,完成一次购物的过程,体验电子商务系统的基本功能。操作要求第5章 图书管理系统需求建模 本章学习导航本章学习要点 Rational Rose的安装 用例图的组成(参与者和用例) 识别软件系统中的用例 描述软件系统中的用例 识别用例间的关系(泛化、使用、包含和扩展) 绘制用例图的一些考虑 教学课时:8课时任务1 了解用例模型的基本功能和基本组成,理解用例模型在软件系统开发中的重要地位任务目标 小组讨论法 资料查询法 模仿实践学习方法任务1 用例模型是把应满足用户需求的基本功能聚合起来表示的强
44、大工具。对于正在构造的新系统,用例描述该系统应该做什么;对于已构造完毕的系统,用例则反映了系统能够完成什么样的功能。可定制的目标库或编码指南的代码生成机制;从用例模型中受益的人员包括:客户(或最终用户) ;开发者 ;系统集成和测试的人员 ;其他人员 ;用例模型的功能任务 1(1)确定系统应具备哪些功能 。(2)为系统的功能提供清晰一致的描述 。(3)为系统验证工作打下基础。 引入用例的目的(1)用例 用于描述系统的功能,即从外部用户的角度观察,系统应具备哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述。 (2)参与者 是与系统进行交互的外部实体,它可以是系统用户,也可以是其它系统
45、或硬件设备 (3)系统 实现各种用例的“黑盒子” 用例模型的基本组成任务2确定图书管理系统中的参与者和系统边界任务目标 小组讨论法 资料查询法 模仿实践学习方法任务2描述了图书管理业务中读者和图书管理员之间的关系。以及图书管理系统的功能:读者借阅图书、图书管理员进行借书处理、图书管理员进行图书资料统计、图书管理员维护读者信息等。 典型用例图任务2是与系统交互的人或事。所谓“与系统交互”指的是参与者向系统发送消息,从系统中接收消息,或是在系统中交换信息。 参与者具体表现形式 系统用户 其他系统 一些可以运行的进程 参与者在系统中的地位 主要参与者次要参与者 参与者对用例的作用 主动参与者被动参与
46、者 任务2获取参与者的问题:(1)使用系统主要功能的人是谁(即主要参与者)?(2)需要借助于系统完成日常工作的人是谁?(3)谁来维护和管理系统(次要参与者),保证系统正常工作?(4)系统控制的硬件设备有哪些?(5)系统需要与哪些其它系统交互? (6)对系统产生的结果感兴趣的人或事是哪些? 参与者的确定图书管理系统任务2 系统是用例模型的一个组成部分,代表的是一部机器或一个商务活动,而并不是真正实现的软件系统。系统的边界用来说明构建的用例模型的应用范围。比如,一台自助式售货机(被看作系统)应提供售货、供货、提取销售款等功能,这些功能在自动售货机之内的区域起作用,自动售货机之外的情况不考虑。 系统
47、 用例图中的系统用一个长方框表示,系统的名字写在方框上或方框里面,方框内部还可以包含该系统中的用符号表示的用例。 自助式售货机任务2 Jacobson给出的用例的定义是:用例代表一个系统或系统的一部分行为,是对一组动作序列的描述,系统执行该动作序列来作为参与者产生一个可观察的结果值。 UML中的用例用椭圆形表示,用例的名字写在椭圆的内部或下方。 用例的定义任务2(1)用例总由参与者初始化 。 用例所代表的功能必须由参与者激活,然后才能执行。 (2)用例为参与者提供值 。 用例必须为参与者提供实在的值,虽然这个值并不重要,但是能被参与者识别。(3)用例具有完全性 。 用例是一个完整的描述。 用例
48、的特征 提示: 用例表示的也是一个类,而不是某个具体的实例。 用例描述了它代表的功能的各个方面,也就是包含了用例执行期间可能发生的种种情况; 用例通常使用动名词(借阅图书)命名,而不是名字短语(图书),也不是一个句子(读者借阅图书)。课堂实践 1(1)通过学习小组讨论和上网查询资料形式完成。(2)使用手绘形式绘制出B-C电子商务系统的参与者和系统边界。(3)不需要确定系统的用例。操作提示(1)小组讨论用例模型是主要的功能是什么?(2)根据您的经验,使用用例模型来描述需求与使用文字的方式来描述需求有什么不同?(3)举例说明用例模型由哪三部分组成?(4)分析第4章B-C电子商务系统的需求,确定该系
49、统中的参与者。并说明你确定的根据。(5)确定B-C电子商务系统的系统边界。 操作要求任务3 确定图书管理系统中的用例,绘制图书管理系统的用例图。并对用例进行描述任务目标 小组讨论法 资料查询法 模仿实践学习方法任务3针对参与者(1)某个参与者要求系统为其提供什么功能;该参与者需要做哪些工作?(2)参与者需要阅读、创建、销毁、更新或存储系统中的某些信息吗?(3)系统中的事件一定要告知参与者吗?参与者需要告诉系统一些什么吗?(4)系统新功能的识别,参与者的日常工作被简化或效率提高了吗? 识别用例针对系统 (1)系统需要什么样的输入和输出?输入来自哪里?输出去往哪里?(2)该系统的当前状况还存在哪些
50、问题?(3)系统改进的方向是什么?任务3图书管理系统主要用例1任务3图书管理系统主要用例2任务3(1)新建工程 (2)新建用例图 (3)添加参与者和用例 (4)删除参与者和用例 (5)设置参与者的属性 (6)设置用例的属性 (7)设置字体、调整位置和大小 (8)完成图书管理系统顶层用例图(不含关系)的绘制 (9)绘制“申请借还”子用例图 (10)绘制“处理借还”子用例图 (11)绘制“系统维护”子用例图 绘制图书管理系统用例图 提示: 教师现场演示用例图的绘制过程和方法任务31.用例的目标 2.用例是怎样被启动的 3.参与者和用例之间的消息流 用例描述4.用例的多种执行方案 5.用例怎样才算完
51、成并把值传给了参与者 用例模板任务3用例描述-实例课堂实践 2(1)通过学习小组讨论和上网查询资料形式完成。(2)在使用Rational Rose绘制用例图之前,采用纸上手绘方式。(3)确定用例时,请注意用例名称的确定。操作提示(1)讨论确定B-C电子商务系统的用例。(2)绘制B-C电子商务系统的用例图。(3)参照本书用例描述模板,选取B-C电子商务系统的几个典型的用例进行描述。操作要求任务4 确定图书管理系统中用例间的关系,在已绘制的用例图添加用例之间的关系任务目标 小组讨论法 资料查询法 模仿实践学习方法任务4 是指一种从子用例到父用例的关系,它指定了子用例如何特化父用例的所有行为和特征。
52、 泛化关系 在图书管理系统中用户查询图书时,可以有两种方式:一是登录网上系统后,在线查询图书信息;二是读者到达图书馆后,在图书馆内进行图书查询。因而,用例“查询图书”和“网上查询图书”与“馆内查询图书”之间为泛化关系 任务4 用例使用关系(use)是指一个用例使用另一个用例的关系。 使用关系 图书管理系统中读者要预订图书,必须先登录网上系统,因此“预订图书”需要使用“登录系统”功能。 任务4 是指使用一个用例来封装一组跨越多个用例的相似动作,以便多个基用例复用的关系。 包含关系图书管理系统的系统维护用例可以分解成“添加图书”用例、“修改图书”用例和“删除图书”用例。在这里“维护图书”和“添加图
53、书”用例之间就是包含关系。 任务4 是指一个用例中加入一些新的动作构成一个新用例,原用例和新用例之间的关系就是扩展关系。 扩展关系在图书管理系统中,在“读者还书”用例中,如果读者所借图书超过了规定期限,则需要交付超期罚款,而如果是读者损坏了图书,则需要交付损坏图书罚款。这里“读者还书”用例和“支付罚款”用例也是扩展关系 任务4图书管理系统用例关系图-顶层用例图任务4图书管理系统用例关系图-申请借还用例图任务4图书管理系统用例关系图-处理借还用例图任务4图书管理系统用例关系图-系统维护用例图任务4进行用例建模时,将系统视为黑盒,从使用者的角度看系统,确定系统必须实现的功能;角色描述的是系统中涉及
54、的用户,现实生活中不同人可能拥有多个的角色;所有的交互都发生在参与者和用例之间,再没有其他可能发生的交互;一般情况下一个用例只有一个参与者拥有,如果有多个参与者共用一个用例,就要考虑是否要增加新的角色,或者拆分用例。小结在软件系统建模时使用用例图的优点有:方便系统分析设计人员和业务人员沟通;方便系统分析人员对系统范围和规模进行认识;方便构建测试用例;方便分析人员明确系统功能;方便接口设计人员尽早介入设计开发过程。课堂实践 3(1)阅读图5-32所示的自动售货系统的用例图,指出参与者、用例,并对每个用例进行说明。(2)确定B-C电子商务系统的用例间的关系。(3)在B-C电子商务系统的用例图基础上
55、添加用例间的关系。操作要求课堂实践 3(1)通过学习小组讨论和上网查询资料形式完成。(2)用例间的关系并非绝对,取决于建模者的理解和解释。操作提示用例拾遗1描述对象不同2“系统”定义不同3两者的域不同4组成元素不同5图形元素不同系统用例VS业务用例用例拾遗1连用户都不理解的用例 2用例太多 3过于复杂的用例4描述特定用户界面元素和行为的用例5不再使用其他需求模型用例陷阱1.怎样确定用例的粒粒度也是用例使用中的一大问题。2.用例粒度的划分依据(尤其是业务用例)最标准的方法是以该用例是否完成了参与者的某个目的为依据的。3.不论用例的粒度如何选择,必须把握的原则是:在同一个需求阶段,所有用例的粒度应
56、该是同一个量级的。用例粒度课外拓展(1)以小组方式对一次完整的ATM取款过程进行讨论分析。(2)尽可能的描述参与者之间和用例之间的关系。(3)以chap05.mdl文件保存ATM系统的模型。操作提示(1)简述ATM自动取款系统中ATM机取款的过程。(2)通过回答下列提示问题,获取ATM自动取款系统参与者和用例。(a)谁使用ATM系统的取款功能?(b)谁使用ATM系统的支持以完成日常工作任务?(c)谁来维护、管理并保持ATM系统的正常运行?(d)ATM系统需要和哪些系统进行交互?(e)ATM系统需要处理哪些设备?(f)谁对ATM系统运行的结果感兴趣?(3)确定ATM系统中各用例之间的关系。(4)
57、绘制ATM系统的用例图。操作要求第6章 图书管理系统静态建模 本章学习导航本章学习要点 识别软件系统中的类识别软件系统类之间的关系在Rational Rose 2003中绘制类图在Rational Rose 2003中绘制对象图教学课时:8课时任务1 了解静态模型的基本功能和基本图形组成任务目标 小组讨论法 资料查询法 模仿实践学习方法任务1 UML的静态建模就需要借助于类图和对象图,使用UML进行静态建模,就是通过类图和对象图从一个相对静止的状态来分析系统中所包含的类和对象,以及他们之间的关系等。 静态建模概述 类图是用来描述软件系统中类和它们之间的关系的一种图示,是从静态角度表示系统的,因
58、此类图属于一种静态模型。类图是构建其它图的基础,如果没有类图,就没有状态图、顺序图和协作图等,也就无法表示软件系统的其它各个侧面。 类图概述任务1 长方形分成上、中、下三个区域,每个区域用不同的名字标识,用以代表类的各个特征,上面的区域内标识类的名字,中间的区域内标识类的属性,下面的区域内标识类的操作方法(即行为),这三部分作为一个整体描述某个类 。 类图概述实体类、边界类、控制类 任务2 阅读系统文档和用例模型,确定图书管理系统中的类,并绘制类图任务目标 小组讨论法 资料查询法 模仿实践学习方法任务2具体类有自己的具体对象的类称为具体类。具体类中的操作都有具体实现的方法。 具体类和抽象类没有
59、具体对象的类称为抽象类。抽象类一般为父类,用于描述其它类(子类)的公共属性和行为(操作)。 任务2包是一种组合机制,把各种各样的模型元素通过内在的语义连在一起成为一个整体就叫做包。 接口和包接口通常被描述为抽象操作,也就是只用标识(返回值、操作名称、参数表)说明它的行为,而真正实现部分放在使用该接口的对象中。 任务2图书管理系统中的类任务2类的属性是类的一个组成部分,描述了类在软件系统中所代表的一个事物的特性。在绘制类图时,类的属性放在类名字的下方,用来描述该类的对象所具有的特征。 带属性的类任务2在UML中,类属性的语法为:可见性 属性名 :类型 =初始值 属性字符串(1)可见性用于描述类的
60、属性、类的方法对于其它的类或包是否可以访问的特性。(2)属性名用来区别于类中的其他属性 。(3)属性的类型用来说明该属性是什么数据类型。 (4)初始值是指属性最初获得的赋值。 (5)属性字符串用来指定关于属性的其他信息。 带属性的类任务2(1)打开工程book.mdl (2)新建类图。(3)添加类 (4)编辑类 (5)添加属性 (6)设置属性的数据类型 (7)设置属性的可见性 绘制图书管理系统中的类图(不含方法)教师现场演示操作过程任务2在UML中,类操作的语法为:可见性 操作名 (参数表) :返回值类型 属性字符串(1)可见性用于描述类的属性、类的方法对于其它的类或包是否可以访问的特性。(2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 液体制剂的课程设计
- 跳绳游戏主题课程设计
- 纸艺社团培训课程设计
- 幼儿园水泥制作课程设计
- 转向臂课程设计夹具
- 钻井课程设计参考
- 船舶原理螺旋桨课程设计
- 电梯的制作课程设计
- 车间主任2025年工作计划样本(3篇)
- 2025年《让语教学生动起》培训心得样本(2篇)
- 公路工程施工现场安全检查手册
- 公司组织架构图(可编辑模版)
- 1汽轮机跳闸事故演练
- 陕西省铜川市各县区乡镇行政村村庄村名居民村民委员会明细
- 礼品(礼金)上交登记台账
- 北师大版七年级数学上册教案(全册完整版)教学设计含教学反思
- 2023高中物理步步高大一轮 第五章 第1讲 万有引力定律及应用
- 青少年软件编程(Scratch)练习题及答案
- 浙江省公务员考试面试真题答案及解析精选
- 系统性红斑狼疮-第九版内科学
- 全统定额工程量计算规则1994
评论
0/150
提交评论