考点14:知识产权和标准化
真题1:甲软件公司受乙企业委托安排公司软件设计师开发了信息系统管理软件,由于在委托开发合同中未对软件著作权归属作出明确的约定,所以该信息系统管理软件的著作权由(甲) 享有。
真题2:根据我国商标法,下列商品中必须使用注册商标的是(烟草制品)
真题3:李某受非任职单位委托,利用该单位实验室开发了一项软件。对于该软件的归属,表达正确的是(有约定,则遵从约定;无约定的,原则上归属于李某。)
X公司接受Y公司的委托开发了一款应用软件,双方没有订立任何书面合同。在此情形下,( )享有该软件的著作权。
A:X、Y公司共同
B:X公司
C:Y公司
D:X、Y公司均不
答案:B
解析:
不签合同,谁开发就是谁的。
下列关于著作权归属的表述,正确的是( )。
A:改编作品的著作权归属于改编人
B:职务作品的著作权都归属于企业法人
C:委托作品的著作权都归属于委托人
D:合作作品的著作权归属于所有参与和组织创作的人
答案:A
解析:
改编、翻译、注释、整理已有作品而产生的作品,其著作权由改编、翻译、注释、整理人享有,但行使著作权时不得侵犯原作品的著作权。从上述法律规定,我们可以知道,改编者对改编后的作品享有著作权,但是该著作权的行使受到一定限制,即行使改编作品的著作权不得侵犯原作品的著作权。
以下关于软件著作权产生时间的叙述中,正确的是( )。
A:软件著作权产生自软件首次公开发表时
B:软件著作权产生自开发者有开发意图时
C:软件著作权产生自软件开发完成之日起
D:软著作权产生自软件著作权登记时
答案:C
中国公民、法人或其他组织的作品,不论是否发表,都享有著作权。开发软件所用的思想、处理过程、操作方法或数学概念不受保护。
专利:谁先申请谁拥有;而不是谁先发明的。
考点15:风险管理、无主程序员
真题1:在进行软件开发时,采用无主程序员的开发小组,成员之间相互平等;而主程序员负责制的开发小组,由一个主程序员和若干成员组成,成员之间没有沟通。在一个由8名开发人员构成的小组中,无主程序员组和主程序员组的沟通路径分别是(28和7)
完全避开或消除风险,或者只享受权益而不承担风险是不可能的。
在信息系统项目中,从宏观上来看,风险分为项目风险、技术风险和商业风险。
**项目风险包括:潜在的预算、进度、个人、资源、用户、需求方面的问题以及它们对项目的影响,会威胁到项目计划。**即可能拖延项目进度、增加项目成本。
**技术风险包括:潜在的设计、实现、接口、测试和维护方面的问题,技术上的不确定性等,威胁到待开发系统的质量和预定的交付时间。**即系统能不能做出来以及做出来质量如何。
商业风险威胁到待开发系统的生存能力。即系统能不能卖出去。
考点16:关键路径法(每年必考)
真题:
关键路径:是项目的最短工期,但却是从开始到结束时间最长的路径。
关键路径就是最长的那个路径。
历时总时长就是关键路径,关键路径就是最长的那一条。
上图最长的就是 a->d->f->j->k 共计 3 + 4 + 3 + 5 + 1 = 16 是最长的,所以答案是 C。
第二题,此时 d-i 为 8,a-c为6,f-h为2,则此时最长的为:a->d->i->k,还是16.
根据上表,可以画出如下图:
所以关键路径(耗时最长)的为:17天,即:A->D->F->G:2+6+6+3 = 17
如果要有活动 c,则 涉及c 的路径(这里只有一个,也就是 A->C->E->G)的总时长不大于17,即:2 + x + 4 + 3 <=17 => 所以 x = 8,x 本来工期为 5,所以浮动时间为 8 - 5 = 3 天。
所以答案分别为:D、D
某项目包括A、B、C、D四道工序,各道工序之间的衔接关系、正常进度下各工序所需的时间和直接费用、赶工进度下所需的时间和直接费用如下表所示。该项目每天需要的间接费用为4.5万元。根据此表,以最低成本完成该项目需要( )天。
A:7 B:9
C:10 D:5
答案:A
解析:
这种类型的题通常要结合图进行分析:
1、绘制正常进度计划网络图如下:
由上图可知,正常进度的关键路径为A-C-D,总工期为3+4+5=12天,总费用为10+15+12+8+12*4.5=99万元
2、全部赶工后的工期:
关键路径是A-C-D,总工期为1+2+2=5天,总费用为18+19+20+14+5*4.5=93.5万元。
因为过度压缩,这个费用可能没有达到理想状态。
要想合理压缩成本,关键是在缩短总工期、减少间接费用的同时不引起直接费用显著增加,因此必须先缩短关键路径上的作业时间,详细操作如下:
3、因为D是关键路径上的活动,而且压缩单位费用最低(2万/天),对D先压缩2天,总工期减为10天。本步骤增加直接费用22=4万元,节省间接费用24.5=9万元,节省费用9-4=5万元。此时总费用为99-5=94万元,关键路径有两条:A-B和A-C-D。如下图。
4、把两条关键路径上的B和D同时压缩1天,总工期减为9天,本步骤增加直接费用2+1=3万元,节省间接费用4.5万元,节省费用4.5-3=1.5万元。此时总费用为94-1.5=92.5万元,关键路径仍为A-B和A-C-D。如下图。
5、最后把两条路径公共的工序A压缩2天,总工期减为7天,本步骤增加直接费用24=8万元,节省间接费用24.5=9万元,节省费用9-8=1万元。此时总费用为92.5-1=91.5万元,关键路径仍为A-B和A-C-D。如下图。
至此,A、B、C、D均已赶工到最大限度,总工期为7天,总费用为91.5万元,为最低成本。
考点17:正规式
考点18:编译、词法、语法、语义分析、后缀式、中间代码、编译
真题1:在以阶段划分的编译过程中,判断程序语句的形式是否正确是属于(语法分析)阶段的工作。
真题2:关于中间代码的叙述正确的是(后缀式和三地址码是常用的中间代码)
真题3:语法分析主要是分析(程序语句的结构是否合法)。
真题4:以编译方式翻译C/C++源程序的过程中,类型检查在(语义分析)阶段处理。
真题5:编译器与解释器是程序语言翻译的两种基本形态,关于编译器工作方式及特点的叙述中正确的是(先翻译后执行,用户程序运行效率高且可移植性差)。
真题6:递归子程序分析属于(自上而下)的分析法。
◆词法分析:是编译过程的第一个阶段。这个阶段的任务从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。(检查 int 这个单词是不是正确的。)
◆语法分析:是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断源程序在结构上是否正确.(检查 int a = 5; 这个句子对不对)
◆语义分析:是编译过程的一个逻辑阶段.语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查,进行类型审查。如类型匹配、除法除数不为0等。又分为静态语义错误(在编译阶段能够查找出来)和动态语义错误(只能在运行时发现)。 (上下文语句的含义对不对,比如不同类型的数据加减等)
◆中间代码和目标代码:中间代码是根据语义分析产生的,需要经过优化链接,最终生成可执行的目标代码。
引入中间代码的目的是进行与机器无关的代码优化处理。常用的中间代码有后缀式(逆波兰式)、三元式(三地址码)、四元式和树等形式。
前缀表达式:+ab
中缀表达式:a+b
后缀表达式:ab+
词法输入的是字符流;语法输入的是记号流;
语法分析阶段主要任务是对各条语句的结构进行合法性分析;若程序中的括号不配对,则会在语法分析阶段检查出错误。
考点19、内聚、耦合
答案为:A、D
真题2:将结构体传递给模块,模块之间的耦合类型为(标记耦合)
真题3:多个功能必须以特定的次序执行,则该模块的内聚类型为(过程)内聚。
真题4:如模块A和模块B通过外部变量来交换输入、输出信息,则这两个模块的耦合类型是(公共)耦合
真题5:模块A通过非正常入口转入模块B内部,则这两个模块之间是(内容)耦合。
真题6:若某模块内所有处理元素都在同一个数据结构上操作,则该模块的内聚类型为(通信)
耦合:模块与模块之间,模块与模块之间的关联程度越低,越好。
内聚:模块内部的功能点要关联程度越紧密越好,因为这些功能点是共同支撑这个模块的。
内聚:偶逻时过通顺功;耦合:无数标控外公内;
内聚分类 | 定义 | 记忆关键字 |
---|---|---|
偶然内聚 | 一个模块内的各处理元素之间没有任何联系 | 无直接关系 |
逻辑内聚 | 模块内执行若干个逻辑上相似的功能,通过参数确定该模型完成哪一个功能 | 逻辑相似、参数决定 |
时间内聚 | 把需要同时执行的动作组合在一起形成的模块 | 同时执行 |
过程内聚 | 一个模块完成多个任务,这些任务必须按指定过程执行 | 指定的过程顺序 |
通信内聚 | 模块内的所有处理元素都在同一个数据结构上操作 | 相同数据结构、相同输入输出 |
顺序内聚 | 密切相关于同一功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入 | 顺序执行、输入为输出 |
功能内聚 | 最强的内聚,模块内所有元素共同作用完成一个功能 | 共同作用,缺一不可 |
耦合分类 | 定义 | 记忆关键字 |
---|---|---|
无直接耦合 | 两个模块没有直接关系 | 无直接关系 |
数据耦合 | 传递的是简单的数据值,值传递 | 传递数据值调用 |
标记耦合 | 传递数据结构 | 传递数据结构 |
控制耦合 | 传递控制变量,根据变量值有选择的执行某一功能 | 控制变量、选择执行某一功能 |
外部耦合 | 通过软件之外的环境联合(如I/O将模块耦合到特定的设备、通信协议) | 软件外部环境 |
公共耦合 | 通过外部的公共数据相互作用 | 公共数据结构 |
内容耦合 | 一个模块使用另一个模块的内部数据或通过非正常入口转入另一模块内部 | 模块内部关联 |
软件设计过程中,可以用耦合和内聚两个定性标准来衡量模块的独立程度。耦合衡量不同模块彼此间互相依赖的紧密程度,应采用以下设计原则(1);内聚衡量一个模块内部各个元素彼此结合的紧密程度,以下属于高内聚的是(2)。
1-A:尽量使用内容耦合、少用控制耦合和特征耦合、限制公共环境耦合的范围、完全不用数据耦合
1-B:尽量使用数据耦合、少用控制耦合和特征耦合、限制公共环境耦合的范围、完全不用内容耦合
1-C:尽量使用控制耦合、少用数据耦合和特征耦合、限制公共环境耦合的范围、完全不用内容耦合
1-D:尽量使用特征耦合、少用数据耦合和控制耦合、限制公共环境耦合的范围、完全不用内容耦合
2-A:偶然内聚
2-B:时间内聚
2-C:功能内聚
2-D:逻辑内聚
答案:B、C
高内聚,低耦合
考点20:软件过程模型:瀑布、螺旋、V模型、原型、增量、喷泉、构件
真题1:以下关于螺旋模型的叙述中,不正确的是:(D)
A、它是风险驱动的,要求开发人员必须具有丰富的风险评估知识和经验
B、它可以降低过多测试互殴测试不足带来的风险
C、它包含维护周期,因此维护和开发之间没有本质区别
D、它不适于大型软件开发
真题2:关于快速原型模型优点的叙述中,不正确的是(B)
A、有助于满足用户的真实需求
B、适用于大型软件系统的开发
C、开发人员快速开发出原型系统,因此可以加速软件开发过程,节约开发成本
D、原型系统已经通过与用户的交互得到验证,因此对应的规格说明文档能正确描述用户需求
真题3:关于增量模型的优点,不正确的是(D)
A、能够在较短时间提交一个可用的产品系统
B、可以尽早让用户熟悉系统
C、优先级高的功能首先交付,这些功能将接受更多的测试
D、系统的设计更加容易
真题4:喷泉模型是一种适合于面向(对象)开发方法的软件过程模型。该过程模型的特点不包括(D)
A、以用户需求为动力 B、支持软件重用 C、具有迭代性 D、开发活动之间存在明显的界限
真题5:关于螺旋模型,下列陈述中不正确的是:D、C
A、将风险分析加入到瀑布模型中
B、将开发过程划分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符
C、适合于大规模、复杂且具有高风险的项目
D、可以快速的提供一个初始版本让用户测试
A、支持用户需求的动态变化
B、要求开发人员具有风险分析能力
C、基于该模型进行软件开发,开发成本低
D、过多的迭代次数可能会增加开发成本,进而延迟提交时间
与瀑布模型相比,( )降低了实现需求变更的成本,更容易得到客户对于已完成开发工作的反馈意见,并且客户可以更早地使用软件并从中获得价值。
A:快速原型模型
B:敏捷开发
C:增量式开发
D:智能模型
答案:C
解析:
增量式开发相比于瀑布模型的一些重要优点:降低了适应用户需求变更的成本。重新分析和修改文档的工作量较之瀑布模型要少很多。在开发过程中更容易得到用户对于已做的开发工作的反馈意见。用户可以评价软件的现实版本,并可以看到已经实现了多少。这比让用户从软件设计文档中判断工程进度要好很多。使更快地交付和部署有用的软件到客户方变成了可能,虽然不是所有的功能都已经包含在内。
相比于瀑布模型,用户可以更早地使用软件并创造商业价值。
1、瀑布模型:适用于 需求要明确
2、V 模型:适用于 重视每个阶段的测试,需求明确、需求变更不频繁
◆V模型从整体上看起来,就是一个V字型的结构,由左右两边组成。左边的下画线分别代表了需求分析、概要设计、详细设计、编码。右边的上画线代表了单元测试、集成测试、系统测试与验收测试。V模型的特点如下:
(1)单元测试的主要目的是针对编码过程中可能存在的各种错误;
(2)集成测试的主要目的是针对详细设计中可能存在的问题,
(3)系统测试主要针对概要设计,检查系统作为一个整体是否有效地得到运行;
(4)验收测试通常由业务专家或者用户进行,以确认产品能真正符合用户业务上的需要。
(5)V模型用于需求明确和需求变更不频繁的情形
需求分析对应验收测试:验需
概要设计对应系统测试:系概
详细设计对应集成测试:集详
编码和实现对应单元测试:单编
3、螺旋模型(增量式开发?):适用于 大型、强调风险,需求不明确,快速原型,不断迭代
◆螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来。在螺旋模型中,软件开发是一系列的增量发布。
◆开发过程具有**周期性重复的螺旋线状。**四个象限分别标志每个周期所划分的四阶段:制订计划、风险分析、实施工程和客户评估。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。
螺旋:有不对的可以返回去修改。
4、原型化(快速原型)模型:适用于需求不明确,不适合大型软件系统
◆原型化模型**第一步就是创建一个快速原型(比如用 PS、PPT、蓝湖、Figma 画一个界面来确认是否满足),**能够满足项目干系人与未来的用户可以与原型进行交互,再通过与相关干系人进行充分的讨论和分析,最终弄清楚当前系统的需求,进行了充分的了解之后,在原型的基础上开发出用户满意的产品。
5、增量模型(增量式开发?):优先核心,分期增量(一期、二期等)
◆增量模型:首先开发核心模块功能,而后与用户确认,之后再开发次核心模块的功能,即每次开发一部分功能,并与用户需求确认,最终完成项目开发,优先级最高的服务最先交付。
◆特点:但由于并不是从系统整体角度规划各个模块,因此不利于模块划分。
难点在于如何将客户需求划分为多个增量。 与原型不同的是增量型的每一次增量版本都可作为独立可操作的作品,而原型的构造一般是为了演示。
6、喷泉模型:面向对象
◆喷泉模型:是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。使开发过程具有迭代性和无间隙性。
7、基于构件的开发模型CBSD:构件复用、快速(比如可拖拽的低代码平台等、可拖拽的图形等)
◆基于构件的开发模型CBSD:利用预先包装的构件来构造应用系统。构件可以
是组织内部开发的构件,也可以是商品化成品软件构件。
特点是增强了复用性,在系统开发过程中,会构建一个构件库,供其他系统复用,因此可以提高可靠性,节省时间和成本。
考点21、敏捷开发:结对编程、自适应、水晶、特征驱动、SCRUM、极限编程
真题1:以下关于极限编程XP中结对编程的叙述中,不正确的是(编码速度更快)。
真题2:极限编程的十二个最佳实践不包括(精心设计)。
十二个包括:计划游戏、小的发布、系统隐喻、简单设计、测试驱动、重构、结对编程、集体所有权、持续集成、每周工作40小时、现场客户和编码标准。
真题3:敏捷开发方法 Scrum 步骤不包括(B)
A、Product Backlog B、 Refactoring C、Sprint Backlog D、Sprint
敏捷方法是以人为本,而非以过程为本;敏捷方法是适应型,而非可预测型;敏捷方法是迭代代增量式的开发过程
1、结对编程
◆结对编程:一个程序员开发,另一个程序在一旁观察审查代码,能够有效的提高代码质量,在开发同时对代码进行初步审查,共同对代码负责。
2、自适应开发:适应性、提供根本基础
◆自适应开发:强调开发方法的适应性(Adaptive)。不像其他方法那样有很多
具体的实践做法,它更侧重为软件的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。
3、水晶方法:不同项目不同策略
◆水晶方法:每一个不同的项目都需要一套不同的策略、约定和方法论。
4、特征驱动开发:模型驱动,中小型软件、需求经常变动
◆特性驱动开发:是一套针对中小型软件开发项目的开发模式。是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、易于被开发团队接受,适用于需求经常变动的项目。
5、SCRUM:迭代增量、30天一次冲刺,小型发布
◆并列争球法SCRUM:是一种迭代的增量化过程,把每段时间(30天)一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治
的小组并行地递增实现产品。
6、极限编程:测试先行,沟通、简明、反馈、勇气
◆极限编程XP:核心是**沟通、简明、反馈和勇气。因为知道计划永远赶不上变
化,XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,**为了将以后出现bug的几率降到最低。
考点22:关系模式、结构化开发方法、数据流图DEF、E-R图
真题1:在采用结构化开发方法进行软件开发时,设计阶段接口设计主要依据需求分析阶段的(数据流图)。接口设计的任务主要是(描述软件与外部环境之间的交互关系,软件内模块之间的调用关系)。
真题2:某医院预约系统的部分需求为:患者可以查看医院发布的专家特长介绍及其就诊时间;系统记录患者信息,患者预约特定时间就诊。用 DFD对其进行功能建模时,患者是 (外部实体);用 ERD 对其进行数据建模时,患者是(实体)。
解析:
数据流图:外部实体、数据流、加工、数据存储
实体联系图:实体、属性、联系
有输入但是没有输出,称之为“黑洞“加工
有输出但没有输入。称之为“奇迹“加工
输入不足以产生输出,我们称之为“灰洞“
真题3:关于管道过滤器体系结构的优点的叙述中,不正确的是(提高性能、适合交互处理应用)
管道过滤器体系结构是一种传统的体系结构风格,该体系结构由一组称为过滤器的构件以及连接构件的管道组成,管道将数据从一个过滤器传送到另一个过滤器。
该风格具有以下优点:
① 软件构件具有良好的隐蔽性和高内聚、低耦合的特点;
②允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成;
③ 支持软件复用;
④系统维护和增强系统性能简单;
⑤ 允许对一些如吞吐量、死锁等属性的分析;
⑥ 支持并行执行。
真题4:(B)不是采用 MVC(模型-视图-控制器)体系结构进行软件系统开发的优点。
A、有利于代码重用 B、提高系统的运行效率 C、提高系统的开发效率 D、提高系统的可维护性
真题5:结构化分析方法中,数据流图中的元素在(数据字典)中进行定义。
3、数据流图平衡原则
父子图的数据流图的平衡:
① 个数一致 : 两层数据流图中的 数据流个数一致 ;
② 方向一致 : 两层数据流图中的 数据流方向一致 ;
子图内平衡 : 对于数据流图的任意一个加工 , 既有输入 , 又有输出 ;
1、系统分析与设计概述
◆系统分析阶段的结果是得到目标系统的逻辑模型。逻辑模型反映了系统的功能和性质,而物理模型反映的是系统的某一种具体实现方案。
逻辑模型就相当于设计图纸;物理模型就相当于售楼处的沙盘;
◆系统设计基本原理:抽象、模块化(划分模块)、信息隐蔽(暴露接口,但隐蔽接口中的具体实现)、模块独立
系统总体结构设计就是系统概要设计。
◆系统总体结构设计是要根据系统分析的要求和组织的实际情况对新系统的总体结构形式和可利用的资源进行大致设计,这是一种宏观、总体上的设计和规划。
扇出:就是调用别人;扇入:就是别人调你;多扇入少扇出。
◆系统模块结构设计
模块是成系统的基本单位,它的特点是可以组合、分解和更换。系统中任何一个处理功能都可以看成是一个模块。
模块结构图主要关心的是模块的外部属性,即上下级模块、同级模块之间的数据传递和调用关系,并不关心模块的内部,即不关系子系统、模块采用何种数据结构和核心算法(即具体实现)。
2、结构化开发方法
◆结构化分析与设计方法是一种面向数据流的传统软件开发方法。结构化方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料。
1)数据流: 在DFD中,数据流的流向必须经过加工。
2)加工:描述了输入数据流到输出数据流之间的变换。
3)数据存储:用来存储数据。
4)外部实体(外部主体):是指存在于软件系统之外的人员或组织。
◆数据字典DD
数据字典为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。
真题1:某零件厂商的信息系统中,一个基本加工根据客户类型、订单金额、客户信用等信息的不同采取不同的行为,此时最宜采用(C)来表述该加工规格。
A、自然语言 B、流程图 C、判定表 D、某程序设计语言
加工逻辑也称为“小说明”。常用的加工逻辑描述方法有结构化语言、判定表、判定树3种。
数据流图:功能建模
数据建模:E-R 图
行为建模:状态转换
3、结构化设计方法
◆结构化设计(Structured Design,SD)方法是一种面向数据流的设计方法,可以与SA 方法衔接。结构化设计方法的基本思想是将系统设计成由相对独立、功能单一的模块组成的结构。
◆结构化设计方法中用结构图(structure chart)来描述软件系统的体系结构,指出一个软件系统由哪些模块组成,以及模块之间的调用关系。模块结构图是结构化设计的工具,由模块、调用、数据、控制和转接五种基本符号组成。
◆结构化设计主要包括:
①体系结构设计:定义软件的主要结构元素及其关系,
②数据设计(依赖E-R图): 基于实体联系图确定软件涉及的文件系统的结构及数据库的表结构。
③接口设计(依赖数据流图):描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口。
④**过程设计: **确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。
**体系结构 就是架构 **
设计阶段接口设计主要依据需求分析阶段的 数据流图。接口设计的主要任务是描述软件与外部环境之间的交互关系,软件内模块之间的调用关系。
信息建模方法是从数据的角度对现实世界建立模型,模型是现实系统的一个抽象,信息建模方法的基本工具是( )。
A:流程图
B:实体联系图
C:数据流图
D:数据字典
答案:B
解析:
业务流程图(TFD)是分析和描述现有系统的传统工具,是业务流程调查结果的图形化表示。
实体联系图(E-R图)它是描述概念世界,建立概念模型的实用工具。
数据流图(DFD)是表达系统内数据的流动并通过数据流描述系统功能的一种方法。
数据字典(DD)是在DFD的基础上,对DFD中出现的所有命名元素都加以定义,使得每个图形元素的名字都有一个确切的解释。
某企业开发信息管理系统平台进行E-R图设计,人力部门定义的是员工实体具有属性:员工号、姓名、性别、出生日期、联系方式和部门,培训部门定义的培训师实体具有属性:培训师号、姓名和职称,其中职称={初级培训师,中级培训师,高级培训师},这种情况属于(1),在合并E-R图时,解决这一冲突的方法是(2)。
1-A:属性冲突
1-B:结构冲突
1-C:命名冲突
1-D:实体冲突
2-A:员工实体和培训师实体均保持不变
2-B:保留员工实体、删除培训师实体
2-C:员工实体中加入职称属性,删除培训师实体
2-D:将培训师实体所有属性并入员工实体,删除培训师实体
答案:1-B、2-C
解析:
员工实体与培训师实体比对后可发现:员工号可等同于培训师号;姓名=姓名;培训师实体中的职称属性是唯一与员工实体不同的。因此可定义为结构类似,即结构冲突。
从上分析可知:可将职称属性并入员工实体,并删除培训师实体。
E-R图之间的冲突主要有三类:
①属性冲突
属性域冲突,即属性值的类型、取值范围或取值集合不同。
例如零件号,有的部门把它定义为整数,有的部门把它定义为字符型。
年龄,某些部门以出生日期形式表示职工的年龄,而另一些部门用整数表示职工的年龄。
属性取值单位冲突。
例如,零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位。
②命名冲突
同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。
异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。
如对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。
命名冲突
可能发生在实体、联系一级上
也可能发生在属性一级上
通过讨论、协商等行政手段加以解决
③结构冲突
同一对象在不同应用中具有不同的抽象。
例如,职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。
解决方法:把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。
同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。
解决方法:使该实体的属性取各子系统的E-R图中属性的并集,再适当调整属性的次序。
实体间的联系在不同的E-R图中为不同的类型。
实体E1与E2在一个E-R图中是多对多联系,在另一个E-R图中是一对多联系
解决方法是根据应用的语义对实体联系的类型进行综合或调整。