1、 2025年大学软件工程(软件概要设计)试题及答案 (考试时间:90分钟 满分100分) 班级______ 姓名______ 第 I 卷(选择题 共40分) 本大题共20小题,每小题2分。在每小题给出的四个选项中,只有一项是符合题目要求的。 1. 软件概要设计阶段的主要任务不包括以下哪项? A. 确定软件的总体结构 B. 进行数据库设计 C. 定义模块之间的接口 D. 设计软件的总体架构 2. 以下关于模块独立性的说法,正确的是? A. 模块独立性越高,软件越容易维护和扩展 B. 耦合性高的模块独立性强 C. 内聚性低的模块
2、独立性强 D. 模块独立性与软件质量无关 3.. 软件结构设计中,扇入是指? A. 一个模块直接调用的其他模块的个数 B. 一个模块被其他模块调用的个数 C. 模块的输入参数个数 D. 模块的输出参数个数 4. 以下哪种设计模式属于创建型模式? A. 工厂模式 B. 观察者模式 C. 策略模式 D. 装饰器模式 5. 软件概要设计文档不包括? A. 软件需求规格说明书 B. 软件总体设计说明书 C. 数据库设计说明书 D. 模块设计说明书 6. 模块的控制范围应( )其作用范围 A. 小于 B. 等于 C. 大于 D. 无关系
3、 7. 软件设计中划分模块的一个准则是( ) A. 低内聚低耦合 B. 高内聚低耦合 C. 低内聚高耦合 D. 高内聚高耦合 8. 面向对象设计中,类之间的关系不包括? A. 继承关系 B. 关联关系 C. 依赖关系 D. 包含关系 9. 以下关于软件架构风格的说法,错误的是? A. 分层架构风格易于扩展和维护 B. 微内核架构风格的可扩展性较差 C. 管道-过滤器架构风格适用于处理流数据 D. 客户-服务器架构风格常用于分布式系统 10. 在软件设计中,接口设计的主要目的是? A. 定义模块之间的通信方式 B. 实现软件的功能需求 C.
4、提高软件的性能 D. 保证软件的安全性 11. 以下哪种情况适合采用分层架构设计? A. 系统功能简单,需求变化少 B. 系统需要处理大量并发请求 C. 系统功能复杂,需要模块化设计 D. 系统对性能要求极高 12. 软件设计中,数据结构设计的主要任务是? A. 确定数据的存储方式 B. 定义数据的操作方法 C. 分析数据的流动过程 D. 设计数据的输入输出格式 13. 模块设计中,以下哪种情况可能导致模块的复杂性增加? A. 模块功能单一 B. 模块接口简单 C. 模块内部逻辑复杂 D. 模块与其他模块的耦合度低 14. 以下关于软件设计原则
5、的说法正确的是? A. 开闭原则是指软件实体应该对扩展开放,对修改关闭 B. 里氏替换原则是指子类可以替换父类,并且行为不变 C. 依赖倒置原则是指要依赖于抽象,而不是具体实现 D. 以上说法都正确 15. 软件总体设计中,模块划分的依据不包括? A. 功能相关性 B. 数据相关性 C. 模块大小 D. 模块的可维护性 16. 以下哪种设计模式常用于实现对象的创建和管理? A. 单例模式 B. 适配器模式 C. 代理模式 D. 模板方法模式 17. 软件设计中,以下哪种情况会影响软件的可维护性? A. 代码结构清晰 B. 模块之间耦合度低 C.
6、代码注释少 D. 遵循设计原则 18. 面向对象设计中,类的职责应该( ) A. 单一 B. 复杂 C. 多样化 D. 无限制 19. 软件架构设计中,以下哪种架构风格适用于实时系统? A. 事件驱动架构 B. 分层架构 C. 微内核架构 D. 管道-过滤器架构 20. 软件设计中,模块的内聚性越高,说明? A. 模块的独立性越强 B. 模块的功能越单一 C. 模块之间的耦合度越高 D. 模块的可维护性越低 第 II 卷(非选择题 共60分) 简答题(共20分) 21. 简述软件概要设计的主要步骤。(本题5分)
7、22. 什么是模块的耦合性?简述耦合性的分类及特点。(本题5分) 23. 简述面向对象设计的主要原则。(本题5分) 24. 软件架构设计有哪些常见的架构风格?各有什么优缺点?(本题5分) 设计题(共20分) 25. 请设计一个简单的学生信息管理系统的软件架构,并说明各部分的功能和相互关系。(本题10分) 26. 针对上述学生信息管理系统,设计一个模块划分方案,说明每个模块的主要功能和接口。(本题10分) 案例分析题(共10分) 27. 某软件系统在概要设计阶段采用了分层架构风格。在实际运行过程中,发现系统的性能较低,尤其是在处理大量数据时。请分析可
8、能导致性能问题的原因,并提出改进建议。(本题10分) 综合应用题(共10分) 28. 假设你要设计一个在线购物系统,要求实现用户注册、登录、商品浏览、购物车管理、订单生成等功能。请描述该系统的软件架构设计思路,并说明如何运用设计模式来提高系统的可扩展性和可维护性。(本题10分) 答案: 1. B 2. A 3. B 4. A 5. A 6. C 7. B 8. D 9. B 10. A 11. C 12. A 13. C 14. D 15. C 16. A 17. C 18. A 19. A 20. A 21. 软件概要设计主要步
9、骤:首先进行需求分析,理解软件需求;然后确定软件总体架构,划分模块;接着定义模块接口;再进行数据结构设计;最后编写软件概要设计文档。 22. 模块耦合性是指模块之间相互依赖的程度。耦合性分类及特点:内容耦合,模块间直接访问内部数据,耦合度最高;公共耦合,模块间通过公共数据环境耦合;外部耦合,模块依赖外部环境;控制耦合,模块间传递控制信息;标记耦合,模块间传递数据结构;数据耦合,模块间传递简单数据,耦合度最低。 23. 面向对象设计主要原则:开闭原则,软件实体对扩展开放,对修改关闭;里氏替换原则,子类可替换父类且行为不变;依赖倒置原则,依赖抽象而非具体实现;单一职责原则,类职责单一;接口隔离
10、原则,接口细化避免臃肿;迪米特法则,减少对象间不必要交互。 24. 常见架构风格及优缺点:分层架构,优点是易于扩展维护,缺点是层次间通信开销大;微内核架构,优点是可扩展性强,缺点是性能开销大;管道-过滤器架构,优点适用于流数据处理,缺点是数据表示复杂时性能低;客户-服务器架构,优点常用于分布式系统,缺点是服务器负载大时性能受影响;事件驱动架构,优点是响应快,缺点是系统复杂时难以维护。 25. 学生信息管理系统软件架构:表示层负责与用户交互,展示学生信息管理界面;业务逻辑层处理学生信息的增删改查等业务逻辑;数据访问层负责与数据库交互,存储和读取学生信息。相互关系:表示层调用业务逻辑层处理用户
11、请求,业务逻辑层调用数据访问层进行数据操作。 26. 模块划分方案:学生信息管理模块负责学生基本信息管理;课程管理模块管理学生课程信息;成绩管理模块处理学生成绩录入查询等;登录注册模块负责用户登录注册验证;系统管理模块负责系统配置等。接口:各模块通过参数传递和返回值进行数据交互。 27. 可能原因:分层架构中各层通信开销大,数据在层间传递频繁影响性能;数据处理算法效率低。改进建议:优化层间通信方式,减少不必要数据传递;优化数据处理算法,采用更高效的数据结构和算法。 28. 用户注册登录模块采用工厂模式创建用户对象;商品浏览模块用装饰器模式可灵活添加商品展示功能;购物车管理模块用观察者模式,商品变化时通知购物车更新;订单生成模块用策略模式根据不同订单策略生成订单。架构设计采用分层架构,提高可扩展性和可维护性。






