面向对象原理与技术
更新时间:2023-09-27 21:09:01 阅读量: 综合文库 文档下载
面向对象原理与技术
目标:掌握面向对象技术的基本概念、基本原理,关键技术和主要方法,通过实例开发验证语言、工具和方法的有效性。
主要内容:基本概念、原理;
关键技术:通过建模进行对象分析和设计,通过使用语言和工具进行对象编程和实现。
完成一个小型软件系统。
教学方法:课堂授课,课后实践,研究探讨。
参考书:
Object Design & Programming with UML UML对象设计与编程 [美]刘润东
北京希望电子出版社 2001.3
The Unified Modeling Language User Guide
Grady Booch, James Rumbaugh and Ivar Jacobson UML用户指南 邵维忠 等译
机械工业出版社 2001.6
UML面向对象设计基础 Meilir Page-Jones, 2000 包晓露等译
人民邮电出版社,2001.4
Practical Object-Oriented Design with UML Mark Priestley
面向对象设计的UML实践(影印版) 清华大学出版社, 2000.10
Object-Oriented System Analysis and Design Ronald J. Norman, 1996
面向对象系统分析与设计(影印版) 清华大学出版社, 1998.6
1.目的和参考书 2.结构化设计和面向对象设计 3.统一建模语言UML 4.Java对象编程 5.软件需求:用例 6.7基本结构建模:类和类图 8.9.10.基本行为建模:交互和交互图。 11.12.高级行为建模和体系结构建模 13.复习 14.考试
1 概述
1.1 结构化设计
编程语言的进步: 第一代语言二进制代码编程。 第二代语言汇编程序 1940?s-1950?s 第三代语言,高级语言, Fortran, ALGOL60, COBOL,C/C++一条语句编译为5-10条机器代码。 第四代语言,4GL, 一条语句编译为30-50条或更多的机器代码。非过程语言,如SQL. 结构化程序设计被称为软件发展的第三个里程碑,比前两个(子程序和高级语言)影响更深远。
组合/结构化设计(C/SD, Composite/Structured Design)提出将产品分成模块以减少维护代价。
Stevens, Myers and Constantine, 1974。
◆强调程序设计风格和程序结构的规范化,提倡清晰的与问题相关的结构。 ◆基本思路:把复杂问题的求解过程分阶段进行,每个阶段针对的问题和解决方法都易理解易验证。
◆自顶向下
先全局后局部 对比“自下而上” ◆逐步细化
先整体后细节 先抽象后具体 逐步求精 ◆模块化设计 复杂程序由若干较小程序(即模块)构成。
模块之间通过接口联系起来。 ◆结构化编码 三种基本结构 限制使用goto
模块module是一个由边界元素限定词所确定的相邻程序语句的序列,而且有一个总体标识符。 Yourdon and Constantine 1979
模块是一种软件存储和管理的单位。模块包括源代码模块、二进制代码模块和可执行代码模块。
UML,1999
Myers提出模块内聚(module cohesion, 模块内部各元素相互作用的紧密程度)和模块耦合(module coupling, 模块之间连接的紧密程度)。提倡高内聚、低耦合的模块化设计。
1.2 面向对象设计
对象object是什么?
? 具有明确定义的边界和唯一标识identity的一个实体entity。 ? 状态和行为的一个封装体。 ? 某个类的一个实例instance。 类class是什么?
一组具有相同属性、操作和语义的对象的抽象描述;也描述该类如何创建对象。 对象基本原理是什么?
? 生命期:每个对象都有创建、活动/操作、撤销的动态过程。 ? 抽象:从客观世界实体对象抽象为计算机软件表示的类。
? 实例化:运行时刻由类创建对象,人与对象交互、对象之间交互,以完成计算。 对象设计有哪些主要特征? ▲封装性 成员种类 成员可见性/访问控制
类名 类名
private 数据变量集合 public 操作方法集合 protected
数据和方法作为类成员封装在一起
先区别对象,再访问对象的成员 保护数据;通过接口访问核心数据
类名
类成员 成员作用域;静态static成员
对象成员
▲继承性
继承性反映自然的分类结构(isA关系)
超类superclass
子类继承超类的特征(继承性)
子类可增加新特征,且仅描述新特征(扩展)
子类可限制继承而来的属性或重新改写继承而来的行为
子类subclass
每个子类对象都是其基类的一个对象(类型多态性)
子类对象可替代超类对象(substitutability可替代性)
▲多态性 行为多态性:
重载overload 改写override
操作的基调signature是什么? 操作的名称加上形式参量(通常加上返回类型)。
1.3 统一建模语言UML 1.4 Java对象编程
2 软件需求:用例和用例图
2.1 用例
原理:
一个用例表示一个系统的部分功能和行为;系统所有的功能和行为都可建模为用例。 一个用例抽象一组动作序列,以结构化的静态方式描述功能和行为。 系统执行该动作序列将对参与者actor产生可观察的结果。
用例描述将实现的行为,而不必描述其如何实现,而使所有人员不必为细节所累。
? 系统级功能,完整的功能需求。
? 参与者actor与用例的交互关系。参与者可以是人或自动系统。 ? 一个用例完成一项与参与者利益相关的确定工作。 ? 用例作为测试来源。
概念:
用例use case是什么?
系统与其参与者actor交互时所执行的动作序列的规范。
用例对模型中的行为特征结构化,用例进一步用协作表示其如何实现。
如何表示用例?
命名:一个字符串,简短的主动语态动词短语,完整名称应包括包名作为路径。
语法:椭圆
参与者actor是什么?
当用例的用户与用例交互时,用户所扮演的一组相关角色的集合。
当一个参与者与一个用例通信时仅扮演一个角色。
什么是角色role?
参与特定语境中的某实体被命名的特定行为。 参与者之间有什么关系?
泛化关系。
如何表示参与者?
名称:名词短语 语法:人形符号
参与者与用例之间有何关系?
关联
用例如何组织?
用包package来组织大量的用例。包名. 用例 用例间有何关系?
1泛化:一个子用例(sub use case)和一个超用例(super use case)间的关系
子用例是其超用例的特殊形式;子用例可出现在超用例可出现的任何地方。 子用例继承超用例中所有的特征和关联,并可增加新的特征和关联。
2包含:一种<
3扩展:一种<
对元素的行为建模。 元素指整个系统、子系统或某个类。
关心“做什么”,而不是“如何做”
为何需要用例建模
三个理由:
? 用例为领域专家、最终用户和开发者提供交流平台。 ? 为开发者提供直接认识和理解元素的方法 ? 用例是测试模型元素的基础。
如何对元素的行为建模?
? 识别与该元素交互的参与者,有的参与者并非单个人扮演的角色。 ? 识别一般和特殊的角色来组织参与者。 ? 对每个参与者考虑与该元素交互的主要方式。 ? 考虑异常的交互方式。 ? 组织为用例,用包含和扩展关系分解公共行为,区分异常行为。 重要提示
每个用例应表示系统的可区分和可标识的行为。
? 为系统中单个的、可标识的原子行为命名 ? 用包含关系分解公共行为 ? 用扩展关系分解变体行为
? 清晰描述事件流,使局外人易于理解
2.2 用例图
用例图(use case diagram)是什么?
表示一组用例、参与者及关系的图。 用例图中主要内容有哪些?
用例、参与者、依赖、泛化和关联,还有注解和约束,包 用例图的出发点是什么?
表现系统的行为,系统对其外部提供的可见的服务。 语境context是什么?
所有存在于系统外部,并于系统交互的事物,构成了该系统的语境context。 一组相关建模元素出于某种目的(如为描述某操作),而组织起来的一种视图。 语境定义了元素存在的环境。 用例图与系统的语境有何关系?
用例图可对系统的语境建模。 如何对参与者建模?
识别系统周围的参与者:
? 需要从系统中得到帮助以完成其任务,履行其职责的事物 ? 完成系统的功能所必需的事物 ? 需要与外部硬件或软件交互的事物
? 为管理和维护而执行某些辅助功能的事物
类似的参与者用泛化关系组织起来 对于需加深理解的参与者,应建立构造型。
正在阅读:
面向对象原理与技术09-27
2018-2019-事业单位转正自我鉴定【三篇】-精选word文档 (5页)07-08
2009-2011年司法考试民法历年真题解析 - 主观题09-19
无锡长泰国际社区营销报告04-22
蜗牛吃到了葡萄作文450字07-01
金山区九年级历史上册第三单元近代社会的发展与终结第17课电气时03-29
2016禁止物质不使用保证书06-09
桌子的自述作文700字06-14
Access数据库期末试卷09-25
信用社财务会计部2007年度工作总结08-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 面向
- 原理
- 对象
- 技术
- 期末口语试题准备
- 《动物防疫法》知识问答100题讲解
- 2013-2014年度《饭店管理概论》期末考试试卷B卷
- 2015洛阳理工软件工程复习题 - 图文
- 小企业会计准则和税务行政执法业务考试试卷 -
- 数字温度计全文
- 语言学概论
- 消防实习报告 - 图文
- 《有效教学的基本功3 - 课堂提问技能教案》
- 浙江省杭州第二中学2016届高三5月高考仿真模拟考试英语试题(解析版)
- 杜仁杰实战烘焙培训学校分享资料《蛋糕零失败的基本技术》
- 2017年高考地理二轮精品:专题09《城市空间结构与城市化》高考押题(含答案)
- 串并转换实验
- 伴音通道的工作原理与设计毕业设计 - 图文
- 学院简介及专业人数统计
- 环保胶水 塑料胶粘剂
- 2019-2020学年四年级英语下册第六单元测试卷及答案
- 宁波市鄞州区第二次全国经济普查主要数据公报(第一号)
- 镁合金冷加工切削工艺火灾
- 部分植物检索表