最新面向对象分析与设计课程总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象分析与设计
课程总结
0923010208
指导老师:庄育飞
这学期学院开设了面向对象分析与设计(UML)这门课,通过老师的讲解,自己一些相关书籍的阅读和实践作业的完成,逐步对课程有了由浅及深的认识。我觉得学习这门课还是受益匪浅的。
面向对象(Object Oriented,OO)是一门以实践为主课程,课程中可以分开两块OOA(面向对象系统分析)和OOD(面向对象系统设计)。
OOA(面向对象系统分析)主要内容: 研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系.OOA不涉及针对具体实现采取的设计决策和有关细节,独立于具体实现的系统模型。是一个完整确切反映问题域和用户需求的系统模型。OOA的优势:复
用、可扩展、可维护性、弹性。
OOD(面向对象系统设计):以OOA模型为基础,按照实现的要求进行设计决策,包括全局性的决策和局部细节的设计,与具体的实现条件相关。OOD的步骤:细化重组类→细化和实现类之间的关系,明确其可见性→增加属性,指定属性的类型和可见性→分配职责,定义执行每个职责的方法→对消息驱动的系统,明确消息传递的方式→利用设计模式进行局部设计→画出详细的类图和时序图。
面向对象的分析与设计方法将致力于解决传统软件研发过程中由于软件模块化结构化程度不高带来的软件重用性差、软件可维护性差、开发出的软件不能满足用户需要等方面问题。面向对象的概念包括:对象、对象的状态和行为、类、类的结构、消息和方法。对象概念将包含对象唯一性、抽象性、继承性、多态性的重要特征。面向对象的要素包含:抽象、封装性、共享性三方面。
在设计模式的研究过程中,我们组选择的是迭代器(Iterator)的设计模式研究。完成设计研究后,我对迭代器的设计模式有了更为深刻的理解。迭代器(Iterator)提供一个方法顺序访问一个聚合对象的各个元素,而又不暴露该对象的内部表示。并了解到迭代器设计模式一般在以下三类场合使用较多。
●访问一个聚合对象的内容而无需暴露它的内部表示。
●支持对聚合对象的多种遍历。因为遍历状态是保存在每一个迭代器对象
中的。
为遍历不同的聚合结构提供一个统一的接口。根据实现方式的不同,效果上会有差别。同时还简化了容器的接口。但是在java Collection中为
了提高可扩展性,容器还是提供了遍历的接口。
在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据。面向对象设计原则中有一条是类的单一职责原则,所以我们要尽可能的去分解这些职责,用不同的类去承担不同的职责。Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。
在Java Collection的应用中,提供的具体迭代器角色是定义在容器角色中的内部类。这样便保护了容器的封装。但是同时容器也提供了遍历算法接口,你可以扩展自己的迭代器。至于迭代器模式的使用。客户程序要先得到具体容器角色,然后再通过具体容器角色得到具体迭代器角色。这样便可以使用具体迭代器角色来遍历容器了。
OOA和OOD之间没有明显的界限。OOA与OOD的不可分割性正好说明了OO思想的强大,即软件过程阶段的无缝连接,在交流与沟通中不会产生鸿沟,这是相对结构化思想的好处,因为从功能模块到某块详细控制逻辑设计两者之间的联系不是十分紧密,需要分析人员与设计人员的再沟通。
通过课程的学习与实践,对面向对象的理念,以及相关方法,设计模式有了更为深刻的理解与掌握。针对面向对象的分析与设计课程的授课内容及方法,我个人觉得对我还是有不少的帮助和提高。结合自己的工作,
虽然与开发接触的比较少,但是在运维过程中,如果能了解开发原理,结合实际的工作,会对一些源代码的分析能力以及工作效率的提高起到明显的帮助作用。
庄老师上课经常说一些与课程无关的内容,我已开始并不理解他的作法,后来我慢慢认识到面向对象分析设计的学习就是培养思想的一种过程,这种思维方式还是需要大量的实践才能灵活的运用。目前的阶段,只能说是知道有这样一种设计思想、这种解决问题的方案,至于在何时应该使用、如何去使用,就需要在今后的经验中去累积了。
下面是一些我掌握的基础知识
9种UML图:
类图:描述类的结构(包括属性以及类之间的相互关系)
对象图:对象以及对象之间的相互关系
构件图:构件及其相互依赖关系
部署图:构件在各节点上的部署
顺(时)序图:强调时间顺序的交互图,用于将系统行为分配给类。一般包含了边界、控制、实体对象
协作图:强调对象协作的交互图,与时序图同构
状态图:类所经历的各种状态,包括状态之间的转换以及触发转变的事件
活动图:对工作流程建模
用例图:与用例文档结合进行需求捕获,测试依据
面向对象设计七个原则:
开-闭原则、里氏转换原则、依赖倒转原则、接口隔离原则、组合/聚合复用原则、迪米特法则、单一职责
ICONIX开发过程:域模型——用例文档——健壮性分析——健壮图——时序图设计模式:
1)创建模式: 涉及对象的创建
单例模式, 工厂模式, 建造者模式,原型模式
2)结构模式:涉及类和对象的组合
Facede外观模式, 代理模式, 适配器模式, 装饰模式
3)行为模式: 刻画了类和对象交换及分配职责的方式.主要目标是解耦
观察者模式, 命令模式, 模板模式
本学期学了《面向对象系统分析与设计》课程,本课程我们主要是学习了面向对象的统一建模语言UML,了解面向对象技术的基本概念,掌握面向对象的分析和设计方法,以及与面向对象技术相关的一些软件开发技术,同时掌握在IBM RSA软件环境下用UML进行分析和设计的技术。在《面向对象系统分析与设计》