第10章 面向对象的设计方法
- 格式:ppt
- 大小:1.96 MB
- 文档页数:22
结构化方法和面向对象方法的对比1 结构化和面向对象的方法1.1 结构化方法结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界。
用结构化开发能提高软件的运行效率,且能够增加软件系统的可靠性。
结构是指系统内各个组成要素之间的相互联系、相互作用的框架。
结构化的系统分析设计方法是一种传统的系统开发方法。
针对软件生存周期各个不同的阶段,有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。
1.1.1 结构化分析结构化分析是面向数据流进行需求分析的方法,主要采用数据流图DFD (Data Flow Diagram)来描述边界和数据处理过程的关系。
结构化分析的主要工作是使用数据流程图、数据字典、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
1.1.2 结构化设计结构化设计是将数据流图表示的信息转换成程序结构的设计描述,和功能的实现方法,并且采用系统结构图表示系统所具有的功能和功能之间的关系。
结构化设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系)。
第二步详细设计,即过程设计。
在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图1.2 面向对象方法面向对象方法是从内部结构上模拟客观世界,其基本思想为:对象是对现实世界客观实体的描述,均由其属性和相关操作组成,是系统描述的基本单位。
面向对象方法更强调运用人类在日常的逻辑思维中经常采用的思想方法和原则,例如抽象、分类、继承、聚合、封装等,这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出来。
《面向对象程序设计》课程标准一、课程概述《面向对象程序设计》是计算机科学与技术专业的重要专业课程。
当前面向对象方法已逐渐取代面向过程方法成为程序设计领域的主流技术,这是程序设计发展历史的一个里程碑。
本课程的教学目标是以C++语言为工具,向学生介绍面向对象程序设计语言与面向对象程序设计方法。
通过课堂教学、课外练习与上机实习相结合,使学生在程序设计方法、程序设计语言与程序设计工具三方面受到严格、系统的训练,培养学生更系统、更严密地分析问题和解决问题的思维能力,从而能熟练地利用计算机解决实际问题,为后续专业课程打下扎实的基础。
通过本课程的教学,要求学生:(1)牢固掌握C++语言基本数据类型、复合数据类型、基本控制结构、函数以及面向对象程序设计中类与对象、继承、多态性等基本概念;(2)掌握类属机制、C++输入输出机制、程序断言、异常处理等高级机制;(3)对面向对象程序构造方法、抽象数据类型、软件重用思想、其他程序设计风范,其他面向对象程序设计语言有所了解。
本课程的先修课程为“计算机导论”、“C语言”,后续课程主要是“数据结构与算法”、“编译原理”与“软件工程”。
二、课程目标1.知道《面向对象程序设计》这门学科的性质、地位、研究范围、学科进展和未来方向等。
对面向对象程序构造方法、抽象数据类型、软件重用思想、其他程序设计风范、其他面向对象程序设计语言有所了解。
2.理解该门学科的主要概念、基本原理和策略等。
3.掌握C++语言基本数据类型、复合数据类型、基本控制结构、函数以及面向对象程序设计中类与对象、继承、多态性等基本概念;掌握类属机制、C++输入输出机制、程序断言、异常处理等高级机制。
4.能够把所学的原理应用到具体的实践中去,如能利用C++语言编写程序解决一些具体的问题,培养学生发现、分析和解决问题的能力等。
三、课程内容和教学要求这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。
这四个层次的一般涵义表述如下:知道———是指对这门学科和教学现象的认知。
面向对象设计方法主要特征
面向对象设计方法的主要特征包括:
1. 封装(Encapsulation):将数据和对数据的操作封装在一起,通过定义类来实现。
类中的数据称为属性,对属性的操作称为方法。
封装可以隐藏内部实现细节,提供简化的接口,提高代码的可重用性和可维护性。
2. 继承(Inheritance):通过继承机制,一个类可以派生出子类,子类会继承父类的属性和方法。
继承允许代码的复用,并且可以构建类的层次结构,实现抽象和特化。
3. 多态(Polymorphism):多态是指同一个类的不同对象对同一消息采取不同的行为。
多态提供了一种灵活的方式来处理不同类型的对象,通过动态绑定实现方法的调用。
4. 抽象(Abstraction):抽象是指忽略实现细节,关注事物的本质和共性特点。
通过抽象,可以定义出适用于多个具体类的通用类,提高代码的灵活性和可扩展性。
5. 组合(Composition):组合是指将多个对象组合成一个更大的对象,形成部分-整体的关系。
通过组合,可以构建复杂的结构和功能。
6. 接口(Interface):接口定义了一个类或组件对外提供的操作和属性,而不关心其具体实现。
接口可以约束不同类的行为,实现代码的解耦和可插拔性。
7. 聚合(Aggregation):聚合是指将多个对象聚集在一起,形成所谓的整体。
聚合是一种弱关联关系,整体和部分可以分离存在。
通过运用这些特征,面向对象设计方法可以模拟现实世界中的情景和关系,使系统具有更好的可维护性、可扩展性和重用性。
第一章测试1.下面关于功能分解法的优点描述错误的是A:与模块化编程结合使用后,使开发效率有很大提高B:以系统需要提供的功能为中心组织系统C:删除了GoTo语句,使软件能得到有效维护D:具有较强的应对需求变化的能力答案:D2.下面的开发方法能够兼顾功能和数据的是A:面向对象方法B:信息建模法C:结构化方法D:功能分解法答案:A3.结构化方法采用数据流、加工进行建模,需求变化极易引起两者的变动,进而引起其他数据流和加工的变化A:错B:对答案:B4.功能分解法以功能作为系统的构造块,数据组织能力强。
A:错B:对答案:A5.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。
因此面向对象方法有许多特征,如软件系统是由对象组成的;();对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
A:强调需求分析重要性B:把对象划分成类,每个对象类都定义一组数据和方法C:对既存类进行调整D:开发过程基于功能分析和功能分解答案:B第二章测试1.下列关于UML叙述正确的是()。
A: UML仅是一组图形的集合B: UML仅适用于系统的分析与设计阶段C: UML是一种语言,也是系统设计的方法D:在信息系统开发过程方面,UML是一种建模语言,不是对开发过程的细节进行描述的工具答案:D2.UML的最终产物就是最后提交的可执行的软件系统和()。
A: 类图B: 动态图C: 用户手册D: 相应的软件文档资料答案:D3.UML提供了4种静态图用于对系统的静态方面进行可视化、详述、构造和文档化。
其中()是面向对象系统建模中最常用的图,用于说明系统的静态设计视图。
A: 部署图B: 组件图C: 对象图D: 类图答案:D4.UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。
其当需要显示代码物理结构,并用于实际的编程时,应该选择()。
2020智慧树知到《创新设计梦工场》章节测试题【完整答案】智慧树知到《创新设计梦工场》章节测试答案绪论1、设计以产品为目标,既是一个过程,又要面对创意、需求、功能、方案、评价等不同的对象,分阶段完成。
A.对B.错答案: 对第一章1、设计是一个( )的创新过程,是一个多种学科的结合体。
A.单学科B.双学科C.跨学科D.多学科答案: 跨学科2、设计是一个循环往复的过程,从( )开始,直至能够自主设计。
A.模仿B.自己C.他人D.自主答案:模仿3、设计要从创意出发,需要经历( )、技术加工、直至产品完成的一系列工作过程。
A.寻找原理B.方案设计C.功能实现D.产品呈现答案: 寻找原理,方案设计,功能实现4、产品设计的主要内容包括:( )、工具方法和作用系统。
A.创意概念B.环境参数C.需求条件D.原理方案答案: 创意概念,环境参数,需求条件,原理方案5、对所有技术过程而言,作业对象可归纳为:( )几大类。
A.物料B.能量C.边界条件D.信息答案: 物料,能量,信息6、根据设计阶段的不同,将设计区分为:概念设计、需求设计、( )等。
A.功能设计B.原理设计C.方案设计D.技术设计答案: 功能设计,原理设计,方案设计,技术设计7、利用创意概念,并以其为设计主线,贯穿整个产品全过程设计的设计方法称为技术设计。
A.对B.错答案: 错8、一把钥匙在特殊情况下可设计成开多把锁。
A.对B.错答案: 对9、仿生设计方法是指通过研究、模拟生物的感觉、语言、智能等信息,及其储存、提取、传输等方面的机理,构思和研制出新的信息系统载体的方法。
A.对B.错答案: 对10、设计方法可分为面向过程的设计和面向对象的设计。
A.对B.错答案: 对第二章1、把设计系统的总功能分解为比较简单的分功能,逐层分解下去,这样就形成了功能的树型结构,称为功能树,其末端就是( )。
A.功能元B.功能节C.功能单元D.功能单位答案: 功能元2、逻辑功能元主要用于( )功能,其基本逻辑关系为“与”、“或”、“非”。
第10章例题分析与解答作者:不详来源:2006年9月4日发表评论进入社区一、填空题1.面向对象方法认为系统是由应用域的___对象___组成。
2.对象具有状态,描述对象的状态用它的_属性值_____。
3.对象的抽象是_类_____。
4.类之间有两种结构关系,它们是分类关系和__组装____关系。
5.面向对象程序设计语言与其他程序设计语言的最主要差别是它具有_继承性_____。
6.动态模型描述了系统的__动态行为____。
二、选择题1.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( D)关系。
A.组装B.整体成员C.has aD.一般具体2.面向对象分析阶段建立的三个模型中,核心的模型是( C )模型。
A.功能B.动态C.对象D.分析3.对象模型的描述工具是( C)。
A.状态图B.数据流图C.对象图D.结构图4.在有多重继承的类层次结构中,它的类层次结构是(B )层次结构。
A.树型B.网状型C.环型D.星型5.描述类中对象的行为,反映了状态与事件关系的是( B )。
A.对象图B.状态图C.流程图D.结构图6.在确定属性时,所有( C)是候选的属性。
A.动词B.名词C.修饰性名词词组D.词组三、应用题1.建立窗口系统的对象模型。
问题陈述如下:窗口分为对话窗、图形窗、滚动窗三种;对话窗中有若干对话项,由唯一的项名字来确定,对话项分为按钮、选择项、正文项三种,选择项中有若干对话项入口;图形窗中有若干形状元素,形状元素分为一维形状和二维形状,一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、矩形、多边形,其中多边形和折线由若干有序顶点组成,正文窗是滚动窗的一种,而图形滚动窗既是一种图形窗又是一种滚动窗。
2.在学校教学管理系统中,学生查询成绩就是系统中的一次交互,请用状态图来描述这种查询的交互行为。
答案:一、填空题1.对象2.属性值3.类4.组装5.继承性6.动态行为二、选择题1.D2.C3.C4.B5.B6.C三、应用题1.2.第10章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.对象2.类3.属性4.操作5.消息6.消息传递7.方法8.关系9.关联10.一般具体关系 11.整体部分关系12.继承13.单重继承 14.多重继承15.多态性 16.角色17.受限关联 18.封装19.对象模型20.动态模型21.功能模型 22.事件23.状态24.事件追踪25.状态图26.动作27.活动28.处理29.数据流30.动作对象31.数据存储对象 32.重用性二、填空题1.对象具有封装性,实现了__数据与操作____的结合。
第10章面向对象分析一、选择题1._____是系统一个特定执行期间所发生的事件序列。
【答案】脚本2.功能模型描述系统内的计算,它和_____、_____共同构成系统模型结构的三大支柱。
【答案】对象模型;动态模型3.状态是对象的_____、_____的一种抽象。
【答案】属性值;链接4.在对象模型中,访问操作是直接从类的_____和_____中导出的。
【答案】属性;关联5.对象模型为建立_____和_____,提供了实质性框架。
【答案】动态模型;功能模型6.功能模型由多个_____组成,每个_____说明了操作和结束的含义。
【答案】数据流图;数据流图7.功能模型由多张数据流图组成。
数据流图中包含_____、_____、_____对象和_____对象。
【答案】处理;数据流;动作;数据存储8.事件跟踪图用来表示_____、_____对象和_____对象。
_____和_____可用一条垂直线表示,各_____用水平箭头表示,箭头方向是从_____对象指向_____对象。
【答案】事件;事件的接收;发送;接收对象;发送对象;事件;发送;接收9.状态转换图是_____的重要工具。
【答案】启发分析员认识对象服务10.说明一个状态可采用_____、_____、_____、_____、_____等内容描述。
【答案】状态名;状态目的描述;产生该状态的事件序列;表示状态特征的事件;在状态中接收的条件二、填空题1.一个()能用不同的方法表示它的特征。
A.事件B.抽象C.状态D.脚本【答案】C【解析】状态是对象的属性值和链接的一种抽象。
根据影响对象总的行为的性质,一系列组合在一起是一个状态。
它能用不同的方法表示它的特征。
2.在对象模型中,访问操作是直接从类的属性和关联中导出的。
下列不是对象模型的访问操作的是()。
A.查询B.动作C.抽象D.活动【答案】C【解析】对象模型的访问操作主要包括三大类:查询、活动和动作。
3.()对整个对象的状态/行为关系的图示,它附属于该对象的类描述模板。
第10章 信息系统开发的基础知识第一节 系统概述一、概述1.系统:由相互作用和互相依赖的若干部分组成的具有特定功能的有机整体。
2.信息系统:用以收集、处理、存储、分发信息的相互关联的组件的集合,其作用在于支持组织的决策与控制。
(戈登·戴维斯)此定义前半部分说明了信息系统的技术构成,称作技术观;后半部分说明了信息系统在组织中的作用,称作社会观,合起来称作社会技术观。
注:①输入是数据,输出是(有用的)信息,反馈是进行有效控制的重要手段; ②计算机不是信息系统固有的,但我们这里研究的是基于计算机的信息系统。
二、结构1.信息系统的组成包括七大部分:计算机硬件系统;软件系统;数据及其存储介质;通信系统;非计算机系统的信息收集处理设备;规章制度;工作人员。
2.信息系统的概念结构信息系统从概念上来看是由信息源、信息处理器、信息用户和信息管理者等四大部分组成,它们之间的关系如图所示。
信息系统的一切设计与实现都要围绕信息用户(目标用户)的需求;信息管理者要起到明确需求、协调资源和分配资源的角色——CIO (Chief Information Officer ,首席信息主管)信息系统基础知识3.信息系统的层次结构管理决策分为三层:战略计划、战术管理、作业处理。
信息系统也可以从纵向分解为战略计划层、战术管理层、业务处理层。
4.信息系统的功能结构(1)从技术角度看信息系统功能结构(2)从业务角度看信息系统的功能结构(3)信息系统的软件结构(4)信息系统的硬件结构①集中式②分布-集中式③分布式第一节系统概述三、信息系统的主要类型(1)面向作业处理的系统①办公自动化(Office Automation)②事务处理(Transaction Processing)系统③数据采集与监测(Data Acquiring and Monitoring)系统(2)面向管理控制的系统①电子数据处理(EDP)/数据处理(DP)/事务处理(TP)系统是管理信息系统的初级阶段。
习题第十章面向对象的程序设计一、选择题1.以下关于visual foxpro类的说法,不正确的是()。
A.类具有继承性和封装性B.用户必须给基类定义属性,否则出错C.子类一定具有父类的全部属性D.用户可以按照已有的类派生出多个子类2.下面关于“类”的描述,错误的是()。
A.一个类包含了相似的有关对象的特征和行为方法B.类只是实例对象的抽象C.类可以按所定义的属性、事件和方法进行实际的行为操作D.类并不进行任何行为操作,它仅仅表明该怎样做3.类是一组具有相同属性和相同操作的对象的集合,类之间共享属性和操作的机制称为()。
A.多态性B.动态绑定C.静态绑定D.继承4.命令按钮组是()。
A.控件B.容器C.控件类对象D.容器类对象5.下列关于面向对象程序设计(OOP)的叙述,错误的是()。
A. OOP的中心工作是程序代码的编写B. OOP以对象及其数据结构为中心展开工作C. OOP以“方法”表现处理事物的过程。
D. OOP以“对象”表示各种事物,以“类”表示对象的抽象。
6.下列基类中是容器类的是()。
A.表单B.命令按钮C.列表框D.单选按钮7.在VISUAL FOXPRO系统中,以下关于事件的叙述错误的是()。
A.事件是每个对象可以识别和相应的某些行为和动作B.事件不能适用于多种控件C.事件是通过用户的操作性为引发的D.当事件发生时,将执行包含在事件过程中的全部代码8.下面关于属性、方法和事件的叙述中,错误的是()。
A.属性用于描述对象的状态,方法用于表示对象的行为B.基于同一个类产生的两个对象可以分别设置自己的属性值C.在新建一个表但是,可以添加新的属性、方法和事件D.事件代码也可以像方法一样被显示调用9.任何对象都有自己的属性,下列关于属性的叙述中,正确的是()。
A.属性是对象所具有的固有特征,通常用各种类型的数据来表示B.属性是对象所具有的内部特征,通常用各种类型的数据来表示C.属性是对象所具有的外部特征,通常用各种类型的数据来表示D.属性是对象所具有的固有方法,通常用各种程序代码来表示10.下列说法中错误的是()。
习题第1章面向对象方法概论1、与传统开发方法相比,面向对象方法有什么优点?2、查阅资料,进一步讨论UML与面向对象方法的关系。
3、封装的目的是什么?在面向对象方法中封装的目的是如何达到的?4、针对你过去使用传统开发方法所建造的系统的不足,总结一下问题的原因。
考虑如果使用面向对象方法,在哪些方面可能会获益。
5、面向对象方法的一个主要原则是抽象。
思考一下在工作和学习中你经常在什么场合下运用抽象原则。
第2章什么是面向对象分析1、简述OOA模型及OOA过程。
2、为什么要进行OOA?3、简述问题域与系统责任间的关系。
4、OOA是如何应对需求变化性的?5、为什么把用类图构建的模型称为基本模型?6、你对本章讲述的分析面临的主要问题有过什么实际感受?请举例说明。
第3章建立需求模型——用况图1、用况之间的关系可为包含关系、扩展关系或继承关系,三种关系之间有相同之处吗?它们之间的区别又在哪?2、论述用况图在面向对象方法中的地位。
3、怎样理解把系统内外的交互情况描述清楚了,就明确了系统边界?4、对于3.3.1节中的收款用况,补充用信用卡付款和使用优惠卡的描述。
5、通常自动售货机会按用户的要求进行自动售货,供货员会巡查向其内供货,取款员会定时取款。
针对上述要求,请建立用况图,并描述各个用况。
6、现要开发一个购书积分系统,其中至少要具有申请积分卡、增加积分、查看积分和按积分奖励功能。
请建立用况图,并描述各个用况。
第4章建立类图1、论述类与对象之间的关系以及关联与链之间的关系。
这四者之间还有什么联系吗?2、在什么情况下使用组合关系进行建模?3、总结继承关系的用途。
4、图4-44表明,一名教师可以在一个或多个系中任职,而且在二者间使用的是聚合关系。
在二者间可以使用组合关系吗?请解释原因。
5、举例说明类继承结构中的重载与多态。
6、面包是由面包片组成的。
面包与面包片之间的关系是聚合还是组合?7、一本书含有若干章,一章有若干节,一节由一些段落和图组成,一个段落由一些句子组成。
2020智慧树知到《创新设计梦工场》章节测试题【完整答案】智慧树知到《创新设计梦工场》章节测试答案绪论1、设计以产品为目标,既是一个过程,又要面对创意、需求、功能、方案、评价等不同的对象,分阶段完成。
A.对B.错答案: 对第一章1、设计是一个( )的创新过程,是一个多种学科的结合体。
A.单学科B.双学科C.跨学科D.多学科答案: 跨学科2、设计是一个循环往复的过程,从( )开始,直至能够自主设计。
A.模仿B.自己C.他人D.自主答案:模仿3、设计要从创意出发,需要经历( )、技术加工、直至产品完成的一系列工作过程。
A.寻找原理B.方案设计C.功能实现D.产品呈现答案: 寻找原理,方案设计,功能实现4、产品设计的主要内容包括:( )、工具方法和作用系统。
A.创意概念B.环境参数C.需求条件D.原理方案答案: 创意概念,环境参数,需求条件,原理方案5、对所有技术过程而言,作业对象可归纳为:( )几大类。
A.物料B.能量C.边界条件D.信息答案: 物料,能量,信息6、根据设计阶段的不同,将设计区分为:概念设计、需求设计、( )等。
A.功能设计B.原理设计C.方案设计D.技术设计答案: 功能设计,原理设计,方案设计,技术设计7、利用创意概念,并以其为设计主线,贯穿整个产品全过程设计的设计方法称为技术设计。
A.对B.错答案: 错8、一把钥匙在特殊情况下可设计成开多把锁。
A.对B.错答案: 对9、仿生设计方法是指通过研究、模拟生物的感觉、语言、智能等信息,及其储存、提取、传输等方面的机理,构思和研制出新的信息系统载体的方法。
A.对B.错答案: 对10、设计方法可分为面向过程的设计和面向对象的设计。
A.对B.错答案: 对第二章1、把设计系统的总功能分解为比较简单的分功能,逐层分解下去,这样就形成了功能的树型结构,称为功能树,其末端就是( )。
A.功能元B.功能节C.功能单元D.功能单位答案: 功能元2、逻辑功能元主要用于( )功能,其基本逻辑关系为“与”、“或”、“非”。