《软件体系结构与设计》考点

2026/4/23 12:43:32

《软件体系结构与设计》考点-王同喜

一、简答题(3*10’=30’)

1. 软件设计与软件编码的区别?

软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。

软件编码是信息从一种形式或格式转换为另一种形式的过程也称为计算机编程语言的代码简称编码

整个软件开发过程是由架构师或者系统分析师来设计,而编码是由程序员来搞定,程序员一般只是完成某一功能模块

2. 软件体系结构的模式有哪几种?含义?(如:分层模式)

抽象分层体系结构模式(层次体系结构模式)是一种软件体系结构模式,它将系统水平分割为多个抽象的层次。分层风格的体系结构是将系统组织成一个层次结构,每一层为上层提供服务,并作为下层的客户端。在分层风格的体系结构中,上层可以调用下层的服务。

TCP/IP网络是层次模式的最著名例子,TCP/IP共包含以下5个概念层:物理层、网络接口层、互联网层、传输层、应用层。

分层风格的体系结构有许多优点:(1)支持基于抽象程度递增的系统设计:使设计者可以把一个复杂系统按递增的步骤进行分解;(2)支持功能增强:因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;(3)支持复用:只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法;(4)可替换性。

但是,分层风格的体系结构也有弱点,如如更改行为的重迭等等。 调用/返回模式 异步消息通信模式

带回复的同步消息通信模式 3. 软件体系结构风格常见的有哪些。主程序子程序风格、过滤器、管道 软件体系结构风格:能够用来具体描述软件系统控制结构和整体组织的一种体系结构,能够表示系统的框架结构,用于从较高的层次上来描述各部分之间的关系和接口。

常见的软件体系结构风格有:管道-过滤器风格、面向对象风格、事件驱动风格、分层风格、主程序/子程序、黑板系统等

PipesFilters

主程序/子程序,传统的主程序/子程序组织结构模式将功能分解为一个控制层次,其中“主”程序调用一组程序构件,这些程序构件又去调用其他构件。很多系统的主要组织结构反映了所使用的编程语言的特点。对于一个没有模块化支持的语言,系统通常会被组织成一个主程序和一系列子程序的集合。主程序担当子程序的驱动器,为子程序提供一个控制环路,使子程序以某种次序顺序执行。主程序/子程序体系结构的构件分布在网络中的多台计算机上,则构成远程过程调用体系结构。

4. 重构(迭代)的含义?与重新设计的区别?

1.重构改进软件设计 2.重构使软件更容易理解 3.重构帮助找到bug 4.重提高编程速度

5.重构并不是重新设计,而是对软件内部结构的一种调整,目的在于不改变软件可观察行为的前提下,调整其结构。

5. 软件设计类有哪些?分别起什么作用?(编辑类领域类逻辑类控制类持久类

系统类)

外部类:在软件系统外部并通过接口连接到系统的类。外部用户类通过接口连接到用户交互类,与之交互;外部系统类通过接口连接到代理类,与之通信;外部设备类为设备I/O边界类提供输入或接受其输出。

边界类:用户交互对象直接与人类用户通信,从用户获取输入,通过标准I/O

设备(如键盘、显示器和鼠标)向用户提供输出;(操作员交互)代理对象通过接口连接到外部系统并与之通信,隐藏了通信的细节;(抓取和放置机器人代理)设备I/O边界对象对一个硬件I/O设备提供软件接口。(ATM读卡器接口)

实体类:存储数据,并通过它们提供的操作为这些数据提供有限的访问。(例子:账户类,传感器数据等)

控制类:提供了实现一个用例对象的总体协调。(例子:账户管理员类)

应用逻辑类:业务逻辑对象用于处理一个客户端请求的特定业务的应用逻辑,尽可能相互独立变化的业务规则封装(隐藏)到分离的业务逻辑对象中;(取款交易管理类)算法对象封装问题域中使用的算法。(巡航器)服务对象为其他对象提供服务,通常在面向对象的架构和应用中提供。(目录服务) 6. 软件过程模型,每种模型的特点

所谓软件过程模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。对一个软件的开发无论其大小,我们都需要选择一个合适的软件过程模型,这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点。

过程模型总分为五大类: 1.惯例过程模型。

2.瀑布模型(又叫作生命周期模型)。

3.增量过程模型: 包括增量模型、RAD模型。

4.演化过程模型: 包括原型开发模型、螺旋模型、协同开发模型。

5.专用过程模型: 包括基于构件的开发模型、形式化方法模型、面向方面的软件开发模型

7. 设计模式(应用场景)

设计模式描述了待解决的重复出现的设计问题,对问题的解决方案以及解决方案工作的上下文。因此,设计模式是一个壁垒的粒度更大的复用模式。设计模式主要分三个类型:创建型、结构型和行为型。

创建型是指将对象实例化,这类模式都提供一个方法,将客户从所需要的实例化的对象中解耦。

其中策略模式使用场景:要达到某一个目的,根据具体的实际情况,选择合适的方法。适合于实现某一个功能有多种方案可以选择的情景

单件模式使用场景:用于创建独一无二的,只能有一个实例的对象,单件模式给了我们一个全局的访问点,和全局变量一样方便又没有全局变量的缺点。

工厂模式使用场景:创建新对象,且该对象需要被被封装。(其中抽象工厂模式的应用场景:定义一个负责创建一组产品的接口,这个接口内的每一个方法都负责创建一个具体产品。抽象工厂的方法通常以工厂方法的方式实现。)

结构型:把类和对象组合到更大的结构中

其中装饰者模式使用场景:增加行为到包装对象上,在不改变对象自身的基础上,在程序运行期间给对象动态的添加职责,比如说点了一杯咖啡,添加其它调料的过程,或者类似于在炒菜的过程中,加油加盐加料酒的过程。

代理模式使用场景:使用代理模式创建对象,让代表对象控制某对象的访问,被代理的对象可以是远程的对象,创建开销大的对象或者需要安全控制的对象。

外观模式使用场景:通过实现一个提供更合理的接口的外观类,可以将一个

复杂的子系统变得容易使用,不仅简化了接口,也将客户从组件中解耦

适配器模式使用场景:包装某些对象,让它们的接口看起来不像自己而像是被的东西,将类的接口转为想要的接口,以便实现不同的接口;就像你买了港版手机,附带的港版的充电器,你需要一个转接头才能使用,这个转接头的功能就类似于适配器。

行为型:类和对象如何交互和分配职责

其中模板模式使用场景:适用于算法的结构保持不变,同时由子类提供部分实现的情况。常被架构师用于搭建项目的框架,架构师定好了骨架,程序员继承了骨架的结构之后,负责往里面填空。

命令模式使用场景:有时候需要向某些对象发送请求,但是并不知道请求的接受者是谁,也不知道请求的操作是什么,将对象的请求者从命令的执行者中解耦。使用此模式的优点还在于,command对象拥有更长的生命周期,可以在程序运行的任何时刻去调用这个方法。

迭代器模式使用场景:需要顺序访问一个组合内的多个对象的时候使用。 观察者模式使用场景:帮你的对象知悉现状,不会错过该对象感兴趣的事情,对象甚至可以在运行时决定是否需要继续被通知,就像你关注了京东商城某款产品的降价信息,当该商品降价,你就会通过短信或者邮件获得通知,而不用你每天都登陆去看了,这种情况下,京东商城就是主题(subject),作为客户的你就是观察者了。

状态模式使用场景:解决某些需要场景的问题。 8. 面向对象设计原则

设计原则名称 单一职责原则 开闭原则 设计原则简介 类的职责要单一,不能将太多的职责放在一个类中 软件实体对扩展是开放的,但对修改是关闭的,即在不修改一 个软件实体的基础上去扩展其功能 在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象 要针对抽象层编程,而不要针对具体类编程 使用多个专门的接口来取代一个统一的接口 在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系 一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作 用,而是通过引入一个第三者发生间接交互 里氏代换原则 依赖倒转原则 接口隔离原则 合成复用原则 迪米特法则


《软件体系结构与设计》考点.doc 将本文的Word文档下载到电脑
搜索更多关于: 《软件体系结构与设计》考点 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219