目录
选择
判断
选择
- 下列说法中正确的是 ( B )。
A、20 世纪50 年代提出了软件工程的概念摇
B、20 世纪60 年代提出了软件工程的概念
C、20 世纪70 年代出现了客户端/ 服务器技术
D、20 世纪80 年代软件工程学科达到成熟
- 软件危机的主要原因是 ( D )。
A、软件工具落后
B、软件生产能力不足
C、对软件的认识不够
D、软件本身的特点及开发方法
- 软件工程的三要素是 ( C )。
A、技术、 方法和工具摇
B、方法、 对象和类
C、方法、 工具和过程
D、过程、 模型、 方法
- 在下列选项中, ( A ) 不属于软件工程学科所要研究的基本内容。
A、软件工程材料
B、软件工程目标
C、软件工程原理
D、软件工程过程
- 具有风险分析的软件生命周期模型是( C )
A、瀑布模型
B、快速原型模型
C、螺旋模型
D、增量模型
- 下列哪种开发方法 需要用户和软件开发人员沟通最频繁的方法(B)
A、瀑布模型方法
B、快速原型法
C、螺旋模型法
D、增量模型法
- 从结构化的瀑布模型看,下面哪个环节出错,对软件的影响最大 ( A )
A、需求分析
B、软件设计
C、软件测试
D、软件编码
- 以下说法错误的是 ( C )
A、增量模型是在瀑布模型的基础上加以修改而形成的
B、增量模型推迟某些阶段或所有阶段中的细节,从而较早地产生工作软件
C、瀑布模型和增量模型都属于整体开发模型
D、瀑布模型规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节
- 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是 ( B )
A、硬件环境
B、软件工具和软件开发环境
C、开发人员素质
D、测试技术
- 在需求分析之前有必要进行 ( B ) 工作。
A、程序设计
B、可行性研究
C、系统设计
D、系统测试
- 需求分析是一个 ( D ), 它应该贯穿于系统的整个生命周期中, 而不是仅仅属于软
件生命周期早期的一项工作。
A、概念
B、工具
C、方法
D、过程
- 软件需求规格说明书的内容不应该包括 ( B )
A、对重要功能的描述
B、对算法的详细过程描述
C、对数据的要求
D、软件的性能
- 软件需求分析阶段的工作可以分为以下 4 个方面: 对问题的识别、分析与综合、编
写需求分析文档, 以及 ( C )。
A、总结
B、阶段性报告
C、需求分析评审
D、以上都不是
- 进行需求分析可使用多种工具, 但 ( D ) 是不适用的。
A、状态转换图
B、数据流图
C、数据词典
D、PAD 图
- 数据流图是进行软件需求分析的常用图形工具, 其基本图形符号是 ( B )
A、变换、 数据存储、 加工和数据流
B、加工、 数据流、 数据存储和外部实体
C、输入、 输出、 外部实体和加工
D、变换、 加工、 数据流和存储
- 结构化分析法的主要描述手段有 ( A )
A、DFD图 (数据流图)、 数据词典、 加工说明
B、软件结构图、 加工说明
C、功能结构图、 加工说明
D、系统流程图和模块图
- 在 E - R 图中, 包含以下基本成分 ( B )
A、实体、 关系、 控制
B、实体、 属性、 关系
C、数据、 对象、 实体
D、控制、 关系、 对象
- 面向对象技术中,对象是类的实例。对象有3种成分: ( A )、属性和方法(或操作)。
A、标识
B、继承
C、封装
D、消息
- 以下不是面向对象的特征的是( D )
A、多态性
B、继承性
C、封装性
D、过程调用
- 汽车有一个发动机,汽车和发动机之间的关系是( B )关系。
A、组装
B、整体与部分
C、分类
D、一般与具体
- ( D ) 是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐藏的,外界只能通过有限的接口与对象发生联系。
A、多态性
B、继承
C、消息
D、封装
- 面向对象的主要特征除了对象唯一性、封装和继承外,还有( D )
A、兼容性
B、完整性
C、可移植性
D、多态性
- 关联是建立( B )之间关系的一种手段。
A、对象
B、类
C、功能
D、属性
- 所有的对象可以成为各种对象类,每个对象类都定义了一组( D )
A、说明
B、类型
C、过程
D、方法
- 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是( B ),一个类获得其父亲的全部描述(数据和操作)。
A、兼容性
B、继承性
C、复用性
D、多态性
- 通过执行对象的操作可以改变对象的属性,但它必须通过( B )的传递
A、操作
B、消息
C、信息
D、继承
- UML是软件开发中的一个重要工具,它主要应用于( D )
A、基于螺旋模型的结构化方法
B、基于需求动态定义的原型化方法
C、基于数据的数据流开发方法
- D、基于对象的面向对象的方法
- ( C )是从用户使用系统的角度描述系统功能的图形表达方法。
A、类图
B、活动图
C、用例图
D、状态图
- ( B ) 描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A、类图
B、顺序图
C、状态图
D、协作图
- 面向对象模型主要由以下哪些模型组成 ( A )。
A、对象模型、 动态模型、 功能模型
B、对象模型、 数据模型、 功能模型
C、数据模型、 动态模型、 功能模型
D、对象模型、 动态模型、 数据模型
- 面向对象分析的首要工作是建立 ( D )。
A、系统的动态模型
B、系统的功能模型
C、基本的 E - R 图
D、问题的对象模型
- 面向对象的分析方法主要是建立 3 类模型, 即 ( B )。
A、系统模型、 E - R 模型、 应用模型
B、对象模型、 动态模型、 功能模型
C、E - R 模型、 对象模型、 功能模型
D、对象模型、 动态模型、 应用模型
- 面向对象分析阶段建立的 3 个模型中, 核心模型是 ( C ) 模型。
A、功能
B、动态
C、对象
D、分析
- 面向对象的动态模型中, 每张状态图表示 ( A ) 的动态行为。
A、某一个类
B、有关联的若干个类
C、一系列事件
D、一系列状态
- 在考察系统的一些涉及时序和改变的状况时, 要用动态模型来表示。 动态模型着重
于系统的控制逻辑, 它包括两个图: 一个是事件追踪图, 另一个是 ( B )。
A、顺序图
B、状态图
C、系统结构图
D、数据流图
- 对象模型的描述工具是 ( D )。
A、状态图
B、数据流图
C、结构图
D、类图
- 功能模型中所有的 ( D ) 往往形成一个层次结构, 在这个层次结构中一个数据流
图的过程可以由下一层数据流图做进一步的说明。
A、事件追踪图
B、物理模型图
C、状态迁移图
D、数据流图
- 进行需求分析可使用多种工具, 但 ( B ) 是不适用的。
A、数据流图
B、PAD 图
C、状态转换图
D、数据词典
判断
- 软件就是程序, 编写软件就是编写程序。 ( × )
- 软件危机的主要表现是软件需求增加, 软件价格上升。 ( × )
- 软件工程学科出现的主要原因是软件危机的出现。 ( √ )
- 软件工具的作用是为了延长软件产品的寿命。 ( × )
- 软件生存期模型描述了组织软件分析、设计、维护等软件全部活动的结构框架(√)
- 敏捷开发方法的原则是尽早、持续地交付全部功能完备的软件(×)
- 用于需求分析的软件工具, 应该能够保证需求的正确性, 即验证需求的一致性、 完
整性、 现实性和有效性。 ( √ ) - 需求分析是开发方的工作, 用户的参与度不大。( × )
- 需求规格说明书在软件开发中具有重要的作用, 它也可以作为软件可行性研究的依据。 ( × )
- 需求分析的主要目的是解决软件开发的具体方案。( × )
- 需求规格说明书描述了系统每个功能的具体实现。( × )
- 非功能需求是从各个角度对系统的约束和限制, 反映了应用对软件系统质量和特性的额外要求。( √ )
- 需求分析阶段的成果主要是需求规格说明书, 但该成果与软件设计、 编码、 测试直至维护关系不大。( × )
- 分层的 DFD 图可以用于可行性研究阶段, 描述系统的物理结构。 ( × )
- 信息建模方法是从数据的角度来建立信息模型的, 最常用的描述信息模型的方法是E - R 图。 ( √ )
- 在需求分析阶段主要采用图形工具来描述的原因是图形的信息量大, 便于描述规模
大的软件系统。 ( × ) - 在一张状态图中只能有一个初态, 而终态则可以没有, 也可以有多个。 ( √ )
- UML是一种建模语言,是一种标准的表示,是一种方法。( × )
- 类图用来表示系统中的类和类与类之间的关系,它是对系统动态结构的描述。( × )
- 在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。( × )
- 顺序图用于描述对象是如何交互的,并且将重点放在消息序列上。( √ )
- 继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。( × )
- 类封装比对象封装更具体、更细致。( × )
- 用例之间有扩展、使用和组合等几种关系。( × )
- 动图用于显示动作及其结果,着重描述操作实现中所完成的工作,以及用例实例或类中的活动。( × )
- UML,语言支持面向对象的主要概念,并与具体的开发过程相关。( × )
- 部署图用于描述系统硬件的物理拓扑结构,以及在此结构上执行的软件。( √ )
- 多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。( √ )
- 模型是对现实的简化, 建模是为了更好地理解所开发的系统。 ( √ )
- 在面向对象的需求分析方法中, 建立动态模型是最主要的任务。 ( × )
- 面向对象分析阶段建立的 3 个模型中, 核心模型是功能模型。 ( × )
- 对象模型的描述工具是状态图。 ( × )
大题
- * 某企业集团有若干工厂, 每个工厂生产多种产品, 且每一种产品可以在多个工厂生产, 每个工厂按照固定的计划数量生产产品, 计划数量不低于 300; 每个工厂聘用多名职工,且每名职工只能在一个工厂工作, 工厂聘用职工有聘期和工资。 工厂的属性有工厂编号、 厂名和地址, 产品的属性有产品编号、 产品名和规格, 职工的属性有职工号、 姓名和技术等级。 请画出 E - R 图。
- * 结构化设计与结构化分析的关系
- *与面向结构化开发过程相比,为什么面向对象能更真实地反映客观世界?
- 符合人类的思维习惯。通常人类在认识客观世界中的事物时,不仅会考虑到事物会有哪些属性,还会考虑到事物能完成哪些操作,也就是说静态的属性及动态的动作特征都是组成事物的一部分,它们组合起来才能完整地表达一个事物。而面向对象的软件工程方法最重要的特点就是把事物的属性和操作组成一个整体,以对象为核心,更符合人类的思维习惯。此外,面向对象的软件工程方法更加注重人类在认识客观世界时循序渐进、逐步深化的特点、、0用面向对象的软件工程方法进行软件开发的过程,是一个主动的多次反复迭代的过程,而不是把整个过程划分为几个严格的顺序阶段。
- 稳定性好。传统的软件工程方法基于功能分析和功能分解。当软件功能发生变化时,很容易引起软件结构的改变。而面向对象的软件工程方法则是基于对象的概念,用对象来表示与待解决的问题相关的实体,以对象之间的联系来表示实体之间的关系。当目标系统的需求发生变化时,只要实体及实体之间的关系不发生变化,就不会引起软件系统结构的变化,而只需要对部分对象进行局部修改(如从现有的类中派生出新的子类),就可以实现系统功能的扩充。因此,基于对象的软件系统稳定性比较好。
- 可复用性好。面向对象技术采用了继承和多态的机制,极大地提高了代码的可复用性。从父类派生出子类,一方面复用了父类中定义的数据结构和代码,另一方面提高了代码的可扩展性。
- 可维护性好。由于利用面向对象软件工程方法开发的软件系统稳定性好,可复用性好,而且采用了封装和信息隐藏机制,易于对局部软件进行调整,所以系统的可维护性比较好。
- *某银行储蓄系统的需求说明如下。
1) 开户:客户填写开立账户申请表,然后交由工作人员验证并输人系统。系统会建立P记录,并提示客户设置密码(若客户没做设置,则会有一个实以密吗。如果开声成功,系统会打印一本存折给客户。
2) 密码设置:开户时客户即可设置密码。此后,客户在经过身份验证后,还可修改密码。
3) 存款:客户可填写存款单,然后交由工作人员验证并输入系统。系统将建立存款记录,并在存折上打印该笔存款记录。
4) 取款:客户可按存款记录逐笔取款,由客户填写取款单,然后交由工作人员验证并输入系统。系统首先会验证客户身份,根据客户的账户和密码,对客户身份进行验证。如果客户身份验证通过,则系统将根据存款记录累计利息,然后注销该笔存款,并在存折上打印该笔存款的注销与利息累计。
请根据以上信息绘制出系统的用例图。
- *某市进行招考公务员工作,分为行政、法律和财经3个专业。市人事局公布所有用人单位招收各专业的人数,考生报名,招考办公室发放准考证。考试结束后,招考办公室发放考试成绩单,公布录取分数线,针对每个专业,分别将考生按总分从高到低进行排序。用人单位根据排序名单进行录用,发放录用通知书给考生,并给招考办公室留存备查。请根据以上情况进行分析,画出顺序图。
本题中,对象主要包括考生、人事局和招聘单位三种,所以包括三条对象生命线。 招聘单位将招聘计划发送给人事局,再由人事局发布给考生。考生通过人事局进行考试报名,报名信息由人事局传递给招聘单位。考生通过人事局进行考试。人事局向考生和招聘单位发布考试成绩。招聘单位将录用信息发给人事局,再由人事局发布给考生。公务员招聘考试管理系统的顺序图如图C-8所示。
- *当手机开机时,它处于空闲状态,当用户使用电话呼叫某人时,手机进入拨号状态。如果呼叫成功,即电话接通,手机就处于通话状态;如果呼叫不成功,例如对方线路有问题或关机,则拒绝接听。这时手机停止呼叫,重新进入空闲状态。手机进入空闲状态下被呼叫,手机进入响铃状态;如果用户接听电话,手机处于通话状态;如果用户未做出任何反应,可能他没有听见铃声,手机一直处于响铃状态;如果用户拒绝来电,手机回到空闲状态。
请按以上描述绘制出使用手机的状态图。
手机可以分为空闲、响铃、拨号与通话四种状态。根据题目叙述分别在各个状态之间添加转移即可。如图C-12所示
- * 类间的外部关系有几种类型? 每种关系表达什么语义?
- 依赖关系:是“非结构化”的、短暂的关系,表明某个对象会影响另外一个对象的行为或服务。
- 关联关系:是 “结构化”的关系,描述对象之间的连接。
- 聚合关系、组合关系:是特殊的关联关系,它们强调整体和部分之间的从属性,组合是聚合的一种形式,组合关系对应的整体和部分具有很强的归属关系和一致的生命期。比如,计算机和显示器就属于聚合关系。
- 泛化关系:与类间的继承类似。
- 实现关系:是针对类与接口的关系
- * 请简述面向对象分析的过程。
首先要找到系统的操作者, 即用例的参与者,把参与者执行的每一个系统功能都看做一个用例
确定了系统的所有用例之后, 就可以开始识别目标系统中的对象和类,先找出所有的候选类, 然后再从候选类中剔除那些与问题域无关的、 非本质的东西。目标系统的类可以划分为边界类、 控制类和实体类。
确定了系统的类和对象之后, 就可以分析类之间的关系
对象、 类和类之间的层次关系之后, 需要进一步识别出对象之间的动态交互行为,即系统响应外部事件或操作的工作过程。
最后, 需要将需求分析的结果用多种模型图表示出来, 并对其进行评审。
- *在温室管理系统中, 有一个环境控制器, 当没有种植作物时处于空闲状态。 一旦种上作物, 就要进行温度控制, 定义气候, 即在什么时期应达到什么温度。 当处于夜晚时, 由于温度下降, 要调用调节温度过程, 以便保持温度; 当太阳出来时, 进入白天状态, 由于温度升高, 要调用调节温度过程, 保持要求的温度。 当日落时, 进入夜晚状态。 当作物收获后, 终止气候的控制, 进入空闲状态。
请建立环境控制器的动态模型。
环境控制器在被定义气候之前,处于闲置状态。 在被定义气候之后,开始温度控制:当处于白天模式时,如果温度升高,则进行调温操作;如果出现日落,则转换为夜间模式。当处于夜间模式时,如果温度降低,则进行调温操作;如果出现日出,则转换为白天模式。当环境控制器被命令终止气候时,则重新处于限制状态。环境控制器的动态模型如图C-13所示。
- *一家图书馆藏有书、 杂志、 小册子、 录像带、 CD、 录音图书和报纸等出版物供读者借阅。 这些出版物有出版物名称、 出版者、 获得日期、 目录编号、 借出状态和借出限制等属性, 并有借出、 收回等服务。
请建立上述图书馆馆藏出版物的对象模型。
图书馆所藏出版物拥有共同的基类:馆藏出版物类。馆藏出版物类的成员变量包括出版物名称、出版者、获得日期、目录编号、借出状态、借出限制等,并包括借出和收回两项操作。各种类型的出版物类继承于馆藏出版物类,并定义了各自的属性。图书馆馆藏出版物的对象模型图C-14所示。
- *请简述面向对象设计的启发规则。
面向对象设计的启发规则是人们在长期的基于面向对象思想的软件开发实践中总结出来的经验,有利于提高开发人员进行软件设计的质量。启发规则具体如下。
1.设计结果应该清晰易懂
2.类等级深度应该适当
3.要尽量设计简单的类
4.使用简单的协议
5.使用简单的操作
6.把设计的变动减至最小
- *请简述面向对象的设计原则
- *系统设计的步骤和简述对象设计模型
面向对象设计模型针对与实现有关的因素而开展面向对象分析模型的5个活动(主题、类与对象、结构、属性和服务),它包括问题域、人机交互、任务管理和数据管理等4个部分的设计,即针对这4大部分对应于组成目标系统的4个子系统---问题域子系统、人—机交互子系统、任务管理子系统和数据管理子系统进行设计。