什么是面向对象程序设计
1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。
2011软件工程期末试卷答案
2010 — 2011 学年第 一 学期期末考试试卷 《 软件工程 》 开课单位: 计算分院 ;考试形式:闭、开卷;考试时间:__2010_年__1__月__17_日; 所需时间: 120 分钟 一._单项选择题_____(本大题共__15__题,每题___1___分,共___15___分。) 1. 以下不是软件危机的典型表现的是: ( ) 。 A. 对软件开发成本和进度的估计常常很不准确 B. 用户对“已完成的”软件系统不满意的现象经常发生 C. 软件产品的质量往往靠不住 D. 采用面向对象方法开发软件 D 2.以下哪个等级是CMM 中包含“需求管理”KPA 的资质级别 ( ) 。 B A. 优化级 B. 可重复级 C. 管理级 D. 定义级 3. 下列哪个不是软件工程方法学中的要素( )。 C A. 方法 B. 工具 C. 程序 D. 过程 4. 下列模块的独立性的耦合方式中,最好的是( ) C A.公共耦合 B. 控制耦合 C. 数据耦合 D. 内容耦合 5.概要设计中,开发人员要解决的最重要的问题是 ( ) 。 D A. 要让软件做什么 B. 要给该软件提供哪些信息 C. 要求软件工作效率怎样 D. 要让该软件模块具有何种结构 6. 为了提高模块的独立性,模块内部最好是 ( ) 。C A. 逻辑内聚 B. 时间内聚 C. 功能内聚 D. 通信内聚 7. 程序的三种基本控制结构的共同特点是 ( ) 。 C A. 不能嵌套使用 B. 只能用来写简单程序 C. 只能一个入口和一个出口 D. 已经用硬件实现
8. 以下说法错误的是( ) 。 A A. 面向对象分析与面向对象设计的定义没有明显区别 B. 从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程 C. 在实际的软件开发过程中,面向对象分析与面向对象设计的界限是模糊的 D. 面向对象分析和面向对象设计活动是一个多次反复迭代的过程 9. 软件测试过程中的确认测试主要是为了发现( ) 阶段的错误。A A. 需求分析 B. 概要设计 C. 详细设计 D. 编码 10. 在面向对象的高层设计体系结构中,( ) 是用来描述用户一般使用软件习惯的部分C A. 人机交互界面 B. 问题论域 C. 系统交互界面 D. 数据管理 11. 为适应软硬件环境变化而修改软件的过程是( ) 。B A. 校正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护 12. 在UML的各类图中,()图是描述软件功能的。A A 用例图 B 类图 C 活动图 D 顺序图 13.()不属于OO三要素。D A.对象 B. 继承 C.封装 D.多态 14.()在ATM机系统中,下列哪个不能在面向对象设计中被定义为类。C A 中央计算机 B 柜台事务 C 拨号 D 营业厅 15.在黑盒测试中,作为相关黑盒测试有效补充的测试方法是( ) 。B A. 等价类划分法 B. 边界值分析法 C. 错误推测法 D. 因果图法 请从供选择的答案中选出正确或合适的答案填入( ) 中。 1、(5分)软件需求分析的任务不应包括( A ) ,进行需求分析可使用多种工具,但( B )是不适用的。在需求分析中,开发人员要从用户那里解决的最重要问题是( C ) 。需求规格说明书的内容不应包括( D ) 。该文档在软件开发中具有重要作用,但其作用不应包括( E ) 。 供选择的答案:33124 A:①问题分析②信息域分析③结构化程序设计④确定逻辑模型 B:①数据流程图②判定表③PAD图④数据词典 C:①要让软件做什么②要给该软件提供哪些信息 ③要求软件工作效率怎样④要让该软件具有何种结构 D:①对重要功能的描述②对算法的详细过程描述
2011级软件工程专业大一111课程设计大纲
大一课程设计大纲 一、课程设计的目的 大一课程设计是完成大一学年度的课程之后开设的实践教学环节,主要以 C++语言为基础设计实现一个完整的系统。通过课程设计,使学生进一步理解 C++语言的基础知识,掌握常用的算法,并学会运用所学的知识解决实际问题,培养学生综合运用所学专业知识分析和解决问题的能力。 二、课程设计的基本内容和要求 本课程是一门综合性设计课程,内容涵盖《C++程序设计》课程各主要章节。要求学生根据具体设计题目的要求,综合运用学过的基础理论知识、基本工具、与设计课题相关的参考资料以及实验室所具备的软硬件环境,设计一个功能完整的系统。 基本内容和要求如下: 1.选题,每人独立完成一个课题。以后面给出的参考题目作为设计课题。 2.按时按质按量完成课程设计,禁止抄袭他人的程序。根据课程设计任务书的要求,理解课题的意义与目标,学习掌握本设计题目所需的知识及相关技术,对系统进行分析,给出整体设计方案与每个模块单元的详细设计方案,编写、调试程序模块,最后对系统进行测试。 3.答辩。课程设计完成后,以个人为单位进行答辩,首先简要陈述设计思路,然后回答问题。 4.在程序正文前按照以下格式说明所做的课题与个人信息: /* 题目: 作者: 班级: 学号: */ 5.程序书写格式要规范,并加入适当的注释。 三、课程设计的时间安排 课程设计共2周,时间安排如下: 完成时间:暑假或9月份开学后的前两周(能否安排集中的两周时间待定,得通过学院批准) 答辩时间:初定开学后第二周的周四至周五答辩(因为两个班人数较多)。 四、课程设计的考核 本课程的考核方式为:对学生单独进行验收和答辩,学生必须演示程序,并回答教师提出的问题。根据课程设计的质量和答辩的情况综合给出成绩。 课程设计成绩考核采用:优、良、中、及格、不及格五级评分制,评分标准如下:
面向对象程序设计教程答案
面向对象程序设计教程(C++语言描述)题解与课程设计指导 第1章 面向对象程序设计概论 一、名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 二、填空题 (1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。 (2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。
(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。 (5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、选择题(至少选一个,可以多选) (1)面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 (2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。 A. 抽象 B. 继承 C. 封装 D. 多态 (3)在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 (4)面向对象程序设计中,对象与对象之间的通信机制是(C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与C语言的关系的描述中,(D )是错误的。 A. C语言是C++的一个子集 B. C语言与C++是兼容的 C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的 【结果分析】 C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。 (6)面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。
软件与软件工程-面向对象设计
第9章面向对象设计
9.1 面向对象设计与结构化设计 与结构化的设计相比,面向对象的设计更符合复杂的、随机性较强和考虑并发性的系统软件设计,而不适合逻辑性很强的系统软件设计。结构化软件设计一般从系统功能入手,按照需求将系统功能分为若干个子功能模块。但是,用户的需求是在不断变化的。需求的改变往往会对功能模块产生影响,从而对整个系统产生影响,而面向对象的设计基于类、对象、封装、继承等概念,相比之下,需求的变化对系统的局部影响并不容易扩展到全局。因此,面向对象设计方法比结构化设计方法更具有优势,使用范围更广。 由于在类中封装了属性和方法,因此在面向对象的类设计中已经包含了面向过程中的过程设计。此外,与面向过程中的数据设计所不同的是,面向对象设计中的数据设计并不是独立进行的,面向对象设计中的
9.2 面向对象设计与面向对象分析的关系 设计阶段的任务是及时把分析阶段得到的需求转变成符合各项要求的系统实现方案。与传统的软件工程方法不同的是,面向对象的方法不强调需求分析和软件设计的严格区分。实际上,面向对象的需求分析和面向对象的设计活动是一个反复迭代的过程,从分析到设计的过渡,是一个逐渐扩充、细化和完善分析阶段所得到的各种模型的过程。严格的意义上来讲,从面向对象分析到面向对象设计不存在转换问题,而是同一种表示方法在不同范围的运用。面向对象设计也不仅仅是对面向对象分析模型进行细化。 面向对象分析到面向对象设计是一个平滑的过渡,即没有间断没有明确的分界线。面向对象分析建立系统的问题域对象模型,而面向对象设计是建立求解域的对象模型。
?9.3.1 面向对象设计的过程 面向对象的设计过程一般进行以下几个步骤。 (1)建立软件体系结构环境图 在软件体系结构设计开始的时候,设计应该定义与软件进行交互的外部实体(其他系统、设备和人员等)以及交互的特性。一般在分析建模阶段可以获得这些信息,并使用软件体系结构环境图对环境进行建模,描述系统的出人信息流、用户界面和相关的支持处理。一旦建立了软件体系结构的环境图,描述出所有的外部软件接口,软件架构师就可以通过定义和求精实现软件体系结构的构件来描述系统的结构。这个过程可一直迭代,直到获得一个完善的软件体系结构。在设计的初始阶段,软件架构师用软件体系结构环境图对软件与外部实体交互的方式进行建模。
面向对象程序设计教程答案
面向对象程序设计教程(C++吾言描述)题解与课程设计指导 面向对象程序设计概论 一、 名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公 共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的 单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对 象要求另一个对象实施某种操作的一个请求。 二、 填空题 ( 1) 目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种 重要的程序设计方法。 (2) 结构化程序设计方法中的模块由顺序、选择和循环 3 种基本结构组成。 ( 3) 在结构化程序设计方法中,程序可表示为程序 =数据结构 +算法; 而面向 对象的程序设计方法,程序可表示为程序 =对象 +消息。 ( 4) 结构化程序设计方法中的基本模块是过程; 而面向对象程序设计方法 中的基本模块是类。 ( 5) 面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、 选择题(至少选一个,可以多选) ( 1) 面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 ( 2) 面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制 叫做( C )。 A. 抽象 B. 继承 C. 封装 D. 多态 ( 3) 在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 ( 4) 面向对象程序设计中,对象与对象之间的通信机制是( C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与 C 语言的关系的描述中,(D )是错误的。 A. C 语言是C++勺一个子集 B. C 语言与C++是兼容的 C. C++对C 语言进行了一些改进 D. C++和C 语言都是面向对象的 【结果分析】 C 语言是面向过程的。C++吾言是一种经过改进的更为优化的 C 语言,是一种混 合型语言,既面向过程也面向对象。 ( 6) 面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依 存、不可分割的整体来处理。 A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象 第1
面向对象程序设计(答案)
学号:姓名: 第三章面向对象程序设计作业 一、判断题 1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。对 2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。对 3、接口中的成员变量全部为常量,方法为抽象方法。对 4、抽象类可以有构造方法,可以直接实例化。错 5、对static方法的调用可以不需要类实例。对 6、包含抽象方法的类一定是抽象类。对 7、方法中的形参可以和方法所属类的属性同名。对 8、接口无构造器,不能有实例,也不能定义常量。错 9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。对 10、Java应用程序的入口main方法只有一种定义法。对 二、选择题 1、下列答案正确的是(A ) A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为public B) 在同一个Java源文件中只能包含一个类,并被声明为public C) 在同一个Java源文件中可以包含多个类,都可以被声明为public D) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default 2、Java实现动态多态性是通过( B )实现的。 A) 重载B) 覆盖 C) 接口D) 抽象类 3、下列哪一个是正确的方法重载描述( A ) A) 重载方法的参数类型必须不同 B) 重载方法的参数名称必须不同 C) 返回值类型必须不同 D) 修饰词必须不同 4、final关键字不可以用来修饰( D ) A) 类B) 成员方法 C) 域D) 接口 5、接口的所有成员方法都具有( B )属性 A) private, final B) public, abstract C) static, protected D) static 6、Java的封装性是通过(A )实现的 A) 访问控制B) 设计内部类 C) 静态域和静态方法D) 包 7、下列接口或类不属于.*包的是( D ) A) Collection B)Vector C) Map D) Integer 8、下述哪一组方法,是一个类中方法重载的正确写法( A ) A) int addValue( int a, int b ){return a+b;}
传统方法学与面向对象区别
小议传统方法学与面向对象的区别 姓名:戴育兵 学号:G1030510 年级 :大二 班级: .net(2)班
摘要 传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功。但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。 在20世纪60年代后期出现的面向对象编程语言Simdla_67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。
软件工程传统方法学 1.传统方法学概述 随着计算机应用领域的不断拓广,各种各样的问题也不断涌现,当问题严重到开发人员无法控制的时候便产生了软件危机。软件危机的出现,促使了软件工程学的形成和发展。随之整合整套技术的软件工程方法学广泛应用,主流之一就是传统方法学。传统方法学在软件开发过程中占据相当大的比重,因为其悠久的历史而为很多软件工程师青睐。如果说自然语言和编程语言之间有一道难以跨越的鸿沟,传统方法学就是跨越这道鸿沟的桥梁。 传统方法学又称生命周期方法学或结构化范型。一个软件从开始计划起,到废弃不用止,称为软件的生命周期。在传统的软件工程方法中,软件的生存周期分为需求分析、总体设计、详细设计、编程和测试几个阶段。 传统方法学使用的是结构化分析技术来完成需求分析阶段的工作。软件工程学中的需求分析具有两方面的意义。在认识事物方面,它具有一整套分析、认识问题域的方法、原则和策略。这些方法、原则和策略使开发人员对问题域的理解比不遵循软件工程方法更为全面、深刻和有效。在描述事物方面,它具有一套表示体系和文档规范。但是,传统的软件工程方法学中的需求分析在上述两方面都存在不足.它在全局范围内以功能、数据或数据流为中心来进行分析。这些方法的分析结果不能直接地映射问题域,而是经过了不同程度的转化和重新组合。因此,传统的分析方法容易隐蔽一些对问题域的理解偏差,与后续开发阶段的衔接也比较困难。 在总体设计阶段,以需求分析的结果作为出发点构造出一个具体的系统设计方案,主要是决定系统的模块结构,以及模块的划分,模块间的数据传送及调用关系。详细设计是在总体设计的基础上考虑每个模块的内部结构及算法,最终将产生每个模块的程序流程图。但是传统的软件工程方法中设计文档很难与分析文档对应,原因是二者的表示体系不一致,所谓从分析到设计的转换,实际上并不存在可靠的转换规则,而是带有人为的随意性,从而很容易因理解上的错误而留下隐患。 编程阶段是利用一种编程语言产生一个能够被机器理解和执行的系统,测试是发现和排除程序中的错误,最终产生一个正确的系统。但是由于分析方法的缺陷很容易产生对问题的错误理解,而分析与设计的差距很容易造成设计人员对分析结果的错误转换,以致在编程时程序员往往需要对分析员和设计人员已经认识过的事物重新进行认识,并产生不同的理解。因此为了使两个阶段之间能够更好的衔接,测试就变得尤为重要。 软件维护阶段的工作,一是对使用中发生的错误进行修改,二是因需求发生了变化而进行修改。前一种情况需要从程序逆向追溯到发生错误的开发阶段。由于程序不能映射问题以及各个阶段的文档不能对应,每一步追溯都存在许多理解障碍。第二种情况是一个从
软件工程2010 2011一试卷A答案
内蒙古工业大学2010—2011学年第一学期 《软件工程》期末考试试卷(A)(课程代码:020214028) 参考答案 出卷人:刘利民考试时间: 2010.12.17 参考答案制定人:刘利民参考答案审核人: 注意事项: 1. 本试卷适用于2008级计算机科学与技术、软件工程专业学生 使用。 2. 本试卷参考答案共5页,满分100分,答题时间120分钟。 1.选择题(本大题共10道小题,每题2分,共20分) 1、软件工程的中心课题是() B. 控制复杂性 2、软件工程的三要素是() A. 方法、工具、过程 3、需求分析阶段常用()说明软件系统的数据模型 D.E-R图 4、需求分析阶段要分析用户的各种需求,那种是最重要的() A. 功能 5、判定表是用于描述结构化分析方法中( )环节的工具 C. 流程描述 6、软件是一种() C. 逻辑产品
7、两个模块使用同一个全局变量,模块间的这种耦合称为() C. 公共耦合 8、某个应用软件原来只有五个模块,现在用户又提出了新的需求,需要给软件增加新的功能,这种软件维护称为() B. 完善性维护 9、在面向对象分析方法中,常常用()图描述软件的对象模型 B. 类及对象图 10、面向对象程序设计中,那种图不属于动态模型() A.用例图 2.判断正误(本大题共10道小题,每小题2分,共20分) 1.软件的生产与硬件不同,在它的开发过程中没有明显的制造过 程。(正) 2.结构化分析过程,实质就是一种建模活动(正) 3.测试用例应由输入数据和实际的输出结果两部分组成(误) 4.软件能力成熟度是评价软件可靠性的标准(误) 5.路径测试属于白盒测试(正) 6.模块化不但可以降低问题复杂性,还可以减少开发工作量,从而 降低开发成本,提高软件生产率(正)7.在进行用户数据输入时,要尽量减少用户输入动作的数量,最主 要的是减少击键的数量(正)8.采用面向对象方法相对于传统的生命周期法,提高了软件的可维 护性(正) 9.调试和测试是同一个概念在不同阶段的叫法(误) 10.UML是一种编程工具(误)
面向对象程序设计完整版
Object- Orien ted Programmi ng C++ 主讲成长生 东华大学计算机科学与技术学院
第一章概述 § 1.1 面向对象程序设计的基本思想 C++是基于C语言发展的,又冲破C语言局限的面向对象的程序设计语言。它与Java 语言都作为当前计算机科学的主流语言, 越来越受到用户的欢迎。 要弄清楚什么是面向对象的程序设计, 首先了解和回顾传统的 ( Pascal(或C))结构化程序设计方法及其设计思想、程序结构及特点。SP(Structure Programming)是60 年代诞生的针对当时爆发的所谓”软件危机” , 为此发展形成了现代软件工程学的基础。 SP的总的设计思想是: . 自顶向下、层次化 . 逐步求精、精细化 程序结构是按功能划分基本模块的树型结构, 使模块间的关系尽可能简单独立。因此SP的程序的基本特点是: . 按层次组织模块(战略上划分战役) . 每一模块只有一个入口, 一个出口 ?代码和数据分离(程序=数据结构+算法) 归纳得到: SP 把数据和过程(代码、函数)分离为相互独立的实体, 用数据代表问题空间中的客体借以表示实际问题中的信 息; 程序代码则用来处理加工这些数据。程序员在编程时 必须时刻考虑所要处理的数据结构和类型。对不同的数据格式即使要作同样
的处理计算, 或者要对相同的数据格式作不同的处理都必须编写不同的程序(如两个整型数和两个浮点数相加)。这样的编程方法,即传统的SP方法设计出来的程序或系统其可重用的成分很少。其次把数据和代码作为不同的分离实体时, 总存在着用错误的数据调用正确的程序模块, 或用正确的数据调用错误的程序模块的危险, 从而使数据与程序始终保持兼容, 已成为程序员 的一个沉重的负担。在开发一个大型软件课题中, 当工程进入到 后期若用户改变了方案要求, 很容易使技术人员的前期工作受到摧毁性的打击,使其前功尽弃。为克服以上的弊端或者该SP方法难以控制处理的矛盾而产生了面向对象程序设计方法, 即Object —Oriented Programming ----------- OOP从二十世纪六十年代提出对象 的雏形, 到七十年代美国国防部的专用语言Ada 语言, 直到当前国际上流行的高品味的Java 和C++(Tc++,Balandc++ 及Vc++), , 应该讲OOP方法与技术吸取了SP的一切优点,同时又正视和顺应现实世界由物质和意识二部分组成。映射到面向对象的解空间就是: 具体事物—对象; 抽象概念—类。 OOP的基本原理是用问题领域的模型来模拟大千世界,从而设计出尽可能直接、自然地表示问题求解方法的软件, 这样的软件由对象组成, 而对象则是完整反映客观世界事物具有不可分割的静态属性(”数据结构” )与动态行为(”方法” )的。而且它们是既有联系又
软件设计师面向对象方法学(一)
[模拟] 软件设计师面向对象方法学(一) 选择题 第1题: 下列关于静态多态实现重载的描述中正确的是______。 A.重载的方法(函数)的方法名(函数名)可以不同 B.重载的方法(函数)必须在返回值类型以及参数类型上有所不同 C.重载的方法(函数)必须在参数顺序或参数类型上有所不同 D.重栽的方法(函数)只需在返回值类型上有所不同 参考答案:C 第2题: 程序设计语言提供了基本类型及其相关的操作,而______则允许开发者自定义一种新的类型及其相关的操作。 A.对象 B.实例 C.类 D.引用 参考答案:C 第3题: ______表示了对象间“is-a”的关系。 A.组合 B.引用 C.聚合 D.继承 参考答案:D 第4题: 若对象A可以给对象B发送消息,那么______。 A.对象B可以看见对象A B.对象A可以看见对象B C.对象A、B相互不可见
D.对象A、B相互可见 参考答案:B 第5题: 类描述了一组对象共同的特性,下列叙述中正确的是______。 A.类本身不能具有变量 B.对象具有类定义的所有变量的一份拷贝 C.对象间不能共享类定义的变量 D.可通过类名访问静态变量(类变量) 参考答案:D (6) 反映了类间的一种层次关系,而(7) 反映了一种整体与部分的关系。 第6题: A.继承 B.组合 C.封装 D.多态 参考答案:A 第7题: A.继承 B.组合 C.封装 D.多态 参考答案:B 第8题: 下列叙述中正确的是______。 A.d西向对象程序设计语言都不支持过程化的程序设计 B.面向对象系统只可采用面向对象程序设计语言实现 C.某些过程化程序设计语言也可实现面向对象系统
《本科自考02333软件工程主编王立福课后习题答案-2011版》完整版
《本科自考02333软件工程课后习题答案-2011版王立福》 第1章绪论 1、解释术语 (1)软件:软件是指计算机系统中的程序及其文档。P16 (2)软件工程:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。P15 (3)软件危机:软件生产率、软件质量远远满足不了社会发展的需求,成为社会,经济发展的制约因素,人们通常把这一现象称为“软件危机”。P15 2、简答题 (1)简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19 (2)简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19 (3)简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。 软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。P19 (4).简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。P17
第2章软件需求与软件需求规约 1、解释术语 (1)软件需求 软件需求以一种技术形式,描述了一个产品/系统应该具有的功能、性能和其它性质。P23 (2)功能需求 功能需求规约了系统或系统构件必须执行的功能。P24 (3)非公能需求 非公能需求是性能、外部接口、设计约束和质量属性这4类需求的统称。P23 (4)需求规约 需求规约是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念模型。P28 2、简述需求与需求规约的基本性质。 答:需求的基本性质: 1)必要的,该需求是用户所要求的。 2)无歧义的,该需求只能用一种方式解释。 3)可测的,该需求是可进行测试的。 4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。 5)可测量的,该需求是可测量的。P23 需求规约的基本性质: 1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。 2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3)完整的:没有被遗漏的需求。 4)一致的:不存在互斥的需求。P28
面向对象方法学概述资料
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系 传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功。但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。 在20世纪60年代后期出现的面向对象编程语言Simula-67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。 9.1 面向对象方法学概述 9.1.1 面向对象方法学的要点 面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。 面向对象方法学所提供的“对象”概念,是让软件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合。应该使这些解空间对象与问题空间对象尽可能一致。这些解空间对象彼此间通过发送消息而相互作用,从而得出问题的解。也就是说,面向对象方法是一种新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。
概括地说,面向对象方法具有下述4个要点: (1) 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。按照这种观点,可以认为整个世界就是一个最复杂的对象。因此,面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。 由此可见,面向对象方法用对象分解取代了传统方法的功能分解。 (2) 把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。因此,每当建立该对象类的一个新实例时,就按照类中对数据的定义为这个新对象生成一组专用的数据,以便描述该对象独特的属性值。 (3) 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。在这种层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这种现象称为继承(inheritance)。 (4) 对象彼此之间仅能通过传递消息互相联系。对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。 重点:如果仅使用对象和消息,则这种方法可以称为基于对象的(object-based)方法,而不能称为面向对象的方法;如果进一步要求把所有对象都划分为类,则这种方法可称为基于类的(class-based)方法,但仍然不是面向对象的方法。只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。 9.1.2 面向对象方法学的优点 1. 与人类习惯的思维方法一致 2. 稳定性好 3. 可重用性好(重点) 用已有的零部件装配新的产品,是典型的重用技术,例如,可以用已有的预制件建筑一幢结构和外形都不同于从前的新大楼。重用是提高生产率的最主要的方法。
软件工程E答案
淮 海 工 学 院 河南理工大学 2010-2011 学年第 1 学期 《软件工程》试卷(A 卷) ( D )1.面向对象的分析方法主要是建立三类模型,即: A .系统模型、E-R 模型、应用模型 B .对象模型、动态模型、应用模型 C .E-R 模型、对象模型、功能模型 D .对象模型、动态模型、功能模型 ( C )2.在E-R 模型中,包含以下基本成分: A .数据、对象、实体 B .控制、联系、对象 C .实体、联系、属性 D .实体、属性、操作 ( D )3.软件生命周期中所耗费时间最长的阶段是下列哪个阶段? A .详细设计 B .软件编码 C .软件测试 D .软件维护 ( D )4.从下面几种白盒测试技术中,选择最强的覆盖准则。 A .语句覆盖 B .条件覆盖 C .判定覆盖 D .条件组合覆盖 ( A )5.所谓信息隐藏是指隐藏模块的 。 A .实现细节 B .接口部分 C .源代码 D .一切信息 ( D )6.下列几种耦合类型中表示模块耦合程度最高的是哪种? A .数据耦合 B .控制耦合 C .特征耦合 D .内容耦合 ( D )7.下列几种内聚类型中表示模块的内聚性最高的是哪种? A .逻辑内聚 B .时间内聚 C .偶然内聚 D .功能内聚 ( C )8.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是 。 A .数据库设计 B .数据通信 C .数据定义 D .数据维护 ( D )9.下列哪种模型引入了“风险驱动”的思想,适用于大规模的内部开发项目? A .增量模型 B .喷泉模型 C .原型模型 D .螺旋模型 ( D )10.提高测试的有效性非常重要,成功的测试是指 。 A .证明了被测试程序正确无误 B .说明了被测试程序符合相应的要求 C .未发现被测程序的错误 D .发现了至今为止尚未发现的错误 ( D )11.在数据流图中,数据存储和数据流都是 ,仅仅是所处的状态不同。 A .分析结果 B .事件 C .动作 D .数据 ( C )12.在进行软件结构设计时应该遵循的最主要的原理是 。 A .抽象 B .模块化 C .模块独立 D .信息隐藏 ( B )13.软件调试的目的是 。 A .发现错误 B .改正错误 C .改善软件的性能 D .挖掘软件的潜能 ( B )14.面向数据流的软件设计方法,一般是把数据流图中的数据流划分为 两种流,再将数据流图映射为软件结构。 A .数据流与事务流 B .变换流和事务流 C .信息流与控制流 D .变换流和数据流 ( D )15.软件测试基本方法中,下列 不用测试实例。 A .白盒测试法 B .动态测试法 C .黑盒测试法 D .静态测试法 1、将下面的关系按继承关系、组合关系或关联进行分类。()中填写继承、组合或关联。 小汽车---------红旗轿车 ( 继承 ) 小汽车---------驾驶员 ( 关联 ) 班级------------学生 ( 组合 ) 列车------------餐车 ( 组合 ) 人员------------雇员 ( 继承 ) 2、将下列各项分为类或类的实例。()中填写类或实例。 我的汽车 ( 实例 ) 交通工具 ( 类 ) 黄晓明 ( 实例 ) 教授 ( 类 ) 喷气式战机 ( 类 ) ( × )1、开发软件就是编写程序。 ( × )2、进行总体设计时应加强模块间的联系。 ( × )3、编码时尽量多用全局变量。 ( × )4、软件测试的目的是要证明软件本身的正确性。 ( × )5、可行性研究的目的是确定一个软件项目的具体开发方法。 ( × )6、在实体-关系图中,实体包含的范围很广泛,如桌子的宽度等都可以作为实体。 ( × )7、模块化的方法通常可以降低一个复杂问题的难度,划分的模块数目越多越好。 ( √ )8、面向对象分析和设计阶段的界限是模糊的,许多分析的结果可以直接影射成设计结果。 ( × )9、统一建模语言UML 仅适用于系统分析阶段,而不是系统开发的全过程。 ( × )10、软件开发环境是指支持软件生存期中某一阶段的任务实现而使用的计算机程序。 一、单项选择题(每题2分)(将答案写在题号前的括号中)