大三下 |【软件体系结构】期末复习要点

软件体系结构

一、单选题  (2pts / 20)

  1. [A卷] MVC框架中,模型层用于( B )
    A. 处理逻辑相关   B. 处理数据相关
    C. 处理界面相关   D. 监听消息
    [B卷] MVC框架中,控制器层层用于( A )
    A. 处理逻辑相关   B. 处理数据相关
    C. 处理界面相关   D. 监听消息

  2. MVC框架中,关于视图层描述正确的是( B )
    A. 视图层可以发送消息给模型层
    B. 视图层可以监听模型层的消息
    C. 控制器层无法直接引用视图层的界面元素
    D. 视图层的数据来源于控制器层

  3. 三层架构分为哪三层( A )
    A. 表示层-业务逻辑层-数据访问层   B. 模型层-业务逻辑层-数据访问层
    C. 表示层-业务逻辑层-控制器层    D. 控制器层-业务逻辑层-模型层

  4. 三层架构的业务逻辑层作用不包含( D )
    A. 逻辑判断与执行操作        B. 接收表示层的用户指令后
    C. 实现三层之间的数据连接和指令传达 D. 访问数据库

  5. [A卷] PureMVC框架中,与模型相关联的设计模式是( B )
    A. 中介者模式
    B. 代理模式
    C. 单例模式
    D. 外观模式
    [B卷] PureMVC框架中,与视图相关联的设计模式是( A )
    A. 中介者模式
    B. 代理模式
    C. 单例模式
    D. 外观模式

  6. 以下哪一项是属于PureMVC框架的缺点( D )
    A. 充分利用消息机制来解耦
    B. View界面可以实现重用
    C. Model数据可以实现重用
    D. 对于简单的功能都得创建对应的一系列脚本

  7. [A卷] 对于观察者模式描述正确的是( B )
    A. 无法用于解耦     B. 适用于一对多的关系
    C. 只需订阅,无需发布  D. 观察者是唯一核心
    [B卷] 对于单例模式描述正确的是( D )
    A、无法用于解耦   B、适用于一对多的关系
    C、需要订阅与发布  D、保证内存中只有唯一实例

  8. 用面向对象的编程语言开发软件,其中开放封闭原则体现在( D )
    A. 对封闭的模块进行开放
    B. 扩展与修改都是开放的
    C. 扩展是封闭的,而对修改是开放的
    D. 扩展是开放的,修改是封闭的

  9. 软件项目中的界面管理类,一般采用什么设计模式( A )
    A. 单例模式   B. 命令模式
    C. 代理模式   D. 策略模式

  10. 模块化开发的核心是( A )
    A. 封装模块与管理模块   B. 组合模块与模块通信
    C. 模块之间的重用     D. 模块的分解

二、填空题  (2pts / 20)

  1. [A卷] 观察者模式中,解决了一个对象状态改变给其他对象通知的问题,而且还考虑到易用和低耦合,保证高度的协作。
    [B卷] 中介者模式是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。

  2. 外观模式隐藏系统的复杂性,并向 客户端 提供了一个客户端可以访问系统的接口

  3. Pure MVC是在基于模型、视图和控制器模式建立的一个轻量级的应用框架

  4. MVC框架中控制器接受用户的输入并调用模型和视图去完成用户的需求。

  5. [A卷] 三层架构的优点是高内聚与低耦合,可以降低层与层之间的依赖
    [B卷] 设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案

三、判断题  (1pts / 10)

  1. (  ) 对于IT项目采用哪种架构来开发,采用哪种设计模式来实现,要根据项目的实际需求来确定。

  2. ( × ) [A卷] MVC框架中视图层可以发送给模型层消息。
    ( × ) [B卷] MVC框架中控制器层可以发送给模型层命令。

  3. ( × ) [A卷] 三层架构的数据访问层一定是来源于本地数据库。
    (  ) [B卷] 三层架构的数据访问层不一定是来源于本地数据库。

  4. ( × ) 对于有服务器的联网项目,在设计数据通信模块需要考虑传输数据的加密,但不需要考虑数据的压缩。

  5. (  ) 软件架构中的管理类一般都需要提供对外接口。

  6. (  ) 外观模式实现了子系统与客户端之间的松耦合关系。

  7. (  ) 在PureMVC框架中利用中介者模式有效的隔离了View层与Controller和Model层的耦合。

  8. ( × ) [A卷] 软件架构中,配置表的实现也是重要的模块之一,配置表可以取代数据库。
    (  ) [B卷] 软件架构中,配置表的实现也是重要的模块之一,配置表不可以取代数据库。

  9. (  ) 架构软件的时候,还需要考虑项目是否需要加入热更新,热更新功能是为了方便在不卸载的情况下,更新项目模块与增加新功能。

  10. ( × ) MVC框架是不能根据项目来修改的,是固定的开发模式。

四、名词解释 (4pts / 12)

  1. 软件项目框架
    答:软件项目框架是为了实现某个业界标准完成特定基本任务的软件组件的规则和规范;某些情况下,也指为了实现某个软件组件规范时,提供规范所要求的基础功能软件产品。(回答要点: 框架是规则, 规范)
     
  2. [A卷] 高内聚低耦合
    答: 高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要看内聚性是否耦合度是否。目的是使得模块的可重用性移植性大大增强。通常程序结构中各模块的内聚程度越高, 模块间的耦合程度越低。
    内聚描述的是模块内的功能联系;耦合描述的是模块之间的相互连接。
     
    [B卷] 热更新
    答:热更新是一种软件开发者常用的更新方式。开发者通过动态下发代码,用户打开软件后即时更新。热更新可以在开发者不发布新版本的情况下,修复bug和发布功能,避免长时间审核等待以及多次被拒造成的成本
     
  3. 序列化和反序列化
    答:序列化是将对象的状态信息转换为可以存储传输的形式(如字节序列)的过程。
    反序列化是将字节序列恢复为原先的对象的过程。
     

五、简答题  (5pts / 15)

  1. 请简述观察者模式的应用
    答:观察者模式,也称为发布订阅模式,是一种行为型的设计模式。当对象存在一对多的关系时,就可以使用观察者模式来定义对象的一对多的依赖关系;当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新
    例子:用户界面可以作为一个观察者,业务数据就是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在页面上。
     
  2. [A卷] 请简述三层架构中业务逻辑层的作用
    答:业务逻辑层(Business Logic Layer, BLL) 负责业务规则制定、业务流程实现等与业务需求有关的系统设计;同时业务逻辑层处于数据访问层与表示层中间,接收来自表示层的数据请求,逻辑判断后,向数据访问层提交请求,并传递数据访问结果,起到了数据交换中承上启下的作用。
    [B卷] 请简述三层架构中业务数据访问层的作用
    答:数据访问层(Data Access Layer, DAL) 负责与数据库的交互,包括对数据库的查询插入删除更新等操作。如果要加入ORM的元素,那么就会包括对象数据表之间的映射,以及对象实体的持久化
     
  3. 开发一款游戏软件,优先选择三层架构还是MVC架构?
    答:优先使用 MVC
    1. 两者的适用领域不一样,三层架构可归于部署模式,而MVC模式可归于表示模式
    2. MVC模式基于页面,将页面代码划分为视图控制器模型,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
    3. 三层架构按层划分,将整个业务应用划分为:界面层业务逻辑层数据访问层降低了系统的性能,在需求更改的情况下容易导致自上而下级联修改
    4. 游戏软件常常有高响应界面交互变更需求,选择MVC更加利于项目研发进度推进
       

六、综合题  (15pts 8pts / 23)

  1. 请画出MVC完整架构图并详细分析 (15pts)

    答: MVC(Model-View-Controller) 是软件工程中的一种软件架构模型, 分成三个基本部分:

    1. 模型(Model):负责数据的管理请求更新
    2. 视图(View):负责向用户展示模型数据
    3. 控制器(Controller):负责Model和View之间的交互。负责为View提供正确的数据,向Model申请来自View的操作请求

    MVC模式的目的是实现一种动态的程序设计,简化后续对程序的修改扩展,并使程序某一部分的重复利用成为可能。MVC通过简化复杂度,使程序的结构更加直观
     

  2. 用单例模式设计设计用户数据类,用户数据类需要有金币信息与相关的对外接口 (8pts)

    public class CoinManager {
        private static CoinManager instance;
        
        public CoinManager GetInstance() {
            if (instance == null) {
                instance = new CoinManager();
            }
            return instance;
        }
        
        public int CoinCount { get; private set; }
        
        public void AddCoin(int count) {
            CoinCount += count;
        }
        
        public bool SubCoin(int count) {
            if ((CoinCount - Count) < 0)
                return false;
            CoinCount -= count;
            return true;
        }
    }
    
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 北邮大三下Linux期末考试是一门对学生的Linux系统操作能力和运维技能进行考核的课程。该考试主要围绕Linux系统的安装、配置、管理和维护等方面展开。下面我将从考试形式、内容和学生准备等方面展开回答。 首先,北邮大三下Linux期末考试的形式通常为闭卷考试,采用笔试形式进行。学生需要回答一些与Linux系统相关的理论知识和实际应用操作题目,以展示他们的理论基础和实践能力。 其次,考试内容主要包括Linux系统安装与配置、用户和组管理、文件系统管理、网络设置和服务配置、系统监控和故障处理等方面。学生需要熟悉Linux操作系统的基本命令和常用工具,了解常见的系统配置文件和目录结构,掌握Linux系统的常见任务和操作步骤。 对于考生来说,为了更好地应对考试,他们应提前准备。首先,需要系统学习Linux操作系统的相关知识,包括命令行操作、文件管理、网络配置等。可以通过阅读教材、参加课堂讲解和实验、利用网络资源等途径进行学习。同时,多进行实践练习,通过自己动手操作来加深理解和掌握。 此外,还可以参加相关的考前辅导班或小组讨论,与同学们共同学习和交流经验。可以通过解决一些实际问题和案例,提高对Linux系统的理解和应用能力。还可以利用模拟考试等方式进行自测,提前熟悉考试形式和内容,提高应试能力。 综上所述,北邮大三下Linux期末考试是对学生Linux系统操作能力和运维技能的考核,内容涵盖安装配置、管理和维护等方面。学生需要通过系统学习、实践练习和学习小组的方式备考。通过这些准备措施,学生可以更好地应对考试,取得满意的成绩。 ### 回答2: 北邮大三下的Linux期末考试是一门重要的课程,旨在检验学生对Linux操作系统和相关知识的掌握程度。这门考试涵盖了课程内容的各个方面,包括Linux的基本操作、文件系统管理、用户权限管理、网络配置、系统维护等。 考试形式一般为闭卷考试,学生需要在规定的时间内回答一系列选择题、填空题和简答题。选择题主要考察对Linux命令的理解和运用能力,学生需要根据给定的情景选择正确的操作命令。填空题则要求学生根据题目提示,填写相应的命令或参数。简答题较为开放,学生需要对Linux操作系统的基本原理、特点以及相关应用进行简要的描述。 为了应对这门考试,学生需要提前准备和复习。首先,要熟悉Linux的基本命令和常用操作。可以通过阅读教材、参考资料和在线资源来学习和练习。其次,要熟悉Linux的文件系统结构和权限管理,了解不同用户和用户组的权限设置以及目录的层级关系。此外,还要熟悉网络配置和系统维护相关的知识,包括网络设备的配置、服务的启动和停止、系统日志的查看和管理等。 在考试中,要认真阅读题目,理解题目要求,并注意答题时间。对于选择题,要仔细审题,选择最合适的答案。在填空题中,要注意命令的正确书写和参数的使用。对于简答题,要简洁明了地回答问题,突出重点。 总之,北邮大三下的Linux期末考试对学生的Linux操作系统知识的掌握能力进行了全面的考察。只有通过充分的复习和准备,才能在考试中取得良好的成绩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值