UML 与软件建模备课教案
1绪论[教学目的]
本部分是《UML 与软件建模》课程的开篇部分讲述,需要首先阐明什么是软件建模。为此需要引入一些软件工程课程的内容让学生对软件开发生命周期有所理解,通过SDLC 的介绍让学生知道在软件的生命周期中有着不同的软件开发模型,模型的表达需要一套约定俗成的规范,这就是现代软件工程中广泛使用的UML 图形建模。[教学重点]
软件开发生命周期(SDLC )
需求分析与设计阶段的区别与联系
几种迭代/增量模型的不同侧重特点与联系UML 与ROSE 、RUP 的关系[教学难点]
用例驱动、测试驱动的含义[教学方法]
传统软件开发过程与现代软件开发过程的优劣进行对比适当举例告诫学生需求规约的重要性[教学内容]
一、SDLC(软件开发生命周期)
1、计划阶段:
也就是可行性研究阶段,可行性主要是技术可行性和经济可行性,在技术角度来看的技术可行性容易理解,但经济可行性也不可忽视。可研实际上分为甲方(即需求方)的可研和乙方(供应方)的可研,两者对此的侧重点有所不同。
2、开发阶段:
分为需求分析阶段和设计阶段。前者系统分析员深入充分的理解用户需求,
明确“做什么”,并以一定规范的格式记录下用户的需求形成需求规约;后者以需求规约为基础将需求细化为描述处理进程和算法的伪代码,确定软件的体系结构和模块划分,以一定规范的格式记录下它们形成设计规约。
3、实现阶段:
分为编码/编程和测试两个阶段。前者要遵守设计规约定义的体系结构、模块划分等要求,以可在需求规约定义的运行环境下运行的程序实现需求规约定义的需求,并以一定规范形成编码文档;后者按照需求规约的要求尽可能多的寻出没有实现的以及错误的实现,并形成一定规范的测试文档。
注意通过举例说明甲乙方可行性研究的侧重点不同以及紧密相联系。举例说明功能性需求与非功能性需求的区别。本部分重
点要理解分析与设计的不同与联系。
编码与设计的融合、测试先行、自动化测试、独立存
在。
绪论
4、运行维护阶段:
交付给用户使用,一般需对用户进行操作培训,并对未发现的软件错误及时更正,以及应客户要求加入软件的新特性新功能。
二、软件开发过程模型
1、瀑布模型(Waterfall Model)
以上一项活动的结果为输入;该项活动的工作成果作为输出传给下一项活动;逐级评审,未通过则返
回前项活动甚至更前项活动。
2、迭代模型(Iterative Model)
将一个软件系统的整个开发过程划分为不同的迭代周期,每个迭代周期都是对系统的连续扩充和细化。每个迭代周期都包含分析、设计、编码、测试这些阶段。迭代模型有不同的变型,但都是增量与迭代的结合,没有本质不同,分为以下几种:
2.1、快速原型模型(Rapid Prototype Model)
最初做界面设计,不断推出模块的实现补充到原有的原型中。
2.2、螺旋模型(Spiral Model)
划分为四个象限,不断测试和集成,同时加入了风险分析,对每个迭代周期和每个阶段的风险进行预先评估,在迭代的每次初期对风险较大的进行先行的“穿刺”。2.3、RUP 统一过程(Rational Unified Process)
用例(Use Case)驱动;以体系结构(Architecture)为中心;迭代(Iterative)
与增量(Incremental)相结合;与UML 一起,成为事实上的软件行业标准,
使用Rational Rose 实施;是适合较大公司和中大型项目实施的重型过程。
2.4、XP 极限编程(eXtreme Programming)
不是编程,而是一种软件开发过程模型,借鉴了RUP,可看成是RUP 的简化和轻型化。适合中小型组织用于开发需求快速变化的软件项目,是一种轻量型过程方法。迭代周期很小,强调持续集成和自动化集成与测试;测试驱动、结对编程、集体拥有;是个快速灵活的轻型化过程。
相当于售后服务和交货前给用户试用
提宝贵意见。可维护性日益成为评价软件质量的最重要
的指标。
要学生理解在初期
迭代中应尽量选择难度大和相对复杂的部分做实现以降
低项目开发风险。分问题域分析阶段、需求分析阶段、构造阶段和交付阶段介绍rose 在RUP 不同阶段中的应
用。理解测试驱动与结队编程、集体拥有的好处。
UML与软件建模备课教案[本章小结]
1、SDLC是软件开发过程中任务的阶段划分,而不简单就是对时间阶段的
划分。
2、瀑布模型虽然有逐级评审反馈,但对SDLC各任务阶段的时间安排是顺
序模型,不存在迭代或认为其迭代周期太长,难以适应变化,风险大。
3、迭代/增量模型提供了渐进实现的手段,灵活性强,每次迭代都完整经
历SDLC的各任务阶段。
2理解面向对象[教学目的]
本周是《UML 与软件建模》课程的第二部分内容,第二部分内容拟安排三周到四周时间对面向对象技术进行剖析和展开,培养建立学生对面向对象思想具有较为深刻的认识。为此首先温习类的引入,对象的概念定义以及类的识别的过程。然后展开类/对象间的关系(聚合、继承)以及两类多态性。最后
对类/对象间的通信消息机制、面向对象思想的基本原则以及面向对象与面向功能的区别与联系进行阐述。[教学重点]继承
两类多态性
聚合
消息机制
面向对象的基本原则
面向功能与面向对象的区别与联系[教学难点]
继承与赋值兼容性
运行时绑定的动态多态性理解消息机制[教学方法]
程序举例、启发式提问一起温习面向对象程序设计课程中的内容。[教学内容]
一、类、类的识别、类图
1、对象
现实世界存在或能想像到的一切个体事物,是名词性和个体的概念,一个对象就是类的一个实例。
2、类
它是一批对象所具有的共同的共性特征,是名词性和总称的概念。类和对象是一般与个别、共性与个性、普遍与特殊、泛化与具体的关系。
3、类的成员(组成)
由属性和操作构成,属性描述该类事物“有意义”的特征,名词;操作描述该类事物的“有意义”的行为,动词。
4、属性与类
在一具体情景下某名词有记录下来的必要但是没有操作联系时可“弱化”为一个类的属性。
以程序举例和一次作业结合让学生理解动态绑定和静态绑定。一切事物,当我们思考它,把它作为思考和观察的对象
时,它就是我们考察的一个对象。
对象是类的一个实
例(实际例子)。没有必要记录记忆下来的名词淘汰出
类的候选集。“有意义”记录但无操作时“弱化”
为属性。
5、类图/对象图
类名/对象名,属性名、操作名三段组成。
6、类的识别方法过程
建立目标问题域的顶层业务描述文字。
将顶层业务描述文字分为不同顶层用例-一个个完整的行为过程描述。
从各个不同顶层用例的文字描述中得到名词构成的类的候选集。
从各顶层用例中识别出参与者、实体类,并可能需要添加一些控制类。
将与一个类密切相关的名词变为其属性成员-该成员可以是一个聚合类;更多的情形是该名词是一个弱化了的类,直接做普通属性成员。
根据“谁知道谁负责”的原则将“有意义的行为”加入到“知道”的那个类成为其操作成员。
二、继承
继承是重要的复用手段,使个别可以扩展一般,理解了IS-A 关系,就理解了赋值兼容性规则的来源。
三、类/对象的聚合
1、一个类包含另一个类,或者说一个对象包含另一个对象,包含者和被包含者(聚合类和被聚合类)之间也称之为“Has A”关系。
2、两个类关联时,就发生了聚合。有强聚合(组成)和弱聚合(形参或指针关联时)的两类聚合。
强聚合
四、多态性(两类多态性)
注意无名对象或匿名对象的图的画法。
以课本篮球比赛的例子来说明从业务
描述文字和启发式提问做动名词划分得到类候选集的方法,继而运用“谁
知道谁负责”的原则最终得到初步类持续集成的概念
图。强聚合天然就是一
个对象成员,弱聚
合仅在发生实形参传递时建立了一种
依赖关系——不是对象生存期一直存在,也很短暂程序
可控其持久性的。
硬盘显卡显示器
应用软件
hardware :硬件
科学计算()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。