软件体系结构——习题

tool:ProcessOn

author:我在吃大西瓜呢

date:2022.5.26


一、简答题、综合分析与设计题

1、业务描述:中国的省级行政区划设置为:23 个省、5 个自治区、4 个直辖市、2 个特别行政区。 请结合此描述设计一个类图来反映中国和省级行政区的关系?(提示:中国是一个不可分裂的国家)。

image.png

2、业务描述:在线售票订位系统中,客户可以建立销售事件、事件确认、执行在线信用卡付费、账户修改管理;系统操作者可以建立在线销售订位事件、查询目前销售订位状况;系统设计维护者可 以建立在线售票订位事件、查询目前销售订位情况、在线系统维护功能、系统环境设置。请根据上 述描述的业务,绘制该描述的业务用例模型。提示:若有参与者泛化现象,必须使用参与者泛化关 ,不能重复罗列用例。

image.png

3、按如下描述绘制出“自治机器人系统”的类图。业务描述:这张图的焦点是聚集在那些让机器人在 路上行走的机制所对应的类上。通过分析,可以发现一个抽象类 Motor 和两个从它派生出的具体类: SteeringMotor 和 MainMotor。抽象类 Motor 有五个方法:move()、stop()、resetCounter()、status()、 distance()。这两个具体类又是另一个类 Driver 的一部分。类 PathAgent 和 Driver 有一个 1 对 1 的关系,类 PathAgent 和 CollisionSensor 有 1 对 n 的关系。

image.png

4、业务描述:“某大学某学院有一到多名教师,任何一个学院都有 1 到多名研究生,每名研究生可以通过教师所带的课程与任课老师进行往来”。请根据该描述利用 UML 设计高校教师个人简介的静 态结构类图,须标注角色名、重数。

image.png

5、业务描述:兰州市是中国甘肃省的一个城市,甘肃省至少有 2600 万以上人口,这些人口分属不 同的城市管辖,每个城市有 5-9 名主管不同业务的市长,每个市民均可以通过市长热线与不同的主 管市长进行联系。请根据该描述利用 UML 设计该描述的静态结构类图,须标注角色名、重数。

image.png

6、根据给出的设计类图,请分别写出类 Master、ClassA 和 Course 的 Java 语言框架代码。

image.png

public class ClassA{
    private int AID;
}

public class Master extends ClassA{
    private int M_No;
    public void Study(){
        //...
    }
    public Course Select(){
        //...
    }
}

public class Course{
    private String No;
}

7、业务描述:某医院由 1 到多个科室组成,每个科室包含 1 到多名医生,每名医生可以救治 0 到多 个患者(属性和操作先不考虑)。请结合上述业务描述画出该业务的业务模型(提示:业务模型包括业务对象模型和业务用例模型)。注意:医院的本质是什么?

(业务用例模型关注业务对外所提供的价值;业务对象模型关注业务内部的实现机制;)

业务对象模型:

image.png

业务用例模型:

image.png

8、请将下图所示的对象模型转换为数据模型。提示:映射规则为:将外键放在关系重数为多的一端。

image.png

主键约束(PK)、外键约束(FK)

image.png

9、下图为参与者与参与者之间泛化关系的误用,请修改正确。

image.png

修改为:

image.png

10、根据此表设计出该软件系统的系统用例图

image.png

image.png

11、请将下图所示的对象模型转换为数据模型。提示:映射规则为:父类子类都映射成表,父类主键作为所有子类的主键。

image.png

image.png

12、网上售书系统的功能描述如下:

  • 顾客可注册个人信息申请个人账号
  • 顾客可浏览书籍信息(包括作者,出版社,目录,摘要,价格,库存情况等),可按作者和书 名分别进行搜索。
  • 顾客可进行管理购物车,如,把书籍加入购物车,也可删除购物车中书籍。购物车物品确认后顾客可提交购物信息,进行在线支付(暂时只提供银行卡支付一种手段),并可在订单物品被发出之前取消或再编辑订单
  • 顾客可查看历史订单
  • 网站设有管理员和工作人员。其中网站管理员负责管理顾客信息,网站的系统维护,以及网站的货品维护。工作人员负责处理顾客订单,并通知发货单位(可能是网站仓库,也可能是其他供应商)发送货物
  • 销售货品都需进行记录,管理员可查询所有订单
  • 顾客可选择打印电子收据

请根据系统功能描述来回答以下问题。

(1)该系统中参与者有哪几个?

(2)根据找出的参与者,画出该系统的系统用例图。

(3)根据功能描述设计该系统的静态结构类图。提示:没有属性描述的可省略属性,所有方法可省略, 但类的关系和重数不能省略。

(1)4个,顾客、工作人员、管理员、供应商

(2)

image.png

(3)

image.png

13、请根据下表所描述的网络购物系统的类间关系,画出能反映下表类间关系的类图。(说明:类的属性和方法可省略,但类间关系和关系重数不可省略)

image.png

image.png

14、一般情况下,每个参与者与用例之间可以定义一个边界类,每个用例可以至少定义一个控制类, 那么,请根据下述的用例模型需要设计几个边界类、几个控制类、几个实体类?并给出设计的边界 类、控制类和实体类的名称和符号。

image.png

2个边界类

image.png

1个控制类

image.png

2个实体类

image.png

15、请根据给出的类图,回答类“ToolBooks”从类“Books”中都继承到了什么内容?

image.png

继承了Name, Price, getname()

16、根据下图所示的用例图中的功能需求,解释这个系统是一个什么系统?对外提供了哪些有价值的服务?若为了确保系统的安全性需要增加一个什么用例?若在浏览商品时必须了解与其他同类商品的性价比,在用例“浏览商品”上需要增加一个什么用例?若购买商品可以选择采用微信支付、支付宝支付、银行转账等任何一种均可,如何对这些支付方式进行设计用例;若此业务中增加一个销售人员,销售人员可以浏览商品,此参与者和所完成的工作在此途中如何反映出来?

image.png

购物系统

提供购买商品与浏览商品的服务

增加用户登录用例

增加商品对比用例

支付方式为基础用例,微信,支付宝,转账等与支付方式为聚合关系

销售人员继承顾客(泛化)

17、在考虑部署环境时,如果需要将某个包的内容部署到多个不同的节点,如何对包进行部署?

对包进行分布式部署

18、根据以下业务的描述,请确定该业务所描述的系统中参与者有哪几个?请对此业务设计用例模型。

(1)潜在会员,会员使用系统的主要功能。

(2)会员货管员经理改变系统的数据。

(3)潜在会员,会员,经理,货管员从系统获得信息。

(4)经理,货管员需要系统的支持以完成日常工作任务。

(5)会员,经理对系统运行产生的结果感兴趣。

(6)系统管理员负责维护、管理并保持系统正常运行。

(7)系统每个月定期的自动向经理提供零件的库存情况。

(8)系统可能与供应商系统交互。

(9)系统每天定期的将购买零件的货款导出到财务系统

参与者有:潜在会员,会员,经理,货管员,系统管理员,供应商系统,财务系统

image.png

19、“网上求职招聘系统”中有一“搜索工作”用例,请根据下述每个参与者处理的业务活动,画出该用例的活动图。活动描述:求职者首先通过输入关键词,然后招聘系统得到获取关键词后,利用关键词搜索工作,并显示所有与关键词匹配的工作后,结束搜索工作。

image.png

20、普通聚集和共享聚集有什么区别?QQ群和微信群应该是哪一种聚集关系?请画出微信群对应的类图表示。

共享聚集(聚合):整体拥有部分。(比如一辆车由轮子、座椅、玻璃等构成,缺一仍能为车子)

普通聚集(组合):部分和整体具有相同的生命周期——整体消失则部分也消失。(比如:人由脑袋、胳膊、腿等构成,缺一不可)

应该是共享聚集

image.png

21、根据下述系统构件与接口的描述,画出该描述的系统构件图。 某销售管理系统由收银机系统、交易处理系统、订单管理系统、财务系统 4 个构件组成,提供了销售信息、财务接口 2 个接口。其中:接口“销售信息”由“交易处理系统”实现、接口“财务接口”由“财务系统”实现。在此系统中构件“订单管理系统”依赖于“收银机系统”和“交易处理系统”构件,构件“收银机系统”依赖于接口“销售信息”,构件“交易处理系统”依赖于接口“财务接口”。

实现关系:接口和构件之间用实线连接表示实现关系

依赖关系:接口和构件之间用虚线箭头表示依赖关系

image.png

22、如图所示为“商品导览系统”构件图,根据图示分别说明图中①有哪些构件?②有哪几种关系? ③接口“结账”和接口“购买商品”分别由哪个构件实现?

image.png

①结账系统、商品资料库、购物车、商品导航系统

②实现关系

③接口“结账”由购物车构件和结账系统构件实现;接口“购买商品”由购物车构件和商品导航系统构件实现。

23、下述类图是一个仓库管理系统的类图的局部,其中:IncomeOrder 是指入库单,OrderItem 是指入库中的每一项,Product 则是产品信息。请指出此模型存在什么设计错误?如何改正?再画出正确的类图。

image.png

IncomeOrderOrderItem之间不该为继承关系,应改为聚合关系

image.png

24、画出自动车锁系统中实现“锁车”用例的顺序图,涉及的对象有车主、车钥匙、汽车。提示:对象请采用匿名对象。

image.png

25、根据下面的陈述画出该业务陈述的设计类类图

(1)学生包括本科生、研究生两类;

(2)0 到多名研究生可以利用业余时间担任 0 到多个助教;

(3)教师包括讲师和教授两类;

(4)一个助教可以为一个讲师或一个教授担任助教,

其中:一个讲师只能有一个助教,一个教授可以有 1 到 5 个助教。

image.png

26、根据下面对象间交互的叙述,绘制一幅关于顾客从自动售货机中购买商品的顺序图:①顾客(User) 先向自动售货机的前端(Front)投币;②售货机的识别器(Recognizer)识别钱币;③售货机前端(Front) 根据识别器(Recognizer)返回的识别结果产生商品列表;④顾客通过前端(Front)选择商品;⑤前端 (Front)向识别器(Recognizer)发出选择商品操作;⑥识别器(Recognizer)通知出货器(Dispenser) 将所选商品进行出货,⑦并反馈给顾客。

请在给定的参与者和匿名对象的基础上补充业务中所有对象,按时间先后顺序的交互操作步骤,并标注操作的消息编号,注意控制焦点也要标出来。

image.png

27、请根据给出的代码框架,画出对应的类图。(本题与37相反,会互相转换即可)

//ClassA
public class ClassA
{
    public ClassB theClassB;
    public ClassA()
    {
        
    }
}

//ClassB
public class ClassB
{
    public ClassB()
    {
        
    }
}

image.png

28、一本书的组成有一个封面、一个目录、一个前言,若干章,每章有若干节,每节有若干段,每段有若干句子,每节有 0 个或多个插图,还有 0 个或多个表格,最后有一个附录。请设计出能够用来表示此业务的语义背景知识的设计类类图。

image.png

29、业务描述:某旅游业务申请系统由“User Interface”、“Tour business processing services”、 “Tour datas”三个包组成,同时该系统的“Tour business processing services”包通过外部子系统“Finance system”提供的“External interfaces”接口进行财务数据的导出。请根据题意设计该系统的软件架构包图。

image.png

30、下图的设计方案是“Square 类直接从 Rectangle 类”进行了继承,违背了面向对象的设计原则,请 利用 LSP(Liskov 替换)原则重新设计使其符合面向对象的设计原则,同时完成对“Parallelogram 类、 Trapezoidal 类”的设计,使设计方案具有“耦合度低、扩展性好、易修改”等特性。(提示:注意使用构 造型<>和“实现”关系画出改进后的类图)。

image.png

31、在客户服务系统中,可将客户业务处理的功能单独的作为一个包,在该包中嵌套两个子包,分别是客户咨询管理,和派工管理。请根据该描述画出该客户服务系统的包图。

image.png

32、根据下面的描述,找出所有的对象(为名词的都是),画出该描述的设计类类图(必须标注类间 关系和重数。属性和方法可以省略)

业务描述:某公司销售多种物品,每个物品包含了 0 到多个物品特征,1 到多个物品对应于 1 个货物类别,0 到多个货物类别对应于 0 到多个类别特征,且每个物品特征属于每个类别特征;物品存放到0到多个仓库中,且每个物品和仓库之间都有库存;客户可以同时下订单,每个订单包含 0 到多 个订单项,且每个订单项对应一个物品。

image.png

33、下图为用传统的结构化软件开发方法设计的数据流图 DFD,因系统升级改造,现需要用面向对象的软件工程方法对其进行软件再工程工作。业务描述:假设一家工厂的采购部每天都需要根据接收事务(零件的出库和入库)情况去更新库存,且每天根据出库的情况将库存值小于库存临界值的零件产生订货信息,并根据订货信息产生订货报表,最后将订货报表提交给采购员(部)去采购。请根据 DFD 图的设计结果,设计出该库存系统的系统用例模型(不是业务用例模型),并设计出能反映该业务的静态结构图(类图)(关系、重数必须标注全面,角色名可省略)。提示:根据业务描述先确定参与者,再确定每个参与者所完成的工作。

image.png

用例模型:

image.png

类图:

image.png

34、请分别解释下列用例图包含的交互过程的设计思想

image.png

(1)双向关联关系,用例可以把内部消息通知给参与者,参与者可以把外部消息变更通知给用例。

(2)单向关联关系,箭头指向被拥有者,参与者可以把外部消息变更通知给用例。

(3)单向关联关系,系统可以把内部消息通知给参与者。

35、下图中用例的扩展关系是错误用法,请你根据实际的网络购物系统给出修改后的用例图。修改完后再在用例图中补充“会员首次登录必须修改密码”、“修改会员资料时如果出错,显示出错信息,若不出错不做任何工作”等系统需求。

image.png

修改后:

image.png

补充后:

image.png

36、下表为“旅游申请系统”中的关键抽象,请根据表中给定的关键抽象,结合其含义,设计并画出类图(不需属性和操作,只设计出类与类间的关系及重数即可)。

image.png

image.png

37、详情请见题27。

38、现有如下图所示的咖啡机的抽象类,请根据给定的抽象类设计一个“MarkⅨ”型号的具体咖啡机的类图。提示:可根据教材中讲解的依赖倒置原则来实现,注意抽象类图中采用的是《Interface》接 口,而不是《Abstract》抽象类。设计结果可直接在下图中添加。

image.png

依赖倒置原则说明这三个都是接口,需要添加三个“MarkIX”型号的具体咖啡机的类图,即添加三个接口的实现类图。

image.png

39、如下图所示为“超市系统”设计的用例图,该系统的参与者有哪几个?用例有哪几个?

image.png

参与者:Bank network,Manager, Clerk

用例:Authorize purchase, Open store, Log onto redister, Sell goods, Restock inventory

40、请根据如下给定的顺序图,将其转换为通信图。

image.png

image.png

41、 下图为“学生、课程、成绩”关联类的设计,因面向对象的编程语言不支持关联类的实现,设计时需要根据业务规则将关联类直接定义为普通的类,从而将一个多对多的关系转变为两个一对多的关系。请画出改进后的类图。

image.png

image.png

42、现有一个用传统的结构化软件开发方法设计的数据流图 DFD,因系统升级改造,现需要用新的面向对象的软件工程方法对其进行软件再工程工作。业务描述:某高校学生在每学年开始时都要采购教材,一般由学校教材科(或保管员)供应(销售)。具有的功能:根据学校的教学计划,向选课的学生及时供应教材;审查学生购书单的有效性,对有效书单发售所需的教材;对属于计划供应但暂时缺货的教材进行缺书登记;根据缺书登记补充采购所缺的教材,通知学生补购;将缺书登记表汇总为待购计划;待购教材到货后,及时通知学生补购。请根据给出的销售业务的 DFD 图,设计出 销售业务的用例模型图。提示:根据业务描述先确定参与者,再确定每个参与者(学生、保管员)所完成的工作。

image.png

image.png

43、根据下述“铁路售票系统”的业务描述,画出该系统的用例模型,注意“包含<>”的利用。

(1)系统管理员负责进行“站点信息维护”、对“车次信息维护”;

(2)普通网民可以完成“网上订票”,订票时必须“填写预定信息”;

(3)售票员“输入订票码”过程中,必须“提取网民的预定信息”。售票员还可以完成“收款”工作和 对网民“开具发票”;

image.png

44、下图为设计好的零售业务中各个对象之间交互的顺序图,请根据此设计结果画出对应的通信图, 用于描述各个对象两两之间的协作关系。请再解释一下,顺序图和通信图中为何采用的对象都是“匿名对象”?

image.png

image.png

45、业务描述:茶叶的种类分为绿茶、黄茶、乌龙茶、红茶、黑茶、白茶等。其中绿茶、红茶和乌 龙茶我们经常见到,绿茶又被称为不发酵茶,干茶和泡出来的茶汤颜色以绿色调为主,比较有名的 品种有西湖龙井、洞庭碧螺春、黄山毛峰等。红茶属于全发酵茶叶,特点是红叶和红汤,性温和, 比较适合日常饮用,能起到减肥、美容、养胃的功效,最著名的有祁门红茶、云南滇红等。乌龙茶 介于绿茶和红茶之间,是半发酵茶类,既具有红茶的醇厚口感,又带有绿茶的清香。 请根据业务描述对该业务进行静态结构(类图)模型的设计,使模型完全涵盖该业务。提示:只需 根据业务描述的内容给出类的属性、操作、类与类之间的关系即可,没有描述的可省略。注意对聚 合、泛化、关联关系的利用,重数可省略。

image.png

46、学术论文主要由学位论文、期刊论文等 2 类组成,其中:学位论文是影响是否能拿到学位的最 关键的论文,主要是本科学位论文(分为论文类、设计类)、硕士学位论文(分为工程硕士、全日制 工程硕士、硕士)、博士学位论文(学术博士、工程博士)。期刊论文分为普刊、核心期刊、英文期 刊,其中国内的核心期刊又分为 7 大类、英文期刊又分为一般刊物、EI 刊物和 SCI 刊物,按中科院 SCI 分区 SCI 刊物又分为 SCI 一区、SCI 二区、SCI 三区、SCI 四区。请根据业务描述对该业务进行 静态结构(类图)模型的设计使模型完全涵盖该业务。提示:只需根据业务描述的内容给出类与类之间的关系、重数即可,属性和操作可省略。

image.png

47、请根据下述学术期刊论文的稿件处理流程,该流程图只反映了论文投稿后的 9 个不同状态的处理顺序,请画出能反映投稿处理流程的状态机图(注:“事件”必须标注全面)。

image.png

状态机图:

image.png

48、下图为某网吧的网络拓扑结构示意图,请设计出该系统的部署图(注意区分处理器节点和设备节点,网吧内部所有硬件设备采用 TCP/IP 通信协议来链接)。

image.png

部署图:

image.png

二、论述题

1、你是如何理解软件开发过程中的“迭代”和“增量”技术的?结合儿时的“滚雪球”游戏来阐述一下“迭代和增量开发”的软件设计思想,并回答一下“迭代和增量开发”技术有何优势?

答:

迭代和增量开发是先构建部分再构建整体,通过多次开发来完善构建,逐步得出一个完善的解决方案,就像滚雪球一样,先捏出一个小的来,再一点一点往大了滚。

优势:当软件规模庞大、或者对软件的需求是模糊的、或会随时间而变化的时候,使用传统方法学开发软件往往会不成功,而且,后期的维护工作量巨大、维护代价也非常高。采用迭代和增量开发技术,简化了软件的开发和维护,提高了软件的可重用性。

2、请参考下图,请阐述对软件开发过程中付出的代价进行分析?其目的是为了什么?

image.png

答:

在软件开发后期引入一个变动比在早期引入相同变动所需付出的代价要高2~3个数量级。维护是极端艰巨复杂的工作,需要花费很大代价。目的是为了尽早发现错误。

3、请阐述“软件文档”在软件开发中的作用,并阐述软件文档主要分为哪两类?

答:

软件是程序、数据及其相关文档的完整集合,缺一不可。文档是与程序开发、维护和使用有关的图文材料,包括可行性研究报告、项目开发计划、软件质量保证计划等。软件文档使无形的脑力脑力劳动显式化,规范不同人员的表达方式,减少不必要的信息沟通,提高交流的效率,减少交接工作及人员变更等带来的不良影响。软件文档分主要为研发规范和项目文档。

4、你是如何理解“编写一段能工作的、灵巧的代码是一回事,而编写一段能支持某个长久业务的代码则完全是另一回事”这句话的?它阐述了一个什么道理?

答:

代码只要能没有错误地运行就算成功,但是编写一段能支持某个长久业务的代码,它是程序、数据及其相关文档的完整集合。其必须要保证其质量,面向用户要有足够的可靠性、易用性,面向开发者及维护者要有足够的灵活性、可重用性、可维护性等。

其阐述了,高质量的设计将是软件系统长期稳定运行的根本保障,是软件系统走向成功的关键所在。软件开发过程中,为了获得高质量软件,必须遵循开发规范,选择采用恰当的设计方法,正确的开发方法、进行项目管理、按时完成各阶段的文档资料。

5、软件重用(复用)的目的是为了什么?

答:

提高分析、设计、开发效率。

6、软件业务分析与设计过程中主要包括认识问题、分析问题和解决问题,请阐述这三个过程分别从什么角度来做工作?侧重点分别是什么?

答:

认识问题是:以用户的身份站在用户的角度认识问题,获取需求采用用例建模技术。由客户提出其可接受的、系统必须满足的条件或具备的能力。

分析问题是:以开发者的身份站在用户的角度分析问题,分析需求采用用例分析技术。为了满足需求模型中所描述的功能,系统内部应该有什么样的业务核心机制,分析目标是开发一系列模型,以描述软件的核心成分,从而满足客户定义的需求:建立分析模型。

解决问题是:以开发者的身份站在开发团队的角度分析问题,解决需求采用面向对象设计。面向对象的设计原则是构造高质量软件的出发点。

7、在交互图中,顺序图与通信图能够分别用来干什么?

答:

顺序图:表示了交互作用中的时间顺序,但没有明确表示对象间的关系。常常用于表示方案。

通信图:表示了对象间的关系,但时间顺序必须从顺序图获得。常常用于过程的详细设计。

8、结构化软件工程中的“软件结构图”与面向对象软件工程中的“用例模型”有什么相同之处?又有什么不相同之处?请解释原因。

答:

相同之处:

①都以图的形式呈现,便于理解。

不同之处:

①软件结构图是为了反映软件系统中组件之间相互关系和约束的体系结构设计图。

②用例模型是系统既定功能及系统环境的模型,它可以作为客户和开发人员之间的契约。

9、 在子系统设计策略中,为什么要遵循面向接口来编程,而不是面向子系统来编程?

答:

接口隔离原则主要指:确定系统的内聚部分——功能相关的、职责相似的,将这些内聚部分打包到一个<<subsystem>>,为该子系统设计接口——对外提供的公共消息接口。

采用大量的接口来解耦子系统与外部的耦合,才可以保证子系统的独立性和可替换性,从而提高系统的稳定性。

10、为什么说用例可以捕获系统的需求?系统总体需求或软件所包含的整体功能需求可以用哪个模型来替换传统的基于功能分解的结构化方法?请画出“ATM 取款机”的用例模型。

答:

用例图中的用例和参与者,表明了哪个参与者参与了哪个用例的执行。用例主要用来捕获系统的高层次用户功能性需求,是外部可见的系统功能。从用户的视角描述了在逻辑上相对完整的一个功能流程,演示了人们如何使用系统。

用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,主要用于需求捕获。能够对系统提供的服务进行描述。

11、为什么要进行软件设计?没有软件设计会对软件系统带来什么结果?

答:

软件设计是将问题或事物分解并模块化使得解决问题变得容易。软件设计是后续开发步骤及软件维护工作的基础。

如果没有设计,只能建立一个不稳定的软件体系结构。应该尽量在软件设计与开发的早期去修改完善发现的错误,否则随着时间的推移,软件也定型了,想要再改错就要付出不可想象的维护代价。

12、如果一个用例非常复杂,如何对该用例进行迭代?

答:

为提高开发效率,要求后一次迭代能够有效复用前面迭代的成果,因此需要制定合理的迭代计划。基本思想是通过早期的迭代明确用户需求,建立并证明系统核心架构,后期迭代以此架构为基础全面展开。早期迭代关注的是用例分级时具有高优先级的用例。根据用例图、用例文档等进行评估评审来确保设计的正确性。

13、任何软件都需要架构,架构可简单也可复杂,请问在软件设计时,为什么需要架构?

答:

因为软件构架设计是降低成本、改进质量、按时按需支付产品的关键因素。架构设计能够满足系统的性能、可维护性等品质;能够使得不同的利益相关人达成一致的目标;能够有效地管理复杂性。

14、在模型驱动架构(MDA)中,系统开发过程就是建模的过程,从需求、分析、设计、实现到测 试,所有阶段的交付物都是模型。请问:RUP 开发过程都建立了哪些模型?并根据建立的第 1 个模 型说明与后续的每个模型的关系(提示:除第 1 个模型外,后续的所有模型都来自于第 1 个模型)。

答:

在RUP 开发过程都建立如下8个模型:

①业务模型:对问题领域中的组织机构及其业务的抽象。

②用例模型:表达系统的功能需求。

③分析模型:描述一个将建造的系统,分析模型是可选项,只对于复杂的系统才需要建立独立的分析模型。

④设计模型:给出系统设计的具体解决方案。该模型除了处理功能需求外,还需要处理非功能性需求以及解决方案中的对象问题。

⑤进程模型:表达系统的并发和同步机制。一般对于多线程的并发系统才建立进程模型。

⑥部署模型:表达系统的硬件拓扑,以及系统软件在硬件上的配署。

⑦组件模型:表达用于组装物理系统的各个软部件。

⑧测试模型:表达验证系统的途径。

15、请根据建筑工业的“模块化、标准化、工厂化、流水组装”来阐述一下你对软件产业的启示(限 200 字以内)

答:

在软件产业,

模块化指按模块划分系统的体系结构,使得各模块间有良好的接口,有助于信息隐蔽和抽象、更好地表示复杂的系统;

标准化指软件开发过程中的统一化,包括文档格式的一致、工作流程的一致等等;

工厂化指软件开发过程中运用更新的技术替代传统的技术;

流水组装指软件开发过程中,每个程序员负责自己各自模块的开发,最后对模块进行组装得到整个系统。

16、请根据下图阐述一下你对软件设计工作的理解。(限 100 字以内)

image.png

答:

在软件工程中最重要的两个点为技术和设计理念。技术是软件工程师需要掌握的技术,如:数据库、数据结构等计算机方面的知识;设计理念是开发软件的目标,如:为什么设计此软件、应解决哪些实际问题等等。有了明确的设计理念才能顺利开展后期的编程开发工作。

17、MDA 的关键之处是模型在软件开发中扮演了非常重要的角色,请问对“模型”进行建模的目的是 为了做什么?(限 100 字以内)

答:

模型是对系统的一种抽象。模型帮助我们按照实际情况对系统进行可视化,可以让我们描述系统的结构和行为,有利于人与人之间的沟通交流。总之,建模的目的是为了更好地理解和管理系统复杂性,支持系统需求、分析、设计、验证和确认等活动。

18、基于组件的开发方法中主要采用了“软构件技术”,请问重用软构件有何种优势?

答:

重用软件构架有助于改善软件质量,大量使用软构件还可以提高软件的灵活性和标准化程度。

19、部署图为什么是系统网络拓扑结构的最终物理描述?

答:

部署图代表对象系统组件的执行体系结构,包括节点或模式以及连接它们的中间件。主要用于帮助安装和部署人员掌握系统的硬件物理拓扑结构,与其他UML图相比,部署图有助于设计组件系统的硬件拓扑,故它是系统物理拓扑结构的最终物理结构描述。

20、课程对软件工程师必须具备的“抽象、分类、分解、复用”4 项技能进行了全面的涵盖和应用,请解释一下你对此是如何理解的?(限 300 字以内)

答:

抽象:指为了某种目的,对一个概念或者一种现象包括的信息进行过滤,移除不相关的概念,得到最终目的相关的信息。简单来说,就是简化事物、抓住事物本质的过程。

分类:对事物进行归纳和演绎。

分解:为了实现项目的目标,把项目要完成的工作,包括管理活动和过程活动,分解成一个个可控的、小的任务。

复用:是将已有的软件成分用于构造新的软件系统,被复用的知识不仅仅是程序,还包括项目计划、可行性报告、需求定义、分析模型等等。这样做是为了缩减软件开发和维护的花费,是提高软件生产力和质量的一种重要技术。

21、下图为用例文档中的事件流描述-用例交互四部曲示意图,请从需求和分析两个阶段根据下图回 答问题:

image.png

(1)需求阶段的用例文档是从用户角度看待用户问题,侧重描述交互的 1(动作)、4(响应)步的事件 流,请解释为什么?

(2)分析阶段和设计阶段则需要从系统角度看待用户问题,重点关注交互的 2(验证)、3(处理)步的 事件流,请解释为什么?

答:

(1)用例的具体细节在主事件流和其他事件流中描述。事件流失从用户角度描述执行用例的具体步骤,关注系统“做什么”而不是“怎么做”。

(2)因为需要分析系统如何响应用户请求,此时可以对需求阶段用例文档中系统的处理流程进一步细化。

posted @ 2022-05-14 11:10  我在吃大西瓜呢  阅读(5621)  评论(1编辑  收藏  举报