此为2022届软件工程专业的复习提纲!每一届题型侧重点均有不同,仅供参考!
一.选择题部分
1.软件设计的基本原则(会出一个不是里面原则的选项判断,所以大致记忆即可)
- 抽象方法 2)体系结构 3)设计模式 4)模块划分 5)信息隐蔽 6)功能独立 7)逐步求精8)重构软件 9)类的设计
2.软件体系结构内容
- 体系结构风格:描述特定系统的组织方式的惯用范例,强调组织模式、惯用范例。
- 设计模式:软件问题高效、成熟的设计模版,包含了固有问题解决方案。
- 应用框架:整个或部分系统的可重用设计,表现为一组抽象构建的集合以及构建实例间交互的方法。
->下面就是各个体系结构模型的类型大致介绍,大致记忆定义即可,考试不会考太深,都是概念问题
3.功能模型:也可以称之为过程模型、函数模型
是模型化软件构建方法的第一个基本模型。
4.对象模型
对程序中数据组织的抽象,将数据处理和数据组织统一考虑,对象模型以对象为核心,通过对象进行数据组织的抽象并实现数据组织和数据处理的统一,在此基础上建立面向对象的软件构造方法。
5.组件模型
以接口为核心,通过接口抽象组件行为,在此基础建立面向接口的软件构造方法。
6.配置型组件模型
服务器组件模型,针对应用服务器,定义其基于组件的基础结构模型。
7.服务模型
通过定义独立于具体技术,可以扩展的通用描述手段,来描述服务和实现服务交互。而将具体的技术细节隐匿在内部,从而实现服务的无缝集成。
8.抽象模型
基于归纳思维策略的可恢复程序语句组件模型和基于演绎思维策略的元模型。不关注描述的具体实现平台和环境,具有完整的技术独立性和应用发展适应性。
9.软件体系结构建模概述
软件体系结构的模型分为五种,即结构模型、框架模型、动态模型、过程模型、功能模型
10.UML中的结构建模
包括类图、包图、对象图、构件图、组合结构图、部署图。
11.软件设计基础
软件设计主要针对需求分析过程得到的需求规格说明,综合考虑出解决的实际方案,并最终给出方案的逻辑表示,包括文档、模型。
回答如下问题?1)用什么标准将软件划分为单个构件?2)如何将功能或数据结构与软件的概念性表示分开?3)是否存在定义软件设计的技术质量统一标准?
一般过程如下图所示:(老师说考试的时候会随便挖一个考选择题!)
12.软件体系结构风格概述
描述某一领域中系统组织方式的惯用模式,体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束,反映了众多系统共有的结构与语义特征,并指导如何将各个模块和子系统有效组织成一个完整的系统。
->管道过滤器体系:通过系统的数据流连接,一个步骤输出是下一个步骤的输入。
->数据抽象和面向对象风格:这些风格建立两者之上,数据的表示方法和相应的操作封装在一个抽象数据类型或对象中。
->分层系统风格:按照层次组织软件的体系结构,每一层软件建立在低一层的软件层上。
->仓库风格和黑板风格:仓库风格由两个构建组成,一个是中央数据结构,表示当前状态;一个是独立的构建集合,对中央数据结构进行操作。而黑板风格就是仓库体系结构的特殊化。
13.MVC模式:
为同样的数据提供多个视图的应用程序而设计,很好地实现了数据层与表示层的分离,通常用于分布式应用系统的设计和分析,确定系统各部分的组织关系。
对于界面设计可变需求,MVC把交互系统部分分为模型(model)、视图(view)、控制器(controller)三个部件。
14.客户/服务器风格(再计网中也有提及)
C/S体系结构基于资源不对等,为实现共享而提出的。定义了工作站如何与服务器相联,已实现数据和应用分布到多个处理机上。
有三个主要组成部分:客户应用程序、数据库服务器、网络。
二层C/S与三层C/S的区别:三层增加了一个应用服务器,将整个应用逻辑停留在该服务器上,而只有表示层存在于客户机,这种结构被称为瘦客户机。
三层C/S包括了表示层、功能层、数据层。
15.正交软件体系结构风格
由组织层和线索的构件组成。
层是有一组抽象级别的构件组成,线索是子系统的特例,由不同完成的层次功能构件组成。每一条线索完成整个系统中相对独立的一部分功能。每一条线索与其他线索相关甚少,在同一层构件不存在相互调用。
16.用户界面:指对软件的人机交互、操作逻辑、界面美观的整体设计
17.设计模式
不提供具体的解,而是一种结构的提纲。提高软件开发效率。
代表了面向对象设计和实现的最佳实践。
常用的设计模式解析:
- 创建型模式:主要是创建对象
- 结构型模式:主要处理类或对象的组合。
- 行为型模式:主要用于描述对类或对象怎样交互和怎样分配职责。
18.SOA基本特征
为了解决在互联网环境下业务集成需要,通过连接完成特定任务的独立功能实体实现的一种软件体系架构。
不是语言,不是具体技术,而是一种软件系统架构。
SOA使用范围:需求决定同时也限制功能。
19.基于分布构建的体系结构
主要实现方案:EJB、DCOM、CORBA等分布构建框架
20.软件体系结构评估:
作为在软件生命周期早期保障软件质量的重要手段之一,是软件体系结构研究的一个重要组成部分。
- 基于场景评估方法:观点大概就是根据上下文环境,对质量属性进行一个有意义的评判,具体化评估目标,-代替对质量属性空洞的表达。使得软件体系结构的测试成为可能。
21.软件工程的大致过程:沟通、策划、建模、构建、部署五个主要活动组成的螺旋过程。软件的进化贯穿整个生命周期,因此,软件进化不同于软件维护,其包括了软件维护和软件再工程,这是软件进化的处理策略。
22.云计算和大数据体系结构
从基础设施看,是“互联网+”时代,从计算模式来看是“云计算”时代,从信息资源来看是“大数据”时代,从信息应用来看是“智能化”时代。
二、图表题部分
1.流程图、盒式图、PAD图
左边为题目,右边为流程图
盒式图
PAD图
2.软件结构图(由数据流图转换为软件结构图)
大家根据自己的数据流图自己转换,可能会有不同都是很正常的!!这里仅提供参考
1)存款处理
结构图如下图所示:
主要思路分为输入、交换、输出模块。
2)图书预订子系统(老师上课亲自画的!非常难得啊,第一次见他画图)
所需要注意的就是订书书目是根据供书书目基础决定的,文档留底会返回订书、供书两个书目的信息。
3) 教材购销系统
该数据流图省略了~老师当时有发可以自己对照
3.顺序图
参考一位博主的顺序图画法(题目都是我们课堂派发的相同的)
4.活动图
5.判定表和判定树
三、建模题(持久化建模)
航空公司部分类模型,映射为关系数据库的表(即er图)
需要注意的就是属性的添加,以及AttendantAssigment类相当于是Flight和Flightattendant的外键,所以需要包括这两类的id与自己的id号。
参考博客:https://blog.youkuaiyun.com/weixin_50816938/article/details/125242718
四、设计题
我觉得大概率是会考类模型的设计(MVC模式图书管理系统),可参考另一篇文章
https://blog.youkuaiyun.com/jujuheaven/article/details/144609241?spm=1001.2014.3001.5502
不是就拉倒,这题分数俺不要了