高级软件工程标准答案.docx
- 文档编号:11127655
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:30
- 大小:207.55KB
高级软件工程标准答案.docx
《高级软件工程标准答案.docx》由会员分享,可在线阅读,更多相关《高级软件工程标准答案.docx(30页珍藏版)》请在冰点文库上搜索。
高级软件工程标准答案
一、解释下列概念
学科:
相对独立的知识体系。
方法:
实现一个目标或做某事的方式、技巧、技术或系统化过程。
方法学:
对某个知识领域探索知识的原则或方法而作的系统分析。
模型:
对现实(事物或实体)的简化(或抽象)表示。
模型是抽象
的产物!
视图:
在SQL中:
和物理表相对应,临时性的虚表。
在MVC软件架构
模式中:
图形界面。
在软件工程中:
指从系统的令人感兴趣的
视点依某种视角,通过压缩细节,只保留必要的元素而形成的
简洁的系统表示模型。
即,视图是模型的某一选定刻面即简洁
表示。
概念模型:
是对真实世界中问题域内的事物的描述,不是对软件设计
的描述。
概念模型=功能模型+结构模型+行为模型。
组件:
系统的一个物理实现块。
框架:
是整个或部分系统的可重用设计,表现为一组抽象构件及构件
实例间交互的方法。
架构:
存储在ActiveDirectory中的对象类别和属性的描述。
对于每
一个对象类别来说,该架构定义了对象类必须具有的属性,它
也可以有附加的属性,并且该对象可以是它的父对象。
信息域:
一系列关联信息的集合而形成的一个领域。
用例:
对一组动作序列的描述,系统执行这些动作将产生对特定的参
与者有价值而且可观察的结果。
实体对象:
具有图形表示的数据库对象。
软件体系结构:
是一组体系结构元素的特定组织形式。
体系结构元素
分为3类:
负责完成数据加工的处理元素;作为被加
工的信息的数据元素;把体系结构的不同部分连接到
一起的连接元素。
ORM:
对象-关系映射,主要实现程序对象到关系数据库数据的映射。
2、简答题
2.1什么是模型?
为什么要建立模型?
建模的原则是什么?
模型:
对现实(事物或实体)的简化(或抽象)表示。
模型是抽象的产物!
为什么建模(软件建模)?
●清楚、准确、可视地说明与定义系统的结构与行为的方法(简化问题复杂度,分析定义);
●作为指导系统构造的基础与模板(设计基础);
●作为涉众(stakeholder利益相关者)交流的工具与成果(交流);
●对分析与决策的结果规范化、文档化(成果)。
建模原则((不同程度、细度、粒度、维度)):
●仅当需要模型时,才够建(按需构建)
●选择要创建什么模型,对如何动手解决问题和如何形成解决方案有着意义深远的影响。
(选择构建)
●可以在不同的精度级别上表示每一种模型。
(分层构件)
●最好的模型是与现实相联系的(一致构建)
●单个模型或视图是不充分的。
对每个重要的系统最好用一组几乎独立的模型从多个视角去处理。
这些视图一起从整体上描绘了软件蓝图(组合构建。
功能、结构、行为模型)
●尽可能使用草图讨论,重要程度不足的草图模型直接入文档,重要性高的图使用CASE工具绘制成蓝图入文档。
●每个模型应配有必要的文字说明(数据字典)。
2.2什么是问题域和系统责任?
举例说明其区别与联系?
问题域(问题空间):
待开发系统的应用领域,即在客观世界中由该系统处理的业务范围。
如要为银行开发一个业务处理系统,银行就是这个系统的问题域。
银行的日常业务(如金融业务、个人储蓄、国债发行、投资管理等)、行政管理及与此有关的人和物都属于问题域。
系统责任:
被开发系统应具有的职能。
1.(数据/属性属于系统责任范畴-存储/记录功能)
2.系统责任和问题域语义上有很大部分是重叠的,但有区别。
如前述银行业务处理系统,银行就是这个系统的问题域,银行的日常业务(如金融业务、个人储蓄、国债发行和投资管理等)、行政管理及与此有关的人和物都属于问题域。
尽管银行内部的行政管理属于问题域,但是在当前的这个业务处理系统中并不属于系统责任。
另一方面,像对计算机信
息的定期备份这样的功能属于系统责任,但不属于问题域。
识别对象的系统责任需要合理的抽象:
例如,开发图书馆管理系统和开发书店图书销售管理系统均涉及书籍对象。
但抽象却不同:
前者要设计一个BOOK类,且每本书均为该类的一个对象,因为系统要记录每本书借给哪个读者;后者中,只需把同一版本的一种书看成一个对象类,并记录其书名、数量、单价等信息即可。
2.4什么是方法?
它有哪些构成要素?
方法:
实现一个目标或做某事的方式、技巧、技术或系统化过程。
方法构成:
基本概念+原理+运用过程+检验/评价标准+实例。
2.5什么是软件模型视图?
建模时创建哪些视图?
(多视角建模)
软件工程中:
指从系统的令人感兴趣的视点依某种视角,通过压缩细节,只保留必要的元素而形成的简洁的系统表示模型。
即,视图是模型的某一选定刻面即简洁表示。
表2-1模型视图
视图名称
视图内容
图形元素
观察角度
用户模型视图
(用例视图)
系统的功能
和行为能力建模
用例图
用户、分析师、
架构师,面向功能的划分
结构模型视图
(设计视图)
指领域问题的静态
结构(类、对象和关系)建模
类图、
对象图
设计师,
面向结构的划分,
类和接口,及其关系
行为模型视图
(进程视图)
系统的动态
或行为建模
活动图、
状态图、
交互图
设计师,
面向线程、进程
实现模型视图
(实现视图)
组件模型,
系统的结构建模
组件图
设计师、架构师进行
组件配置、发布的设计
环境模型视图
(实施视图)
系统物理结构,组件与
物理节点的配置、发布、交付、安装模型
部署图
(实施图)
软件运行环境、系统的
拓扑结构、实施方案设计
2.6举例说明系统、模型与视图三者的关系?
系统、模型与视图关系:
模型是系统的抽象表示、视图刻画模型的某个刻面,一个模型往往由其多个视图表示,一个系统的模型和其视图往往有重叠。
例如:
System:
航空器
Models:
航空器仿真器(模型1),比例模型(模型2)
Views(模型1):
设计蓝图,电子线路视图,燃料系统视图(蓝图视图含有其他两子系统标识成分)
2.7面向对象的三大机制是什么?
解释他们的主要作用
面向对象的三大机制是封装、继承和多态.
封装提供了一个有效的途径来保护数据不被意外的破坏。
继承主要实现重用代码,节省开发时间。
编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。
2.8简单阐述KarlE.Wiegers关于软件需求的描述。
2.9举例说明软件需求三个层次之间的关系。
三种需求关系示例一:
业务需求可能是:
“用户能有效地纠正文档中的拼写错误”,该产品的包装盒封面上可能会标明这是个满足业务需求的拼写检查器。
对应的用户需求可能是:
找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词。
对应的软件(功能)需求可能是:
●找到并高亮度提示错词;
●显示提供替换词的对话框以及实现整个文档范围的替换。
三种需求关系例证二:
业务需求可能是:
公司内部,所有部门数据实现共享
用户需求:
●能通过方便的操作方式将当部门数据汇总到总公司的中心数据库中。
或:
●分布存储,但用户能访问自由访问其它部门的数据
红色为准确找到的,绿色为老师附带给的答案,(只有2.13的第一问是在网上找的)
2.10需求分析面临的主要挑战是什么?
●问题域和系统责任的复杂性(隔行如隔山。
未知领域出现。
更清晰的理解、更高明的见解!
故需简单直观高效的方法)
●交流问题(共同语言)
●需求的不断变化(问题域本身、客户主观因素、市场竞争、经费与技术因素等赌友影响。
故需要冻结相对稳定的需求)
●软件复用的要求(软件复用是提高软件开发效率,改善软件质量的重要技术。
故需复用机制)
2.11简述软件需求分析的主要步骤与过程。
●问题(需求)获取(elicitation)(进一步分为访谈调研、诱导澄清子过程)
●分析
●编写规格说明(specification)
●验证(verification)
2.12简述软件需求建模的主要方法及其特点。
(信息、功能分解、结构和OO)
方法:
功能分解+结构化(面向数据流的DFD)+信息建模(面向信息结构的Jackson,ERD)+OO
–功能分解(优点:
易理解、抽象原则、模块化;缺点:
易变不稳、接口非问题域事物、不全面)
–结构化(优点:
较全面、逐步求精的难度分解原则、分析到设计的指导性原则;缺点:
侧重功能、概念体系非问题域、转化不严格、概念各不同)
–信息建模(优点:
:
实体抽象、静态结构描述、转化严格、理论体系完整;不足:
侧重数据)
–面向对象(特点:
问题域的事物,概念一致、抽象、分类、封装、信息隐蔽、消息通讯、多态;优点:
概念一致、思维一致、模型稳定、可维护性高、模型可复用性强、有助于提高开发效率与质量)
2.13简述统一建模语言(UML)的主要作用及其和OO方法之间的关系。
作用:
uml在面向对象分析和设计中具有重大的作用。
从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。
关系:
建模使用OO方法时,才用UML-建模语言;
UML是OMG推荐的统一、标准化、广泛使用的OO建模语言。
2.14UML由哪些部分组成?
简述他们的作用?
UML概念模型
UML构造块((vocabulary/syntax))
规则(semantics)
公共机制(如扩展机制)
构造块:
UML的模型元素,是模型的主体。
规则:
支配基本构造块如何放在一起。
不能简单地把UML的构造块按随机的方式堆放在一起。
像任何语言一样,UML有一套规则。
公共机制:
运用于整个UML的公共机制、扩展机制。
2.15简述用例建模步骤的过程?
(识别角色、识别场景、辨识用例、细化用例、识别角色和用例的关系、必要时,使用包简化用例图)
–识别角色
–识别场景
–辨识用例
–细化用例
–识别角色、用例中的关系
–必要时,使用包简化用例图
2.16简述用例建模的主要技术。
(用户目标技术、CRUD、事件分析、短语动词识别)
一:
用户目标技术-与用户交谈,讨论他们为新系统设定的目标。
二:
CRUD(Create,ReadorReport,UpdateandDelete)技术-分析师标识由系统处理所有的数据元素,并建立创建,报告,更新和删除数据项的用例。
三:
事件分解技术-此技术侧重于辨识要求系统作出响应的事件以及确定系统必须如何作出响应。
四:
动词短语识别技术,从问题域中搜寻系统使用的动词短语,作为候选用例,然后抽象、排除不合理用例。
2.17简述对象模型的目标及过程。
(识辨对象与类、准备数据字典、识辨关联与聚集、识辨对象与链的属性、使用继承组织和简化类、复审并精化模型、分组类成为模块)
–识辨对象与类(Identifyobjectsandclasses)
–准备数据字典(Preparedatadictionary)
–识辨关联与聚集(Identifyassociationsandaggregations)
–识辨对象与链的属性(Identifyattributesofobjectsandlinks)
–使用继承组织和简化(对象与类Organizeandsimplifyusinginheritance
–复审并精化模型(Iterateandrefinethemodel)
–分组类成为模块(主题Groupclassesintomodules)
2.18简述系统设计的主要任务。
(设计目标、系统分解、目标实现与优化)
–识别设计目标(主要和优先满足的系统质量需求)
–设计初始系统分解-使用标准架构风格为起点
–细化分解模型,实现设计目标。
2.19系统设计的主要产品有哪些?
–设计目标(总则、决策)
–软件体系结构
⏹问题分解和求解方案构建的高层策略的选择
⏹子系统职责、相互依赖关系
⏹映射子系统到硬件和软件组件
⏹全局数据流、存取控制和数据存储的设计决策
–边界用例:
描述系统配置、起、停和出错处理
三、选择填空(25分)
1.下列关于用例特征的描述错误的是(D)
A.为角色提供某种可度量价值的一系列活动的抽象描述
B.一个用例实现用户的一个具体目标
C.一个用例是用户的一个可见功能
D.一个用例是场景的实例
2.CMM能力成熟度模型定义了一个阶梯式演进框架,分为五个等级,按从低到高次序是(初始、重复、定义、管理、优化)
A.初始级、已管理级、已定义级、可重复级、优化级
B.初始级、已定义级、已管理级、可重复级、优化级
C.初始级、已管理级、已定义级、可重复级、优化级
D.初始级、已定义级、可重复级、已管理级、优化级
3.使用Abbott自然语言识别法分析建模时,常常将(B)
A.普通名词映射为实例,专有名词映射为类
B.普通名词映射为类,专有名词映射为实例
C.普通名词映射为类,专有名词和形容词映射为类的属性
D.专有名词映射为类,Doing型动词映射为类的操作
4.Jacobson,1999认为分析对象模型由三类对象构成,它们是(C)
A.分析对象、设计对象和实现对象
B.类、类间关系与约束
C.实体对象、边界对象和控制对象
D.数据对象、结构对象和行为对象
5.面向对象分析与设计的起点是(C)
A.企业需求描述
B.功能需求描述
C.用例需求描述
D.静态结构需求描述
6.根据KarlE.Wiegers的描述,软件需求分为(J)和非功能性需求两个部分。
其中,(J)性需求又进一步分为(C)、(D)和(J)三个层次。
(C)需求从总体上描述了为什么要开发系统,组织希望达到什么目标。
一般使用远景与范围文档来记录该需求。
(D)反映用户对所要开发的系统提出的各种要求和期望,其中包括系统的功能、性能、保密和交互方式等(A)性要求,以及成本、交付时间和资源使用限制等非技术性要求。
选项:
A.技术B.非技术C.业务需求D.用户需求E.性能需求F.效能需求G.功能性H.系统需求I.非功能性J.功能需求
7.根据KarlE.Wiegers,软件的功能需求主要来源于(B)、(C)、(D)(F)和(G)。
选项:
A.技术需求B.用户需求C.质量属性D.系统需求E.非技术性需求F.业务规则G.约束
8.UML概念模型的构成元素分类包括(B)
A.结构事物、行为事物、分组事物和注释事物
B.构造块、规则和公共机制
C.事物、关系和图
D.说明机制、公共划分、修饰和扩展机制
9.UML构造块包括(B)
A.构造块、规则和公共机制
B.事物、关系和图
C.结构事物、行为事物、分组事物和注释事物
D.详述、修饰、通用划分和扩展机制
10.UML事物构造块包括(C)
A.构造块、规则和公共机制
B.事物、关系和图
C.结构事物、行为事物、分组事物和注释事物
D.详述、修饰、通用划分和扩展机制
11对一类的意义进行描述的正确方式是采用(C)
A.标记值B.规格描述C.注释D.构造型
12将下述UML工具模型依据其建模作用,填入随后的软件架构4+1视图模型中的对应模型标识位置中(见用例图、对象图示例)。
这些UML工具是:
类图、组件图、顺序图、协作图、状态图、部署图。
图1.软件架构4+1视图模型
21阅读下面的类图,下述说法不正确的是(B)
A.一个航标监控器可以监控一个浮标的多个雷达感应器
B.一个航标监控器可以监控一个立标和一个浮标
C.一个航标监控器可以监控一个立标的多个航标指示灯
D.一个航标监控器可以监控一个立标或一个浮标
22下图是订单管理系统中计算订单价格的顺序图,根据该图可知订单类具有(A)组服务
A.getProduct(),getPriceDetails(),getQuantity(),getBasePrice(),calculateDiscounts(),getdiscountInfo()
B.calculatePrice(),getBasePrice(),calculateDiscounts()
C.getProduct(),getPriceDetails(),getQuantity()
D.calculatePrice()
23当想要澄清和探索涉及多个对象的单个用例的情况时候,适于用
A.交互图B.状态转换图C.活动图D.类图
24当想要澄清和探索一个对象在多个用例中的作用的时候,适于用
A.交互图B.状态转换图C.活动图D.类图
25当想要澄清和探索多个对象在多个用例中的作用的时候,适于用
A.交互图B.状态转换图C.活动图D.类图
26根据下述Java源代码绘制顺序图
publicclassSale{
privateList
publicMoneygetTotal(){
Moneytotal=newMoney();
Moneysubtotal=null;
For(SaleLineItemlineItem:
items){
Subtotal=lineItem.getSubtotal();
Total.add(subtotal);
}
returntotal;
}
}
27持久化对象的主要的候选对象是()
A.边界对象以及多对多关联类
B.问题域实体对象以及多对多关联类
C.控制对象和实体对象
D.控制对象以及多对多关联类
四、关系辨识(25分)。
1给出下面陈述的UML类图描述。
一个公司包含若干个部门,每个部门有若干名职员,有些职员是经理,每个部门有一名经理负责管理该部门的下属职员。
2.给出下面陈述的UML类图描述。
UML概念模型包括三类元素:
构造块、规则和公共机制。
其中,构造块又分为事物、关系和图,而图分为行为图和结构图。
3.辨识下述用例之间的关系(includes或extends),并标于图中。
<
<
4.分析下面的类图,绘制新的类图将下述多对多关系转换成一对多关系。
(5分)
5.下面是关于领域对象Employee和Work及其测试类EmployeeWork的Java描述,用UML类图描述上述三类及其关系
import;
publicclassEmployeeWork{
publicstaticvoidmain(String[]args){
Employee[]em=newEmployee[2];
Work[]wk=newWork[3];
em[0]=newEmployee(11);
em[1]=newEmployee(12);
wk[0]=newWork(21);
wk[1]=newWork(22);
wk[2]=newWork(23);
em[0].addWork(wk[0]);
em[0].addWork(wk[2]);
em[1].addWork(wk[0]);
wk[0].addEmployee(em[0]);
wk[0].addEmployee(em[1]);
wk[2].addEmployee(em[0]);
;
;
}
}
classEmployee{
privateintemployeeNo;
privateArrayList
publicEmployee(intemployeeNo){
this.employeeNo=employeeNo;
}
publicvoidaddWork(Workwork){
works.add(work);
}
publicArrayList
returnworks;
}
}
classWork{
privateintwNo;
privateArrayList
publicWork(intwNo){
this.wNo=wNo;
}
publicvoidaddEmployee(Employeeemployee){
employees.add(employee);
}
publicArrayList
returnemployees;
}
}
Employee和Work类的关系不确定所以没画。
6常见的UML事物间的关系包括关联、聚合、组合、泛化、依赖和实现,下列符号是他们的UML图形表示,请将它们代表的关系的名称填入相应的图符后面的括号中(如:
关联所示)。
7判断下列类之间的关系,并用连线和右面的关系类别关联。
文件–文件内容
文件–文件编辑器
文件–Word文件
编辑器–文本编辑器
文件–文件格式
文件格式--文件阅读器
Web页面–超连接文件
聚合
组合
继承
关联
8给出下列UML事物之间的关系
<
<
<
<
<
9给出下列UML事物之间的关系
Window类实现接口AbstractWindow,ConsoleWindow和DialogBox是它的子类,一个窗口可以包含0或多个Component,如Label和Combox等。
0..*
1
10下面关于用例描述错误的是(b)
A.用例是涉众交流的手段之一
B.用例是人机交互设计的基础
C.用例是黑盒测试用例设计的基础。
D.用例描述的是用户交互
11以下是有关格式化文档处理发生的事件,最适合作为用户用例的是()
A.定义一个风格
B.使用一个风格格式化一个文档
C.改变一个风格
D.拷贝一个文档的风格到另一文档
12使用连线将下面左右两列有对应关系的概念关联
用户模型视图对象图
结构模型视图用例图
类图
行为模型视图组件图
活动图
实现模型视图部署图
状态图
环境模型视图交互图
13.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 软件工程 标准答案