深圳市营销型网站,网站开发自学流程,本人找做钢筋笼的活网站,2014网站设计第7章 面向对象方法基础
面向对象的基本概念
面向对象方法的世界观#xff1a;一切系统都是由对象构成的#xff0c;他们的相互作用、相互影响#xff0c;构成了大千世界的各式各样系统。面向对象方法是一种以对象、对象关系等来构造软件系统模型的系统化方法。 面向对象 …第7章 面向对象方法基础
面向对象的基本概念
面向对象方法的世界观一切系统都是由对象构成的他们的相互作用、相互影响构成了大千世界的各式各样系统。面向对象方法是一种以对象、对象关系等来构造软件系统模型的系统化方法。 面向对象 对象object 分类classification 继承inheritance 通过消息的通信communication with messages一个对象通常可由对象名、属性和操作三部分组成 对象object 对象是指一组属性以及这组属性上的专用操作的封装体 属性attribute通常是一些数据有时它也可以是另一个对象。每个对象都有它自己的属性值表示该对象的状态。对象中的属性只能通过该对象所提供的操作来存取或修改 操作operation也称方法或服务规定了对象的行为表示对象所能提供的服务 封装encapsulation是一种信息隐蔽技术用户只能看见对象封装界面上的信息对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分离使对象的定义和实现分开。简而言之对象的属性和操作结合为一体构成一个独立的实体对外屏蔽其内部细节即为封装 类class 类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例instance 类是创建对象的模板从同一个类实例化的每个对象都具有相同的结构和行为 继承inheritance 继承是类间的基本关系它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作在子类中除了定义自己特有的属性和操作外可以继承其父类或祖先类的属性和操作还可以对父类或祖先类中的操作重新定义其实现方法 如果一个子类只有唯一一个父类这种继承称为单一继承。如果一个子类有一个以上的父类这种继承称为多重继承 消息message 对象之间只能通过消息进行通信不允许一个对象直接使用另一个对象的属性以实现对象直接的动态联系。一个对象通过向另一个对象发送消息来请求其服务。**一个消息通常包括接收对象名、调用的操作名和适当的参数如果有必要的话。**消息只告诉接收对象需要完成什么操作但并不指示接收者怎样完成操作。消息完全由接收者解释接收者独立决定采用什么方法完成所需的操作 多态性polymorphism 多态性是指同一个操作作用于不同的对象上可以有不同的解释并产生不同的执行结果。例如“画”操作作用在“矩形”对象上则在屏幕上画一个矩形作用在“圆”对象上则在屏幕上画一个圆。也就是说相同操作的消息发送给不同的对象时每个对象将根据自己所属类中定义的这个操作去执行从而产生不同的结果 动态绑定dynamic binding 动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来 传统的程序设计语言的过程调用与目标代码的连接即调用哪个过程放在程序运行前即编译时进行称为静态绑定而动态绑定则是把这种连接推迟到运行时才进行 动态绑定是一种在运行时确定被执行代码的技术
面向对象的分析和设计过程
面向对象分析的一般步骤如下
获取客户对系统的需求包括标识场景scenario和用况use case也称用例以及建造需求模型用基本的需求为指南来选择类和对象包括属性和操作。定义类的结构和层次。类的结构主要有两种一般—特殊结构 和 整体—部分结构建造对象—关系模型。对象–关系模型描述了系统的静态结构它指出了类间的关系。类之间的关系有关联、依赖、泛化、实现等建造对象—行为模型。利用用况/场景来复审分析模型。
UML概述
UML是一种可视化语言用于 (1)规约系统的制品一一UML适用于对所有重要的分析、设计和实现决策进行详细描述 (2)构造系统的制品一一UML描述的模型可与各种编程语言直接相关联UML应用范围 (1)可用于对象方法和构件方法; (2)可用于 所有应用领域(例如航空航天、财政、通讯等)不同的实现平台
UML简介
视图为了完整的描述一个系统往往需要描述系统的许多方面用视图可以表示被建模型系统的各个方面即从不同目的出发可以为系统建立多个模型这些模型都描述同一个系统只是描述的角度不同。UML2.0把视图分成四个主题域结构化域、动态域、物理域和模型管理域。 图图是用来表达一个视图的内容的通常一个视图由多张图组成。 模型元素包括事物和事物之间的联系。事物、关系
UML模型元素
UML语言中的事物分为结构事物、动作事物、组织事物和注释事物。 结构事物分为类、接口、用例、协作、结点、构件等动作事物是UML模型中的动态部分包括交互和状态机组织事物包注释事物UML模型的解释部分用来对模型中的元素进行说明、解释。 UML语言中的关系关联、依赖、泛化、实现、聚合、组合
UML中的图
类图*重点
类图展示了系统中类的静态结构即类与类之间的相互联系。类之间有多种联系方式如关联相互连接、依赖一个类依赖或使用另一个类、泛化一个类是另一个类的特殊情况等。可以把若干个相关的类包装在一起作为一个单元包,相当于一个子系统。一个系统可以有多张类图一个类也可以出现在几张类图中
对象图
对象图是类图的实例它展示了系统执行在某一时间点上的一个可能的快照。对象图使用与类图相同的符号只是在对象名下面加上下划线同时它还显示了对象间的实例链接link关系
用况图* 重点
用况图展示了各类外部执行者与系统所提供的用况之间的连接。一个用况是系统所提供的一个功能也可以说是系统提供的某一特定用法的描述执行者是指那些可能使用这些用况的人或外部系统执行者与用况的连接表示该执行者使用了那个用况。用况图给出了用户所感受到的系统行为但不描述系统如何实现该功能。 用况图的主要元素有参与者、用例、关系关联、包含include、扩展Extend、泛化
* 内部结构图
展示了类的分解给出了组成一个结构化类元的相互连接的部分、端口和连接器。 协作图
协作图展示了协作的定义是一种合成的结构图。协作是为了完成某一目的而一起工作的一组对象间的上下文关系。 状态机图* 重点
状态机图通常是对类描述的补充它说明该类的对象所有可能的状态以及哪些事件将导致状态的改变。一个事件可以是另一个对象向它发送的一条消息或者是满足了某些条件。状态的改变称为迁移transition。一个状态迁移还可以有与之相关的动作该动作指出状态迁移时应做什么 并不是所有的类都要画状态机图有些类有一些意义明确的状态并且其行为受不同的状态所影响和改变这些类才需要画状态机图
活动图* 重点
活动图展示了连续的活动流。活动图通常用来描述完成一个操作所需要的活动。当然它还能用于描述其它活动流如描述用况。活动图由动作状态组成它包含完成一个动作的活动的规约(即规格说明)。当一个动作完成时将离开该动作状态。活动图中的动作部分还可包括消息发送和接收的规约 顺序图* 重点
顺序图展示了几个对象之间的动态交互关系。它主要是用来显示对象之间发送消息的顺序它还显示了对象之间的交互即系统执行的某一特定点所发生的事
通信图
通信图描述了交互作用中的角色显示了有协作关系的角色之间的交互。通信图明确地显示元素之间的协作关系而不显示作为独立维的时间消息的顺序和并发线程必须由顺序号确定
部署图
部署图展示了运行时处理结点和在结点上生存的制品的配置。结点是运行时的计算资源制品是物理实体如构件、文件 部署图中显示部署在结点上的制品和它们之间的关系以及结点之间的连接和通信方式 包图是由包和它们间的关系组成的结构图 模型是在某一视点给定的精度上对系统的完整描述一个系统可以从不同的视点如分析模型、设计模型存在多个模型。一个模型可看作一个特定类型的包通常仅显示包就足够了不必显示包内部的细节
用况建模
用况建模是用于描述一个系统应该做什么的建模技术用况建模不仅用于新系统的需求获取还可用于已有系统的升级。用况模型用用况图来描述 用况图展示了各类外部执行者与系统所提供的用况之间的连接。一个用况是系统所提供的一个功能也可以说是系统提供的某一特定用法的描述 ——描述动作者和使用案例之间的关系 ——用于表现系统根据需求所提供的功能
用况图的组成元素
图中的元素包括执行者、用况、一个方框和一些表示关系的连接线所有的用况都位于方框之内该方框称为“系统边界”执行者与用况的关系在执行者和用况之间的关联是用一根带箭头的线来表示的用例之间的关系 1关联关系 2包含关系 3扩展关系 4泛化关系
用况建模步骤
1定义系统 2确定执行者 3识别用例 4确定用例图中的关系并绘制用例图 5描述用例用文字描述 6确认模型
案例1需求描述
小王是一个爱书之人家里各类书籍已过千册而平时又时常有朋友外借因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号可以修改信息但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录可对外借情况列表打印。另外还希望能够对书籍的购买金额、册数按特定时间周期进行统计
一. 定义系统
用况图中的矩形框代表系统系统的用况画在矩形框内代表系统之外的执行者画在矩形框外。
二. 确定执行者
执行者是指与系统交互的人或其他系统执行者代表一种角色而不是具体的某个人执行者可分成主执行者和副执行者 主执行者使用系统的主要功能 例如保险系统中主执行者处理保险的注册和管理副执行者处理系统的辅助功能 例如管理数据库、通信、备份以及其他管理等系统维护 执行者还可分为主动执行者和被动执行者 主动执行者开始一个用况被动执行者从不开始用况只是参与一个或多个用况 执行者 系统功能的使用者从系统获取信息者向系统提供信息者系统需要访问读写的那些外部硬件设备系统的维护和管理者与该系统进行交互的其他系统特殊参与者系统时钟已有的上下文关系图表示系统范围及其他相关模型它们描述了系统与外部系统的边界从这些图中可以寻找出与系统有交互关系的外部实体。项目相关人员分析对项目的相关人员进行分析就能够决定出哪些人将会与系统进行交互。书面的规格说明和其它项目文档如会谈备忘录等需求研讨会和联合应用开发会议的记录这些会议的参与者通常是很重要的因为他们在组织中所代表的角色就是可能与系统发生交互的执行者。当前过程和系统的培训指南及用户手册这些东西中经常会有潜在执行者。 执行者——个人图书管理系统 图书管理员
三. 识别并确定用况
一个完整的系统包含若干个用例USE CASE每个用例具体说明应完成的功能。寻找用况 可以通过让每个执行者回答以下问题来寻找用况 • 执行者需要系统提供哪些功能执行者需要系统做什么 • 执行者是否需要读、创建、删除、修改或储存系统中的某类信息 • 执行者是否要被系统中的事件提醒或者执行者是否要提醒系统中某些事情从功能观点看这些事件表示什么 • 执行者的日常工作是否因为系统的新功能尤其是目前尚未自动化的功能而被简化或提高了效率
记录需求—个人图书管理系统
四、确定用况之间的关系并绘制用况图 ** 包含与扩展关系 • 被包含的用况此例中的检查座位详情不是孤立存在的它仅作为某些包含它的更大的基用况此例中的预订座位、安排座位的一部分出现 • 基用况是可以独立于扩展用况存在的只是在特定的条件下它的行为可以被另一个用况的行为所扩展 泛化关系 • 可以用来表示执行者与执行者之间用况与用况之间的特殊/一般化关系 绘制用况图
五、用况的描述
用况的简单描述 1执行者的简要描述 客户向公司订购商品的人 客户代表公司处理客户请求的人 库存系统记录公司库存的软件 2用况的简要描述 订购货物客户创建一个新的请求商品的订单 取消订单客户取消一个已经存在的订单用例描述模板如下 细化用况描述—个人图书管理系统
1.用况名称新增书籍信息UC01
2.简要说明录入新购书籍信息并自动存储建档。
3.事件流……
3.事件流3.1 基本事件流1图书管理员向系统发出“新增书籍信息”请求2系统要求图书管理员选择要新增的书籍是计算机类还是非计算机类3图书管理员做出选择后显示相应界面让图书管理员输入信息并自动根据书号规则生成书号4图书管理员输入书籍的相关信息包括书名、作者、出版社、ISBN号、开本、页数、定价、是否有CDROM5系统确认输入的信息中书名未有重名6系统将所输入的信息存储建档。3.2 扩展事件流5a如果输入的书名有重名现象则显示出重名的书籍并要求图书管理选择修改书名或取消输入5a1图书管理员选择取消输入则结束用例不做存储建档工作5a2图书管理员选择修改书名后转到5
4.非功能需求
5.前置条件用户进入图书管理系统。
6.后置条件完成新书信息的存储建档。
7.扩展点无
8.优先级最高满意度 5不满意度5编写要点 使用简单的语法主语明确语义易于理解明确写出“谁控制”也就是在事件流描述中让读者直观地了解是参与者在控制还是系统在控制从俯视的角度来编写指出参与者的动作以及系统的响应也就是从第三者观察的角度显示过程向前推移也就是第一步都有前进的感例如用户按下tab键作为一个事件就是不合适的显示参与者的意图而非动作如果只描述了动作人们不能够很容易地直接从事件流描述中理解用例包括“合理的活动集”带数据的请求、系统确认、更改内部、返回结果用“确认”而非“检查是否”例如“系统确认所输入的信息中书名未有重名”可选择地提及时间限制采用“用户让系统A与系统B交互”的习惯用语采用“循环执行步骤x到y直到条件满足”的习惯用语。