第一章
系统分析与设计概述(考选择填空)
-
什么是系统?信息系统一般具有哪些特性?(1.1.1系统的概念及特性)
参考答案:
系统是一组为实现某些结果相互联系、相互作用的部件的集合体。本书我们讨论的系统是指信息管理系统,是一组以收集、处理、存储信息为基础,并以输出完成业务任务所需信息为提交的相互联系、相互作用的部件集合体。信息系统作为一个独立的可实践的应用系统,一般具有可分解性和边界性两个特性。
-
从应用范围来看,信息系统可以分为哪些类型?(1.1.2系统的分类和环境)
参考答案:
从应用范围的角度来看,信息系统分为下列类型:事务处理系统、管理信息系统、智能决策支持系统和办公自动化系统等。
-
什么是系统开发生存周期?在项目启动阶段涉及的主要活动有哪些?
参考答案:
系统开发生存周期指系统开发一般需经历的过程,通常包括系统项目启动、业务需求分析、详细技术设计、系统实现与维护四个过程,分别称作系统开发生存周期的启动阶段、分析阶段、设计阶段、实现与维护阶段。
系统启动阶段的主要任务是确立系统的目标与计划。即确定新系统的作用域并做出项目规划,主要涉及5个活动:定义问题域、制定项目进度表、确认项目可行性、安排项目人员、启动项目。
第二章
系统静态分析建模(重点,会画图知道概念)
-
用例和场景之间是什么关系?
参考答案:
用例是一组用例实例的抽象,用例实例也称场景或脚本。场景或脚本是用户使用系统的一个实际的场面,是指参与者和系统之间的一系列特定的交互活动。场景就是用例的一次完整的、具体的执行过程。
用例与场景的关系就象类与实例的关系,即,用例是场景的抽象,场景是用例的一个实例。
-
什么是构件?构件与普通类有哪些相同点和不同点?UML中的构件有哪几种?
参考答案:
(1)构件是定义了良好接口的物理实现单元,它是系统中可替换的部分,是由类、接口等逻辑元素打包而形成的物理模块。
(2)构件与类的相同点:都有名称;都可以实现一组接口;都可以参与依赖、泛化和关联关系;都可以被嵌套;都可以有实例;都可以参与交互。
(3)构件与类的不同点:
抽象方式不同,即类表示逻辑抽象,不能单独存在于节点上;而构件是存在于计算机中的物理抽象,可以驻留在节点(计算机)上。
抽象的级别不同:构件表示一个物理模块,可以包含多个类,构件依赖它所包含的类。类表示一个逻辑模块,只能从属于某个构件。
访问方式不同:通常,构件的服务只能通过其接口来访问,而类直接拥有自己的操作和属性,可以直接访问其操作。
(4)在UML中,构件按其作用可以分为部署构件、工作产品构件和可执行构件。
-
比较部署图和构件图,说说它们各自的特点。
参考答案:构件图和部署图是用来为面向对象系统的物理实现建模的两种图。构件图描述构件、构件之间的关系,它用来为系统的静态实现视建模。部署图描述了节点和运行在节点上的构件的配置,它用来模拟系统的静态部署视。
-
在部署图中,什么是节点?UML中有几种节点,它们的区别是什么?请举例说明。
参考答案:
(1)节点是系统运行期间的物理单元,它代表计算机资源,例如一台计算机、打印机等硬件设备,系统的构件可以配置在节点上。
(2)UML中有两种类型的节点:处理器和设备。处理器是能够执行软件、具有一定计算能力的硬件。如服务器、工作站等。设备是没有计算能力的硬件,通常情况下是通过其接口为外部提供服务。如打印机、扫描仪、IC读卡器等。
-
简述面向对象分析方法(OOA)的5个基本步骤
参考答案:
- 识别对象,识别对象包括标识潜在的对象和筛选对象两步
- 识别对象的属性
- 识别对象的行为
- 识别对象所属的类
- 定义主题词
-
简述用例模型的组成元素以及建模步骤
参考答案:组成元素有:参与者,用例,通信关联,用例规约
建立用例模型步骤:
-
根据系统边界确定参与者
-
根据每个参与者确定与之相关联的用例
对每个用例写出用例规约文档,调整用例模型(优化参与者与参与者之间的关系,用例与用例之间的关系)
-
-
聚合与组合有何区别?并请举例说明。
参考答案:
聚合与组合都属于关联关系,都表示部分与整体的关系。聚合:“部分”可以独立于“整体”而存在;组合:又被称为强聚合,在组合中,强调部分与整体具有相同的生命周期,“部分”对象完全依赖于“整体”对象。
判断是聚合还是组合关系,开发人员要根据需求分析描述的上下文来确定。例如,电脑是整体类,内存、CPU等相对于电脑是部分类。在固定资产管理系统中,它们是组合关系,而在线DIY系统中,采用聚合更恰当。
第三章
-
动态建模中,描述对象交互行为的建模图形有哪几种图?
参考答案:
动态建模中,描述对象交互行为的建模图形有顺序图和通信图。
-
顺序图和协作图主要差别和各自优缺点
参考答案:
协作图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的关联,还显示出对象之间的消息传递。与顺序图一样,协作图也展示对象之间的交互关系。顺序图强调的是交互的时间顺序,而协作图强调的是交互的语境和参与交互的对象的整体组织。顺序图按照时间顺序布图,而协作图按照空间组织布图。
顺序图可以清晰地表示消息之间的顺序和时间关系,但需要较多的水平方向的空间。
协作图在增加对象时比较容易,而且分支也比较少,但如果消息比较多时难以表示消息之间的顺序。
-
通信图的作用和特点是什么?从动态建模的角度看,顺序图与通信图有什么异同?
参考答案:
通信图是一种强调发送和接收消息的对象及其组织结构的交互图,用以描述对象以及对象之间的交互关系。通讯图与顺序图一样,都是用来展示对象间的链接及组织结构的交互,但两者的侧重点却不同。顺序图着重于描述交互的时间顺序,而通信图则侧重于描述协作对象间的交互和链接。也就是说,通讯图与顺序图分析系统时切入点角度不同,顺序图是按照时间推进来描述,通信图则是从空间布局的角度来分析。
-
GRASP 模式的核心思想是什么?
参考答案:
GRASP 的核心思想是“职责分配”,GRASP 的主要特征是对象职责分配的基本原则,主要应用在分析和建模上。GRASP 没有为编程开发人员提供具体的模板形式的程序代码示例,只是提出将现实世界的业务功能抽象成应用系统的具体软件对象的过程中,应用系统的开发人员应当遵循的一些基本原则。
-
包设计原则有哪几项?与包的内聚性相关的原则是哪些?与包的耦合性相关的原则是哪些?
参考答案:
包的内聚性相关的原则包括发布重用等价原则、全部重用原则和公共闭合原则;包的耦合性相关的原则包括非循环依赖原则、稳定依赖原则和稳定抽象原则。
-
什么是人机界面?
参考答案:
人机界面是人与机器进行交互的操作方式,即用户与机器相互传递信息的媒介,其中包括信息的输入和输出
-
人机界面设计分为哪几类?它们之间有什么关系?
参考答案:
设计界面分为:功能性设计界面、情感性设计界面和环境性设计界面。人机界面设计是以功能性界面为基础,以环境性界面为前提,以情感性界面为重心而构成的,它们之间形成有机和系统的联系。
-
人机交互的特点是什么?
参考答案:
人机交互有两个显著的特点:
(1**)信息反馈**:人能够及时地把信息传递给对象,对象能把信息及时反馈给人,并且人能够根据反馈的信息做出判断。
(2)人的参与性和主动性:人是交互过程中的参与者,具有接受、判断、决策和操作的权利,同时也是主动的,而不是被动地接受信息。
-
系统维护需要什么任务?
参考答案:
系统维护工作包括了 4 项任务,即确认问题、建立程序的评价基准、研究和修复问题、测试程序。
-
所有静态模型和动态模型对应的各自模型的概念和应用。
参考答案:
静态模型:分为对象模型(包、类、对象图)和功能模型(用例图)以及物理模型(构件图、部署图)
动态模型:描述系统怎么做,何时做?有:顺序、通信、状态、活动图
-
网络的普及带给了人们更多的学习途径,随之而来的管理远程网络教学的“远程网络教学系统”诞生了。
“远程网络教学系统”的功能需求如下:
- 学生登录网站后,可以浏览课件、查找课件、下载课件、观看教学视频。
- 教师登录网站后,可以上传课件、上传教学视频、发布教学心得、查看教学心得、修改教学心得。
- 系统管理员负责对网站页面的维护、审核不合法课件和不合法教学信息、批准用户注册。
- 学生需要登录“远程网络教学系统”后才能正常使用该系统的所有功能。如果忘记密码,可与通过“找回密码”功能恢复密码。请画出学生参与者的用例图。
- 教师如果忘记密码,可以通过“找回密码”功能找回密码。请画出教师参与者的用例图。
-
画出学生管理的E-R图。
E-R图中需包含:
- 班级(班级号,班级名,专业,人数)
- 学生(学号,姓名,性别,年龄)
- 课程(课程号,课程名,课时,学分)
- 教师(编号,职称,姓名,年龄,性别)
班级由学生组成,学生对课程进行选课,教师任课课程。
- 图书管理系统功能性需求说明如下:
图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号。图书馆向每一个借阅者发放图书证,其中包含每一个借阅者的编号和个人信息。提供的服务包括:提供查询图书信息、查询个人信息服务和预定图书服务等。
当借阅者需要借阅图书、归还书籍时需要通过图书管理员进行,即借阅者不直接与系统交互,而是通过图书管理员充当借阅者的代理和系统交互。
系统管理员主要负责系统的管理维护工作,包括对图书、数目、借阅者的添加、删除和修改。并且能够查询借阅者、图书和图书管理员的信息。
可以通过图书的名称或图书的ISBN/ISSN号对图书进行查找。
回答下面问题:
-
该系统中有哪些参与者?
-
确定该系统中的类,找出类之间的关系并画出类图
-
画出语境“借阅者预定图书”的时序图
参考答案:
1)该系统中有哪些参与者
-
借阅者
-
图书管理员
-
系统管理员
2)确定该系统中的类,找出类之间的关系并画出类图
- 用户类
- 用户角色类
- 图书类
- 预定类
- 借阅类
- 书目
类图
3)画出语境“借阅者预定图书”的时序图
- 阅读下列说明以及UML类图,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。
[说明]
某客户信息管理系统中保存着两类客户的信息:
(1)个人客户。对于这类客户,系统保存了其客户标识(由系统生成)和基本信息(包括姓名、住宅电话和email)。
(2)集团客户。集团客户可以创建和管理自己的若干名联系人。
对于这类客户,系统除了保存其客户标识(由系统生成)之外,也保存了、其联系人的信息。
联系人的信息包括姓名、住宅电话、email、办公电话以及职位。
该系统除了可以保存客户信息之外,还具有以下功能:
(1)向系统中添加客户(addCustomer);
(2)根据给定的客户标识,在系统中查找该客户(getCustomer);
(3)根据给定的客户标识,从系统中删除该客户(removeCustoner);
(4)创建新的联系人(addContact);
(5)在系统中查找指定的联系人(getContact);
(6)从系统中删除指定的联系人(removeContact)。
复制代码
该系统采用面向对象方法进行开发。在面向对象分析阶段,根据上述描述,得到如表2-1所示的类,
表2-1
类名 | 说明 |
---|---|
CustomerlnformationSystem | 客户信息管理系统 |
IndividualCustomer | 个人客户 |
InstitutionalCustomer | 集团客户 |
Contact | 联系人 |
描述该客户信息管理系统的UML类图如图2-1所示。
图2-1 客户信息管理系统的UML类图
回答下面问题:
-
请使用说明中的术语,给出图2-1中类Customer和类Person的属性。
-
识别关联的多重度是面向对象建模过程中的一个重要步骤。根据说明中给出的描述,完成图中的(1)~(6)。
-
根据说明中的叙述,抽象出如表2-2所示的方法,请指出图2-1中的类CustomerlnformationSystem和 InstitutionalCustomer应分别具有其中的哪些方法。
表2-2
功能描述 | 方法名 |
---|---|
向系统中添加客户 | addCustomer |
根据给定的客户标识,在系统中查找该客户 | getCustomer |
根据给定的客户标识,从系统中删除该客户 | removeCustomer |
创建新的联系人 | addContact |
在系统中查找指定的联系人 | getContact |
从系统中删除指定的联系人 | removeContact |