软件工程复习指南:UML习题详解及答案

需积分: 0 27 下载量 148 浏览量 更新于2024-08-01 收藏 740KB DOC 举报
1. **软件工程过程** 软件工程是一系列相关软件工程活动的集合,涵盖了软件的生命周期,包括软件规格说明、设计、开发、确认和改进等活动。这些活动确保了软件的质量和有效性。 2. **软件需求类型** 在软件需求中,功能需求强调用户必须完成的任务,通常在用例模型或方案脚本中表达。非功能需求则涉及系统约束和限制,如性能、安全性、可靠性和可维护性,反映了对软件特性的额外要求。 3. **面向对象编程的多态性** 多态性是面向对象编程的一个核心概念,允许一个操作在不同的类中有不同的实现方式,增强了代码的灵活性和可扩展性。 4. **系统责任分配** 在面向对象系统设计中,良好的责任分配原则倾向于将系统职责集中在少数控制类中,这样可以保持模块间的清晰边界和高内聚低耦合的设计原则。 5. **学生成绩管理系统** 在设计学生成绩管理系统时,不应包含“教务人员”实体,因为教务人员不是系统的核心处理对象,他们只是系统的一个外部用户,不涉及系统内部的数据维护。 6. **多对多关系设计** 在处理新需求“一个教师也可以是某些课程的学生”时,设计B通过继承和多对多关系最符合需求,因为它抽象出了Role类来表示这种关系,保持了类结构的简洁和灵活。 7. **分层体系结构** 分层体系结构按层次组织软件,每一层服务于下一层。图中⑧支撑软件和⑨特定业务可能是恰当的选择,但具体填哪个取决于上下文,如支撑软件提供基础设施,而特定业务层处理特定的应用需求。 8. **UML关系** 导师和研究生之间的关系是“聚合”或“关联”,因为一个导师可能指导多个研究生,而一个研究生可能有多个导师,但导师不是研究生的组成部分。 9. **UML关系的其他类型** - 关联:表示两个类之间存在数据关联。 - 聚合:表示整体与部分的关系,整体包含部分,但部分可以独立存在。 - 泛化:表示继承关系,一个类是另一个类的子类。 - 实现:表示接口和实现类的关系。 - 依赖:表示一个类依赖于另一个类的功能,但没有拥有对方。 以上知识点涵盖了软件工程流程、需求分析、面向对象编程、系统设计、分层架构以及UML关系的不同方面,对于准备IT相关考试的学生来说,这些都是复习的重点内容。