作业四__面向对象需求建模(第9-11章)
- 格式:pdf
- 大小:328.65 KB
- 文档页数:13
面向对象的建模方法面向对象的建模方法是一种用于软件系统设计的方法论,它把现实世界映射到软件系统中的对象和类的概念上,通过抽象、封装、继承和多态等概念,实现对现实世界中事物的建模。
面向对象的建模方法包括需求分析、领域建模、设计模式等环节,本文将详细介绍这些环节的步骤和重要性。
首先,需求分析是面向对象建模的第一步。
它主要目的是了解用户的需求和软件系统的功能。
在需求分析阶段,开发团队需要与用户进行深入沟通,明确系统的功能、性能和界面等方面的需求。
在这个阶段,可以使用用例图、活动图、领域模型等工具来表示和记录需求。
需求分析的重要性在于确保软件系统能够满足用户的期望,并且为后续的建模和设计提供必要的依据。
接下来是领域建模。
领域建模是通过分析和理解现实世界的各个领域,抽象出问题领域中的概念和关系,并将其映射到软件系统中。
在领域建模中,可以使用类图、对象图等工具来描述问题领域中的概念、属性和关系。
领域建模的目的是建立一个清晰的问题领域模型,通常使用领域专家的知识和建模技术,可以更好地理解问题的要求和限制。
在面向对象的建模方法中,设计模式也是一个非常重要的环节。
设计模式是一种解决软件设计中常见问题的可复用方案,它提供了一种在特定情况下的最佳实践,可以提高软件的质量和可维护性。
常用的设计模式包括单例模式、工厂模式、观察者模式等。
设计模式的目的是通过将系统分解为独立的对象,每个对象负责一个特定的职责,从而提高系统的灵活性和可扩展性。
此外,还有一些其他的面向对象的建模方法值得考虑。
例如,UML(统一建模语言)是一种广泛使用的建模语言,可以用来描述软件系统的结构和行为。
UML 提供了一套图形符号和规范,可以用于可视化和交流系统设计。
此外,敏捷建模也是一种常用的面向对象的建模方法,它强调团队合作、迭代开发和软件质量的快速反馈。
总结起来,面向对象的建模方法是一种通过抽象、封装、继承和多态等概念,将现实世界映射到软件系统中的方法论。
UML基础与Rose建模实用教程课后习题及答案第1章面向对象概述1.填空题(1)软件对象可以这样定义:所谓软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。
(2)类是具有相同属性和操作的一组对象的组合,即抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。
(3)面向对象程序的基本特征是竝、封装、继承和多态。
2.选择题(1)可以认为对象是ABC 。
(A)某种可被人感知的事物(B)思维、感觉或动作所能作用的物质(C)思维、感觉或动作所能作用的精神体(D)不能被思维、感觉或动作作用的精神体(2)类的定义要包含以下的要素ABD °(A)类的属性(B)类所要执行的操作(C)类的编号(D)属性的类型(3)面向对象程序的基本特征不包括_卫_。
(A)封装(B)多样性(C)抽象(D)继承(4)下列关于类与对象的关系的说法不正确的是」(A)有些对象是不能彼抽象成类的(B)类给出了属于该类的全部对象的抽象定义(C)类是对象集合的再抽象(D)类用来在内存中开辟一个数据区,并存储新对象的属性3.简答题(1)什么是对象?试着列举三个现实中的例子。
对象是某种可被人感知的事物,也可是思维、感觉或动作所能作用的物质或精神体,例如桌子•椅子•汽车等。
(2)什么是抽象?抽象是对现实世界信息的简化。
能够通过抽象将需要的事物进行简化、将事物特征进行概括、将抽象模型组织为层次结构.使软件重用得以保证。
(3)什么是封装?它有哪些好处?封装就是把对象的状态和行为绑在一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的内部细节。
封装有两个含义;一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体。
对象的私有属性只能够山对象的行为来修改和读取。
一•是尽可能隐蔽对象的内部细节,与外界的联系只能够通过外部接口来实现。
通过公共访问控制器来限制对象的私有属性,使用封装具有以下好处:避免对封装数据的未授权访问、帮助保护数据的完整性、申类的私有方法必须修改时,限制了在整个应用程序内的影响。
作业四面向对象需求建模(第9-11章)4-1、根据以下描述,使用面向对象的分析方法,分析有那些主要对象和这些对象的主要属性、方法,画出对象图。
一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。
顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。
顾客按键后饮料由出物口掉出,并自动结算及找钱。
顾客可在按下选择键前任何一个时刻,可以拉动退币杆取消交易收回硬币。
4-2、请画出一个用户使用银行ATM的状态转换图。
从用户将卡插入卡槽开始,到用户取卡结束(如果用户忘记,ATM应报警),用户可以完成以下几个步骤:登录(卡片进入ATM机后,如果不是可读卡,退卡;如是,等待用户输入密码,三次错,吞卡,正确后进入主菜单),取钱(进入取钱菜单,输入金额,如果帐户余额不足,提示余额,并要求用户重新输入,如果帐上钱够,吐钱币,并询问是否打印凭证,最后返回主菜单),主菜单提供退出取卡选择。
4-3、某公安报警系统在一些公安重要保护单位(银行、学校等)安装了报警装置,其工作过程如下:一旦发生意外事故,故事发生单位只需按报警按钮,系统立即向公安局发出警报信息、自动显示出报警单位的地址、电话号码等。
110警车立即出动前往出事地点。
值班人员可以接通事故单位的电话、问清情况,需要时再增派公安人员到现场处理。
根据以上情况进行分析,确定本系统有哪些用例、对象,画出用例图、类图及顺序图。
用例:按报警按钮、前往出事地点、接通事故单位的电话、问清情况对象:故事发生单位、值班人员、警察 用例图:值班人员警察类图:顺序图:4-4、小李新接了一个项目:设计一个简单的学生选课系统,系统能注册符合要求的同学,同学注册以后就能进行选课,选课过程如下:先选课名,然后根据课程的上课老师、时间、地点和人数限制来决定是否成功选课;老师也可以根据情况提供新的课程说明或修改过去课程的说明;教务处的老师统一管理注册的情况,可以有删除、修改学生、老师和课程的权限。
面向对象分析与设计试题B卷一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2 分,共20 分)/* 上个世纪80年代开始至今还盛行的以Smalltalk,C++等为代表的面向对象软件开发方法(00)*/1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A. Simula67语言(20世纪70年代的Simula-67是第一个面向对象的语言)B. Smalltalk语言(80年代初的Smalltalk语言)C. Java语言(对流行的语言进行面向对象的扩充得到的语言或C++)D. 统一建模语言(UML)的标准2. 面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A. SmalltalkB. EiffelC. C++D. Java3.下列不属于面向对象技术的基本特征的是(B)。
A. 封装性B. 模块性C. 多态性D. 继承性4. 面向对象程序设计将描述事物的数据与( C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。
A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于面向对象方法的优点,下列不正确的叙述是(C)。
A. 与人类习惯的思维方法比较一致B. 可重用性好C. 以数据操作为中心D.可维护性好6.(D)是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图B. 对象图C. 序列图D. 用例图7. (C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图 B. 组件图 C. 类图 D. 配置图**8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
软件工程(本)作业1 Array(第1~4章)一、选择题:1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生2.瀑布模型本质上是一种(A )模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品3.瀑布模型存在的问题是(B )。
A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。
A.增量模型B.专家系统C.喷泉模型D.变换模型5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。
A.需求不确定性高的 B.需求确定的C.管理信息 D.实时6.下列有关软件工程的标准,属于国际标准的是(D )A.GBB.DINC.ISOD.IEEE7.结构化方法是一种基于(D)的方法。
A.数据结构B.程序结构C.算法D.数据流8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。
A、简化、压缩的B、详细的C、彻底的D、深入的9.可行性研究的目的是(D)A、分析开发系统的必要性B、确定系统建设的方案C、分析系统风险D、确定是否值得开发系统10.设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。
A、P×(1+i*n)B、P× (i+1)*nC、p×(1+i)nD、p×(i+n)11.可行性研究是在(A)之前A、系统开发B、测试C、试运行D、集成测试12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。
A、1%B、20%C、8%D、50%13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》B.《中华人民共和国计算机信息系统安全保护条例》C.《中华人民共和国著作权法》D.《计算机病毒防治管理办法》14.效率是一个性能要求,因此应当在(B)阶段规定?A、可行性分析B、需求分析C、概要设计D、详细设计15.需求规格说明书的作用不包括(D)A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据16.数据字典是用来定义(D)中的各个成份的具体含义的。
UML面向对象需求分析与建模教程9.1设计介绍思考-----传统软件工程中管理系统是如何进行设计的?优缺点?-----思考OOD方法面向对象的设计方法(OOD)是面向对象方法中一个中间过渡环节。
其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。
在OOD的设计过程中,要展开的主要有如下几项工作。
图9-1 RUP中的设计过程(一)对象定义规格的求精过程对于OOA所抽象出来的对象、类以及汇集的分析文档,OOD需要有一个根据设计要求整理和求精的过程,使之更能符合OOP的需要。
面向对象设计是以面向对象分析阶段产生的分析模型作为输入,通过对分析模型中所有对象的分析,细化对象的属性和操作,指定对象属性的详细类型,补全对象之间的关系,通过不断细化把分析模型转化成描述如何解决问题、如何实现软件系统的更详细的对象模型。
此后,面向对象设计工作也需要根据面向对象分析阶段产生的动态模型,在更贴近具体实现的层面详细描述系统中所有对象的交互关系,产生最终的、可直接用于代码编写的动态模型。
利用面向对象设计的结果,实现阶段的程序员可以很容易地完成编码和测试工作。
(二)数据模型和数据库设计数据模型的设计需要确定类、对象属性的内容、消息连接的方式、系统访问、数据模型的方法等。
最后每个对象实例的数据都必须落实到面向对象的库结构模型中。
案例----如果开发一个网络商城,希望实现性价比的功能,那在数据库中应该存贮哪些相关的数据?----案例(三)优化OOD的优化设计过程是从另一个角度对分析结果和处理业务过程的整理归纳,优化包括对象和结构的优化、抽象、集成。
9.2 对象设计1.模块化面向对象开发方法很自然地支持了把系统分解成模块的设计原则:对象就是模块。
它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。
2.抽象面向对象方法不仅支持过程抽象,而且支持数据抽象。
3.信息隐藏在面向对象方法中,信息隐藏通过对象的封装性来实现。
第1章UML概述1. 请指出UML的三个主要的特性。
1)UML是一种语言2)UML是用来建模的3)UML是统一的标准2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。
1)电路图:电子产品设计、生产、维修2)园区沙盘:直观、立体化地展示园区的景观、布局3)地图:导航、指路等3. 请简要说明建模的意义和建模的原则。
建议能够帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化在建模时应遵循以下原则:选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。
对每个重要的系统最好用一组几乎独立的模型去处理4. 请说明蓝图和草图的区别,并简单描述其适用的场景。
蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。
对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中5. 说明UML适用的建模领域,以及其作用和主要的参与人员。
⏹业务建模,用来加强对业务领域的了解,以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与。
⏹需求模型,用来加强需求了解,便于技术决策,以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与。
⏹设计模型:包括高层设计模型和详细设计模型。
高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。
详细设计模型则以资深开发人员为主,架构师提供指导。
⏹实现模型:架构师、资深开发人员(设计人员);以资深开发人员(设计人员)为主,架构师提供总体指导。
UML建模技术作业自编习题集目 录第一章上升到面向对象 (1)第二章可视化建模技术 (4)第三章业务建模 (5)第四章用例建模 (7)第五章用例分析 (9)第六章面向对象的设计原则 (13)第七章面向对象的设计模式 (17)第八章架构设计 (18)第九章构件设计 (21)第十章从模型到代码 (25)第一章 上升到面向对象1、结构化思维与对象化思维有什么本质的不同?体现了怎样的思维差异?对象思想有何优势?2、如何表达设计思想:代码?图形?3、根据所在学院,以学生角度,应该哪些设计类与对象?举例说明面向对象技术的五个原则4、阅读课件第1章PPT中的课外作业:面向对象术语清单●抽象类Abstract Class●对象不能从中实例化的类●抽象Abstraction●某项目(如类或操作)的基本特征●聚合Aggregation●表示两个类或组件之间是“is part of”关系●聚合层次Aggregation Hierarchy●通过聚合关系联系的一组类●关联Association●对象和其它对象发生联系●属性Attribute●类知道的东西(数据/信息)●类Class●相似对象的软件抽象,创建对象的模版●内聚Cohesion●封装单元(如组件或类)的相关程度●协作Collaboration●类协作来完成它们的职责●构件Component●可以独立开发、分发以及与其他组件一起构建较大单元的内聚功能单元●组合Composition●更强类型的聚合,其中“整体”完全负责它的各组成部分,每“部分”对象仅和一个“整体”对象相联系●具体类Concrete Class●可以进行对象实例化的类●耦合Coupling●两个项目的依赖程度●封装Encapsulation●把相关的概念(例如类或组件)归组到一个项目●信息隐藏Information Hiding●限制外部对属性的访问●继承Inheritance●表示“is a”和“is like”关系●继承层次Inheritance Hierarchy●表示继承相联系的一组类●实例Instance●对象是类的一个实例●实例化Instantiate●从类中实例化对象●接口Interface●定义内聚行为集的一个或多个操作特征标记的集合●消息Message●是信息请求或执行一个动作的请求●传递消息Messaging●为了协作,类互相发送与接收消息●方法Method●类完成的事情(与结构化编程中函数类似)●多重继承Multiple Inheritance●类直接从一个以上的类继承●对象Object●一个实体,包括物理实体、概念实体、软件实体●对象空间Object Space●主存,加上网络上所有可供使用的存储空间●覆盖Override●有时在子类中你需要覆盖(重定义)属性与方法●模式Pattern●考虑到相关因素时通用问题的可复用方案●持久性Persistence●对象怎样永久被保存的问题●持久对象Persistent Object●一个保存到永久存储的对象●多态Polymorphism●以不同方式响应同一消息的不同对象,使对象可以不必知道相互的类型而交互●单一继承Single Inheritance●一个类直接从唯一一个类继承●构造型Stereotype●表示一种建模元素的通用用法●子类SubClass●如果类B继承自类A,则B是A的子类(派生类)●父类SuperClass●如果类B继承自类A,则A是B的子类(基类)●临时对象Transitory Object●一个没有被保存到永久存储的对象第二章 可视化建模技术1、根据所给参考教程《UML建模技术——实验指导书 & Rose使用指南》实验一,熟练掌握Rational Rose建模工具软件的绘图基本技能,主要作为课后上机实验内容;2、举例说明描绘软件现实业务存在的模型?为什么要建模?总结UML在软件工程中的作用以及使用UML建模的必要性。