软件设计师-综合知识3

软件工程⭐

历年真题考情:本章节每年会考12-15分左右。第二版更新第二版教材里对应第5章,相关概念和定义改动的比较多,尤其是对于软件工程阶段的划分,传统的软件设计的阶段划分等,新教材里都删除了,也缺少了测试用例设计、运行维护阶段内容,这会导致大家做历年真题感觉陌生,这块的话我们会给大家按最新教材内容录制,同时通过每年最新直播讲题来讲往年真题的老的知识点,本章节对应5.7项目管理单独独立为一个章节,不在这里赘述。

image-20240717195520931

image-20240717195534658

信息系统生命周期

软件工程基本原理:用分阶段生命周期计划严格管理、坚持进行阶段评审、实现严格产品控制采用现代程序设计技术、结果应能清楚的审查、开发小组的人员应少而精、承认不断改进软件工程实践的必要性

软件工程的基本要素:方法、工具、过程

软件生存周期(五阶段)

image-20240717195616937

  1. 系统规划阶段:任务是对组织的环境、目标及现行系统的状况进行初步调查,根据组织目标和发展战略确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。根据需要与可能,给出制建系统的备选方案。输出:可行性研究报告、系统设计任务书

  2. 系统分析阶段:任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。系统分析阶段又称为逻辑设计阶段。这个阶段是整个系统建设的关键阶段,也是信息系统建设与一般工程项目的重要区别所在。输出:系统说明书

  3. 系统设计阶段:系统分析阶段的任务是回答系统“做什么”的问题,而系统设计阶段要回答的问题是“怎么做”。该阶段的任务是根据系统说明书中规定的功能要求,具体设计实现逻辑模型的技术方案,也就是设计新系统的物理模型。这个阶段又称为物理设计阶段,可分为总体设计(概要设计)和详细设计两个子阶段。输出:系统设计说明书(概要设计、详细设计说明书)

  4. 系统实施阶段:是将设计的系统付诸实施的阶段。这一阶段的任务包括计算机等设备的购置、安装和调试程序的编写和调试、人员培训、数据文件转换、系统调试与转换等。这个阶段的特点是几个互相联系、互相制约的任务同时展开,必须精心安排、合理组织。系统实施是按实施计划分阶段完成的,每个阶段应写出实施进展报告。系统测试之后写出系统测试分析报告。输出:实施进展报告、系统测试分析报告

  5. 系统运行和维护阶段:系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规则对系统进行必要的修改,评价系统的工作质量和经济效益。

能力成熟度模型

能力成熟度模型CMM

image-20240624164313511

能力成熟度模型集成CMMI

是若干过程模型的综合和改进,不仅仅软件,而是支持多个工程学科和领域的系统的、一致的过程改进框架能适应现代工程的特点和需要,能提高过程的质量和工作效率。

image-20240717195647540

CMMI两种表示方法:阶段式模型:类似于CMM,它关注组织的成熟度,五个成熟度模型如下:

其中2-5级对应的过程域如下图所示:

image-20240624164405062

连续式模型:关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级。

()是系统分析阶段结束后得到的工作产品,()是系统测试阶段完成后的工作产品。

A.系统设计规格说明B.系统方案建议书C.程序规格说明 D.单元测试数据

A.验收测试计划 B.测试标准C.系统测试计划D.操作手册 答案:B D,这题注意,内容讲课没有,这个输出的产品名不一定一致,可以根据分析进行判断,用排除法

以下关于CMM的叙述中,不正确的是()

A.CMM是指软件过程能力成熟度模型

B.CMM根据软件过程的不同成熟度划分5个等级,其中,1级被认为成熟度最高,5级被认为成熟度最低

C.CMMI的任务是将已有的几个CMM模型结合在一起,使之构造成为“集成模型

D.采用更成熟的CMM模型,一般来说可以提高最终产品的质量答案:B

软件工程概述

软件开发生命周期

软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标具体可分成问题定义、可行性研究、需求分析等。

软件开发时期:就是软件的设计与实现,可分成概要设计、详细设计、编码、测试等。

软件运行和维护:就是把软件产品移交给用户使用

软件系统的文档可以分为用户文档和系统文档两类,用户文档主要描述系统功能和使用方法,并不关系这些功能是怎样实现的;系统文档描述系统设计、实现和测试等各方面的内容

软件工程过程是指为获得软件产品包括以下4个方面活动:

  • P(Plan)-一软件规格说明。规定软件的功能及其运行时的限制。

  • D(Do)-一软件开发。开发出满足规格说明的软件。

  • C(Check)---软件确认。确认开发的软件能够满足用户的需求。

  • A(Action)--软件演进。软件在运行过程中不断改进以满足客户新的需求。

软件系统工具通常可以按软件过程活动将软件工具分为:

软件开发工具:需求分析工具、设计工具、编码与排错工具、测试工具等。

软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。

软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具评价和选择。

软件设计四个活动:数据设计、架构(体系结构)设计、人机界面(接口)设计和过程设计,

软件过程模型⭐

image-20240904194140786

模型关键词特点简述记忆口诀
瀑布模型顺序阶段固定、顺序执行一瀑到底,不回头
原型模型快速试验反复原型、试错调整边做边看,边改边试
增量模型分段实施分阶段开发、逐步完善一口吃不成胖子
螺旋模型风险控制每轮含风险评估、不断迭代旋转上升,风险优先
敏捷模型快速灵活强调沟通、频繁交付灵活应变,快速迭代
V模型测试驱动开发与测试对称进行V字对应,测试先行
模型类型关键词特点简述适用场景记忆口诀
RUP(统一过程模型)迭代 + 架构驱动初细构交四阶段,支持迭代和面向对象大型系统开发初细构交,步步为营
喷泉模型阶段交错阶段间无严格界限,适合OO设计面向对象软件喷泉飞溅,往复迭代
构建-修复快写快改边写边修,设计随意简单工具、非正式项目写了就用,用了就修
形式化方法数学、逻辑验证严格数学验证,精确建模高安全关键系统数学建模,错不了

瀑布直下不回头,原型反复边试投,增量分期好交付,螺旋风险要先谋;敏捷灵活多沟通,RUP阶段细节多;喷泉冲上又跌落,构建修复靠人拖,形式方法用数学,安全可靠难出错。

假设某软件公司与客户签订合同开发一个软件系统,系统的功能有较清晰的定义,且客户对交付时间有严格要求,则该系统的开发最适宜采用

A.瀑布模型 B.原型模型 C.V模型 D.螺旋模型 答案:A

解析:功能清晰,也即需求较明确,有这样的关键字都是考察瀑布模型,牢记总结的记忆关键字。

以下关于螺旋模型的叙述中,不正确的是()

A.它是风险驱动的,要求开发人员必须具有丰富的风险评估知识和经验

B.它可以降低过多测试或测试不足带来的风险

C.它包含维护周期,因此维护和开发之间没有本质区别

D.它不适用于大型软件开发

答案:D 解析:螺旋模型的特点是风险分析,应对风险的都正确,螺旋模型适合大型软件开发

喷泉模型是一种适合于面向()开发方法的软件过程模型。该过程模型的设点不包括()。

A 对象 B 数据 C 数据流 D 事件

A 以用户需求为动力 B 支持软件重用 C 具有迭代性 D 开发活动之间存在明显的界限

正确答案:A D 答案解析: 喷泉模型的特征是适合面向对象方法。复用好、开发过程无间隙、节省时间

软件开发中的瀑布模型典型地刻画了软件生存周期的阶段划分,与其最相适应的软件开发方法是()。

A 构件化方法 B 结构化方法 C 面向对象方法 D 快速原型方法

正确答案:B、答案解析: 结构化开发方法的生存周期划分与瀑布模型相对应

瀑布模型(Waterfall Model)突出的缺点是不适应()的变动。

A 软件结构 B 运行平台 C 用户需要 D 程序语言

正确答案:C答案解析: 瀑布模型突出的缺点是不适应用户需求的变动,模型工程并不和软件结构、运行平台程序语言有很大的关系。

对实际应用问题建立数学模型并求得结果后,还需要根据建模的目的和要求,利用相关知识,结合研究对象的特点,进行模型分析。模型分析工作一般不包括()。

A 模型的合理性分析 B 模型的误差分析 C 模型的先进性分析 D 参数的灵敏性分析

正确答案:C 答案解析:在对实际应用问题建立数学模型并求得结果后,还需要根据建模的目的和要求,利用相关知识,结合研究对象的特点,进行模型分析。模型分析工作主要包括模型的合理性分析、模型的误差分析和参数的灵敏性分析等,一般不包括模型的先进性分析

软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为()。

A 瀑布模型 B 对象模型 C 螺旋模型 D 层次模型

正确答案:A 答案解析:软件开发中常采用的结构化生命周期方法,是瀑布型

以下关于增量模型优点的叙述中,不正确的是()。

A 强调开发的阶段性早期计划 B 第一个可交付版本所需要的时间少和成本低 C 开发由增量表示的小系统所承担的风险小 D 系统管理成本低、效率高、配置简单

正确答案:D 答案解析:增量模型的优点有:①容易理解②管理成本低3强调开发的阶段性早期计划及需求调查和产品测试4第一个可交付版本所需要的成本和时间很少⑤开发由增量表示的小系统所承担的风,险不大⑥由于很快发布了第一个版本,因此可以减少用户需求的变更⑦运行增量投资,即在项目开始时,可以仅对一个或两个增量投资

对于开发模型来说,()复用好、开发过程无间隙、节省时间。()是瀑布与原型(演化)模型结合体,适用于复杂项目。()需要用户参与,模块化要求高,不适用新技术。()是用例驱动、架构为中心、迭代、增量

A RAD模型 B 螺旋模型 C RUP模型 D 喷泉模型

A RAD模型 B 螺旋模型 C 喷泉模型 D RUP模型

A RAD模型 B RUP模型 C 喷泉模型 D 螺旋模型

A 螺旋模型 B RAD模型 C RUP模型 D 喷泉模型

正确答案:D B A C

以下关于快速原型模型优点的叙述中,不正确的是()

A 有助于满足用户的真实需求 B 适用于大型软件系统的开发 C 开发人员快速开发出原型系统,因此可以加速软件开发过程。节约开发成本 D 原型系统已经通过与用户的交互得到验证,因此对应的规格说明文档能正确 描述用户需求

正确答案:B 答案解析: 快速原型模型比较适合于用户需求不清、需求经常变化的情况。当系统规模不是很大也不太复杂时,采用该方法比较好。开发大型软件系统适用螺旋模型或者RUP模型

为了有效地捕获系统需求,应采用()。

A 瀑布模型 B V模型 C 原型模型 D 螺旋模型

正确答案:C 软件过程是软件生命周期中的一系列相关活动,即用干开发和维护软件及相关产品的一系列活动。软件讨程樟型可以帮助开发团队理解开发过程,形成对开发中的活动、资源和约束的共同理解,可以根据具体情况对个过程进行裁翦等。瀑布模型从一种非常高层的角度描述了软件开发过程中进行的活动,并且提出了要求开发人员经过的事件序列。该模型适用于项目丌始时需求已确定的情况。V模型是瀑布模型的变种,它说明测试活动是如何与分析和设计相联系的。原型模型允许开发人员快速地构造整个系统或系统的一部分以理或澄清问题。原型的用涂是获知用户的真正需求,因此原型模型可以有效地引发系统需求。螺旋模型把开发活动和风险管理结合起来,以将风险减到最小并控制风险

某开发小组欲开发一个规模较大、需求较明确的项目。开发小组对项目领域熟悉且该项目与小组开发过的某一项目相似,则适宜采用()开发过程模型。

A 瀑布 B 演化 C 螺旋 D 喷泉

正确答案:A 答案解析: 在信息系统项目开发方法中,瀑布模型适用于需求明确或很少变更的项目,也可用在已有类似项目开发经验的项目上。演化模型是一种全局的软件(或产品)生存周期模型,属于迭代开发方法。该模型可以表示为:第一次迭代(需求一设计→实现一测试一集成)→反馈一第二次迭代(需求一设计一实现→测试一集成)一反馈一…,即根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。采用演化模型的开发过程,实际上就是从初始的原型逐步演化成最终软件产品的过程。演化模型特别适用于对软件需求缺乏准确认识的情况。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的管理信息系统的开发。喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

() 开发过程模型不适用于开发初期对软件需求缺乏准确全面认识的情况。

A 瀑布 B 演化C 螺旋 D 增量

正确答案:A 瀑布模型是一种经典的开发模型,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项日开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。 瀑布模型的突出缺点是不适应用户需求的变化。本题选择A选项。

以下关于基于构件的开发模型的叙述中,不正确的是()。

A 本质上是演进模型,以迭代方式构建软件 B 必须采用面向对象开发技术 C 采用预先打包的软件构件构造软件 D 构件可以是组织内部开发的,也可以是商品化成品软件构件

正确答案:B答案解析 : 基于构件的开发是指利用预先打包的构件来构造应用系统。构件可以是组织内部开发的构件,也可以是商品化成品软件构件。基于构件的开发模型具有许多螺旋模型的特点,它本质上是演化模型,需要以迭代方式构建软件。其不同之处在于,基于构件的开发模型采用预先打包的软件构件开发应用系统。《软件设计师教材(第5版)》P252

瀑布模型的主要特点是()。

A 用户容易参与到开发活动中 B 易于处理可变需求 C 缺乏灵活性D 用户与开发者沟通容易

正确答案: C 答案解析:瀑布模型是以文档为驱动的模型,适合需求明确的软件项目的模型,优点是容易理解,管理成本低,但缺乏灵活性,难以适应需求的变化,如果软件在后期出现需求变化,整个系统需要从头开始

信系统开发方法

结构化程序设计

结构是指系统内各个组成要素之间的相互联系、相互作用的框架

结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析(Structured Analysis,SA)、结构化设计(Structured Design, SD)和结构化程序设计(Structured Programming,SP)三部分有机组合而成,其精髓是自顶向下、逐步求精和模块化设计。

结构化方法的主要特点

  1. 开发目标清晰化。结构化方法的系统开发遵循“用户第一”的原则。

  2. 开发工作阶段化。每个阶段工作完成后,要根据阶段工作目标和要求进行审查,这使各阶段工作有条不紊地进行,便于项目管理与控制。

  3. 开发文档规范化。结构化方法每个阶段工作完成后,要按照要求完成相应的文档,以保证各个工作阶段的衔接与系统维护工作的遍历。

  4. 设计方法结构化。在系统分析与设计时,从整体和全局考虑,自顶向下地分解;在系统实现时,根据设计的要求,先编写各个具体的功能模块,然后自底向上逐步实现整个系统

结构化方法的不足和局限

(1)开发周期长:按顺序经历各个阶段,直到实施阶段结束后,用户才能使用系统。

(2)难以适应需求变化:不适用于需求不明确或经常变更的项目。

(3)很少考虑数据结构:结构化方法是一种面向过程,面向数据流的开发方法,很少考虑数据结构。

结构化方法常用工具:结构化方法一般利用图形表达用户需求,常用工具有数据流图、数据字典、结构化语言、判定表以及判定树等

结构化分析方法中,数据流图中的元素在()中进行定义。

A 加工逻辑 B 实体联系图 C 流程图 D 数据字典

正确答案:D答案解析 : 数据字典中有 4 种类型的条目:数据流、数据存储、数据项和加工。

良好的启发式设计原则上不包括()。

A 提高模块独立性 B 模块规模越小越好 C 模块作用域在其控制域之内 D 降低模块接口复杂性

正确答案:B 答案解析:模块的大小要适中。系统分解时需要考虑模块的规模,过大的模块可能导致系 统分解不充分,其内部可能包括不同类型的功能,需要进一步划分,尽量使得各个模块的功 能单一;过小的模块将导致系统的复杂度增加,模块之间的调用过于频繁,反而降低了模块 的独立性。

软件设计的主要任务是设计软件的结构、过程和模块,其中软件结构设计的主要任务是要确定()。

A 模块间的操作细节 B 模块间的相似性 C 模块间的组成关系 D 模块的具体功能

正确答案:C 答案解析 : 软件设计通常可分为概要设计(软件结构设计)和详细设计。概要设计的任务是确定软件系统的结构、进行模块划分、确定每个模块的功能、接口以及模块间的调用关系。设计软件系统的结构,主要任务是确定模块间的组成关系。

Jackson设计方法是由英国的M.Jackson提出的,它是一种面向()的软件设计方法。

A 对象 B 数据结构 C 数据流 D 业务流

正确答案:B 答案解析: Jackson设计方法是一种面向数据结构的软件设计方法,Jackson分析方法是通向数据流的分析方法。

软件详细设计阶段的主要任务不包括()

A 数据结构设计 B 算法设计 C 模块之间的接口设计 D 数据库的物理设计

正确答案:C答案解析: 模块之间的接口设计是在概要设计阶段。

在结构化分析方法中,()用于功能建模;()用于数据建模;()用于行为建模。

A E-R图 B 用例图 C 状态转化图 D 数据流图

答案:D 在结构化分析方法中,数据流图用于功能建模;E-R图用于数据建模:状态转换图用于行为建模

在多层次的结构图中,其模块的层次数称为结构图的()。

A 深度 B 跨度 C 控制域 D 粒度

正确答案:A 答案解析: 结构图的深度是模块的层次数。

()是软件概要设计阶段的工具。反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,反映了系统的总体结构。

A 系统结构图 B 数据流图 C ER图 D IPO图

正确答案:A 答案解析:系统结构图是软件概要设计阶段的工具。反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,反映了系统的总体结构。

以下关于三层C/S结构的叙述中,不正确的是()

A 允许合理划分三层结构的功能,使之在逻辑上保持相对独立性,提高系统的 可维护性和可扩展性 B 允许更灵活有效地选用相应的软硬件平台和系统 C 应用的各层可以并行开发,但需要相同的开发语言 D 利用功能层有效地隔离表示层和数据层,便于严格的安全管理

正确答案:C答案解析:三层C/S结构是将应用功能分成表示层、功能层和数据层三部分。系统的各层独立部署,可以并行开发,也可以选择各自最适合的开发语言,达到较高的性能价格比。

在设计模块 M 和模块N 时,()是最佳的设计

A M 和 N 通过通信模块传送数据 B M 和 N 通过公共数据域传送数据 C M 和 N 通过简单数据参数交换信息 D M 直接访问N 的数据

正确答案:C 答案解析:模块设计应遵循“高内聚,低耦合”的原则,C选项是数据耦合,耦合度较低,因此选择C选项。

面向对象开发方法

面向对象(Object-Oriented,OO)方法认为,客观世界是由各种对象组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,都属于某个对象类,是该对象类的一个元素。复杂的对象可由相对简单的各种对象以某种方式而构成,不同对象的组合及相互作用就构成了系统。

面向对象方法的特点

  1. 使用面向对象方法构造的系统具有更好的复用性,其关键在于建立一个全面合理、统一的模型(用例模型和分析模型)

  2. 面向对象方法也划分阶段,但其中的系统分析、系统设计和系统实现三个阶段之间已经没有“缝隙”。也就是说,这三个阶段的界限变得不明确,某项工作既可以在前一个阶段完成,也可以在后一个阶段完成;前一个阶段工作做得不够细,在后一个阶段可以补充。

  3. 面向对象方法可以普遍适用于各类信息系统的开发

面向对象方法的不足之处:必须依靠一定的面向对象技术支持,在大型项目的开发上具有一定的局限性不能涉足系统分析以前的开发环节

当前,一些大型信息系统的开发,通常是将结构化方法和面向对象方法结合起来首先,使用结构化方法进行自顶向下的整体划分;然后,自底向上地采用00方法进行开发。因此,结构化方法和00方法仍是两种在系统开发领域中相互依存的、不可替代的方法。

原型化开发方法

原型化方法也称为快速原型法,或者简称为原型法。它是一种根据用户初步需求,利用系统开发工具,快速地建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法。

按是否实现功能分类:分为水平原型(行为原型,功能的导航)、垂直原型(结构化原型,实现部分功能) 按最终结果分类:分为抛弃式原型、演化式原型

image-20240717195924484

原型法的特点

原型法可以使系统开发的周期缩短、成本和风险降低、速度加快,获得较高的综合开发效益

原型法是以用户为中心来开发系统的,用户参与的程度大大提高,开发的系统符合用户的需求,因而增加了用户的满意度,提高了系统开发的成功率。由于用户参与了系统开发的全过程,对系统的功能和结构容易理解和接受,有利于系统的移交,有利于系统的运行与维护。

原型法的不足之处

开发的环境要求高。管理水平要求高

由以上的分析可以看出,原型法的优点主要在于能更有效地确认用户需求。从直观上来看,原型法适用于那些需求不明确的系统开发。事实上,对于分析层面难度大、技术层面难度不大的系统,适合于原型法开发。从严格意义上来说,目前的原型法不是一种独立的系统开发方法,而只是一种开发思想,它只支持在系统开发早期阶段快速生成系统的原型,没有规定在原型构建过程中必须使用哪种方法。因此,它不是完整意义上的方法论体系。这就注定了原型法必须与其他信息系统开发方法结合使用

敏捷开发方法

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,相对于传统软件开发方法的“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用

image-20240708110432778

敏捷软件开发宣言:

  1. 个体和交互胜过过程和工具

  2. 可以工作的软件胜过面面俱到的文档

  3. 客户合作胜过合同谈判

  4. 响应变化胜过遵循计划

image-20240717195957089

结对编程:一个程序员开发,另一个程序在一旁观察审查代码,能够有效的提高代码质量,在开发同时对代码进行初步审查,共同对代码负责。

自适应开发:强调开发方法的适应性(Adaptive)。不象其他方法那样有很多具体的实践做法,它更侧重为软件的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。

水晶方法:每一个不同的项目都需要一套不同的策略、约定和方法论

特性驱动开发:是一套针对中小型软件开发项目的开发模式。是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、易于被开发团队接受,适用于需求经常变动的项目。

极限编程XP:核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。

并列争球法SCRUM:是一种迭代的增量化过程,把每段时间(30天)一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。

以下()不是SCRUM MASTER职责。

A 保护团队不受外来无端影响 B 尽可能提高团队影响力 C 负责SCRUM价值观与过程的实现 D SCRUM MASTER是牧羊犬、公仆 正确答案:B 答案解析:SCRUM MASTER职责的6大职责:教练、服务型领导、过程权威、保护伞、清道夫、变革代言人。A是保护伞职责;C是过程权威职责:D是服务型领导职责。(1)教练 ScrumMaster通过对研发团队和产品负责人进行指导,消除两者之间的隔阂,是产品负责人能够直接驱动产品开发。 ScrumMaster重点观察团队使用Scrum的过程,全力帮助团队达到更高级别的工作效能。ScrumMaster驱动团队发现并自主解决问题,当团队遇到无法解决的障碍时,才由ScrumMaster负责解决。ScrumMaster使用Scrum帮助负责人取得最大的业务成果,管理预期,确保负责人提供团队的必需品,倾听负责人抱怨和变更请求,最终将这些信息转换为团队可以落地的改进措施。(2)服务型领导 ScrumMaster是团队的服务者,提供的服务要确保满足团队最高优先级的需要。服务型领导从来不会问:“今天你准备为我做什么?”相反,服务型领导会问:“为了帮助你和团队更加有效,今天我能做什么?(3)过程权威确保Scrum团队使用特定的方法实施并遵循Scrum的价值观、原则和实践,ScrumMaster需要被充分授权。ScrumMaster需要持续帮助团队改进过程,实现交付的业务价值最大化。 (4)保护伞 ScrumMaster保护开发团队免受外部干扰,让团队可以集中精力在每个冲刺交付业务价值, (5)清道夫 ScrumMaster需要扫清妨碍团队生产效率的一切障碍(当团队成员自己搞不定的时候)(6)变革代言人 ScrumMaster要帮助他人理解变革的需要,在Scrum团队之外Scrum所带来的影响及Scrum能帮助达到的广泛而深远的收益。ScrumMaster还要确保组织的各个层面都发生有效的变革,不仅能够促成短期的成功,而且能够得到长期的收益。

敏捷开发强调以人为本,与用户紧密协作,面对面沟通,尽早发布增量,小而自主的开发团队,实现敏捷开发有多种方式,其中()是高效、低风险、测试先行(先写测试代码,再编写程序)。()强调不同项目,不同策略。

A xp极限编程 B Cockburn 水晶方法 C FDD功用驱动方法 D 开放式源码

A xp极限编程 B Cockburn 水晶方法 C FDD功用驱动方法 D 开放式源码

A xp极限编程 B Cockburn 水晶方法 C FDD功用驱动方法 D 开放式源码

正确答案:A B C

image-20240904195801758

以下关于敏捷统一过程(AUP)的叙述中,不正确的是()。

A 在大型任务上连续 B 在小型活动上迭代 C 每一个不同的系统都需要一套不同的策略、约定和方法论 D 采用经典的UP阶段性活动,即初始、精化、构建和转换

正确答案: C 敏捷统一过程(Agile Unified Process,AUP)采用"在大型上连续"以及在"在小型上迭代"的原理来构建软答案解析:件系统。采用经典的UP阶段性活动(初始、精化、构建和转换),提供了一系列活动,能够使团队为软件项目构想出一个全面的过程流。

统一过程方法(RUP)

提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。3个显著特点:用例驱动、以架构为中心、迭代和增量

4个流程:初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经达到。

适用:一个通用过程框架,可以用于种类广泛的软件系统、不同的应用领域不同的组织类型、不同性能水平和不同的项目规模。

image-20240708110409145

以下关于结构化开发方法的叙述中,不正确的是()。 A.总的指导思想是自顶向下,逐层分解

B.基本原则是功能的分解与抽象

C.与面向对象开发方法相比,更适合于大规模、特别复杂的项目

D.特别适合于数据处理领域的项目

答案:C解析:可以使用排除法,结构化开发方法是面向数据流,自顶向下、逐层分解的,因此ABD都对但目前已经逐渐被面向对象开发方法替代,因为面向对象开发方法更适合大型复杂项目。

在敏捷过程的开发方法中,()使用了迭代的方法,其中,把每段时间(30天)一次的选代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品

A.极限编程XP B.水晶法 C.并列争球法答案:C D.自适应软件开发

解析:并列争球法SCRUM强调迭代增量过程,自适应软件开发强调适应性,极限编程强调四个核心及测试先行等理论。

软件产品线

软件产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足特定领域的特定需求。软件产品线是一个十分适合专业的开发组织的软件开发方法,能有效地提高软件生产率和质量,缩短开发时间,降低总开发成本。

核心资源:包括所有产品所共用的软件架构,通用的构件、文档等。

产品集合:产品线中的各种产品。

产品线的建立方式

image-20240717200108642

软件质量属性中,()是指软件每分钟可以处理多少个请求。

A 响应时间 B 吞吐量 C 负载 D 容量

正确答案:B 答案解析: 吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据 的数量(以比特、字节、分组等测量)。

提高程序执行效率的方法一般不包括()。

A 设计更好的算法B 采用不同的数据结构C 采用不同的程序设计语言 D 改写代码使其更紧凑

正确答案:D 答案解析: 代码紧凑不能提高程序执行效率,最多只能使代码可读性更强。

在ISO/IEC软件质量模型中,可移植性是指与软件可从某环境移到另一环境的能力有关的一组属性,其子特性不包括()。

A 适应性 B 易测试性 C 易安装性 D 易替换性

正确答案:B 答案解析: ISO/EC软件质量模型规定的质量特性有:

image-20240904201240316

易测试性属于可维护性指标。

软件能力成熟度模型提供了一个软件能力成熟度的框架。她将软件过程改进的步骤组织成五个成熟度等级。其中,软件过程已建立了基本的项目管理过程。可用于对成本,进度和功能特性进行跟踪。说明软件已达到()成熟度等级。

A 已定义级 B 优化集 C 已管理级 D 可重复级。正确答案:D

image-20240904201326388

软件开发的目标是开发出高质量的软件系统,这里的高质量不包括()

A 软件必须满足用户规定的需求 B 软件应遵循规定标准所定义的一系列开发准则 C 软件开发应采用最新的开发技术 D 软件应满足某些隐含的需求,如可理解性、可维护性等

正确答案:C 答案解析:生产高质量的软件,强调以下3个要点: (1)软件必须满足用户规定的需求; (2)软件应遵循规定标准所定义的一系列开发准则: (3)软件还应满足某些隐含的需求,例如希望有好的可理解性、可维护性等。 而采用最新的开发技术则会为软件开发导入极大的不确定性,所以应该采用成熟的开发技术。

软件()是指一个系统在给定时间间隔内和给定条件下无失效运行的概率。

A 可靠性 B 可用性 C 可维护性 D 可伸缩性

正确答案:A 答案解析:软件可靠性指的是一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率。软件可用性使之在给定的时间点上,一个软件系统能够按照规格说明正确运行的概率,软件可维护性是在给定的使用条件下,在规定的时间间隔内,使用规定的过程和资源完成维护活动的概率。

在设计中实现可移植性设计的规则不包括()

A 将设备相关程序和设备无关程序分开设计 B 可使用特定环境的专用功能 C 采用平台无关的程序设计语言 D 不使用依赖于某一平台的类库 正确答案:B

以下关于软件工程标准化的叙述中,不正确的是()。

A 可以提高开发人员之间的沟通效率 B 有助于提高管理水平 C 有助于提高软件产品质量 D 可以提高每一位开发人员的开发技能

正确答案:D 答案解析:软件工程标准化: 1、提高软件质量, 提高开发效率: 3.降低成本和风险; 提高管理水平:

逆向工程

软件复用是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面

image-20240708110600731

逆向工程:软件的逆向工程是分析程序,力图在比源代码更高抽象层次上建立程序的表示过程,逆向工程是设计的恢复过程。逆向工程的四个级别:

实现级:包括程序的抽象语法树、符号表、过程的设计表示。

结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图、程序和数据结构。

功能级:包括反映程序段功能及程序段之间关系的信息,例如数据和控制流模型

领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息,例如E-R模型。

其中,领域级抽象级别最高,完备性最低,实现级抽象级别最低,完备性最高

与逆向工程相关的概念有重构、设计恢复、再工程和正向工程

  1. 重构是指在同一抽象级别上转换系统描述形式

  2. 设计恢复是指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计等方面信息

  3. 再工程是指在逆向工程所获得信息的基础上,修改或重构已有的系统,产生系统的一个新版本。再工程是对现有系统的重新开发过程,包括逆向工程、新需求的考虑过程和正向工程三个步骤。它不仅能从已存在的程序中重新获得设计信息,而且还能使用这些信息来重构现有系统,以改进它的综合质量。在利用再工程重构现有系统的同时,一般会增加新的需求,包括增加新的功能和改善系统的性能。

  4. 正向工程是指不仅从现有系统中恢复设计信息,而且使用该信息去改变或重构现有系统,以改善其整体质量

应用系统构建中可以采用多种不同的技术,()可以将软件某种形式的描述转换为更高级的抽象表现形式,而利用这些获取的信息,()能够对现有系统进行修改或重构,从而产生系统的一个新版本。

A.逆向工程((Reverse Engineering) B.系统改进(System lmprovement) C.设计恢复(DesignRecovery)

D.再工程(Re-engineering)

A,逆向工程(Reverse Engineering C.设计恢复(Design Recovery) B.系统改进(System lmprovement) D.再工程(Re-engineering) 答案:A D

在软件系统工具中,版本控制工具属于(),软件评价工具属于()

A.软件开发工具 B.软件维护工具C.编码与排错工具 D.软件管理和软件支持工具

A.逆向工程工具 B.开发信息库工具C.编码与排错工具D.软件管理和软件支持工具

答案:BD 解析:软件系统工具通常可以按软件过程活动将软件工具分为软件开发工具、软件维护工具、软件管理和软件支持工具。软件开发工具:需求分析工具、设计工具、编码与排错工具。软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和 选择

软件需求

软件需求

软件需求:是指用户对系统在功能、行为、性能、设计约束等方面的期望是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。分为需求开发需求管理两大过程,如下所示:

image-20240708110628373

业务需求:反映企业或客户对系统高层次的目标要求,通常来自项目投资人、客户、市场营销部门或产品策划部门。通过业务需求可以确定项目视图和范围。

用户需求:描述的是用户的具体目标,或用户要求系统必须能完成的任务即描述了用户能使用系统来做什么。通常采取用户访谈和问卷调查等方式,对用户使用的场景进行整理,从而建立用户需求

系统需求:从系统的角度来说明软件的需求,包括功能需求、非功能需求和设计约束等。 功能需求:也称为行为需求,规定了开发人员必须在系统中实现的软件功能用户利用这些功能来完成任务,满足业务需要。

非功能需求:指系统必须具备的属性或品质,又可以细分为软件质量属性(如可维护性、可靠性、效率等)和其他非功能需求。3)设计约束:也称为限制条件或补充规约,通常是对系统的一些约束说明,例如必须采用国有自主知识产权的数据库系统,必须运行在UNIX操作系统之下等。、

image-20240708110641014

质量功能部署

质量功能部署(QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,QFD将软件需求分三类,分别是常规需求、期望需求和意外需求

  1. 常规需求。用户认为系统应该做到的功能或性能,实现越多用户会越满意

  2. 期望需求。用户想当然认为系统应具备的功能或性能,但并不能正确描述自己想要得到的这些功能或性能需求。如果期望需求没有得到实现,会让用户感到不满意。

  3. 意外需求。意外需求也称为兴奋需求,是用户要求范围外的功能或性能(但通常是软件开发人员很乐意赋予系统的技术特性),实现这些需求用户会更高兴,但不实现也不影响其购买的决策。

软件需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为获取情况、分析、()和评审四个阶段。

A.制订规格说明B.形成需求基线C.跟踪需求变更D.控制需求版本答案A

某软件公司正在承担开发一个字处理器的任务。在需求分析阶段,公司的相关人员整理出一些相“找出文档中的拼写错误并提供一个替换项列表来供选择替换拼错的词”关的系统需求,其中,属于();“显示提供替换词的对话框以及实现整个文档范围的替换”属于();“用户能有效地纠正文档中的拼写错误”属于()

A.业务需求A.业务需求 C.功能需求 D.性能需求

A.业务需求A.业务需求 C.功能需求 D.性能需求

A.业务需求A.业务需求 C.功能需求 D.性能需求

答案:BCA

需求获取

需求获取:是一个确定和理解不同的项目干系人的需求和约束的过程

常见的需求获取法包括

  1. 用户访谈:1对1-3,有代表性的用户。其形式包括结构化和非结构化两种。

  2. 问卷调查:用户多,无法一-访谈。

  3. 采样:从种群中系统地选出有代表性的样本集的过程。样本数量=0.25*(可信度因子/错误率)2

  4. 情节串联板:一系列图片,通过这些图片来讲故事。

  5. 联合需求计划(JRP):通过联合各个关键用户代表、系统分析师、开发团队代表一起,通过有组织的会议来讨论需求。

  6. 需求记录技术:任务卡片、场景说明、用户故事、Volere白卡。

需求获取是确定和理解不同的项目干系人的需求和约束的过程,需求获取是否科学、准备充分对获取出来的结果影响很大。在多种需求获取方式中,()方法具有良好的灵活性,有较宽广的应用范围,但存在获取需求时信息量大、记录较为困难、需要足够的领域知识等问题。方法基于数理统计原理,不仅可以用于收集数据,还可以用于采集访谈用户或者是采集观察用户并可以减少数据收集偏差。()方法通过高度组织的群体会议来分析企业内的问题,并从中获取系统需求。

A.用户访谈A.用户访谈 C.联合需求计划 D.采样

A.用户访谈A.用户访谈 C.联合需求计划 D.采样

A.用户访谈A.用户访谈 C.联合需求计划 D.采样 答案:ADC

需求分析

一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作。

需求分析的任务

  1. 绘制系统上下文范围关系图(数据流图)

  2. 创建用户界面原型

  3. 分析需求的可行性

  4. 确定需求的优先级

  5. 为需求建立模型

  6. 创建数据字典

  7. 使用QFD(质量功能部署

结构化的需求分析

结构化的需求分析结构化特点:自顶向下,逐步分解,面向数据

三大模型:功能模型(数据流图)、行为模型(状态转换图)数据模型(E-R图)以及数据字典

image-20240624170641893

状态转换图

状态转换图STD如下图所示:

image-20240717200329856

需求定义

需求定义(软件需求规格说明书SRS):是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为整个开发工作的基础。SRS是软件开发过程中最重要的文档之一,对于任何规模和性质的软件项目都不应该缺少。

需求定义方法

  1. 严格定义也称为预先定义,需求的严格定义建立在以下的基本假设之上所有需求都能够被预先定义。开发人员与用户之间能够准确而清晰地交流。采用图形(或文字)可以充分体现最终系统。

  2. 原型方法,迭代的循环型开发方式,需要注意的问题:并非所有的需求都能在系统开发前被准确地说明。项目干系人之间通常都存在交流上的困难,原型提供了克该服困难的一个手段。特点:需要实际的、可供用户参与的系统型。有合适的系统开发环境。反复是完全需要和值得提倡的,需求一旦确定,就应遵从严格的方法。

需求验证

需求验证:也称为需求确认,目的是与用户一起确认需求无误,对需求规格说明书SAS进行评审和测试,包括两个步骤:需求评审:正式评审和非正式评审。需求测试:设计概念测试用例。

需求验证通过后,要请用户签字确认,作为验收标准之一,此时,这个需求规格说明书就是需求基线,不可以再随意更新,如果需要更改必须走需求变更流程。

需求管理

定义需求基线:通过了评审的需求说明书就是需求基线,下次如果需要变更需求,就需要按照流程来一步步进行。需求的流程及状态如下图所示:

image-20240717200458361

需求变更

  1. 需求变更和风险主要关心需求变更过程中的需求风险管理,不带有风险的做法有:无足够用户参与、忽略了用户分类、用户需求的不断增加、模棱两可的需求、不必要的特性、过于精简的SRS、不准确的估算

  2. 变更产生的原因:外部环境的变化、需求和设计做的不够完整、新技术的出现、公司机构重组造成业务流程的变化

  3. 变更控制委员会CCB:也称为配置控制委员会,其任务时对建议的配置项变更做出评价、审批,以及监督已经批准变更的实施。

image-20240717200528706

需求跟踪

双向跟踪,两个层次,如下图所示:

image-20240717200547084

正向跟踪表示用户原始需求是否都实现了,反向跟踪表示软件实现的是否都是用户要求的,不多不少,可以用原始需求和用例表格(需求跟踪矩阵)来表示: 若原始需求和用例有对应,则在对应栏打对号,若某行都没有对号,表明原始需求未实现,正向跟踪发现问题;若某列都没有对号,表明有多余功能用例软件实现了多余功能,反向跟踪发现问题。

()是关于需求管理正确的说法。

A.为达到过程能力成熟度模型第二级,组织机构必须具有3个关键过程域

B.需求的稳定性不属于需求属性

C.需求变更的管理过程遵循变更分析和成本计算、问题分析和变更描述、变更实现的顺序

D.变更控制委员会对项目中任何基线工作产品的变更都可以做出决定 答案:D

在结构化分析中,用数据流图描述()。当采用数据流图对一个图书馆管理系统进行分析时,()是一个外部实体。 A. 数据对象之间的关系,用于对数据建模 B. 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模 C.系统对外部事件如何响应,如何动作,用于对行为建模 D. 数据流图中的各个组成部分 A.读者 B图书 C借书证 D借阅 答案:B A

处理流程设计

业务流程建模

标杆瞄准:以行业领先的标杆企业为目标,结合本企业情况分析建模。

  1. IDEF(一系列建模、分析和仿真方法的统称)

  2. DEMO(组织动态本质建模法)

  3. Petri网

  4. 业务流程建模语言:BPEL、BPML、BPMN、XPDL

  5. 基于服务的BPM:基于Web服务的思想对业务流程进行建模

IDEF0:业务流程(功能)建模

IDEF1:信息建模;

IDEF1X:数据建模(如ER模型)

IDEF2:仿真建模设计

IDEF3:过程描述获取

IDEF4:面向对象设计

IDEF5:本体论描述获取

IDEF6:设计原理获取:

IDEF7:信息系统审计

IDEF8:用户界面建模

IDEF9:场景驱动信息系统设计;

IDEF10:实施架构建模;

IDEF11:信息制品建模;

IDEF12:组织结构建模

IDEF13 :三模式映射设计;

IDEF14:网络规划。

流程表示工具⭐

程序流程图Program Flow Diagram,PFD用一些图框表示各种操作,它独立于任何一种程序设计语言,比较直观、易于学习掌握。任何复杂的程序流程图都应该由顺序、选择和循环结构组合或嵌套而成。

  1. IPO图也是流程描述工具,用来描述构成软件系统的每个模块的输入、输出和数据加工

  2. N-S图容易表示嵌套和层次关系,并具有强烈的结构化特征。但是当问题很复杂时,N-S图可能很大,因此不适合于复杂程序的设计

  3. 问题分析图(PAD)是一种支持结构化程序设计的图形工具。PAD具有清晰的逻辑结构、标准化的图形等优点,更重要的是,它引导设计人员使用结构化程序设计方法,从而提高程序的质量。

image-20240624171119112

业务流程重组BPR

BPR是对企业的业务流程进行根本性的再思考和彻底性的再设计,从而获得可以用诸如成本、质量、服务和速度等方面的业绩来衡量的显著性的成就。BPR设计原则、系统规划和步骤如下图所示:

image-20240624171141018

业务流程管理BPM

BPM是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法。

BPM与BPR管理思想最根本的不同就在于流程管理并不要求对所有的流程进行再造。构造卓越的业务流程并不是流程再造,而是根据现有流程的具体情况,对流程进行规范化的设计

流程管理包含三个层面:规范流程、优化流程和再造流程

流程设计的任务是设计出系统所有模块和它们之间的相互关系,并具体设计出每个模块内部的功能和处理过程。以下关于流程设计的叙述,正确的是()

A.任何复杂的程序流程图都应该由顺序、选择、循环结构构成

B.IPO图不适合用来进行流程设计

C.PAD图是一种支持原型化设计方法的图形工具

D.N-S图容易表示嵌套关系和层次关系,特别适合于设计非常复杂的流程 答案:A

业务流程重组(Business Process Reengineering,BPR)是针对企业业务流程的基本问题进行回顾,其核心思路是对业务流程的()改造,BPR过程通常以()为中心。 A、增量式 B、根本性 C、迭代式 D、保守式 A、流程 B、需求 C、组织 D、资源、 答案:B A

系统设计

  1. 系统设计主要目的:为系统制定蓝图,在各种技术和实施方法中权衡利弊精心设计,合理地使用各种资源,最终勾画出新系统的详细设计方法

  2. 系统设计方法:结构化设计方法,面向对象设计方法

  3. 系统设计的主要内容:概要设计、详细设计

  4. 概要设计基本任务:又称为系统总体结构设计,是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图

  5. 详细设计的基本任务:模块内详细算法设计、模块内数据结构设计、数据库的物理设计、其他设计(代码、输入/输出格式、用户界面)、编写详细设计说明书、评审。

系统设计基本原理:抽象化; 自顶而下,为逐步求精; 信息隐蔽; 模块独立(高内聚,低耦合)。

系统设计原则:保持模块的大小适中; 尽可能减少调用的深度; 多扇入,少扇出;单入口,单出口;模块的作用域应该在模块之内;功能应该是可预测的。

系统设计基本原理:抽象、模块化、信息隐蔽、块独立。衡量模块独立程度的标准有两个:耦合性和内聚性。内聚程度从低到高如下表

image-20240624171304402

耦合程度从低到高如下表所示:

image-20240624171328060

某模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一处理元素的输出就是下一处理元素的输入,则该模块的内聚类型为()内聚

A、过程B、时间C、顺序 D、逻辑 答案:C

已知模块A给模块B传递数据结构X,则这两个模块的耦合类型为()

A.数据耦合B.公共耦合 C.外部耦合 D.标记耦合

答案:D 解析:特别说明是数据结构,不是数据,数据结构是标记耦合。

系统设计是根据系统分析的结果,完成系统的构建过程。系统设计的主要内容包括();系统总体结构设计的主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系形成软件的() A.概要设计和详细设计 B.架构设计和对象设计 C.部署设计和用例设计 D.功能设计和模块设计

A.用例图 B.模块结构图C.系统部署图D.类图 答案:A B

以下关于软件系统模块结构设计的叙述中,正确的是()

A.当模块扇出过大时,应把下级模块进一步分解为若干个子模块

B.当模块扇出过小时,应适当增加中间的控制模块

C.模块的扇入大,表示模块的复杂度较高

D.模块的扇入大,表示模块的复用程度高 答案:D

人机界面设计

人机界面设计三大黄金原则

image-20240708111135855

软件设计

image-20240708111213304

结构化设计

image-20240708111235478

image-20240708111249280

软件测试

image-20240708144210596

测试原则和方法

系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试

测试原则
  1. 应尽早并不断的进行测试

  2. 测试工作应该避免由原开发软件的人或小组承担

  3. 在设计测试方案时,不仅要确定输入数据,而且要根据系统功能确定预期的

输出结果
  1. 既包含有效、合理的测试用例,也包含不合理、失效的用例;

  2. 检验程序是否做了该做的事,且是否做了不该做的事;严格按照测试计划进行;

  3. 妥善保存测试计划和测试用例:

  4. 测试用例可以重复使用或追加测试

软件测试方法

软件测试方法可分为静态测试和动态测试

静态测试:指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测,包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态测试,包括桌前检查、代码审查、代码走查的方式。使用这种方法能够有效地发现30%-70%的逻辑设计和编码错误。

动态测试:指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。黑盒测试法:功能性测试,不了解软件代码结构,根据功能设计用例,测试软件功能。

白盒测试法:结构性测试,明确代码流程,根据代码逻辑设计用例,进行用例覆盖。

image-20240708144230000

  1. 单元测试:也称为模块测试,测试的对象是可独立编译或汇编的程序模块软件构件或00软件中的类(统称为模块),测试依据是软件详细设计说明书

  2. 集成测试:目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。测试依据是软件概要设计文档

image-20240708144259242

  1. 确认测试:主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户的参与程度,通常包括以下类型:内部确认测试:主要由软件开发组织内部按照SRS进行测试

    Alpha测试:用户在开发环境下进行测试。用户在实际使用环境下进行测试,通过改测试后,产品才能交付用户

    Beta测试:验收测试:针对SRS,在交付前以用户为主进行的测试。其测试对象为完整的、集成的计算机系统。验收测试的目的是,在真实的用户工作环境下,检验软件系统是否满足开发技术合同或SRS。验收测试的结论是用户确定是否接收该软件的主要依据。除应满足一般测试的准入条件外,在进行验收测试之前,应确认被测软件系统已通过系统测试。

  1. 系统测试:测试对象是完整的、集成的计算机系统;测试的目的是在真实系统工作环境下,验证完成的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。测试依据是用户需求或开发合同主要内容包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试安装与反安装测试等,其中,最重要的工作是进行功能测试与性能测试。功能测试主要采用黑盒测试方法;性能测试主要指标有响应时间、吞吐量、并发用户数和资源利用率等。

image-20240708144313718

  1. 配置项测试:测试对象是软件配置项,测试目的是检验软件配置项与SRS的一致性。测试的依据是SRS。在此之间,应确认被测软件配置项已通过单元测试和集成测试、

  2. 回归测试:测试目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性

image-20240708144248142

测试策略
  1. 自底向上:从最底层模块开始测试,需要编写驱动程序,而后开始逐一合并模块,最终完成整个系统的测试。优点是较早的验证了底层模块

  2. 自顶向下:先测试整个系统,需要编写桩程序,而后逐步向下直至最后测试最底层模块。优点是较早的验证了系统的主要控制和判断点。

  3. 三明治:既有自底向上也有自顶向下的测试方法,二者都包括。兼有二者的优点,缺点是测试工作量大

软件确认测试也称为有效性测试,主要验证()。确认测试计划通常是在需求分析阶段完成的。根据用户的参与程度不同,软件确认测试通常包括()。

A.系统中各个单元模块之间的协作性

B.软件与硬件在实际运行环境中能否有效集成

C.软件功能、性能及其它特性是否与用户需求一致

D.程序模块能否正确实现详细设计说明中的功能、性能和设计约束等要求

A.黑盒测试和自盒测试

B.一次性组装测试和增量式组装测试

C.内部测试、Alpha、Beta 和验收测试

D.功能测试、性能测试、用户界面测试和安全性测试 答案:C C

软件测试一般分为两个大类:动态测试和静态测试。前者通过运行程序发现错误,包括()等方法;后者采用人工和计算机辅助静态分析的手段对程序进行检测,包括()等方法。

A.边界值分析、逻辑覆盖、基本路径

B.桌面检查、逻辑覆盖、错误推测

C.桌面检查、代码审查、代码走查

D.错误推测、代码审查、基本路径

A.边界值分析、逻辑覆盖、基本路径

B.桌面检查、逻辑覆盖、错误推测

C.桌面检查、代码审查、代码走查

D.错误推测、代码审查、基本路径 答案AC

测试用例的设计

黑盒测试用例

黑盒测试用例:将程序看做一个黑盒子,只知道输入输出,不知道内部代码由此设计出测试用例

分为下面几类:

等价类划分:把所有的数据按照某种特性进行归类,而后在每类的数据里选取一个即可。等价类测试用例的设计原则:设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

边界值划分:将每类的边界值作为测试用例,边界值一般为范围的两端值以及在此范围之外的与此范围间隔最小的两个值,如年龄范围为0-150,边界值为0,150,-1,151四个。

错误推测:没有固定的方法,凭经验而言,来推测有可能产生问题的地方作为测试用例进行测试。

因果图:由一个结果来反推原因的方法,具体结果具体分析,没有固定方法

白盒测试用例

白盒测试用例:知道程序的代码逻辑,按照程序的代码语句,来设计覆盖代码分支的测试用例,覆盖级别从低至高分为下面几种:

语句覆盖SC:逻辑代码中的所有语句都要被执行一遍,覆盖层级最低,因为执行了所有的语句,不代表执行了所有的条件判断。

判定覆盖DC:逻辑代码中的所有判断语句的条件的真假分支都要覆盖一次

image-20240624171638626

条件覆盖CC:针对每一个判断条件内的每一个独立条件都要执行一遍真和假。条件判定组合覆盖CDC:同时满足判定覆盖和条件覆盖

image-20240624171705713

路径覆盖:逻辑代码中的所有可行路径都覆盖了,覆盖层级最高

image-20240624171727856

招聘系统要求求职的人年龄在20岁到60岁之间(含),学历为本科、硕士或者博士,专业为计算机科学与技术、通信工程或者电子工程。其中()不是好的测试用例。

A.(20,本科,电子工程 ) B.(18,本科,通信工程) C.(18,大专,电子工程) D.(25,硕士,生物学) 答案:C

以下关于测试的叙述中,正确的是()

A.实际上,可以采用穷举测试来发现软件中的所有错误

B.错误很多的程序段在修改后错误一般会非常少

C.测试可以用来证明软件没有错误

D.白盒测试技术中,路径覆盖法往往能比语句覆盖法发现更多的错误 答案:D

采用白盒测试方法对下图进行测试,设计了4个测试用例:①(x=0,y=3),②(x=1,y=2),③(x=-1,y=2),④(x=3,y=1)。至少需要测试用例①②才能完成 (35)覆盖,至少需要测试用例①②③或①②④才能完成(36) 覆盖。

image-20240624171810849

A.语句B.条件 C判断/条件D.路径

A.语句B.条件 C判断/条件D.路径

答案:A D 解析:可根据问题将测试用例代入执行,①②会执行语句A和语句B,但只覆盖第一个条件,因此是语句覆盖:①②覆盖了第一个条件的真假,执行了第一个条件的和N以及第二个条件的N,而③或者④又执行到了第二个条件的Y,因此流程中所有分支都走到了,是路径覆盖。

软件调试

测试是发现错误,调试是找出错误的代码和原因

调试需要确定错误的准确位置:确定问题的原因并设法改正:改正后要进行回归测试

image-20240708144359586

调试的方法有:蛮力法、回溯法(从出错的地方开始,向回找)、原因排除法(找出所有可能的原因,逐一进行排除,具体包括演绎法、归纳法、二分法)

image-20240708144409548

软件度量

软件的两种属性外部属性指面向管理者和用户的属性,可直接测量,一般为性能指标内部属性指软件产品本身的的属性,如可靠性等,只能间接测量

McCabe度量法:又称为环路复杂度,假设有向图中有向边数为m,节点数为n则此有向图的环路复杂度为m-n+2。注意m和n代表的含义不能混淆,可以用一个最简单的环路来做特殊值记忆此公式,另外,针对一个程序流程图,每一个分支边(连线)就是一条有向边,每一条语句(语句框)就是一个顶点。

下图用白盒测试方法进行测试,图中有()条路径(即从开始到结束有多少条路径),采用McCabe度量计算该程序图的环路复杂性为() A、3 B、4 C、5 D、6 A、3B、4 C、5 D、6 答案:B B

image-20240624171917507

根据McCabe度量法,以下程序图的复杂性度量值为()。

image-20240904202138601

正确答案:A 答案解析: 软件复杂性度量是软件度量的一个重要分支,而其主要表现在程序的复杂性。其中,McCabe度量法是一种基于程序控制流的复杂性度量方法,该方法认为程序的复杂性很大程度上取决于控制的复杂性。这里有一个简单的方式去判断程序图的复杂性,即封闭空间的个数+1为正确答案。

对下图所示流程图采用白盒测试方法进行测试,若要满足判定覆盖,则至少需要(0)个测试用例。采用McCabe度量法计算该程序的环路复杂性为()。 A 1 B 2 C 3 D 4 A 1 B 2 C 3 D 4

image-20240904202242189

正确答案:C D 答案解析:判定覆盖:使程序中每条分支都至少执行一次,因此需要3个测试用例。计算环路复杂度:封闭区域数加1:3+1=4

对下图所示的程序流程图进行语句覆盖测试和路径覆盖测试,至少需要()个测试用例。采用McCabe 度量法计算其环路复杂度为()。

image-20240904202447775

A 2和3 B 2和4 C 2和5 D 2和6

正确答案:B答案解析:覆盖2条路径就能达到语句覆盖的要求,用2个测试用例即可。路径覆盖需要把程序中的3条路径均覆盖遍,需要4个用例。整个程序流程图转化为节点图之后,一共11个节点,13条边,根据环路复杂度公式有:13-11+2=4

系统转换

系统转换

遗留系统是指任何基本上不能进行修改和演化以满足新的变化了的业务需求的信息系统

它通常具有以下特点

  1. 系统虽然完成企业中许多重要的业务管理工作,但仍然不能完全满足要求。一般实现业务处理电子化及部分企业管理功能,很少涉及经营决策,

  2. 系统在性能上已经落后,采用的技术已经过时。例如,多采用主机/终端形式或小型机系统,软件使用汇编语言或第三代程序设计语言的早期版本开发,使用文件系统而不是数据库。

  3. 通常是大型的软件系统,已经融入企业的业务运作和决策管理机制之中,维护工作十分困难

  4. 没有使用现代信息系统建设方法进行管理和开发,现在基本上已经没有文档,很难理解

image-20240708144439161

系统转换

系统转换是指新系统开发完毕,投入运行,取代现有系统的过程,需要考虑多方面的问题,以实现与老系统的交接,有以下三种转换计划:

直接转换:现有系统被新系统直接取代了,风险很大,适用于新系统不复杂或者现有系统已经不能使用的情况。优点是节省成本。

并行转换:新系统和老系统并行工作一段时间,新系统经过试运行后再取代若新系统在试运行过程中有问题,也不影响现有系统的运行,风险极小,在试运行过程中还可以比较新老系统的性能,适用于大型系统。缺点是耗费人力和时间资源,难以控制两个系统间的数据转换。

分段转换:分期分批逐步转换,是直接和并行转换的集合,将大型系统分为多个子系统,依次试运行每个子系统,成熟一个子系统,就转换一个子系统。同样适用于大型项目,只是更耗时,而且现有系统和新系统间混合使用,需要协调好接口等问题。

image-20240708144502388

数据转换与迁移:将数据从旧数据库迁移到新数据库中。有三种方法:系统切换前通过工具迁移、系统切换前采用手工录入、系统切换后通过新系统生成

image-20240708144522850

系统维护

系统的可维护性可以定义为维护人员理解、改正、改动和改进这个软件的难易程度,其评价指标如下:

  1. 易分析性。软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。

  2. 易改变性。软件产品使指定的修改可以被实现的能力,实现包括编码、设计和文档的更改。

  3. 稳定性。软件产品避免由于软件修改而造成意外结果的能力。

  4. 易测试性。软件产品使已修改软件能被确认的能力。

  5. 维护性的依从性。软件产品遵循与维护性相关的标准或约定的能力。

image-20240708144547614

系统维护包括硬件维护、软件维护和数据维护,其中软件维护类型如下

  1. 正确性维护:发现了bug而进行的修改。

  2. 适应性维护:由于外部环境发生了改变,被动进行的对软件的修改和升级。

  3. 完善性维护:基于用户主动对软件提出更多的需求,修改软件,增加更多的功能,使其比之前的软件功能、性能更高,更加完善。

  4. 预防性维护:对未来可能发生的bug进行预防性的修改。

系统评价

系统评价分类

立项评价:系统开发前的预评价,分析是否立项开发,做可行性评价。

中期评价:项目开发中期每个阶段的阶段评审。或者项目在开发中途遇到重大变故,评价是否还要继续

结项评价:系统投入正式运行后,了解系统是否达到预期的目的和要求而对系统进行的综合评价。

系统评价的指标

  1. 从信息系统的组成部分出发,信息系统是一个由人机共同组成的系统,所以可以按照运行效果和用户需求(人)、系统质量和技术条件(机)这两条线索构造指标。

  2. 从信息系统的评价对象出发,对于开发方来说,他们所关心的是系统质量和技术水平对于用户方而言,关心的是用户需求和运行质量:系统外部环境则主要通过社会效益指标来反映。

  3. 从经济学角度出发,分别按系统成本、系统效益和财务指标3条线索建立指标。

对于遗留系统的评价框架如下图所示,那么处于“高水平、低价值”区的遗留系统适合于采用的演化策略为()。 A.淘汰 B.继承 C.改造 D.集成 答案:D

image-20240624172044188

以下关于软件维护和可维护性的叙述中,不正确的是()

A. 软件维护要解决软件产品交付用户之后运行中发生的各种问题

B.软件的维护期通常比开发期长得多,其投入也大得多

C.进行质量保证审查可以提高软件产品的可维护性

D. 提高可维护性是在软件维护阶段考虑的问题 答案:D

某企业由于外部市场环境和管理需求的变化对现有软件系统提出新的需求,则对该软件系统进行的维护属于维护。 A.正确性 B.完善性C.适应性 D.预防性 答案:C

项目管理

每年考2-3分,进度管理必考,其他随意

image-20240717201729082

范围管理

范围管理确定在项目内包括什么工作和不包括什么工作,由此界定的项目范围在项目的全生命周期内可能因种种原因而变化,项目范围管理也要管理项目范围的这种变化。项目范围的变化也叫变更

项目范围的管理

对项目范围的管理,是通过5个管理过程来实现的

  1. 规划范围管理(编制范围管理计划)。对如何定义、确认和控制项目范围的过程进行描述。

  2. 定义范围。详细描述产品范围和项目范围,编制项目范围说明书,作为以后项目决策的基础。其

    输入包括:项目章程。项目范围管理计划。组织过程资产批准的变更申请

  3. 创建工作分解结构。把整个项目工作分解为较小的、易于管理的组成部分形成一个自上而下的分解结构

  4. 确认范围。正式验收已完成的可交付成果

  5. 范围控制。监督项目和产品的范围状态、管理范围基准变更,

image-20240708194332471

产品范围和项目范围

产品范围是指产品或者服务所应该包含的功能。产品范围是否完成,要根据产品是否满足了产品描述来判断。产品范围是项目范围的基础,产品范围的定义是产品要求的描述 项目范围是指为了能够交付产品,项目所必须做的工作。项目范围的定义是产生项目管理计划的基础。判断项目范围是否完成,要以范围基准来衡量。项目的范围基准是经过批准的项目范围说明书、WBS和WBS词典。 产品范围描述是项目范围说明书的重要组成部分,因此,产品范围变更后,首先受到影响是项目范围

WBS 将项目整体或者主要的可交付成果分解成容易管理、方便控制的若干个子项目或者工作包,子项目需要继续分解为工作包,持续这个过程,直到整个项目部分解为可管理的工作包,这些工作包的总和是项目的所有工作范围。最普通的WBS 如下表所示:

image-20240717201845894

()把软件项目整体或者主要的可交付成果分解为易于管理、方便控制的若干个子项目;再将子项目继续分解为工作包。在每个分解单元中,都存在可交付成果和里程碑。该模型的主要用途是() A.分层数据流图 B.软件模块图 C.工作分解结构WBS D.PERT图 A.描述软件项目的功能需求 B.定义项目边界,有助于防止需求蔓延 C.对软件的静态结构进行建模 D.刻画软件开发活动之间的依赖关系 答案:CB

成本管理

项目成本管理是在整个项目的实施过程中,为确保项目在批准的预算条件下尽可能保质按期完成,而对所需的各个过程进行管理与控制。

项目成本管理包括成本估算、成本预算和成本控制三个过程

  1. 成本估算是对完成项目所需成本的估计和计划,是项目计划中的一个重要的、关键的、敏感的部分;成本估算主要靠分解和类推的手段进行,基本估算方法分为三类:自顶向下的估算、自底向上的估算和差别估算法

  2. 成本预算是把估算的总成本分配到项目的各个工作包,建立成本基准计划以衡量项目绩效;应急储备和管理储备

  3. 成本控制保证各项工作在各自的预算范围内进行

成本的类型

  1. 可变成本:随着生产量、工作量或时间而变的成本为可变成本。可变成本又称变动成本。

  2. 固定成本:不随生产量、工作量或时间的变化而变化的非重复成本为固定成本

  3. 直接成本:直接可以归属于项目工作的成本为直接成本。如项目团队差旅费、工资项目使用的物料及设备使用费等。

  4. 间接成本:来自一般管理费用科目或几个项目共同担负的项目成本所分摊给本项目的费用,就形成了项目的间接成本,如税金、额外福利和保卫费用等。

  5. 机会成本:是利用一定的时间或资源生产一种商品时,而失去的利用这些资源生产其他最佳替代品的机会就是机会成本,泛指一切在做出选择后其中一个最大的损失。

  6. 沉没成本:是指由于过去的决策已经发生了的,而不能由现在或将来的任何决策改变的成本。沉没成本是一种历史成本,对现有决策而言是不可控成本,会很大程度上影响人们的行为方式与决策,在投资决策时应排除沉没成本的干扰。

  7. 学习曲线:重复生成产品时,产品的单位成本会随着产量的扩大呈现规律性递减。估算成本时,也要考虑此因素。

关于成本类型的描述,不正确的是()。

A、项目团队差旅费、工资、税金及设备使用费为直接成本

B、随着生产量,工作量或时间而变的成本称为变动成本

C、利用一定时间或资源生产一种商品时,便失去了使用这些资源生产其他最佳替代品的机会称为机会成本 D、沉没成本是一种历史版本,对现有决策而言是不可控成本答案:A

投资者赵某可以选择股票和储蓄存款两种投资方式。他于2017年1月1日用2万元购进某股票一年后亏损了 500 元,如果当时他选择储蓄存款,一年后将有 360 元的收益。由此可知,赵某投资股票的机会 成本为()元。 A、500B、360C、860D、140 答案:B

image-20240708194636474

成本管理-挣值管理

image-20240708194659070

进度管理⭐

进度管理就是采用科学的方法,确定进度目标,编制进度计划和资源供应计划,进行进度控制,在与质量、成本目标协调的基础上,实现工期目标

执行过程

进度管理具体来说,包括以下过程

  1. 活动定义:确定完成项目各项可交付成果而需要开展的具体活动

  2. 活动排序:识别和记录各项活动之间的先后关系和逻辑关系

  3. 活动资源估算:估算完成各项活动所需要的资源类型和效益

  4. 活动历时估算:估算完成各项活动所需要的具体时间

  5. 进度计划编制:分析活动顺序、活动持续时间、资源要求和进度制约因素,制订项目进度计划

  6. 进度控制:根据进度计划开展项目活动,如果发现偏差,则分析原因或进行调整

活动资源估算

活动资源估算方法主要有专家判断法、替换方案的确定、公开的估算数据、估算软件和自下而上的估算

  1. 专家判断法。专家判断法通常是由项目管理专家根据以往类似项目经的验和对本项目的判断,经过周密思考,进行合理预测,从而估算出项目资源。

  2. 替换方案的确定。资源估算是为了给项目预算明确空间,为早期的资源筹备提供数据,如果某项活动存在替代方案,或提供的资源有替代支持可能,则需要明确声明。

  3. 公开的估算数据。有些公司会定期地公开一些生产率或人工费率数据,其中包括很多国家和地区的劳动力交易、材料和设备信息。

  4. 估算软件。依靠软件的强大功能,可以定义资源可用性、费率,以及不同的资源日历。

  5. 自下而上的估算。把复杂的活动分解为更小的工作,以便于资源估算。将每项工作所需要的资源估算出来,然后汇总即是整个活动所需要的资源数量。

软件规模估算

COCOMO模型:常见的软件规模估算方法。常用的代码行分析方法作为其中-种度量估计单位,以代码行数估算出每个程序员工作量,累加得软件成本。模型按其详细程度可以分为三级:

  1. 基本COCOMO模型是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。

  2. 中间COCOMO模型在基本COCOM0模型的基础上,再用涉及产品、硬件人员、项目等方面的影响因素调整工作量的估算

  3. 详细COCOMO模型包括中间COCOMO模型的所有特性,将软件系统模型分为系统、子系统和模块3个层次,更进一步考虑了软件工程中每一步骤(如分析设计)的影响

COCOMOⅡ模型:COCOMO的升级,也是以软件规模作为成本的主要因素考虑多个成本驱动因子。该方法包括三个阶段性模型,即应用组装模型、早期设计阶段模型和体系结构阶段模型。包含三种不同规模估算选择:对象点、功能点和代码行

进度安排

进度安排的常用图形描述方法有Gantt 图(甘特图)项目计划评审技术(Program Evaluation& Review Technique,PERT)图

image-20240624174157964

关键路径法⭐

关键路径:是项目的最短工期,但却是从开始到结束时间最长的路径。进度网络图中可能有多条关键路径,因为活动会变化,因此关键路径也在不断变化中关键活动:关键路径上的活动,最早开始时间=最晚开始时间。通常,每个节点的活动会有如下几个时间:

最早开始时间(ES),某项活动能够开始的最早时间。

最早结束时间(EF),某项活动能够完成的最早时间。EF=ES+工期

最迟结束时间(LF),为了使项目按时完成,某项活动必须完成的最迟时间。

最迟开始时间(LS),为了使项目按时完成,某项活动必须开始的最迟时间。LS=LF-工期

这几个时间通常作为每个节点的组成部分

顺推:最早开始ES=所有前置活动最早完成EF的最大值:最早完成EF=最早开始ES+持续时间

逆推:最晚完成LF=所有后续活动最晚开始LS的最小值;最晚开始LS=最晚完成LF-持续事件

总浮动时间:在不延误项目完工时间且不违反进度制约因素的前提下,活动可以从最早开始时间推迟或拖延的时间量,就是该活动的进度灵活性。正常情况下,关键活动的总浮动时间为零 总浮动时间=最迟开始LS-最早开始ES 或 最迟完成LF-最早完成EF 或 关键路径非关键路径时长

自由浮动时间:是指在不延误任何紧后活动的最早开始时间且不违反进度制约因素的前提下,活动可以从最早开始时间推迟或拖延的时间量 自由浮动时间=紧后活动最早开始时间的最小值-本活动的最早完成时间

下图中(单位:周)显示的项目历时总时长是()周。在项目实施过程中,活动d-i比计划延期了2周,活动a-c实际工期是6周,活动f-h比计划提前了1周,此时该项目的历时总时长为()周。

image-20240624174309221

A. 14 B. 18 C.16 D. 13 A. 14 B. 18 C.16 D. 18 【答案】C C 解析:关键路径是最长的一条路径。题干的图示并不复杂,所以直接可以数出来,发现路径adfhik是最长的,所以他是关键路径,总时长用路径的活动周期相加即可,等于16。题干所说的实施过程,影响了3条路径,分别是acik,adik和原来的关键路径adfhjk。按照其调整,三条路径的时长分别是:acik=15,adik=16,adfhjk=15,故项目历时总时长还是16周。

某项目包含 A、B、C、D、E、F、G 七个活动,各活动的历时估算和逻辑关系如下表所示,则活动的总浮动时间是()天,项目工期是()天。

image-20240624174539521

A 0 B 1 C 2 D 3

A 14 B 15 C 16D 17

【答案】D D【解析】文老师建议选择题的这种表格题,逻辑关系清晰的,可以直接根据表格列举出各路径长度,找出最长的。逻辑关系不清晰的,根据表格画出网络图,然后再找。ABEG=2+4+4+3=13;ACEG2+5+4+3=14:ADFG=2+6+6+3=17 活动C的总浮动=17-C活动所在路径的最长路径 14=3,

配置管理

配置管理是为了系统地控制配置变更,在系统的整个生命周期中维持配置的完整性和可跟踪性,而标识系统在不同时间点上配置的学科。

在GB/T11457-2006中将“配置管理”正式定义为:“应用技术的和管理的指导和监控方法以标识和说明配置项的功能和物理特征,控制这些特征的变更,记录和报告变更处理和实现状态并验证与规定的需求的遵循性。配置管理包括6个主要活动:制订配置管理计划、配置标识、配置控制、配置状态报告、配置审计、发布管理和交付。

配置项:GB/T11457-2006对配置项的定义为:“为配置管理设计的硬件、软件或二者的集合,在配置管理过程中作为一个单个实体来对待”

以下内容都可以作为配置项进行管理:外部交付的软件产品和数据、指定的内部软件工作产品和数据、指定的用于创建或支持软件产品的支持工具、供方/供应商提供的软件和客户提供的设备/软件

典型配置项包括项目计划书、需求文档、设计文档、源代码、可执行代码、测试用例运行软件所需的各种数据,它们经评审和检查通过后进入配置管理。 每个配置项的主要属性有:名称、标识符、文件状态、版本、作者、日期等。

配置项可以分为基线配置项和非基线配置项两类,例如,基线配置项可能包括所有的设计文档和源程序等;非基线配置项可能包括项目的各类计划和报告等。

所有配置项的操作权限应由CMO(配置管理员)严格管理,基本原则是:基线配置项向开发人员开放读取的权限;非基线配置项向PM、CCB及相关人员开放

配置项的状态可分为“草稿”“正式”和“修改”三种。配置项刚建立时,其状态为“草稿”。配置项通过评审后,其状态变为“正式”。此后若更改配置项,则其状态变为“修改”。当配置项修改完毕并重新通过评审时,其状态又变为“正式”。如图所示

image-20240624174701986

配置项版本号

处于“草稿"状态的配置项的版本号格式为0YZ,YZ的数字范围为01~99。随着草稿的修正,Yz的取值应递增。Yz的初值和增幅由用户自己把握

处于“正式"状态的配置项的版本号格式为X.Y,X为主版本号,取值范围为1~9。Y为次版本号,取值范围为0一9。 配置项第一次成为“正式”文件时,版本号为1.0。如果配置项升级幅度比较小,可以将变动部分制作成配置项的附件,附件版本依次为1.01.1.。当附件的变动积累到一定程度时,配置项的Y值可适量增加,Y值增加一定程度时X值将适量增加。当配置项升级幅度比较大时,才允许直接增大X值。

处于“修改"状态的配置项的版本号格式为X.Y2。配置项正在修改时,一般只增大Z值X.Y值保持不变。当配置项修改完毕,状态成为“正式”时,将z值设置为0,增加XY值。参见上述规则(2)6

配置项版本管理:在项目开发过程中,绝大部分的配置项都要经过多次的修改才能最终确定下来。对配置项的任何修改都将产生新的版本。由于我们不能保证新版本一定比旧版本“好”,所以不能抛弃旧版本。版本管理的目的是按照一定的规则保存配置项的所有版本避免发生版本丢失或混淆等现象,并且可以快速准确地查找到配置项的任何版本

配置基线(常简称为基线)由一组配置项组成,这些配置项构成一个相对稳定的逻辑实体。基线中的配置项被“冻结"了,不能再被任何人随意修改。对基线的变更必须遵循正式的变更控制程序

基线通常对应于开发过程中的里程碑,一个产品可以有多个基线,也可以只有一个基线。交付给外部顾客的基线一般称为发行基线(Release),内部开发使用的基线一般称为构造基线(Build)

一组拥有唯一标识号的需求、设计、源代码文卷以及相应的可执行代码、构造文卷和用户文档构成一条基线。产品的一个测试版本(可能包括需求分析说明书、概要设计说明书、详细设计说明书、已编译的可执行代码、测试大纲、测试用例、使用手册等)是基线的一个例子。

对于每一个基线,要定义下列内容:建立基线的事件、受控的配置项、建立和变更基线的程序,批准变更基线所需的权限。在项目实施过程中,每个基线都要纳入配置控制,对这些基线的更新只能采用正式的变更控制程序

建立基线还可以有如下好处

  1. 基线为开发工作提供了一个定点和快照

  2. 新项目可以在基线提供的定点上建立。新项目作为一个单独分支,将与随后对原始项目(在主要分支上)所进行的变更进行隔离。

  3. 认为更新不稳定或不可信时,基线为团队提供一种取消变更的方法

  4. 可以利用基线重新建立基于某个特定发布版本的配置,以重现已报告的错误

配置库存放配置项并记录与配置项相关的所有信息,是配置管理的有力工具。主要作用:

记录与配置相关的所有信息,其中存放受控的软件配置项是很重要的内容

利用库中的信息评价变更的后果,这对变更控制有着重要的意义。 从库中可提取各种配置管理过程的管理信息

使用配置库可以帮助配置管理员把信息系统开发过程的各种工作产品,包括半成品或阶段产品和最终产品管理得井井有条,使其不致管乱、管混、管丢。

配置库可以分开发库、受控库、产品库3种类型。

  1. 开发库,也称为动态库、程序员库或工作库,用于保存开发人员当前正在开发的配置实体,如:新模块、文档、数据元素或进行修改的已有元素。动态中的配置项被置于版本管理之下。动态库是开发人员的个人工作区,由开发人员自行控制。库中的信息可能有较为频繁的修改,只要开发库的使用者认为有必要,无需对其进行配置控制,因为这通常不会影响到项目的其他部分可以任意的修改

  2. 受控库,也称为主库,包含当前的基线加上对基线的变更。受控库中的配置项被置于完全的配置管理之下。在信息系统开发的某个阶段工作结束时,将当前的工作产品存入受控库。可以修改,需要走变更流程

  3. 产品库,也称为静态库、发行库、软件仓库,包含已发布使用的各种基线的存档,被置于完全的配置管理之下。在开发的信息系统产品完成系统测试之后作为最终产品存入产品库内,等待交付用户或现场安装。一般不再修改,真要修改的话需要走变更流程

项目配置管理中,产品配置是指一个产品在其生命周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合。该集合中的每一个元素称为该产品配置中的一个配置顶,()不属于产品组成部分工作成果的配置顶。

A.需求文档 B.设计文档 C.工作计划 D.源代码

答案:C解析:配置项是构成产品配置的主要元素,配置项主要有以下两大类:(1)属于产品组成部分的工作成果:如需求文档、设计文档、源代码和测试用例等;(2)属于项目管理和机构支撑过程域产生的 文档:如工作计划、项目质量报告和项 目跟踪报告等。

项目配置管理中,配置项的状态通常包括()。

A.草稿、正式发布和正在修改 B.草稿、技术评审和正式发布 C.草稿、评审或审批、正式发布 D.草稿、正式发布和版本变更 答案:A

质量管理

质量是软件产品特性的综合,表示软件产品满足明确自(基本需求)或隐含(期望需求)要求的能力。质量管理是指确定质量方针、目标和职责,并通过质量体系中的质量计划、质量控制、质量保证和质量改进来使其实现的所有管理职能的全部活动

主要包括以下过程:

  • 质量规划:识别项目及其产品的质量要求和标准,并书面描述项目将如何达到要求和标准过程。

  • 质量保证:一般是每隔一定时间(例如,每个阶段末)进行的,主要通过系统的质量审计(软件评审)和过程分析来保证项目的质量。

  • 质量控制:实时监控项目的具体结果,以判断它们是否符合相关质量标准,制订有效方案,以消除产生质量问题的原因

软件质量管理-质量保证与质量控制

image-20240708194725412

信息技术 软件产品评价 质量特性及其使用指南 GB/T 16260-2002

image-20240717202219544

信息技术 软件产品评价 质量特性及其使用指南 GB/T 16260-2002

image-20240717202242650

McCall质量模型

image-20240717202304970

软件评审

质量两个必要条件:设计的规格说明书符合用户标准,称为设计质量

程序按照设计规格说明书所规定的情况正确执行,称为程序质量

软件容错技术:容错就是软件遇到错误的处理能力,实现容错的手段主要是冗余

包括下面四种冗余技术:

  1. 结构冗余:分为静态、动态、混合冗余三种,当错误发生时对错误进行备份处理

  2. 信息冗余:为检错和纠错在数据中加上一段额外的信息,例如校验码原理。

  3. 时间冗余:遇到错误时重复执行,例如回滚,重复执行还有错,则转入错误处理逻辑。

  4. 冗余附加技术:是指为实现结构、信息和时间冗余技术所需的资源和技术,包括程序、指令、数据、存放和调动它们的空间和通道等。在屏蔽硬件错误的容错技术中,

软件质量保证是软件项目控制的重要手段,()是软件质量保证的主要活动之一

A.风险评估 B.软件评审C.需求分析 D.架构设计答 案:B

解析:软件质量保证是软件质量管理的重要组成部分。软件质量保证主要是从软件产品的过程规范性角度 来保证软件的品质。其主要活动包括:质量审计(包括软件评审)和过程分析。

ISO/IEC软件质量模型中,易使用性是指与使用所需的努力由一组规定或隐含的用户对这样使用所作的个别评价有关的一组属性,其易使用性的子特性不包括()

A、易理解性B、易学性 C、易分析性D、易操作性 答案:C:解析:纯记忆,也可以从易使用性的特点去分析,应该是软件容易使用、理解、操作等,针对用户层面的,不会涉及到是否易分析设计。

风险管理

风险管理就是要对项目风险进行认真的分析和科学的管理,这样,是能够避开不利条件、少受损失、取得预期的结果并实现项目目标的,能够争取避免风险的发生或尽量减小风险发生后的影响。但是,完全避开或消除风险,或者只享受权益而不承担风险是不可能的

风险管理

  • 风险管理计划编制:如何安排与实施项目的风险管理,制定下列各步的计划

  • 风险识别:识别出项目中已知和可预测的风险,确定风险的来源、产生的条件、描述风险的特征以及哪些项目可以产生风险,形成一个风险列表。

  • 风险定性分析:对已经识别的风险进行排序,确定风险可能性与影响、确定风险优先级、确定风险类型。

  • 风险定量分析:进一步了解风险发生的可能性具体由多大,后果具体由多严重。包括灵敏度分析、期望货币价值分析、决策树分析、蒙特卡罗模拟。

  • 风险应对计划编制:对每一个识别出来的风险来分别制定应对措施,这些措施组成的文档称为风险应对计划。包括消极风险(避免策略、转移策略、减轻策略);积极风险(开拓、分享、强大

  • 风险监控:监控风险计划的执行,检测残余风险,识别新的风险,保证风险计划的执行,并评价这些计划对减少风险的有效性。

风险分类

  1. 按照后果的不同,风险可划分为纯粹风险(无任何收益)和投机风险(可能带来收益)

  2. 风险来源划分,自然风险(天灾)和人为风险(人的活动,又可分为行为风险、经济风险、技术风险、政治和组织风险等)。

  3. 按是否可管理划分,可管理(如内部多数风险)和不可管理(如外部政策也要看主体管理水平

  4. 影响范围划分,局部风险(非关键路径活动延误)和总体风险(关键路径活动延误)

  5. 后果承担者划分:业主、政府、承包商、投资方、设计单位、监理单位,保险公司等。

  6. 可预测性划分:已知风险(已知的进度风险)、可预测风险(可能服务器故障)、不可预测风险(地震、洪水、政策变化等)

在信息系统项目中,从宏观上来看,风险可以分为项目风险、技术风险和商业风险

  1. 项目风险是指潜在的预算、进度、个人(包括人员和组织)、资源、用户和需求方面的问题,以及它们对项目的影响。项目复杂性、规模和结构的不确定性也构成项目的(估算)风险因素。项目风险威胁到项目计划,一旦项目风险成为现实,可能会拖延项目进度,增加项目的成本。

  2. 技术风险是指潜在的设计、实现、接口、测试和维护方面的问题。此外,规格说明的多义性、技术上的不确定性、技术陈旧、最新技术(不成熟)也是风险因素。技术风险威胁到待开发系统的质量和预定的交付时间。如果技术风险成为现实,开发工作可能会变得很困难或根本不可能。

  3. 商业风险威胁到待开发系统的生存能力,主要有以下5种不同的商业风险:

    市场风险。开发的系统虽然很优秀但不是市场真正所想要的。

    策略风险。开发的系统不再符合企业的信息系统战略。

    销售风险。开发了销售部门不清楚如何推销的系统。

    管理风险。由于重点转移或人员变动而失去上级管理部门的支持

    预算风险。开发过程没有得到预算或人员的保证。

以下关于软件风险的叙述中,不正确的是()

A、风险是可能发生的事件

B、如果发生风险,风险的本质、范围和时间可能会影响风险所产生的后果

C、如果风险可以预测,可以避免其发生

D、可以对风险进行控制 答案:C

以下叙述中,()不是一个风险。

A.由另一个小组开发的子系统可能推迟交付,导致系统不能按时交付客户

B.客户不清楚想要开发什么样的软件,因此开发小组开发原型帮助其确定需求

C.开发团队可能没有正确理解客户的需求

D.开发团队核心成员可能在系统开发过程中离职 答案:B

立项管理

image-20240708194307902

时间管理

image-20240708194357291

时间管理-前导图法(单代号网络图,PDM)

image-20240708194430116

关键路径法

image-20240708194450095

image-20240708194505543

image-20240708194517802

自由时差

image-20240708194541893

甘特图(Gantt)

image-20240708194602592

image-20240708194613411

补充知识

组织结构模式:项目型(项目经理绝对领导)、职能型(部门领导为主)但权利分割不同)矩阵型(二者结合,既有项目经理也有部门领导

程序设计小组的组织方式

  1. 主程序员制小组(主程序员全权负责,后援工程师必要时能替代主程序员适合大规模项目)

  2. 民主制小组(也即无主程序员小组,成员之间地位平等,任何决策都是全员参与投票,适合于项目规模小,开发人员少,采用新技术和确定性较小的项目

  3. 层次式小组(两个层次,一名组长领导若干个高级程序员,每个高级程序员领导若干个程序员)

在进行软件开发时,采用无主程序员的开发小组,成员之间相互平等,而主程序员负责制的开发小组,由一个主程序员和若干成员组成,成员之间没有沟通。在一个由8名开发人员构成的小组中,无主程序员组和主程序员组的沟通路径分别是()。 A.32 和8 B.32 和7 C.28 和8 D.28 和7 答案:D 解析:由题意可知,无主程序小组内各成员平等交流,每人都有一个沟通路径但要注意两两不能重复,也即为7+6+5+4+3+2+1=28条沟通路径;主程序员小组成员之间无沟通路径只能成员和主程序沟通,因此有7条沟通路径(7个成员,1个主程序员)。

实战演练

如下所示的软件项目活动图中,顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的权重表示活动的持续时间(天),则完成该项目的最短时间为()天。在该活动图中,共有()条关键路径。

image-20240902200619093

A 17 B 19 C 20 D 22 A 1 B 2 C 3 D 4

正确答案:D 答案解析:先找关键路径,也就是从起点到终点最长时间的路径,从图中可知,ABFJL和 ADGIL最长,均为 22天所以关键路径有 2条。关键路径就是完成项目所需最短的时 间,这个时间也是项日的工期。

软件项目成本估算模型 COCOMOⅡ中,体系结构阶段模型基于()进行估算。

A 应用程序点数量 B 功能点数量 C 复用或生成的代码行数 D 源代码的行数

正确答案:D 答案解析 : 和所有的软件估算模型一样,COCOMO工模型也需要使用规模估算信息,在 模型层次结构中有3种不同的规模估算选择:对象点、功能点和代码行。体系结构型使用的是代码行数。

项目管理工具中,将网络方法用于工作计划安排的评审和检查的是()。

A Gantt图 B PERT图 C 因果分析图 D 流程图 正确答案:B 答案解析: PERT图和Gantt图是两种常用的项目管理工具。PERT(项日评估与评审技术)图是一种图形化的网络模型,描述一个项目中的任务和任务之间的关系。如图所示。

image-20240902200905659

Gantt图是一种简单的水平条形图,它以一个日历为基准描述项目任务。如图所示

image-20240902200914585

CMM模型将软件过程的成熟度分为5个等级。在 () 使用定量分析来不断地改进和管理软件过程。

A 优化级 B 管理级 C 定义级 D 可重复级

正确答案:A 答案解析: CMM是对软件组织进化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步前进。CMM将软件过程的成熟度分为5个等级,分别为:初始级。软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,成功完全依赖个人努力和英雄式的核心任务,可重复级。建立了基本的项日管理过程来跟踪成本、进度和机能,有必要的过程准则来重复以往在同类项日中的成功。定义级。管理和工程的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有的项目都采用根据实际情况修改后得到的标准软件过程来发展和维护软件。管理级。制定了软件工程和产品质量的详细度量标准。软件过程和产品的质量都被开发组织的成员所理解和控制。优化级。加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能持续不断地改进。

在活动图中,结点表示项日中各个工作阶段的里程碑,连接各个结点的边表示活动,边上的数字表示活动持续的时间。在下面的活动图中,从A到」的关键路径是(),关键路径的长度是(),从E开始的活动启动的最早时间是()。

image-20240902201030785

A ABEGJA B ADFHJ C ACFGJ D ADFIJ A 22 B 49 C 19 D 35 A 10 B 12 C 13 D 15

正确答案:B B 答案解析:在活动图中,从A到)的关键路径是ADFH。因为这一条路径最长,决定了整个项目完成的最短时间为49小时。因为事件正在13小时后出现,所以后面的活动就只能在13小时后再开始。

项目管理工具用来辅助项目经理实施软件开发过程中的项目管理活动,"它不能()。()就是一种典型的项目管理工具。

A 覆盖整个软件生存周期

B 确定关键路径、松弛时间、超前时间和滞后时间

C 生成固定格式的报表和裁剪项目报告

D 指导软件设计人员按软件生存周期各个阶段的适用技术进行设计工作

A 需求分析工具 B 成本估算工具 C 软件评价工具 D 文档分析工具

正确答案:D B 答案解析: 项目管理工具用来辅助软件的项日管理活动。通常项目管理活动包括项日的计划、调度、通信、成本估算资源分配及质量控制等。一个项目管理工具通常把重点放在某一个或某几个特定的管理环节上,而不提供对管理活动包罗万象的支持。项目管理工具具有以下特征:

(1)覆盖整个软件生存周期: (2)为项目调度提供多种有效手段: (3)利用估算模型对软件费用和工作量进行估算; (4)支持多个项目和子项目的管理: (5)确定关键路径,松弛时间,超前时间和滞后时间 (6)对项目组成员和项日任务之间的通信给予辅助: (7)自动进行资源平衡: (8)跟踪资源的使用; (9)生成固定格式的报表和剪裁项目报告成本估算工具就是一种典型的项目管理工具。

创建好的程序或文档所需遵循的设计原则不包括()。

A 反复迭代,不断修改 B 遵循好的标准和设计风格 C 尽量采用最新的技术 D 简约,省去不必要的元素

正确答案:C 答案解析: 最新的技术很可能不够完善,或者容易被市场所淘汰,一般不采用。

专业程序员小王记录的编程心得体会中,()并不正确。

A 编程工作中记录日志很重要,脑记忆并不可靠 B 估计进度计划时宁可少估一周,不可多算一天 C 简单模块要注意封装,复杂模块要注意分层 D 程序要努力文档化,让代码讲自己的故事

正确答案:B 答案解析 : 项目进度计划是在拟定年度或实施阶段完成投资的基础上,根据相应的工程量和工期要求,对各项工作的起止时间、相互衔接协调关系所拟定的计划,同时对完成各项工作所需的时间、劳力、材料、设备的供应做出具体安排,最后制定出项目的进度计划。预估时要保证在预定时间内可以完成任务。

某工程的进度计划网络图如下,其中包含了~⑩10个节点,节点之间的箭线表示作业及其进度方向,箭线旁标注了作业所需的时间(单位:周)。设起始节点的时间为0,则节点的最早时间和最迟时间分别为(周

image-20240902201643669

A 9, 19 B 9, 18 C 15,17 D 15,16

正确答案:D 答案解析: 首先求出关键路线是①③④⑥⑦⑨⑩,共28周。求每个节点的最早时间可以用正推法当遇到多条分支路线都到达某个节点时,选择持续时间最长的那条。结果如下表所示。

image-20240902201710756

求每个节点的最迟时间可以用逆推法,当遇到多条分支路线时,选择持续时间最短的那条。结果如下表所示。因此节点⑤的最早时间是15,最迟时间是16。

image-20240902201718337

某个项目在开发时采用了不成熟的前沿技术,由此而带来的风险属于()风险。

A 市场 B 技术 C 经济 D 商业

正确答案:B 答案解析: 技术不成熟属于技术范围的风险。

以下关于企业信息化方法的叙述中,正确的是()。

A 业务流程重构对企业的组织结构和工作方法进行重新设计,SCM(供应链管理)是一种重要的实现手改 B 在业务数量浩繁且流程错综复杂的大型企业里,主题数据库方法往往形成许多“信息孤岛”造成大量的无效或低效投资 C 人力资源管理把企业的部分优秀员工看做是一种资本,能够取得投资收益 D 围绕核心业务应用计算机和网络技术是企业信息化建设的有效途径

正确答案:D 答案解析: 选项A描述错误,因为业务流程重构是对业务流程的优化,而非针对组织结构和工作方法。选项B描述错误,因为事务型数据库容易形成信息孤岛,而主题数据库不容易形成“信息孤岛”。C选项描述错误,因为人力资源是把所有员工看做是一种资本,而非部分员工。

下列关于风险的叙述中,不正确的是()

A 风险是可能发生的事件 B 如果能预测到风险,则可以避免其发生 C 风险是可能会带来损失的事件 D 可以对风险进行干预,以期减少损失

正确答案:B 答案解析: 预测风险只能提前做好防范,不能避免其发生。

以下关于文档的叙述中,不正确的是()

A 文档也是软件产品的一部分,没有文档的软件就不能称之为软件 B 文档只对软件维护活动有用,对开发活动意义不大 C 软件文档的编制在软件开发活动中占有突出的地位和相当大的工作量 D 高质量文档对于发挥软件产品的效益有着重要的意义

正确答案:B 答案解析: 文档对开发活动意义很大。

下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动。边上的权重表示活动的持续时间(天),则完成该项目最少时间()天。在其他活动都按时完成的情况下,活动C最多可以晚()天可以不影响工期。 A 6 B 7 C 8 D 9 A 0 B 1 C 2 D 3

image-20240902202016202

正确答案: C B 答案解析: 关键路径为BEG,共8天。C的最早开始时间是3,最晚开始时间是4,因此总浮动时间是4-3=1。

某公司报表系统的需求中,属于功能需求的()。

A 每月月底统计出本月销售数据并以柱状和饼状图显示 B 系统可以允许200个用户同时查询报表数据 C 系统报表统计结果导出不超过2s D 系统能经受互联网一般性恶意攻击

正确答案:A 功能性需求即软件必须完成哪些事,必须实现哪些功能。选项BCD属于性能需求。

()在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。

A PERT B 基本COCOMO C 中级COCOMO D 详细COCOMO

正确答案:C 答案解析:COCOMO用3个不同层次的模型来反映不同程度的复杂性,它们分别为:基本模型(Basic Model):是一个静态单变量模型,它用一个已估算出来的源代码行数(LOC)为自变量的函数来计算软件开发工作量,与本题内容符会。中级模型(Intermediate Model):则在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。详细模型(Detailed Model):包括中级COCOMO型的所有特性。但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。

某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天),则完成该项目的最少时间为()天。活动BD和HK最早可以从第()天开始。(活 动AB、AE和AC最早从第1天开始)

A 17 B 8 C 9 D 20 A 3和10 B 4和11 C 3和9 D 4和10

image-20240902202320462

正确答案:D B 答案解析:项目的工期是从开始到结束持续时间最长的工作。题目中持续时间最长的是ABDIL,需要时间20天。BD活动在AB活动结束之后便可以开始,所以最早开始时间为4。HK活动需要在AEGH与ACFH两条路径上的活动均完成之后,才能开始,所以最早开始时间为11。

软件设计包括4个既独立又相互联系的活动,分别为()、()、数据设计和过程设计。

A 用户手册设计 B 语言设计 C 体系结构设计 D 文档设计

A 文档设计 B 程序设计 C 实用性设计 D 接口设计

正确答案:C D 答案解析:软件设计包括4个既独立又相互联系的活动,分别为体系结构设计、接口设计、数据设计和过程设计。设计模型可以表示成金字塔,这种形状的象征意义是重要的,金字塔是极为稳固的物体,它具有宽大的基础和低的重心。象金字塔一样,我们希望构造坚固的软件设计,通过用数据设计建立宽广的基础,用体系结构和接口设计建立坚固的中部,以及应用过程设计构造尖锐的顶部,从而创建出不会被修改之风轻易"吹倒"的设计模型。

以下关于企业信息化方法的叙述中,正确的是()。

A业务流程重构是对企业的组织结构和工作方法进行重新设计,SCM(供应链管理)是一种重要的实现手段 B 在业务数量浩繁且流程错综复杂的大型企业里,主题数据库方法往往形成许多“信息孤岛”,造成大量的无效或低效投资 C 人力资源管理把企业的部分优秀员工看做是一种资本,能够取得投资收益 D 围绕核心业务应用计算机和网络技术是企业信息化建设的有效途径

正确答案:D 答案解析: 选项A描述错误,因为业务流程重构是对业务流程的优化,而非针对组织结构和工作方法。选项B描述错误,因为事务型数据库容易形成信息孤岛,而主题数据库不容易形成“信息孤岛”。C选项描述错误,因为人力资源是把所有员工看做是一种资本,而非部分员工。

在风险管理中,通常需要进行风险监测,其目的不包括()。

A 消除风险 B 评估所预测的风险是否发生 C 保证正确实施了风险缓解步骤 D 收集用于后续进行风险分析的信息

正确答案:A 风险可以避免其发生或者尽量减少风险发生后的影响,但是完全消除风险是不可能的。

信息系统的文档是开发人员与用户交流的工具。在系统规划和系统分析阶段,用户与系统分析人员交流所使用32的文档不包括()。

A 可行性研究报告 B 总体规划报告 C 项目开发计划 D 用户使用手册

正确答案:D 答案解析: 用户使用手册是概要设计阶段产生的文档,除此以外,概要设计阶段产生的文档还有概要设计说明书、数据库设计说明书、修订测试计划。

某项目包含A、B、C、D、E、F、G 七个活动。各活动的历时估算和活动间的逻辑关系如下表所示:38 活动名称。 A 0 B 1C 2 D 3 A 12 B 13 C 14 D 15

image-20240902202817452

正确答案:C C 答案解析: 先绘图如下所示:

image-20240902202836432

最迟开始时间总浮动时间最迟完成时间 结合上图D的松弛时间(即总浮动时间)计算方法有两种:7-5=2或者4-2=2由上图可以看出关键路线为ACFG,可以轻易计算出项目工期为14天。

项目时间管理中的过程包括( )。

A 活动定义、活动排序、活动的资源估算和工作进度分解 B 活动定义、活动排序、活动的资源估算、活动历时估算、制定计划和进度控制 C 项目章程、项目范围管理计划、组织过程资产和批准的变更申请 D 生产项目计划、项目可交付物说明、信息系统要求说明和项目度量标准

正确答案:B 答案解析: 时间管理的过程包括:⑦活动定义⑧活动排序⑨活动的资源估算 @活动历时估算 ⑩制定计划 ⑫进度控制

某零件厂商的信息系统中,一个基本加工根据客户类型、订单金额、客户信用度等信息的不同采取不同的行43为,此时最适宜采用()来描述该加工规格说明。

A 自然语言 B 流程图 C 判断表 D 某程序设计语言

正确答案:C 答案解析 : 在有些情况下,数据流图中某个加工的一组动作依赖于多个逻辑条件的取值。这时,用自然语言或结构化语言都不易于清楚地描述出来,而用判定表能够清楚地表示复杂的条件组合与应做的动作之间的对应关系。

以下关于风险管理的叙述中,不正确的是()

A 承认风险是客观存在的,不可能完全避免 B 同时管理所有的风险 C 风险管理应该贯穿整个项目管理过程 D 风险计划本身可能会带来新的风险

正确答案:B 答案解析:在项目中,需要承认风险是客观存在的,不可能完全避免,也不可能同时管理所有的风险。风险管理应该贯穿整个项目管理过程,而风险计划本身在应对风险的同时也可能会带来新的风险。

在项目开发过程中,()不属于项目估算的主要因素。

A 规模 B 类型 C 成本 D 工作量

正确答案:B 答案解析: 项目估算一般需要考虑规模、工作量、成本等因素,不包括类型。

以下关于甘特图的叙述中,不正确的是( )。

A 一种进度管理的工具 B 易于看出每个子任务的持续时间 C 易于看出目前项目的实际进度情况, D 易于看出子任务之间的衔接关系

正确答案:D 答案解析:甘特图是一种进度管理工具,能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但是她不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。《软件设计师教程(第5版)》P291

软件文档在软件生存期中起着重要的作用,其作用不包括()。

A 提高软件运行效率 B 作为开发过程的阶段工作成果和结束标记 C 提高开发过程的能见度 D 提高开发效率

正确答案:A 答案解析:软件文档的作用: 1、提高软件开发过程的能见度; 2提高开发效率; 3作为开发人员在一定阶段的工作成果和结束标记: 记录开发过程中的有关信息,便于协调以后的软件开发、使用和维护; 5.提供对软件的运行、维护和培训的相关信息: 6.便于潜在用户了解软件的功能、性能等各项指标。

某个软件,不符合公司的战略决策,属于()风险

A 商业风险 B 项目风险 C 开发风险 D 人员风险

正确答案:A 答案解析:A、商业风险:商业风险通常与公司的战略决策、市场环境、竞争对手等有关。如果一个软件不符合公司的战略决策,那么它很可能会对公司的商业目标产生负面影响,导致商业风险。B、项目风险:项日风险指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。这些风险可能会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。C、开发风险:开发风险主要涉及软件开发过程中的技术问题、资源不足、时间延误等D、人员风险:人员风险通常与员工的技能、态度、离职率等有关。因此,正确答案选 A。

结构化开发方法

image-20240717201023256

系统分析与设计概述

系统分析过程-数据流图

系统开发的目的是把现有系统的物理模型转化为目标系统的物理模型,即图中所描述的路径,而系统分析阶段的结果是得到目标系统的逻辑模型。逻辑模型反映了系统的功能和性质,而物理模型反映的是系统的某一种具体实现方案。

阶段模型类型说明(干什么的)关键目标
① 现实系统认知现有系统的 物理模型对当前系统进行理解和认知,了解其实际运作方式获取现状,了解真实情况
② 抽象分析现有系统的 逻辑模型从物理实现中抽象出系统功能和逻辑结构不考虑实现,理清功能逻辑
③ 目标设定与优化目标系统的 逻辑模型基于现有逻辑模型,进行分析与优化,设计理想结构得到未来系统的功能结构设计
④ 具体化实现目标系统的 物理模型将逻辑模型转化为具体可实现的技术方案实现目标,形成可运行系统

image-20240717201046105

() 是一种最常用的结构化分析工具,它从数据传递和加工的角度,以图形的方式刻画系统内数据的运行情况。通常使用()作为该工具的补充说明。

A 数据流图B 数据字典 C ER图 D 判定表

A 数据流图 B 数据字典 C 判定表 D ER图

正确答案:A B 答案解析:数据流图是一种最常用的结构化分析工具,它从数据传递和加工的角度,以图形的方式刻画系统内数据的运行情况。数据流图是一种能全面描述信息系统逻辑模型的主要工具,它可以用少数集中符号综合地反映出信息在系统中的流动、处理和存储的情况。通常使用数据字典对数据流图加以补充说明。数据字典是以特定格式记录下来的、对系统的数据流图中各个基本要素的内容和特征所做的完整的定义和说明

()最初用于数据库概念设计。在某学生选课系统中使用该工()可用于描述数据流图中数据存储及其之间的关系,具来描述,学生的学号属于()。

A 实体关系图 B 数据字典 C IPO图 D 判定表

A 实体 B 关系 C 属性 D 方法

正确答案:A C 答案解析: 实体联系图(ER)图可用于描述数据流图中数据存储及其之间的关系,最初用干数据库概念设计。在实体联系图中,有实体、联系和属性三个基本成分。在某学生选课系统中,学生属于实体,而学生的学号则属于该实体的属性

为了能够及时针对市场环境的变化进行发展战略调整,某电子商务公司委托PH软件研发公司开发一个商业情报处理系统。在系统分析阶段,为了更好地对情报数据处理流程及其与外部角色的关联进行建模,PH公司项目组将()。

A 先构建系统流程图(System Flowchaits),来展现全局的处理过程,处理过程之间遵循一致的计时标准

B 先构建系统数据流图(Data Flow Diagrams),以便描述处理过程的控制流和数据流,使处理过程可并

C 先构建系统流程图,以便更精确地反映系统的业务处理过程及数据的输入和输出

D 先构建系统数据流图来展现系统的处理过程和定义业务功能边界

正确答案:B 答案解析:数据流图和流程图是结构化建模中使用的重要工具,能够帮助开发人员更好地分析和设计系统,增强系统开发人员之间交流的准确性和有效性。数据流图和流程图是为了达到不同的目的而产生的,其所采用的标准符号集合也不相同。在实际应用中,两者的区别主要包括以下几点。①数据流图作为一种图形化工具,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流,适用于系统分析中的逻辑建模阶段;流程图以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流,往往涉及具体的技术和环境,适用于系统设计中的物理建阶段。②数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。③数据流图展现系统的数据流;流程图展现系统的控制流。④)数据流图展现全局的处理过程,过程之间遵循不同的计时标准:流程图中的处理过程遵循一致的计时标准准。依题意,结合题于关键信息“在系统分析阶段,为了更好地对情报数据处理流程及其与外部角色的关联进行建模”,这符合数据流图的应用场景要求,因此项目组要先构建数据流图,以在系统分析阶段反映数据流向和系统边界。

质量功能部署(QFD.是一种将客户要求转化成软件需求的技术。OFD的目的是最大限度地提升软件工程过程中客户的满意度。为了这个目标,OFD确认了3类需求,常规需求、()和意外需求。

A 期望需求 B 基础需求 C 显式需求 D 功能需求

正确答案:A OFD确认了3类需求,分别是基本需求(常规需求)、期望需求和意外需求(兴奋需求)。其中期望需求指的是那些隐含在产品或系统中,可能由于非常基础以至于用户没有显式说明的需求

在结构化分析方法中,()用于功能建模;()用于数据建模:()用于行为建模。

A 数据流图 B E-R图 C 状态转化图 D 用例图

正确答案:C 答案解析:在结构化分析方法中,数据流图用于功能建模:E-R图用于数据建模:状态转换图用于行为建模

结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的()。

A 控制流 B 数据流 C 程序流 D 指令流

正确答案:B 答案解析: 结构化分析方法在实施阶段强调的是分析对象的数据流

绘制分层数据流图(DFD)时需要注意的问题中,不包括()。

A 给图中的每个数据流、加工、数据存储和外部实体命名 B 图中要表示出控制流 C 一个加工不适合有过多的数据流 D 分解尽可能均匀

正确答案:B 答案解析:数据流图表现的是数据流而不是控制流

下面关于数据流图中加工的描述正确的是()。

A 每个加工只能有一个输入流和一个输出流 B 每个加工最多有一个输入流,可以有多个输出流 C 每个加工至少有一个输入流和一个输出流 D 每个加工都是对输入流进行变换,得到输出流

正确答案:C 根据数据流图中加工的定义,加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出,选C。

结构化分析方法数据流图、()和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型

A DFD图 B 数据字典 C IPO图 D PAD图

正确答案:B答案解析: 结构化分析方法以数据流图、数据字典和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型,选B

结构化方法使用数据流图描述().

A 系统的控制流程 B 系统的数据结构 C 数据的基本加工 D 系统的功能

正确答案:D 答案解析: 数据流图用来描述系统的功能,进行功能建模

在结构化分析中,用数据流图描述 ()。当采用数据流图对一个图书馆管理系统进行分析时,()是一个外部实体。

A 数据对象之间的关系,用于对数据建模 B 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模 C 系统对外部事件如何响应,如何动作,用于对行为建 D 数据流图中的各个组成部分

A 读者 B 图书 C 借书证 D 借阅

正确答案:B A 答案解析:本题考查结构化分析的基础知识。 数据流图是结构化分析的一个重要模型,描述数据在系统中如何被传送或变换,以及描 述如何对数据流进行变换的功能,用于功能建模。数据流图中有四个要素:外部实体,也称为数据源或数据汇点,表示要处理的数据的输入来源或处理结果要送往何处,不属于日标系统的一部分,通常为组织、部门、人、相关的软件系统或者硬件设备;数据流表示数据沿箭头方向的流动:加工是对数据对象的处理或变换:数据存储在数据流中起到保存数据的作用,可以是数据库文件或者任何形式的数据组织。根据上述定义和题干说明,读者是外部实体,图书和借书证是数据流,借阅是加工。

下面关于数据流图描述正确的是()。

A 数据流图建模应遵循自顶向下、从具体到抽象的原则

B 数据流图建模应遵循自顶向下、从抽象到具体的原则

C 数据流图建模应遵循自底向上、从具体到抽象的原则

D 数据流图建模应遵循自底向上、从抽象到具体的原则

正确答案:B 数据流图的基本原则:从基本系统模型出发,自顶向下、从抽象到具体分层次地画。选B

某考试系统的部分功能描述如下,审核考生报名表,通过审核的考生登录系统,系统自动为其生成一套试题,考试中心提供标准答案,问卷老师问卷,提交考生成绩,考生查看自己的成绩。若用数据流图对该系统进行建模,则()不是外部实体。

A 考生B 考试中心 C 问卷老师 D 报名表

正确答案:D 在数据流图中,外部实体是指处于系统之外,跟系统有交互的对象。外部实体可以是人、物、其他系统等答案解析:根据题意,“报名表”是考试系统本身包含的部分是数据流,不属于外部实体,选D。

下列要素中,不属于DFD的是()。当使用DFD对一个工资系统进行建模时,()可以被认定为外部实体。

A 加工 B 数据流 C 数据存储 D 联系

A 接收工资单的银行 B 工资系统源代码程序 C 工资单 D 工资数据库的维护

正确答案:D A 答案解析:数据流图或称数据流程图(Data Flow Diagram,DFD)是一种便于用户理解、分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。DFD由数据流、加工、数据存储和外部实体4个要素构成。外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地和系统所产生数据的归宿地。因此选项B、C、D都不符合外部实体的定

下面关于数据流图中加工的描述正确的是()。

A 每个加工只能有一个输入流和一个输出流 B 每个加工最多有一个输入流,可以有多个输出流 C 每个加工至少有一个输入流和一个输出流 D 每个加工都是对输入流进行变换,得到输出流

正确答案: C 根据数据流图中加工的定义,加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出,选C。

以下关于数据流图中基本加工的叙述,不正确的是()

A 对每一个基本加工,必须有一个加工规格说明 B 加工规格说明必须描述把输入数据流变换为输出数据流的加工规则 C 加工规格说明必须描述实现加工的具体流程 D 决策表可以用来表示规格说明

正确答案:C 答案解析:分层的数据流图是结构化分析方法的重要组成部分。对数据流图中的每个基本加工,需要加工规格说明书,描述把输入数据流变换为输出数据流的加工规则但是不需要描述实现加工的具体流程。可以使用结构化语言、判定表和判定树来表达基本加工。本题选择C选项。

结构化分析方法的基本思想是( )。

A 自底向上逐步分解 B 自顶向下逐步分解 C 自底向上逐步抽象 D 自顶向下逐步抽象

正确答案:B 答案解析: 结构化分析方法就是采用这种自顶向下逐层分解的思想进行分析建模的。《软件设计师教程(第5版)》P325

系统设计基本原理⭐

抽象、模块化、信息隐蔽、模块独立。衡量模块独立程度的标准有两个:耦合性和内聚性

内聚程度从低到高如下表所示

image-20240717201133260

耦合程度从低到高如下表所示:

image-20240717201155910

某模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一处理元素的输出就是下一处理元素的输入,则该模块的内聚类型为() A、过程 B、时间 C、顺序 D、逻辑 答案:C

已知模块A给模块B传递数据结构X,则这两个模块的耦合类型为()

A.数据耦合C.外部耦合 B.公共耦合 D.标记耦合

答案:D解析:特别说明是数据结构,不是数据,数据结构是标记耦合。

系统总体结构设计

是要根据系统分析的要求和组织的实际情况对新系统的总体结构形式和可利用的资源进行大致设计,这是一种宏观、总体上的设计和规划。

系统结构设计原则
  1. 分解-协调原则。

  2. 自顶向下的原则。

  3. 信息隐蔽、抽象的原则。

  4. 一致性原则。

  5. 明确性原则。

  6. 模块之间的耦合尽可能小,模块的内聚度尽可能高。

  7. 模块的扇入系数和扇出系数要合理。

  8. 模块的规模适当。

子系统划分的原则
  1. 子系统要具有相对独立性

  2. 子系统之间数据的依赖性尽量小。

  3. 子系统划分的结果应使数据冗余较小。

  4. 子系统的设置应考虑今后管理发展的需要

  5. 子系统的划分应便于系统分阶段实现。

  6. 子系统的划分应考虑到各类资源的充分利用。

子系统结构设计的任务是确定划分后的子系统模块结构,并画出模块结构图

在这个过程中必须考虑以下几个问题。

  1. 每个子系统如何划分成多个模块

  2. 如何确定子系统之间、模块之间传送的数据及其调用关系

  3. 如何评价并改进模块结构的质量

  4. 如何从数据流图导出模块结构图

系统模块结构设计

模块是组成系统的基本单位,它的特点是可以组合、分解和更换。系统中的任何一个处理功能都可以看成是一个模块。根据功能具体化程度的不同,模块可以分为逻辑模块和物理模块。 一个模块应具备以下4 个要素

  1. 输入和输出。

  2. 处理功能。指模块把输入转换成输出所做的工作。

  3. 内部数据。指仅供该模块本身引用的数据。

  4. 程序代码。指用来实现模块功能的程序。

前两个要素是模块外部特性,反映了模块的外貌。后两个要素是模块的内部特性。

模块结构图为了保证系统设计工作的顺利进行,结构设计应遵循以下原则。

  1. 所划分的模块其内部的凝聚性要强,模块之间的联系要少,即模块具有较强的独立性

  2. 模块之间的连接只能存在上下级之间的调用关系,不能有同级之间的横向联系。

  3. 系统呈树状结构,不允许网状结构或交叉调用关系出现。

  4. 所有模块(包括后继IPO图)都必须严格地分类编码并建立归档文件。模块结构图主要关心的是模块的外部属性,即上下级模块、同级模块之间的数据传递和调用关系,并不关心模块的内部。

以下关于软件设计原则的叙述中,不正确的是()

A、考虑信息隐蔽,模块内部的数据不能让其他模块直接访问模块独立性要好

B、系统需要划分多个模块,模块的规模越小越好

C、尽可能高内聚和低耦合 D、采用过程抽象和数据抽象设计 答案:B 虽然将系统划分为多个模块是软件设计中的常见做法,但模块的规模并不是越小越好。模块划分要适度,过小会导致系统中模块过多、接口繁杂,反而增加了耦合和维护成本。因此,“模块的规模越小越好”是不准确的说法。

进行子系统结构设计,需要确定划分后的子系统模块结构,并画出模块结构图。该过程不需要考虑()。 A.每个子系统如何划分成多个模块 B.每个子系统采用何种数据结构和核心算法 C.如何确定子系统之间、模块之间传送的数据及其调用关系D.如何评价并改进模块结构的质量 答案:B

若某模块内所有处理元素都在同一个数据结构上操作,则该模块的内聚类型为()。

A 逻辑 B 过程 C 通信 D 功能

正确答案:C 答案解析:通信内聚:指模块内的所有处理元素都在同-数据结构上操作,或者各处理使用相 同的输入数据或产生相同的输出数据。根据概念该题属于通信内聚

在结构化设计中,(描述了模块的输入输出关系、处理内容、模块的内部数据和模块的调用关系,是系统设计的重要成果,也是系统实施阶段编制程序设计任务书和进行程序设计的出发点和依据。

A 系统流程图 B IPO图 C HIPO图 D 模块结构图

正确答案:B 答案解析:系统济程图是表达系统执行过程的描述工具: IPO图描述了模块的输入输出关系、处理内容、模块的内部数据和模块的调用关系:HIPO图是层次图和IPO图的结合,描述了系统自顶向下的模块关系;模块结构图描述了系统的模块结构以及模块间的关系,同时也描述了模块之间的控制关系。

下列聚合类型中内聚程度最高的是(回答此空),下列耦合类型中耦合程度最低的是()。

A 偶然内聚 B 时间内聚 C 功能内聚 D 过程内聚

正确答案: C 答案解析:模块的内聚类型通常可以分为7种,根据内聚度从低到高排序分别是:偶然(巧合)内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。模块的耦合类型通常也分为7种,根据耦合度从低到高排序分别是:无直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。

软件设计包括4个既独立又相互联系的活动,分别为()、()、数据设计和过程设计。

A 用户手册设计 B 语言设计 C 体系结构设计 D 文档设计

A 文档设计 B 程序设计 C 实用性设计 D 接口设计

正确答案:C D 答案解析:软件设计包括4个既独立又相互联系的活动,分别为体系结构设计、接口设计、数据设计和过程设计。设计樟型可以表示成金字塔,这种形状的象征意义是重要的,金字塔是极为稳固的物体,它具有宽大的基础和低的重心。象金字塔一样,我们希望构造坚固的软件设计,通过用数据设计建立宽广的基础,用体系结构和接口设计建立坚固的中部,以及应用过程设计构造尖锐的顶部,从而创建出不会被修改之风轻易"吹倒"的设计模型。

以下关于结构化开发方法的叙述中,不正确的是()。

A 总的指导思想是自顶向下,逐层分解 B 基本原则是功能的分解与抽象 C 与面向对象开发方法相比,更适合大规模、特别复杂的项目 D 特别适合于数据处理领域的项目

正确答案:C 答案解析: 结构化开发方法也称结构化系统开发方法(Structured System De-velopment Methodology),是目前应用最普遍的一种开发方法。其基本思想是用系统的思想和系统工程的方法,按照用户至上的原则结构化、模块化,自顶向下对系统进行分析与设计。它不限于数据处理领域项目。它不适合大规模和特别复杂的项目。

模块A、B和C包含相同的5个语句,这些语句之间没有联系,为了避免重复,把这5个模块抽取出来组成模块D。则模块D的内聚类型为()内聚。

A 功能 B 通信 C 逻辑 D 巧合

正确答案:D 答案解析: 内聚类型主要有以下几种。功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。顺序内聚:处理元素相同,而且必须顺序执行。通信内聚:所有处理元素集中在一个数据结构的区域上,过程内聚:处理元素相关,而且必须按待定的次序执行。瞬时内聚:所包含的任务必须在同一时间间隔内执行(如初始化模块)。逻辑内聚:完成逻辑上相关的一组任务。 偶然(巧合)内聚:完成一组没有关系或松散关系的任务。

模块A通过非正常入口转入模块B内部,则这两个模块之间是()耦合。

A 数据 B 公开 C 外部 D 内容

正确答案:D 答案解析: 内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。

软件设计中划分模块的一个准则是()。

A 低内聚低耦合 B 低内聚高耦合 C 高内聚低耦合 D 高内聚高耦合

正确答案:C 答案解析: 设计模块的原则是高内聚低耦合,内聚越高,模块独立性越强,耦合越低,模块独立性越强

模块的内聚性最高的是()。

A 逻辑内聚 B 时间内聚 C 偶然内聚 D 功能内聚

正确答案:D答案解析:7种内聚性由高到底分别为功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚。因此选D。

1.功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 2.顺序内聚:处理元素相关,而且必须顺序执行。 3.通信内聚:所有处理元素集中在一个数据结构的区域上, 4.过程内聚:处理元素相关,而且必须按特定的次序执行。 5.瞬时内聚(时间内聚):所包含的任务必须在同一时间间隔内执行, 6.逻辑内聚:完成逻辑上相关的一组任务。 7.偶然内聚(巧合内聚):完成一组没有关系或松散关系的任务

耦合表示模块之间联系的程度。模块的耦合类型通常可分为7 种。其中,一组模块通过参数传递信息属于()。一个模块可直接访问另一个模块的内部数据属于()。()表示模块之间的关联程度最高。

A 内容耦合 B 标记耦合 C 数据耦合 D 控制耦合

A 内容耦合 B 数据耦合 C 标记耦合 D 控制耦合

A 内容耦合 B 控制耦合 C 标记耦合 D 数据耦合

正确答案:B A A 答案解析: 耦合表示模块之间联系的程度。紧密耦合表示模块之间联系非常强,松散耦合表示模块之间联系比较弱,非耦合则表示模块之间无任何联系,是完全独立的。模块的耦合类型通常分为7种,根据耦合度从低到高排序如下表所示。

image-20240902194934204

以下关于结构化开发方法的叙述中,不正确的是 ()。

A 总的指导思想是自顶向下,逐层分解 B 基本原则是功能的分解与抽象 C 与面向对象开发方法相比,更适合大规模、特别复杂的项目 D 特别适合于数据处理领域的项目

正确答案: C 答案解析:结构化开发方法也称结构化系统开发方法(Structured System De-velopment Methodology),是目前应用最普遍的一种开发方法。其基本思想是用系统的思想和系统工程的方法,按照用户至上的原则结构化、模块化,自顶向下对系统进行分析与设计。它不限于数据处理领域项目。但不适合处理大规模且复杂得项目

以下关于软件设计原则的叙述中,不正确的是出()。

A 将系统划分为相对独立的模块 B 模块之间的耦合尽可能小 C 模块规模越小越好 D 模块的扇入系数和扇出系数合理

正确答案: C 答案解析:模块的规模要适当。过大的模块会使系统分解得不充分而过小的模块又有可能降低模块的独立性,造成系统接口的复杂性。

为了提高模块的独立性,模块内部最好的是()。

A 逻辑内聚 B 时间内聚 C 功能内聚 D 通信内聚 正确答案:C 答案解析: 内聚有如下种类,他们之间的内聚性由弱到强排列为偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

1.巧合内聚:指一个模块内的各个处理元素之间没有任何联系。 2.逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。 3.时间内聚:把需要同时执行的动作组合在一起形成的模块。 4.通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。5.顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须执行顺序执行,前一个功能元素的输出就是下一个功能元素的输入, 6.功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。

以下关于结构化开发方法的叙述中,不正确的是()。

A 总的指导思想是自顶向下,逐层分解 B 基本原则是功能的分解与抽象 C 与面向对象开发方法相比,更适合大规模、特别复杂的项目 D 特别适合于数据处理领域的项目

正确答案:C 答案解析:结构化方法适用于功能驱动、数据处理为主的中小型项目,而面向对象方法更适合大规模、复杂度高、需求易变的系统,具备更强的可扩展性和可维护性。。

如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为()。

A 时间内聚 B 逻辑内聚 C 通信内聚 D 信息内聚

正确答案:A

在采用结构化开发方法进行软件开发时,设计阶段接口设计主要依据需求分析阶段的()。接口设计的任务主要是 ()。

A 数据流图 B E-R图 C 状态-迂移图 D 加工规格说明

A 定义软件的主要结构元素及其之间的关系

B 确定软件涉及的文件系统的结构及数据库的表结构

C 描述软件与外部环境之间的交互关系,软件内模块之间的调用关系

D 确定软件各个模块内部的算法和数据结构

正确答案:A 答案解析: 本题考查结构化分析与设计的相关知识。 结构化分析的输出是结构化设计的输入,设计活动依据分析结果进行。接口设计是描述软件与外部环境之间的交互关系,软件内模块之间的调用关系,而这些关系的依据主要是分 析阶段的数据流图。

以下关于模块化设计的叙述中,错误的是()

A 尽量考虑高内聚、低耦合,保持模块的相对独立性

B 通信息隐蔽可以提高软件的可修改性、可测试性和可移植性,它也是现代软件设计的一个关键性原则

C 模块的规模要合适

D 为了不使设计过于简单,模块的深度要尽量深以增加软件的复杂性。

正确答案:D 答案解析 : 在系统设计时,需要权衡系统的深度和宽度,尽量降低系统的复杂性,减少实施过程的难度,提高开发和维护的效率。

以下关于结构化开发方法的叙述中,正确的是()。

A 结构化分析是根据分解与抽象的原则,按照系统中数据处理的流程,用程序流程图来建立系统的功能模型,从而完成需求分析工作。 B 结构化方法的核心思想是"自顶向下,逐步分解"。特别适合于数据处理领域的问题,因此特别适合解决大规模的、特别复杂的项目,且难以适应需求的变化。 C 结构化方法由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。 D 结构化设计是根据模块独立性准则、软件结构优化准则将ER图转换为软件的体系结构

正确答案:C 答案解析:结构化方法由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。结构化分析是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析工作。结构化设计是根据模块独立性准则、软件结构优化准则将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实现系统的概要设计。结构化程序设计使用3种基本控制结构构造程序,任何程序都可以由顺序、选择和重复3种基本控制结构构造。结构化方法的核心思想是"自顶向下,逐步分解"。特别适合于数据处理领域的问题,但是不适合解决大规模的、特别复杂的项目,且难以适应需求的变化。

在设计软件的模块结构时,()不能改进设计质量。

A 尽量减少高扇出结构 B 尽量减少高扇入结构 C 将具有相似功能的模块合并 D 完善模块的功能

正确答案:D 答案解析:在结构化设计中,系统由多个逻辑上相对独立的模块组成,在模块划分时需要遵循如下原则。(1)模块的大小要适中。系统分解时需要考虑模块的规模,过大的模块可能导致系统分解不充分,其内部可能包括不同类型的功能,需要进一步划分,尽量使得各个模块的功能单一;过小的模块将导致系统的复杂度增加,模块之间的调用过于频繁,反而降低了模块的独立性。一般来说,一个模块的大小应使其实现代码在1~2页纸之内,或者实现代码行数在50~200行之间,这种规模的模块易于实现和维护。(2)模块的扇入和扇出要合理。一个模块的扇出是指该模块直接调用的下级模块的个数;扇出大表示模块的复杂度高,需要控制和协调过多的下级模块。扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块;扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级块中去。个模块的扇入是指直接调用该模块的上级模块的个数;扇入大表示模块的复用程度高。设计良好的软件结构通常顶层扇出比较大,中间扇出较少,底层模块则有大扇入。一般来说,系统的平均扇入和扇出系数为3 或4,不应该超过7,否则会增大出错的概率。(3)深度和宽度适当。深度表示软件结构中模块的层数,如果层数过多,则应考虑是否有些模块设计过于简单,看能否适当合并。宽度是软件结构中同一个层次上的模块总数的最大值,一般说来,宽度越大系统越复杂,对宽度影响最大的因素是模块的扇出。在系统设计时,需要权衡系统的深度和宽度,尽量降低系统的复杂性,减少实施过程的难度,提高开发和维护的效率。

模块A、B和C有相同的程序块,块内的语句之间没有任何联系,现把该程序块取出来,形成新的模块D,则模块D的内聚类型为 ()内聚。

A 巧合 B 逻辑 C 时间 D 过程 正确答案:A 答案解析: 内聚按强度从低到高有以下几种类型。(1)偶然(巧合)内聚如果一个模块的各成分之间毫无关系,则称为偶然(巧合)内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。 (2)逻辑内聚几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚,如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然(巧合)内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系。局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。 (3)时间内聚 如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。(4)通信内聚 如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。(5)顺序内聚如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序 内聚。(6)过程内聚过程内聚是指构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。 (7)信息内聚 模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该模块执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。(8)功能内聚 模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。

优化模块结构时,()不是适当的处理方法。

A 使模块功能完整 B 消除重复功能,改善软件结构 C 只根据模块功能确定规模大小 D 避免或减少模块之间的病态连接

正确答案:C 答案解析: 模块的规模大小应该根据多个原则综合确定,例如高内聚、低耦合,深度和宽度合理,扇入和扇出系数合 理,模块规模适中等,不能只根据模块功能确定规模大小

若模块A和模块B通过外部变量来交换输入、输出信息,则这两个模块的耦合类型是()耦合。

A 数据 B 标记 C 控制 D 公共

正确答案:D 答案解析: 公共耦合是指多个模块都访问同一个公共数据环境,公共的数据环境可以是全局数据结构、共享的通信区内存的公共覆盖区等。模块A和模块B通过公共数据环境中的外部变量来交换输入、输出信息,显然属于公共耦合

以下关于软件设计原则的叙述中,正确的是()。

A 系统需要划分多个模块,模块的规模越小越好 B 不考虑信息隐蔽,模块内部的数据可以让其他模块直接访问 C 尽可能低内聚和高耦合 D 采用过程抽象和数据抽象设计

正确答案:D 答案解析:在结构化设计中,系统由多个逻辑上相对独立的模块组成,在块划分时需要遵循“模块的大小要适中”的原则。过大的模块可能导致系统分解不充分,其内部可能包括不同类型的功能,需要进一步划分,尽量使得各个模块的功能单一:过小的模块将导致系统的复杂度增加,模块之间的调用过于频繁,反而降低了模块的独立性。一般来说,一个模块的大小使其实现代码在1~2页纸之内,或者其实现代码行数在50~200行之间,这种规模的模块易于实现和维护。要考虑信息隐蔽,模块内部的数据可以让其他模块直接访问。提高模块独立性,尽可能高内聚和低耦合。选D。

模块A、B和C都包含相同的5个语句,这些语句之间没有联系。为了避免重复把这5个语句抽取出来组成一个模块D,则模块D的内聚类型为()内聚。

A 功能 B 通信 C 逻辑 D 偶然

正确答案:D 答案解析: 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。顺序内聚:处理元素相关,而且必须顺序执行。通信内聚:所有处理元素集中在一个数据结构的区域上。过程内聚:处理元素相关,而且必须按特定的次序执行。瞬时内聚:所包含的任务必须在同一时间间隔内执行(如初始化模块)。逻辑内聚:完成逻辑上相关的一组任务。偶然内聚:完成一组没有关系或松散关系的任务

在划分模块时,一个模块的作用范围应该在其控制范围之内。若发现其作用范围不在其控制范围内,则()不是适当的处理方法。

A 将判定所在模块合并到父模块中,使判定处于较高层次 B 将受判定影响的模块下移到控制范围内 C 将判定上移到层次较高的位置 D 将父模块下移,使判定处于较高层次

正确答案:D 答案解析:模块的控制范围包括模块本身及其所有的从属模块。模块的作用范围是指模块一个判定的作用范围。凡是受此判定影响的所有模块都属于这个判定的作用范围。原则上一个模块的作用范围应该在其控制范围之内,如果没有,则可以判定所在模块合并到父模块中,使得判定处于较高层次;将受判定影响的模块下移到控制范围内:将判定上移到层次中较高的位置。本题选择D选项,

若模块A通过控制参数来传递信息给模块B,从而确定执行模块B中的哪部分语句。则这两个模块的耦合类型是()耦合

A 数据 B 标记 C 控制 D 公共

正确答案:C 答案解析:数据耦合:若一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数,公共数据结构或外部变量)来交换输入、输出信息。标记耦合:模块通过参数表传递记录信息,两个以上的模块都需要其余某数据结构子结构时,不使用全局变量方式,而是使用记录传递的方式。控制合:一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能。内容耦合:一个模块直接访问另一个模块的内部数据,或者通过非正常入口转入另一个模块内部,或者两个模块有一部分程序代码重叠,又或者一个模块有多种入口。

以下关于管道-过滤器软件体系结构风格优点的叙述中,不正确的是()

A 构件具有良好的高内聚、低耦合的特点 B 支持软件复用 C 支持并行执行 D 适合交互处理应用 正确答案:D 管道-过滤器将系统分解为一系列过滤器(Filter)和管道(Pipe),每个过滤器完成特定的计算或数据处理任务,管道用于传递数据流。管道-过滤器风格更适合批处理或流处理系统,对实时交互性支持较差,不适合需要频繁用户交互的应用程序(如GUI界面系统)。

结构化设计方法中使用结构图来描述构成软件系统的模块以及这些模块之间的调用关系。结构图的基本成分不包括()。

A 模块 B 调用 C 数据 D 控制

正确答案:C 答案解析: 系统结构图又叫做为模块结构图,是概要设计阶段使用的工具,它反映了系统的功能实现和模块之间的联系与通信,反映了系统的总体结构。模块结构图包括块、块之间的调用关系、块之间的通信和辅助控制符号。

结构化开发方法

结构化分析与设计方法是一种面向数据流的传统软件开发方法,它以数据流为中心构建软件的分析模型和设计模型。结构化分析(Structured Analysis,SA)结构化设计(Structured Design,SD)和结构化程序设计(StructuredProgramming Design,SPD)构成了完整的结构化方法结构化方法的分析结果由以下几部分组成:一套分层的数据流图一本数据词典、一组小说明(也称加工逻辑说明)、补充材料

数据流图

数据流图DFD基本图形元素:外部实体、加工、数据存储、数据流

image-20240717201326903

  1. 数据流:由一组固定成分的数据组成,表示数据的流向。在DFD 中,数据流的流向必须经过加工

  2. 加工:描述了输入数据流到输出数据流之间的变换,数据流图中常见的三种错误如图所示

    加工3.1.2 有输入但是没有输出,称之为“黑洞

    加工3.1.3 有输出但没有输入。称之为“奇迹

    加工3.1.1 中输入不足以产生输出,我们称之为“灰洞

  3. 数据存储:用来存储数据。

  4. 外部实体(外部主体):是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。

image-20240717201408183

分层数据流图

image-20240717201443480

image-20240717201427271

数据字典DD

数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。 数据字典有以下4 类条目:数据流、数据项、数据存储和基本加工

image-20240717201501829

加工逻辑也称为“小说明”。常用的加工逻辑描述方法有结构化语言、判定表和判定树3 种。

在结构化分析中,用数据流图描述()。当采用数据流图对一个图书馆管理系统进行分析时,()是一个外部实体。 A.数据对象之间的关系,用于对数据建模

B.数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模 C.系统对外部事件如何响应,如何动作,用于对行为建模 D.数据流图中的各个组成部分 A.读者B.图书C:借书证D.借阅 答案:B A

结构化设计

结构化设计(Structured Design,SD)方法是一种面向数据流的设计方法,可以与SA方法衔接。结构化设计方法的基本思想是将系统设计成由相对独立功能单一的模块组成的结构

结构化设计方法中用结构图:(Structure Chart):来描述软件系统的体系结构指出一个软件系统由哪些模块组成,以及模块之间的调用关系。模块结构图是结构化设计的工具,由模块、调用、数据、控制和转接五种基本符号组成。

结构化设计主要包括

  1. 体系结构设计:定义软件的主要结构元素及其关系。

  2. 数据设计:基于实体联系图确定软件涉及的文件系统的结构及数据库的表结构。

  3. 接口设计:描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口。

  4. 过程设计:确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。

在采用结构化开发方法进行软件开发时,设计阶段接口设计主要依据需求分析阶段的()。接口设计的任务主要是()。 A.数据流图 B.E-R图 C.状态-迁移图 D.加工规格说明 A.定义软件的主要结构元素及其之间的关系 B.确定软件涉及的文件系统的结构及数据库的表结构 C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系 D.确定软件各个模块内部的算法和数据结构 答案:AC

WebApp分析与设计

WebApp是基于web的系统和应用。大多数WebApp采用敏捷开发过程模型进行开发。

WebApp的特性

序号特性名称关键词
1网络密集性网络驻留、开放/受限访问、Internet/Intranet
2并发性大量用户同时访问、用户行为差异
3负载不可预知用户数量剧增、不可预测的负载
4性能响应速度、服务器处理、用户等待
5可用性24/7/365、全天候访问
6数据驱动超媒体内容、数据库访问

WebApp五种需求模型

序号模型名称关键词
1内容模型文本、图形、图像、音频、视频、内容对象、结构元素
2交互模型用户交互方式、用例、顺序图、状态图、界面原型
3功能模型计算功能、内容处理、统计报表、用户交互
4导航模型导航策略、用户跳转、内容对象间的导航
5配置模型运行环境、基础设施、UML部署图

WebApp设计

序号设计阶段关键词
1架构设计用户交互、任务处理、导航展示、MVC结构、功能内容分离
2构件设计聚合功能、内容设计元素、功能设计元素、构件级内容/功能设计、一致性开发
3内容设计内容对象、导航组织、线性结构、网格结构、层次结构、网络结构
4导航设计路径定义、访问内容、访问功能

面向对象开发

历年真题考情:本章节每年考察3-5分左右。第二版更新:对应第二版教材5.3.2(面向对象基础、分析设计)小节以及2.6.2里的4.建模语言(UML),有了比较大变动,原版教材是单独一个章节,而新版没有单独章节,内容也都是分散的,而且还缺少了历年真题常考的UML图、设计模式、设计原则等种重要内容,这里我们还是必须保留这些内容,不然没法做真题了。

image-20240626134024692

基本概念

对象:由数据及其操作所构成的封装体,是系统中用来描述客观事务的一个实体,是构成系统的一个基本单位。一个对象通常可以由对象名、属性和方法3个部分组成。

:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。对象是类的实例,类是对象的模板

类可以分为三种:实体类、接口类(边界类)和控制类

  1. 实体类的对象表示现实世界中真实的实体,如人、物等。

  2. 接口类(边界类)的对象为用户提供一种与系统合作交互的方式,分为人和系统两大类,其中人的接口可以是显示屏窗口、对话框、菜单、列表框、其他显示控制、条形码、二维码或者用户与系统交互的其他方法。系统接口涉及到把数据发送到其他系统,或者从其他系统接收数据。

  3. 控制类的对象用来控制活动流,充当协调者

抽象:通过特定的实例抽取共同特征以后形成概念的过程。它强调主要特征,忽略次要特征。一个对象是现实世界中一个实体的抽象,一个类是一组对象的抽象,抽象是一种单一化的描述,它强调给出与应用相关的特性,抛弃不相关的特性

封装:是一种信息隐蔽技术,将相关概念组成一个单元模块,并通过一个名称来引用。面向对象封装是将数据和基于数据的操作封装成一个整体对象对数据的访问或修改只能通过对象对外提供的接口进行。

继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,又可分为单继承和多继承。

多态不同的对象收到同一个消息时产生完全不同的结果。包括参数多态(不同类型参数多种结构类型)、过载多态(类包含多态(父子类型关系)似于重载,一个名字不同含义)、强制多态(强制类型转换)四种类型。多态由继承机制支持,将通用消息放在抽象层,具体不同的功能实现放在低层。

接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。

消息体现对象间的交互,通过它向目标对象发送操作请求

覆盖:子类在原有父类接口的基础上,用适合于自己要求的实现去置换父类中的相应实现。即在子类中重定义一个与父类同名同参的方法,

函数重载:与覆盖要区分开,函数重载与子类父类无关,且函数是同名不同参数

绑定:是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定是在编译时进行的,叫作静态绑定。动态绑定则是在运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。

一个类中可以拥有多个名称相同而参数表(参数类型或参数个数或参数类型顺序)不同的方法称为()

A.方法标记 B.方法调用C.方法重载 D.方法覆盖 答案:C

客户采用扫描二维码进行支付。若采用面向对象方法开发该销售系统,则客户在某销售系统中属于()类,二维码类属于()类。 A. 接口 B.实体 C.控制 D. 状态 A. 接口 B.实体 C.控制 D. 状态 答案:B A

多态有不同的形式,()的多态是指同一个名字在不同上下文中所代表的含义不同。

A 参数 B 包含 C 过载 D 强制

正确答案:C 答案解析:第 40 题考的是概念题,多态一共有四类,其中通用的多态有参数多态和包含多态。特 定的多态有过载多态和强制多态。其中,参数多态被称为最纯的多态。包含多态最常见的 例子就是子类型化,即一个类型是另个类型的子类型。而过载多态是同一个名字在不同 的上下文中所代表的含义不同。所以,选择C

类描述了一组对象共同的特性,下列叙述中正确的是()。

A 类本身不能具有变量 B 对象具有类定义的所有变量的一份拷贝 C 对象间不能共享类定义的变量 D 可通过类名访问静态变量(类变量)

正确答案: D 答案解析 : 类也可以有变量,所有类的对象都共享此类的变量。

()反映了类间的一种层次关系,而()反映了一种整体与部分的关系。

A 继承 B 组合 C 封装 D 多态

正确答案:A B 答案解析 : 继承反映了类间的一种层次关系,而组合反映了一种整体与部分的关系。

面向对象开发方法的基本思想是尽可能按照人类认识客观世界的方法来分析和解决问题,()方法不属于面向对象方法。 A Booch B Coad C OMT D Jackson

正确答案:D 答案解析:本题考查面向对象开发方法。面向对象开发方法有Booch方法、Coad方法和OMT方法。Jackson方法是种面向数据结构的开发方法。

下列有关面向对象的叙述不正确的是()。

A 面向对象设计最根本的意图是适应需求变化 B 应尽量针对接口编程,而不要针对实现编程 C 尽量使用继承而不是聚合,因为继承使得类间的耦合性最小 D 尽量使用已有的类库

正确答案:C 答案解析: 选项C应该使用聚合而不是继承,继承关系耦合性太强。

雇员类含有计算报酬的行为,利用面向对象的(),可以使得其派生类专职雇员类和兼职雇员类计算报酬的行为有相同的名称,但有不同的计算方法。

A 多态性 B 继承性 C 封装性D 复用性

正确答案:A 答案解析:多态性是指多种形式,不同的对象可以以不同的形式响应同样的消息。专职雇员类的对象和兼职雇员类的对象对于同样的消息采用了不同的计算方法,这是面向对象多态性的体现。

假设Bird和Cat是Animal的子类, Parrot是Bird的子类, bird是Bird的一个对象。cat是Cat的一个对象parrot是Parrot的一个对象。以下叙述中,不正确的是()。假设Animal类中定义接口move(),Bird、Cat和Parrot分别实现自己的move(),调用move()时,不同对象收到同一消息可以产生各自不同的结果,这一现象称为()。

A cat和bird可看作是Animal的对象 B parrot和bird可看作是Animal的对象 C bird可以看作是Parrot的对象 D parrot可以看作是Bird的对象

正确答案:C D答案解析 : 39题选项C表述错误Parrot是Bird的子类,因此一个Parrot的对象可以看作是Bird的对象。40题是多态,对父类行为的一种重写。

面向对象方法的多态性是指()。

A 一个类可以派生出多个特殊类 B 一个对象在不同的运行环境中可以有不同的变体 C 针对一消息,不同的对象可以以适合自身的方式加以响应 D 一个对象可以是由多个其他对象组合而成的

正确答案:C 答案解析: 多态指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。也就是说客户类其实在调用方法时,并不需要知道特定子类的实现,都会用统一的方式来调用。

在面向对象技术中,不同的对象在收到同一消息时可以产生完全不同的结果,这一现象称为(),它由()机制来支持。利用类的层次关系,把具有通用功能的消息存放在高层次,而不同的实现这一功能的行为放在较低层次,在这些低层次上生成的对象能够给通用消息以不同的响应。

A 绑定 B 继承 C 消息 D 多态

A 绑定 B 继承 C 消息 D 多态

正确答案:D B 多态性是同一操作作用于不同的类的实例,将产生不同的执行结果,即当不同类的对象收到相同的消息时,答案解析:得到不同的结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。多态是面向对象程序设计的重要特征之一,是扩展性在“继承”之后的又一重大表现。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。

雇员类含有计算报酬的行为,利用面向对象的(),可以使得其派生类专职雇员类和兼职雇员类计算报酬的行为有相同的名称,但有不同的计算方法。

A 多态性 B 继承性 C 封装性 D 复用性

正确答案:A 答案解析:多态性是指多种形式,不同的对象可以以不同的形式响应同样的消息。专职雇员类的对象和兼职雇员类的对象对于同样的消息来用了不同的计算方法,这是面向对象多态性的体现。

以下哪一项不是面向对象的特征()。

A 多态性 B 继承性 C 封装性 D 过程调用

正确答案:D答案解析: 面向对象的特征包括多态性、继承性和封装性,选D。

在面向对象方法中,将逻辑上相关的数据以及行为绑定在一起,使信息对使用者隐蔽称为0)。当类中的属性或方法被设计为 private 时,()可以对其进行访问。

A 抽象 B 继承 C 封装 D 多态

A 应用程序中所有方法 B 只有此类中定义的方法 C 只有此类中定义的 public 方法 D 同一个包中的类中定义的方法

正确答案:C B 答案解析:i逻辑上相关的数据以及行为绑定在一起,使信息对使用者隐蔽称为封装。对于私有成员来说只能是该类中定义的方法才能对其进行访问。

雇员类含有计算报酬的行为,利用面向对象的 (),可以使得其派生类专职雇员类和兼职雇员类计算报酬的行为有相同的名称,但有不同的计算方法。

A 多态性 B 继承性 C 封装性 D 复用性

正确答案:A 答案解析:多态性是指多种形式,不同的对象可以以不同的形式响应同样的消息。专职雇员类的对象和兼职雇员类的对象对于同样的消息采用了不同的计算方法,这是面向对象多态性的体现。

下列中说法错误的是()。

A 面向对象方法不仅支持过程抽象,而且支持数据抽象 B 某些面向对象的程序设计语言还支持参数化抽象 C 信息隐蔽通过对象的封装性来实现 D 在面向对象方法中,类是最根本的模块

正确答案:D 答案解析: 在面向对象方法中,对象是最根本的模块。

在面向对象程序设计语言中,对象之间通过0)方式进行通信。以下关于好的面向对象程序设计语言的叙述中不正确的是()。

A 多态 B 继承 C 引用 D 消息传递

A 应该支持通过指针进行引用 B 应该支持类写实例的概念 C 应该支持被封装的对象 D 应该支持继承和多态

正确答案:D A 答案解析: 对象间通过接口传递消息,实现通信。A,B,C为实现概念。A 只针对部分语言,如C++,不具有代表性。

类是一组具有相同属性的和相同服务的对象的抽象描述,类中的每个对象都是这个类的一个()。类之间共享属性与服务的机制称为()。一个对象通过发送()来请求另一个对象为其服务。

A 例证 B 用例 C 实例 D 例外 A 多态性 B 动态绑定 C 静态绑定 D 继承

A 调用语句 B 消息 C 命令 D 口令

答案:C D B 类是一组具有相同属性和相同操作的对象的集合,类中的每个对象都是这个类的一个实例,类之间共享属性与服务的机制称为继承。一个对象通过发送消息来请求另一个对象为其服务。

一个类中可以拥有多个名称相同而参数表(参数类型或参数个数或参数类型顺序)不同的方法,称为 ()。

A 方法标记 B 方法调用 C 方法重载 D 方法覆盖

正确答案:C 答案解析: 本题考查面向对象的基础知识。 面向对象方法中,数据和行为封装在一个对象中。一组大体上相似的对象定义为一个类,一个类所包含的方法和数据描述这组对象的共同行为和属性。行为也经常被称为方法。方法由方法名称、参数表和返回类型唯一标识,方法调用构成对象之间的通信消息。一个类中名称相同而参数表不同的多个方法则为方法重载;而方法覆盖或重置则是在子类中重新定义类中已定义的方法,其基本思想是通过动态绑定机制的支持,使得子类中继承父类接口定义的前提下用适合自己要求的实现去置换父类中的相应实现。

一个类中可以拥有与父类名称相同而且参数表(参数类型或参数个数或参数类型顺序)也相同但执行不同内容的方法,称为()。

A 方法标记 B 方法调用 C 方法重载 D 方法覆盖

正确答案:D答案解析:本题考查面向对象的基础知识。面向对象方法中,数据和行为封装在一个对象中。一组大体上相似的对象定义为一个类,,一个类所包含的方法和数据描述这组对象的共同行为和属性。行为也经常被称为方法。方法由方法名称、参数表和返回类型唯一标识,方法调用构成对象之间的通信消息。一个类中名称相同而参数表不同的多个方法则为方法重载:而方法覆盖或重置则是在子类中重新定义类中已定义的方法,其基本思想是通过动态绑定机制的支持,使得子类中继承父类接口定义的前提下用适合自己要求的实现去置换父类中的相应实现。

采用面向对象方法进行某游戏设计,游戏中有野鸭、红头鸭等各种鸭子边游泳戏水边呱呱叫,不同种类的鸭子具有不同颜色,设计鸭子类负责呱呱叫和游泳方法的实现显示颜色设计为抽象方法,由野鸭和红头鸭各自具体实现,这一机制称为 ()。当给这些类型的一组不同对象发送同一显示颜色消息时,能实现各自显示自己不同颜色的结果,这种现象称为()

A 继承 B 聚合 C 组合 D 多态

正确答案:A D答案解析:继承是父类和子类之间共享数据和方法定义的机制。在收到消息时,对象要予以响应,不同的对象收到同-消息可以产生完全不同的结果,这一现象称为多态。

在面向对象技术中,对象具有以下特性:()。28,①清晰的边界 ②良好定义的行为③确定的位置和数量 ④可扩展性

A ②④ B ①② C ①②③④ D ①②④

正确答案:D答案解析:在面向对象技术中,对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。通常,对象是具有定义良好的边界并将状态和行为封装于一体的实体。其中,状态表示属性和关系,行为表示操作和方法。对象是类的实例。对象具有以下特性:①清晰的边界:②良好定义的行为;③可扩展性等。

()说明一个对象具有多种形态,()定义超类与子类之间的关系。在面向对象技术中

A 继承 B 组合 C 封装 D 多态

正确答案:D A 在面向对象技术中,多态性是指作用于不同的对象的同一个操作可以有不同的解释,从而产生不同的执行结答案解析:果。通俗地说,具有相似功能的不同函数使用同一个函数名来实现,从而可以使用相同的调用方法来调用这些具有不同功能的同名函数。多态说明一个对象具有多种形态。继承表示类之间的层次关系,使得某类对象可以沿用另外一类对象的特征和能力。继承描述了超类与子类之间的一般关系。

在面向对象方法中,将逻辑上相关的数据以及行为绑定在一起,使信息对使用者隐蔽称为()。当类中的属性31 .或方法被设计为 private 时,()可以对其进行访问。

A 抽象 B 继承 C 封装 D 多态

A 应用程序中所有方法 B 只有此类中定义的方法 C 只有此类中定义的 public 方法 D 同一个包中的类中定义的方法

正确答案:C B 答案解析: 逻辑上相关的数据以及行为绑定在一起,使信息对使用者隐蔽称为封装。对于私有成员来说只能是该类中定义的方法才能对其进行访问。

在多态的几种不同方式中,() 多态是一种特定的多态,指同一个名字在不同上下文中可代表不同的含义

A 参数 B 包含 C 过载 D 强制

正确答案:C 答案解析:一般将多态分为通用多态和特殊多态。其中通用多态包括参数多态和包含多态,参数多态利用泛型编程,是发散式的,是静态绑定的,让相同的实现代码应用于不同场合,看重的是算法的普适性,包含多态利用OOP,是收敛的,是动态绑定的,让不同的实现代码应用在相同的场合,注重接口与实现的分离度。特殊多态包括强制多态和过载多态,其中强制多态即一种类型的变量在作为参数传递时隐式转换成另一种类型,比如一个整型变量可以匹配浮点型变量的函数参数,过载多态同一个名(操作符,函数名)在不同的上下文中有不同的类型。程序设计语言中基本类型的大多数操作符是过载多态。本题选择C选项。

采用面向对象方法开发学生成绩管理系统,学生的姓名、性别、出生日期、期末考试成绩、查看成绩操作均被()在学生对象中。系统中定义不同类,不同类的对象之间通过()进行通信

A 封装 B 继承 C 多态 D 信息

正确答案:A D 答案解析: 封装是指将数据和操作封装在一个对象中。在面向对象编程中,不同对象之间的通信通常是通过消息传递来实现的。一个对象可以通过发送消息给另个对象来请求执行某些操作或获取某些数据。这种通信方式可以促进代码的模块化和可重用性,同时使得程序更加灵活和易于维护。

采用面向对象开发方法时,对象是系统运行时基本实体。以下关于对象的叙述中,正确的是()。

A 对象只能包括数据(属性) B 对象只能包括操作(行为) C 对象一定有相同的属性和行为 D 对象通常由对象名、属性和操作三个部分组成

正确答案:D 答案解析: 本题考查面向对象的基本知识。 采用面向对象开发方法时,对象是系统运行时基本实体。它既包括数据(属性),也包括作用于数据的操作(行为)。一个对象通常可由对象名、属性和操作三部分组成。

一个类是()。在定义类时,将属性声明为private的目的是()。

A 一组对象的封装 B 表示一组对象的层次关系 C 一组对象的实例 D 一组对象的抽象定义

A 实现数据隐藏,以免意外更改 B 操作符重载 C 实现属性值不可更改 D 实现属性值对类的所有对象共享

正确答案:D A答案解析:本题考查面向对象的基本知识。 面向对象技术中,将一组大体上相似的对象定义为一个类。把一组对象的共同特征加以抽象并存储在一个类中,是面向对象技术中的一个重要特点。一个所包含的方法和数据描述一组对象的共同行为和属性。在类定义时,属性声明private的目的是实现数据隐,以免意外更改。

在面向对象软件开发中,封装是一种()技术,其目的是使对象的使用者和生产者分离。

A 接口管理 B 信息隐藏 C 多态 D 聚合

正确答案:B 答案解析: 本题考查面向对象的基础知识。在面向对象软件开发中,对象是软件系统中基本的运行时实体,对象封装了属性和行为。封装是一种信息隐藏技术,其目的是使对象的使用者和生产者分离,使对象的定义和实现分开。

面向对象分析

是为了确定问题域,理解问题。包含五个活动:认定对象、组织对象、描述对象间的相互作用、确定对象的操作、定义对象的内部信息

面向对象需求建模:

image-20240624172626321

面向对象的设计:是设计分析模型和实现相应源代码,设计问题域的解决方案,与技术相关。OOD同样应遵循抽象、信息隐蔽、功能独立、模块化等设计准则。

面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等

image-20240624172654408

下列关于面向对象的分析与设计的描述,正确的是()。

A 面向对象设计描述软件要做什么 B 面向对象分析不需要考虑技术和实现层面的细节 C 面向对象分析的输入是面向对象设计的结果 D 面向对象设计的结果是简单的分析模型

正确答案:B 答案解析:面向对象的分析描述软件要做什么,而不需要考虑技术和实现层面的细节。面向对象分析的结果是面向对象设计的输入。

面向对象分析的任务不包含()。

A 建模系统功能 B 发现并确定业务对象 C 建模各对象的状态 D 组织对象并确定对象间的关系

正确答案: C 答案解析:OOA基于用例模型,通过对象建模记录确定的对象、对象封装的数据和行为,以及对象之间的关系。OOA包括3个活动,分别是建模系统功能、发现并确定业务对象、组织对象并确定对象问的关系。

面向对象分析时,执行的活动顺序通常是()。

A 认定对象、组织对象、描述对象间的相互作用、确定对象的操作 B 认定对象、定义属性、组织对象、确定对象的操作 C 认定对象、描述对象间的相互作用、确定对象的操作、识别包 D 识别类及对象、识别关系、定义属性、确定对象的操作

正确答案:A 答案解析: 面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、确定对象的操作、定义对象的内部信息。

面向对象的分析方法主要是建立三类模型,分别是()。

A 系统类型、ER模型、应用模型 B 对象模型、动态模型、应用模型 C ER模型、对象模型、功能模型 D 对象模型、动态模型、功能模型

正确答案:D 答案解析:面向对象的分析通常要建立三种模型功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由用例图和场景描述组成。对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,类图是构建对象模型的核心工具。动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。面向对象方法中,常用状态图、顺序图、合作图、活动图构建系统的动态模型。选D。

面向对象分析的第一项活动是 ();面向对象程序设计语言为面向对象()

A 组织对象 B 描述对象间的相互作用 C 认定对象 D 确定对象的操作

A 用例设计 B 分析 C 需求分析 D 实现 正确答案:C D

面向对象分析中,构建用例模型一般分为四个阶段,其中不包含()阶段。

A 确定参与者 B 确定需求用例 C 构造用例模型D 用例模型规范化

正确答案:D 答案解析:在OOA方法中,产生用例模型一般需要经历四个阶段:①确定参与者。②确定需求用例。③构造用例模型。④记录需求用例描述。

面向对象分析的任务不包含()。

A 建模系统功能 B 发现并确定业务对象 C 确定各对象的算法 D 组织对象并确定对象间的关系

正确答案:C 答案解析: 本题考查面向对象分析的活动。面向对象分析基于用例模型,通过对象建模记录确定的对象、对象封装的数据和行为以及对象之间的关系。面向对象分析包括3个活动:建模系统功能:发现并且确定业务对象:组织对象并确定其关系。

面向对象分析的目的是为了获得对应用问题的理解,其主要活动不包括()。

A 认定并组织对象 B 描述对象间的相互作用 C 面向对象程序设计 D 确定基于对象的操作

正确答案:C 面向对象分析包括5个活动:认定对象、组织对象、描述对象之间的相互作用、定义对象的操作、定义对象答案解析:的内部信息。

采用面向对象方法分析时,首先要在应用领域中按自然存在的实体认定对象,即将自然存在的“()”作为一个对象。 A 问题 B 关系 C 名词 D 动词

正确答案:C 答案解析: 在应用领域中,按自然存在的实体确立对象。在定义域中,首先将自然存在的“名词”作为一个对象,这通常是研究问题、定义域实体的良好开始。

面向对象分析的第一步是()。

A 定义服务 B 确定附加的系统约束 C 确定问题域 D 定义类和对象

正确答案:C 答案解析:面向对象分析的目的是为了获得对应用问题的理解,确定系统的功能、性能要求。面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、定义对象的操作和定义对象的内部信息。而分析阶段最重要的是理解问题域的概念,其结果将影响整个工作。经验表明,从应用定义域概念标识对象是非常合理的。因此,面向对象分析的第一步就是确定问题域。

面向对象设计原则

image-20240708111331662

  1. 单一责任原则。就一个类而言,应该仅有一个引起它变化的原因。即,当需要修改某个类的时候原因有且只有一个,让一个类只做一种类型责任。

  2. 开放一封闭原则。软件实体(类、模块、函数等)应该是可以扩展的,即开放的;但是不可修改的,即封闭的。

  3. 里氏替换原则子类型必须能够替换掉他们的基类型。即,在任何父类可以出现的地方,都可以用子类的实例来赋值给父类型的引用

  4. 依赖倒置原则抽象不应该依赖于细节,细节应该依赖于抽象。即,高层模块不应该依赖于低层模块,二者都应该依赖于抽象。

  5. 接口分离原则。不应该强迫客户依赖于它们不用的方法。接口属于客户不属于它所在的类层次结构。即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。这样做的好处就在于可以最大限度地应对可能的变化。

针对包中的所有类对于同一类性质的变化;一个变化若对一个包产生影响,则将对进行面向对象系统设计时,该包中的所有类产生影响,而对于其他的包不造成任何影响。这属于()设计原则。

A 共同重用 B 开放-封闭 C 接口分离 D 共同封闭

正确答案:D 答案解析:类的设计原则有七个,包括:开闭原则、里氏代换原则、迪米特原则(最少知道原则)单一职责原则、接口分隔原则、依赖倒置原则、组合/聚合复用原则。除以上原则外,还有 其他原则,其中,共同重用原则是指一个包中的所有类应该是共同重用的。如果重用了包中的一 个类,那么就要重用包中的所有类。开放封闭原则,即软件实体(类、模块、函数等)应该是可以扩展的,即开放的。但是不可修改的,即封闭的。 接口分离原则,是指不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它所在的类层次结构。即依赖于抽象,不依赖于具体,同时,在抽象级别,不应该有对于细节的依赖。共同封闭原则,是指包中的所有类对于同一类性质的变化应该是共同封闭的。一个变 化若对包产生影响则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。由此可见,题目里描述的是共同封闭原则,选择的答案是 D。

采用面向对象方法进行系统设计时,不应该强迫客户依赖于它们不用的方法,即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。这属于()原则。

A 单一责任 B 开放-封闭 C 依赖倒置 D 里氏替换

正确答案:C 答案解析 : 依赖倒置原则(Dependence lnversion Principle,DIP)是指设计代码结构时,高层模块不应该依赖低层 模块,二者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。

不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它所在的类层次结构。即依赖于抽象,不依赖于具体,同时,在抽象级别,不应该有对于细节的依赖,这属于()设计原则。

A 共同重用 B 开放-封闭 C 依赖倒置 D 共同封闭

正确答案:C 答案解析:类的设计原则有七个,包括:开闭原则、里氏代换原则、迪米特原则(最少知道原则)、单一职责原则、接口分隔原则、依赖倒置原则、组合/聚合复用原则。除以上原则外,还有其他原则。其中,共同重用原则是指一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。开放封闭原则,即软件实体(类、模块、函数等)应该是可以扩展的,即开放的。但是不可修改的,即封闭的。是指不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它所在的类层次结构。依赖倒置原则,即依赖于抽象,不依赖于具体,同时,在抽象级别,不应该有对于细节的依赖。共同封闭原则,是指包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。由此可见,题目里描述的是接口分离原则,选择的答案是C。

在面向对象设计中,()可以实现界面控制、外部接口和环境隔离。()作为完成用例业务的责任承担者,协调、控制其他类共同完成用例规定的功能或行为。

A 实体类 B 控制类 C 边界类 D 交互类

正确答案:C B 答案解析:类封装了信息和行为,是面向对象的重要组成部分。在面向对象设计中,类可以分为三种类型:实体类、边界类和控制类。①实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。实体类是对用户来说最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型转化中,一个参与者-般对应于实体类。 2控制类是用于控制用例工作的类,一般是由动宾结构的短语(“动词+名词”或“名词+动词”)转化来的名词。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象通常控制其他对象,因此它们的行为具有协调性。 ③边界类用于封装在用例内、外流动的信息或数据流。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。边界对象将系统与其外部环境的变更隔离开,使这些变更不会对系统其他部分造成影响。

开-闭原则(Open-Closed Principle,OCP )是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对()开放,对()关闭:里氏代换原则(LiskovSubstitution Principle,LSP )是指任何()可以出现的地方,()一定可以出现。依赖倒转原则(Dependence lnversion Principle,DIP)就是要依赖于()而不依赖于(),或者说要针对接口编程,不要针对实现编程。

A 修改 B 扩展 C 分析 D 设计 A 变量 B 常量 C 基类对象 D 子类对象

A 程序设计语言 B 建模语言 C 实现 D 抽象

A 建模语言 B 程序设计语言 C 实现 D 抽象

正确答案:B A C D D C 答案解析: 开-闭原则要求一个软件实体应当对扩展开放,对修改关闭。也就是说,我们在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,换句话说就是,应当可以在不必修改源代码的情况下改变这个模块的行为。里氏代换原则要求子类型必须能够替换它们的基类型,所以在里氏代换原则中,任何可基类对象可以出现的地方,子类对象也一定可以出现。依赖倒转原则是:要依赖于抽象,不要依赖于具体。也就是常说的要针对接口编程,不要针对实现编程。

面向对象设计有7个主要原则。()强调子类可以替换父类。()要求一个对象应当对其他对象有尽可能少的12了解。()要依赖于抽象,不是具体实践。

A 迪米特原则 B 里式替换原则 C 依赖倒置原则 D 开放-封闭原则

A 迪米特原则 B 依赖倒置原则 C 里式替换原则 D 开放-封闭原则

A 迪米特原则 B 开放-封闭原则 C 依赖倒置原则 D 里式替换原则

正确答案:B A C 答案解析: 里式替换原则:子类可以替换父类迪米特原则:一个对象应当对其他对象有尽可能少的了解。依赖倒置原则:要依赖于抽象,不是具体实践。对接口进行编程,不要对实现编程

面向对象设计时包含的主要活动是()。

A 认定对象、组织对象、描述对象间的相互作用、确定对象的操作

B 认定对象、定义属性、组织对象、确定对象的操作

C 识别类及对象、确定对象的操作、描述对象间的相互作用、识别关系

D 识别类及对象、定义属性、定义服务、识别关系、识别包

正确答案:D答案解析 : 面向对象设计时包含的主要活动是识别类及对象、定义属性、定义服务、识别关系、识别包。

在面向对象设计时,如果重用了包中的一个类,那么就要重用包中的所有类,这属于()原则。

A 接口分离 B 开放-封闭 C 共同封闭 D 共同重用

正确答案:D 答案解析:接口分离原则:不应该强迫客户依赖于它们不用的方法。开放-封闭原则:软件实体(类、模块、函数等)应该是可以扩展的,即开放的;但是不可修改的,即封闭的。 共同封闭原则:包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。共同重用原则:一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。

某电商系统在采用面向对象方法进行设计时,识别出网店、商品、购物车、订单、买家、库存、支付(微信.支付宝)等类。其中,购物车与商品之间适合采用()关系,网店与商品之间适合采用()关系。

A 关联 B 依赖 C 组合 D 聚合

A 关联 B 依赖 C 组合 D 聚合

正确答案:D C 答案解析:购物车与商品是整体与部分的关系,购物车包含了商品,但是商品可以脱离购物车独立存在,这是一种聚合关系网店与商品之间是一种整体与部分的关系,商品是网店的一部分,如果网店不存在了,那么网店中的商品也不存在,它们之间是组合关系

进行面向对象系统设计时,在包的依赖关系图中不允许存在环,这属于()原则

A 单一责任 B 无环依赖 C 依赖倒置 D 里氏替换 正确答案:B

进行面向对象系统设计时,针对包中的所有类对于同一类性质的变化:一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。这属于()设计原则。

A 共同重用 B 开放-封闭 C 接口分离 D 共同封闭

正确答案:D答案解析:本题考查面向对象技术基础知识。进行面向对象设计时,有一系列设计原则,本题中涉及对象设计的四大原则共同重用原则:一个包中的所有类应该是共同重用的,即如果重用了包中的一个类,那么就要重用包中的所有类。 开放-封闭原则:软件实体(类、模块、函数等)应该是可以扩展的,即开放的,但是不可修改的,即封闭的。接口分离原则:不应该强迫客户类依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构:即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于具体细节的依赖。这样做的好处在于可以最大限度地应对可能的变化。 共同封闭原则:包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响

采用面向对象方法进行系统设计时,不应该强迫客户依赖于它们不用的方法,即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。这属于()原则。

A 共同重用 B 开放-封闭 C 依赖倒置 D 共同封闭

正确答案:C 答案解析:.本题考查面向对象技术基础知识。 进行面向对象设计时,有一系列设计原则,本题中涉及对象设计的四大原则。

共同重用原则:一个包中的所有类应该是共同重用的,即如果重用了包中的一个类,那么就要重用包中的所有类。开放-封闭原则:软件实体(类、模块、函数等)应该是可以扩展的,即开放的,但是不可修改的,即封闭的。依赖倒置原则:不应该强迫客户类依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构:即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于具体细节的依赖。这样做的好处在于可以最大限度地应对可能的变化。 共同封闭原则:包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。

进行面向对象系统设计时,修改某个类的原因有且只有一个,即一个类只做一种类型的功能,这属于()原则。 A 单一责任 B 开放-封闭 C 接口分离 D 依赖倒置

答案:A 答案解析: 单一责任原则(Single Responsibility Principle,SRP)是指就一个类而言,应该仅有一个引起它变化的原因。即,当需要修改某个类的时候原因有且只有一个,让一个类只做一种类型责任。

在面向对象系统设计中,如果重用了一个包中的某个类,那么就要重用该包中所的类,这属于()原则

A 共同封闭 B 共同重用C 开放-封闭 D 接口分离 正确答案:B

进行面向对象设计时,以下()不能作为继承的类型。

A 多重继承 B 分布式继承 C 单重继承 D 层次继承

正确答案:B 答案解析 : 面向对象设计支持多重继承、单重继承和层次继承,但不支持分布式继承

面向对象软件测试

  1. 算法层。测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试

  2. 类层。测试封装在同一个类中的所有方法与属性之间的相互作用。在向面对象软件中类是基本模块,因此可以认为这是面向对象测试中所特有的模块测试

  3. 模板层。测试一组协同工作的类之间的相互作用,大体上相当于传统软件测试中的集成测试,但是也有面向对象软件的特点(例如,对象之间通过发送消息相互作用)

  4. 系统层。把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。

面向对象的分析模型主要由顶层架构图、用例与用例图和()构成,设计模型则包含以()表示 的软件体系机构图、以交互图表示的用例实现图、完整精确的类图、描述复杂对象的()和用以描 述流程化处理过程的活动图等。

A.数据流模型 B.领域概念模型C.功能分解图D.功能需求模型

A.模型视图控制器 B.组件图 C.包图 D.2层、3层或N层

A.序列图 B.协作图 C.流程图 D.状态图 答案:B C D

  1. 分析模型中的第三个关键部分是领域概念模型(B),用于表示系统中的关键领域对象及其关系。

  2. 设计模型中描述软件体系结构的图通常使用包图(C)来表示高层次的组织结构。

  3. 描述复杂对象行为的是状态图(D),用于展示对象在其生命周期中的状态变化。

在面向对象设计的原则中、()原则是指抽象不应该依赖于细节,细节应该依赖于抽象,即应针对接口编程,而不是针对实现编程。

A.开闭 B.里氏替换 C.最少知识 D.依赖倒置 答案:D

UML统一建模语言

什么是UML

UML(统一建模语言):是一种可视化的建模语言,而非程序设计语言,支持从需求分析开始的软件开发的全过程。从总体上来看,UML的结构包括构造块、规则和公共机制三个部分。

  • 构造块。UML有三种基本的构造块,分别是事物(thing)、关系和图(diagram)。事物是UML的重要组成部分,关系把事物紧(relationship)密联系在一起,图是多个相互关联的事物的集合。

  • 公共机制。公共机制是指达到特定目标的公共UML方法:

  • 规则。规则是构造块如何放在一起的规定

  1. 结构事物:模型的静态部分,如类、接口、用例构件等;

  2. 行为事物:模型的动态部分,如交互、活动、状态机;

  3. 分组事物:模型的组织部分,如包;

  4. 注释事物:模型的解释部分,依附于一个元素或-组元素之上对其进行约束或解释的简单符号。

image-20240624172841156

UML图分类

UML2.0图,书上是13种,有的说法还包含制品图,一共14种,了解即可,总分类如下:

image-20220812101252561

  • UML图分为结构图和行为图。

  • 结构图分为类图、轮廓图、组件图、组合结构图、对象图、部署图、包图。

  • 行为图又分活动图、用例图、状态机图和交互图。

  • 交互图又分为序列图、时序图、通讯图、交互概览图。

image-20220812100858776

什么是类图?⭐⭐

类图描述了系统中对象的类型以及它们之间存在的各种静态关系。用来表示类、接口以及它们之间的静态结构和关系。常见有以下几种关系,静态图,为系统的静态设计视图,展现一组对象、接口、协作和它们之间的关系。UML类图如下:

image-20240624172904010

关系类型生命周期关系强度表达意思UML符号
依赖临时临时使用,临时用一下,不长期持有→(虚线)
关联长期中等拥有/引用→(实线)
聚合可独立存在整体-部分(弱拥有)部分可以脱离整体独立存在◇→
组合一体化,紧密整体-部分(强拥有)部分不能独立存在◆→
继承复用结构行为是一种“是一个”的关系(is-a)△→
实现实现接口合同实现,类实现接口,表示“承诺完成一项功能”△→(虚线)

采用面向对象方法进行软件开发时,将汽车作为一个系统。以下()之间不属于组成(Composition)关系。

A.汽车和座位 B.汽车和车窗 C.汽车和发动机 D.汽车和音乐系统 答案:D

如图所示的UML类图中,Shop和Magazine之间为()关系,Magazine和Page之间为()关系。UML类图通常不用于对()进行建模。

A.关联 B.依赖 C.组合 D.继承

A.关联 B.依赖 C.组合 D.继承A.关联

A.系统的词汇 B.简单的协作 C.逻辑数据库模式 D.对象快照 答案:A C D

通常情况下,商店(Shop)拥有多个杂志(Magazine),但杂志可以脱离商店存在,比如一本杂志不一定只能存在于某一家店里。因此,Shop 和 Magazine 是一种“长期引用”的关系,属于:✅ 关联(Association)

一本杂志由若干页(Page)组成,如果杂志销毁了,页面也就随之消失页面不能单独存在

这正是典型的强拥有、一体化的“组合”关系。✅ 组合(Composition)

UML 类图用于建模类的结构、属性、关系等;

它可以表达系统中的类、接口、继承、组合等内容;

但它不用于描述数据库表结构或 ER 模型等底层实现

什么是组件图?

构件图(组件图)静态图,为系统静态实现视图,展现了一组构件之间的组织和依赖。如下:

image-20240624173330992

【概念】描绘了系统中组件提供的、需要的接口、端口等,以及它们之间的关系。

【目的】用来展示各个组件之间的依赖关系。

image-20220812101751999

订单系统组件依赖于客户资源库和库存系统组件。中间的虚线箭头表示依赖关系。另外两个符号,表示组件连接器,一个提供接口,一个需要接口。

什么是部署图?

部署图:静态图,为系统静态部署视图,部署图物理模块的节点分布。它与构件图相关,通常一个结点包含一个或多个构件。其依赖关系类似于包依赖,因此部署组件之间的依赖是单向的类似于包含关系。

image-20240624173633143

【概念】描述了系统内部的软件如何分布在不同的节点上。

【目的】用来表示软件和硬件的映射关系。

image-20220812104554228

图中简单的表示,不同机器上面部署的不同软件。

什么是对象图?

对象图:静态图,展现某一时刻一组对象及它们之间的关系为类图的某快照。在没有类图的前提下,对象图就是静态设计视图。如下:

image-20240624173055051

【概念】对象图是类图的一个实例,是系统在某个时间点的详细状态的快照。

【目的】用来表示两个或者多个对象之间在某一时刻之间的关系。

image-20220812104537115

图中就是描述的,某时间点bat这个公司有一个研发部,一个销售部,两个部门只有一个人iisheng

什么是包图?

【概念】描绘了系统在包层面上的结构设计。

【目的】用来表示包和包之间的依赖关系。

image-20220812104507901

  • 《Use》表示使用依赖,Web Shopping依赖Payment

  • 《Merge》表示合并,Web Shopping合并了Shopping Cart就拥有了Shopping Cart的功能

  • 《Access》表示私有引入,比如代码中的指定包名类名

  • 《Import》表示公共引入,比如Java中的import之后,就可以直接使用import包中的类了。

什么是组合结构图?

【概念】描述了一个"组合结构"的内部结构,以及他们之间的关系。这个"组合结构"可以是系统的一部分,或者一个整体。

【目的】用来表示系统中逻辑上的"组合结构"。

image-20220812104440660

图中描述了Car是由车轴连接着的两个前面轮子、两个后面轮子,和引擎组合的。

什么是轮廓图?

【概念】轮廓图提供了一种通用的扩展机制,用于为特定域和平台定制UML模型。

【目的】用于在特定领域中构建UML模型。

image-20220812104418035

图中我们定义了一个简易的EJB的概要图。Bean是从Component扩展来的。Entity BeanSession Bean继承了BeanEJB拥有RemoteHome接口,和JAR包。

什么是用例图?⭐⭐

用例图:静态图,展现了一组用例、参与者以及它们之间的关系。用例图中的参与者是人、硬件或其他系统可以扮演的角色;用例是参与者完成的一系列操作,用例之间的关系有扩展、包含、泛化。如下:

image-20240624173118716

【概念】用例图是指由参与者、用例,边界以及它们之间的关系构成的用于描述系统功能的视图。

【目的】用来描述整个系统的功能。

image-20220812104356307

用例图中包含以下三种关系:

  • 包含关系使用符号《include》,想要查看订单列表,前提是需要先登录。

  • 扩展关系使用符号《extend》,基于查询订单列表的功能,可以增加一个导出数据的功能

  • 泛化关系,子用例继承父用例所有结构、行为和关系。

什么是活动图?

活动图:动态图,是一种特殊的状态图,展现了在系统内从一个活动到另一个活动的流程。活动的分岔和汇合线是一条水平粗线。牢记下图中并发分岔、并发汇合、监护表达式、分支、流等名词及含义。每个分岔的分支数代表了可同时运行的线程数。活动图中能够并行执行的是在一个分岔粗线下的分支上的活动

image-20240624173305367

【概念】描述了具体业务用例的实现流程。

【目的】用来表示用例实现的工作流程。

image-20220812104321473

图中简单描述了,从开始到登录到查看订单列表,或者登录失败直接结束。

什么是状态机图?⭐

状态图:动态图,展现了一个状态机,描述单个对象在多个用例中的行为包括简单状态和组合状态。转换可以通过事件触发器触发,事件触发后相应的监护条件会进行检查。状态图中转换和状态是两个独立的概念,如下:图中方框代表状态,箭头上的代表触发事件,实心圆点为起点和终点。

image-20240624173238885

【概念】状态机图对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序。

【目的】用来表示指定对象,在整个生命周期,响应不同事件的不同状态。

image-20220812104252953

图中描述了,门在其生命周期内所经历的状态。

什么是序列图?

序列图:即顺序图,动态图,是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。有同步消息(进行阻塞调用,调用者中止执行,等待控制权返回,需要等待返回消息,用实心三角箭头表示),异步消息(发出消息后继续执行,不引起调用者阻塞,也不等待返回消息,由空心箭头表示)、返回消息(由从右到左的虚线箭头表示)三种。如下:

image-20240624173141614

【概念】序列图根据时间序列展示对象如何进行协作。它展示了在用例的特定场景中,对象如何与其他对象交互。

【目的】通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

image-20220812104231461

图中展示的是支付宝条码支付场景的序列图。其中,loop是循环,alt是选择,序列图的其他关系这里就不介绍

什么是通讯图?

通信图:动态图,即协作图,强调参加交互的对象的组织。如下:

image-20240624173214355

【概念】描述了收发消息的对象的组织关系,强调对象之间的合作关系而不是时间顺序。

【目的】用来显示不同对象的关系。

image-20220812103708506

图中展示了一个线上书店的通讯图,方框和小人表示生命线,不同生命线之间可以传递消息,消息前面的数字可以表达序列顺序。

什么是交互概览图?

【概念】交互概览图与活动图类似,但是它的节点是交互图。

【目的】提供了控制流的概述。

image-20220812103641570

图中表示一个调度系统的交互概览图,跟活动图很像。其中sd的框代表具体的交互流程,ref框代表使用交互。

什么是时序图?

【概念】时序图被用来显示随时间变化,一个或多个元素的值或状态的更改。也显示时控事件之间的交互和管理它们的时间和期限约束。

【目的】用来表示元素状态或者值随时间的变化而变化的视图。

image-20220812103029249

图中展示了老年痴呆病人随着时间的变化病情的变化。

UML4+1视图

  • 逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集

  • 进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构

  • 实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模

  • 部署视图。部署视图把构件部署到一组物理节点上表示软件到硬件的映射和分布结构

  • 用例视图。用例视图是最基本的需求分析模型

image-20240624173700526

用例(use case)用来描述系统对事件做出响应时所采取的行动。用例之间是具有相关性的。在个会员管理系统中,会员注册时可以采用电话和邮件两种方式。用例“会员注册”和“电话注 册”“邮件注册”之间是()关系。

A.包含(include) B.扩展(extend)c.泛化(generalize)D.依赖(depends on)答案:C

以下关于UML状态图的叙述中,不正确的是()

A、活动可以在状态内执行,也可以在迁移时执行

B、若事件触发一个没有特定监护条件的迁移,则对象离开当前状态

C、迁移可以包含事件触发器,监护条件和状态 D、事件触发迁移 答案:B

在UML提供的系统视图中,()是逻辑视图的一次执行实例,描述了并发与同步结构;()是最基本的需求分析模型。 A.进程视图 B.实现视图 C.部署视图 D.用例视图

A.进程视图 B.实现视图 C.部署视图 D.用例视图 答案:AD

如下所示的UML图是(),图中(I)表示()(I)表示()中 A.序列图B.状态图 C通信图 D 活动图

A 合并分叉B.分支C 合并汇合 D 流

A.分支条件 B.监护表达式 C.动作名 D流名称 答案:D A B

image-20240624173829045

设计模式

image-20240708111319529

架构模式:软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基本设计决策。

设计模式:每一个设计模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动,设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便的复用成功的的设计和体系结构。四个基本要素:模式名称、问题(应该在何时使用模式)、解决方案(设计的内容)、效果(模式应用的效果)

惯用法:是最低层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来描述构件与构件之间的关系。每种编程语言都有它自己特定的模式即语言的惯用法。例如引用一计数就是C++语言中的一种惯用法。

image-20240708111417851

创建型模式

这类模式提供创建对象的机制, 能够提升已有代码的灵活性和可复⽤用性

image-20240708111429826

结构型模式

这类模式介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。

image-20240624173921812

行为型模式

image-20240708144122103

image-20240708144043312

设计模式描述了一个出现在特定设计语境中的设计再现问题,并为它的解决方案提供了一个经过充分验证的 通用方案,不同的设计模式关注解决不同的问题。例如,抽象工厂式提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类,它是一种(54)模式;(55)模式,将类的抽象部分和它的实现部分分离出来,使它们可以独立变化,它属于(56)模式;(57)模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。

(54)A.组合型 B.结构型 C.行为型 D.创建型 (55)A.BridgeB.Proxy C.Prototype D.Adapter (56)A.组合型B.结构型 C.行为型 D.创建型 (57)A.Command B.Facade C.Memento D.Visitor

答案:(54)D,(55)A,(56)B,(57)A

抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类

将类的抽象部分和它的实现部分分离出来,使它们可以独立变化

它属于结构型模式,因为它主要目的是改变类之间的结构(将实现与抽象分离)。

命令模式(Command Pattern)将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。

欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形,该绘图软件的扩展性要求将不断扩充新的图形和新的绘图程序,以绘制直线和图形为例,得到如下图所示的类图,该设计采用()模式将抽象部分与其实现部分分离,使它们都可以独立的变化。其中()定义了实现类接口,该模式适用于()的情况,该式属于() 模式。 (1)A、适配器(adapten) B、装饰(Decorator) C、桥接(Bridge) D、组合(composite)

(2)A、Shape B、Circle和Rectangle C、V1Drawing和V2Drawing D、Drawing

(3)A、不希望在抽象和它的实现部分之间有一个固定判定关系

B、想表示对象的部分-整体层次结构

C、想使用一个已经存在的类,而它的接口不符合要求

D、在不影响其他对象的情况下,以动态透明的方式给单个对象添加职责

(4)A、创建型对象 B、结构型对象 C、行为型对象 D、结构型类 答案:C、A、 A、B

英语部分

单词词汇

词汇含义
access存取
active-matrix主动矩阵
adapter适配器,转换器
adapter cards适配卡
agents代理
analog signals模拟信号
animations动画
applets程序
arithmetic operations算术运算
array数组,阵列
assembly汇编,安装,装配
asynchronous异步的,非同步的
asynchronous communications port异步通信端口
attachment附件
audio-output device音频输出设备
Bandwidth带宽
Bar code reader条形码读卡器
Bit比特
Bluetooth蓝牙
Bus line总线
cache高速缓存
CAD(Computer Aided Design)计算机辅助设计
CD-R可记录压缩光盘
CD-ROM可记录光盘
CD-RW可重写光盘
certificates证书
command命令,指令
compress压缩,精减
configuration配置
control unit操纵单元
controller控制器
cookies信息记录程序
cookies-cutter programs信息记录截取程序
coprocessor协同处理器
copyright版权
correspond通信(联系)
critical临界的;临界值
cursor光标
database数据库
decimal十进制;十进制的
digital数字的
digital subscriber line数字用户线路
digital versatile disc数字化通用磁盘
digital video disc数字化视频光盘
directory目录,索引簿
disk盘,磁盘
display显示
dot-matrix printer点矩阵式打印机
drive驱动
e-commerce电子商务
E-mail电子邮件
enclose封闭,密封,围住,包装
file文件
firewall防火墙
Flash RAM闪存
format格式
hacker黑客
hexadecimal十六进制的
hierarchical分级的,分层的
home page主页
host computer主机
index索引,变址,指数
integrate综合,集成
integrated Software集成软件
interpreter释程序,翻译机
key键,关键字,关键码
line(数据,程序)行,线路
list列表,显示
locating定位,查找
macro宏,宏功能,宏指令
main board主板
map图;映射,变址
margin余量,边缘,边际
micro微的,百万分之一
nemory内存
network adapter card网卡
network terminal网络终端
numerical数量的,数字的
on-line联机的
operate操作,运算
optimize优选,优化
output输出,输出设备
pixel像素
pop上托,弹出(栈)
printer打印机,印刷机
product(乘)积,产品
Programming language程序设计语言
property性(质),特征
protocol规约,协议,规程
pseudo假的,伪的,冒充的
push推,按,压,进(栈)
recall撤消,复活,检索
replaceable可替换的
retrieve检索
retrieve检索
rewrite重写
scan扫描,扫视,搜索
scanner扫描器
series序列,系列,串联
set设置
space空格键,空间
stack栈,堆栈,存储栈
sub-directory子目录
subset子集,子设备
system software系统软件
Telnet远程登录
template模板
terminal终端
terminal终端,端子
tracks磁道
update更新,修改,校正
variable可变的
video视频,电视
video display screen视频显示屏
virtual memory虚拟内存
Virus病毒
voice recognition system声音识别系统
ADSL(Asymmetric Digital Subscriber Line)不对称数字订阅线路
AGP(accelerated graphics port)加速图形接口
AH(Authentication Header)鉴定文件头
API(Application Programming Interface)应用程序设计接口
ARP(Address Resolution Protocol)地址解析协议
ATM(Asynchronous Transfer Mode)异步传输模式
BCF(Boot Catalog File)启动目录文件
BIOS (Basic input/output System)基本输入/输出系统
CA(Certification Authority)证书管理机构
CD(compact disc )压缩盘
CGI(Common Gateway Interface)公共网关界面
CGI(Common Gateway Interface)通用网关接口
CISC(Complex Instruction Set Computer)复杂指令集计算机
CMOS(complementary metal-oxide semiconductornductor)互补金属氧化物半导体
CPU(central processing unit)中央处理器
CRC(Cyclical Redundancy Check)循环冗余检查
CRT(Cathode Ray Tube)阴极射线管
CTI(Computer Telephone Integration)计算机电话综合技术
DBMS(database management system)数据库管理系统
DBS(Direct Broadcast Satellite)直接卫星广播
DES(Data Encryption Standard)数据加密标准
DIC(Digital Image Control)数字图像控制
DNS(Domain Name System)域名系统
DOM(Document Object Model)文档对象模型
DSP(Digital Signal Processing)数字信号处理
DTE(Data Terminal Equipment)数据终端设备
DWDM(Dense Wavelength Division Multiplex)波长密集型复用技术
EDO(Extended Data Output)扩充数据输出
FRC(Frame Rate Control)帧比率控制
FTP(File Transfer Protocol)文件传输协议
Ghost(General Hardware Oriented System Transfer全面硬件导向系统转移
HDTV(high-definition television)高清晰度电视
HTML(Hyper Text Markup Language)超文本标示语言
HTTP(Hyper Text Transmission Protocol)超文本传输协议
Hypertext超文本
ICMP(Internet Control Message Protocol)因特网信息控制协议
IP(Internet Protocol)网际协议
LAN(Local Area Network)局域网
LCD(iquid crystal display monitor)液晶显示器
MAC(Media Access Control)媒体访问控制子层协议
MIDI(Musical Instrument Digital Interface) 乐乐器数字化接口
MMDS(Multichannel Multipoint Distribution Servic多波段多点分发服务
NAC(Network Access Control)网络存取控制
NOS(Network operation system)网络操作系统
OJI(Open Java VM Interface)开放Java虚拟机接口
OLE(object linking and embedding)对象链接入
OMR(optical-mark recognition)光标阅读器
P3P(Privacy Preference Project)个人私隐安全平台
PCI(peripheral component interconnect)外部设备互连总线
PCM(Pulse Code Modulation)脉冲编码调制
PDA(personal digital assistant)个人数字助理
POP3(Post Office Protocol Version 3)第三版电子邮局协议
PSTN(Public Switched Telephone Network)公用交换式电话
RAM(Random Access Memory)随机存取存储器
Remote Login远程登录(注册)
RISC(Reduced Instruction Set Computer)精简指令集计算机
ROM(read-only memory)只读存储器
SDRAM(Synchronous Dynamic Random Access Me同步动态随机存储器
SGML(Standard Generalized Markup Language)标准通用标记语言
SMIL(Synchronous Multimedia Integrate Language同步多媒体集成语言
SQL(structured query language)结构化查询语言
TAPI(Telephony Application Programming Interface电话应用程序接口
TCP(Transmission Control Protocol)传输控制协议
TSAPI(Telephony Services Application Programmin电话服务应用
UDP(User Datagram Protocol)用户数据报协议
URL(Uniform Resource Locator)统一资源定位符
USB(universal serial bus)通用串行总线
VDT(Video Display Terminals)视频显示终端
VOD(Video On Demand)视频点播
VPN(virtual private network )虚拟专用网络
VPN(Virtual Private Network)虚拟局域网
VRML(Virtual Reality Makeup Language)虚拟现实结构化语言
VRR(Vertical Refresh Rate)垂直扫描频率
WAIS(Wide Area Information Service)广域信息服务器
WDM(Wavelength Division Multiplex)波分多路复用
Web browser网络浏览器
WWW(World Wide Web)万维网
XML(Extensible Markup Language)可扩展置标记语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值