
C331SE软件系统设计与体系结构.pdf
6页南京大学软件工程专业本科教程——附录 B:专业基础/核心课程描述 附录 B 第 83 页C331SE:《软件系统设计与体系结构》课程描述:《软件系统设计与体系结构》课程描述 0 课程基本信息课程基本信息 课程编号:课程编号: C331SE 课程名称:课程名称: 软件系统设计与体系结构 英文名称英文名称: Software Systems Design and Architecture 英文简称:英文简称: SSDA 预备课程预备课程: 计算与软件工程 I、计算与软件工程 II、软件构造 授课时间授课时间: 三年级第三学期 时间分配时间分配: 课堂教学(36 课时)+实验安排(36 课时)+课后作业与阅读(36 课时) 学分数学分数: 3 1 课程简介课程简介 本课程是软件工程专业的专业核心课程课程以软件设计知识为主线,包括:软件设计的要 素、软件设计的支持与评价、软件设计方法、体系结构设计、详细设计、基于中间件的设计、基 于复用的设计和设计演化该课程强调复杂的案例教学,培养学生综合运用设计知识为实际问题 设计和选择解决方案的能力 2 教材与参考资料教材与参考资料 2.1 教材与指定阅读材料教材与指定阅读材料 1) Christopher Fox,软件工程设计导论:过程、原理与模式(UML2.0 版) ,清华大学出版社 2.2 参考资料参考资料 1) Eric J. Braude,软件设计——从程序设计到体系结构,电子工业出版社 2) Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides,设计模式:可复用面向对象软 件的基础,机械工业出版社 3) Rebecca Wirfs-Brock,Alan McKean,对象设计:角色责任和协作,人民邮电出版社 4) 王千祥等译,实用软件体系结构,电子工业出版社 5) 贲可容等译,面向模式的软件体系结构(卷 1:模式系统) ,机械工业出版社 6) 王千祥等译,构件化软件——超越面向对象编程(第二版) ,电子工业出版社 7) 王海鹏等译,基于组件开发,人民邮电出版社 8) 刁联旺等译,IT 系统结构与中间件,人民邮电出版社 9) Martin Fowler,重构:改善既有代码的设计,中国电力出版社 3 教学目标教学目标 通过本课程的学习,学生应该能够: 1) 理解软件设计的要素,掌握常用的软件设计方法、技术与手段,能够为复杂系统创建成 功的设计方案,能够完成复杂系统的设计的演化; 2) 理解软件设计要素、过程和方法,能够识别复杂应用的关键设计要素,并进行分析、折 中和设计解决; 3) 理解体系结构的概念,掌握常见的体系结构风格和体系结构设计方法,能够为简单的应 用完成体系结构设计; 南京大学软件工程专业本科教程——附录 B:专业基础/核心课程描述 附录 B 第 84 页4) 掌握详细设计常用的方法、技术与手段,能够为应用系统的复杂组件完成详细设计; 5) 了解大型系统的设计要素、方法、技术和手段,能够理解大型系统的设计方案; 6) 理解软件设计的演化, 能够得出简单软件演化后的设计, 能够完成简单软件设计的演化; 7) 理解软件设计的建模与描述方法,能够正确的描述复杂系统的设计方案,能够为简单系 统的设计方案进行准确的评价。
4 相关知识体系相关知识体系 编号 描述 k, c, a E, D, O 学时 SEF-SC.ct.0 软件构造技术 3 SEF-SC.ct.11 中间件(构件和容器) c E 1 SEF-SC.ct.12 分布式软件的代码开发方法 a E 1 SEF-SC.ct.13 异构(硬件和软件)系统代码开发;软/硬件协同 设计 c E 1 SEF-MA.md.0 建模基础 2 SEF-MA.md.1 建模原理(例如分解、抽象、一般化、投影/视点、 清晰化、使用形式化方法等) a E * SEF-MA.md.2 前置和后置条件,不变式 c E * SEF-MA.md.3 数学建模和规范语言(Z、VDM 等) c E * SEF-MA.md.4 建模语言的性质 k E * SEF-MA.md.5 语法与语义(理解模型的表示) c E 1 SEF-MA.md.6 Explicitness(不作任何假设,或说明所有的假设)k E * SEF-MA.tm.0 模型类型 2 SEF-MA.tm.1 信息建模(例如实体关系建模、类图等) a E * SEF-MA.tm.2 行为建模(例如状态图、用例分析、交互图) a E * SEF-MA.tm.3 结构建模(如体系结构等) c E 1 SEF-MA.tm.4 领域建模(如领域工程方法等) k E * SEF-MA.tm.5 功能建模(例如构件图等) c E * SEF-SD.str.0 设计策略 2 SEF-SD.str.1 面向功能的设计 a E * SEF-SD.str.2 面向对象的设计 a E 1 SEF-SD.str.3 以数据结构为中心的设计 k D * SEF-SD.ar.0 体系结构设计 8 SEF-SD.ar.1 体系结构风格(如管道-过滤器、分层、以事务为 中心、对等、发布-定购、基于事件、C/S 模型等)a E 3 SEF-SD.ar.2 多种属性间的体系结构折中 a E 2 SEF-SD.ar.3 软件体系结构中的硬件问题 k E * SEF-SD.ar.4 体系结构中需求的可追踪性 k E 1 SEF-SD.ar.5 特定领域的体系结构和生产线 k E * SEF-SD.ar.6 体系结构符号(如体系结构视点和表示、构件图 等) c E 1 SEF-SD.dd.0 详细设计 8 SEF-SD.dd.1 选择设计方法(如 SSA/SD、JSD、OOD 等) a E 1 南京大学软件工程专业本科教程——附录 B:专业基础/核心课程描述 附录 B 第 85 页SEF-SD.dd.2 设计模式 a E 1 SEF-SD.dd.3 构件设计 a E 3 SEF-SD.dd.4 构件和系统接口设计 a E 2 SEF-SD.dd.5 设计符号(如类和对象图、UML、状态图等) c E 1 SEF-SD.ste.0 设计支持工具和评价 2 SEF-SD.ste.1 设计支持工具(如体系结构、静态分析、动态评 价等) a E * SEF-SD.ste.2 设计属性的度量(如内聚度、耦合度、信息隐藏、 关注点分离等) k E * SEF-SD.ste.3 设计准则(如体系结构因子、阐释、通用的标准 集合等) a E * SEF-SD.ste.4 形式化设计分析 k O * SEF-EV.ac.0 演化活动 4 SEF-EV.ac.1 对遗留的系统进行处理(如进行包装等) k E * SEF-EV.ac.2 程序理解和逆向工程 k E * SEF-EV.ac.3 系统和过程的再工程(技术和业务) k E * SEF-EV.ac.4 影响分析 k E * SEF-EV.ac.5 移植(技术和业务) k E * SEF-EV.ac.6 重构 k E 1 SEF-EV.ac.7 程序转换 k D * SEF-EV.ac.8 数据逆向工程 k D * SEF-EV.pro.0 演化过程 2 SEF-EV.pro.1 演化和维护的基本概念 k E * SEF-EV.pro.2 演化实体之间的关系(如设想、需求、体系结构、 设计、代码等) k E * SEF-EV.pro.3 软件演化模型(如原理、规律等) k E * SEF-EV.pro.4 演化的成本模型 k D * SEF-EV.pro.5 演化规划(如采办、内部开发等) k D * STP-SD.fp.0 框架工具包 8 STP-SD.fp.1 MFC k E 2 STP-SD.fp.2 Struts k E 2 STP-SD.fp.3 Spring k E 2 STP-SD.fp.4 Hibernate k E 2 STP-SD.mod.0 建模工具 4 STP-SD.mod.1 Rational Rose a E 2 STP-SD.mod.3 Enterprise Architect a D 2 STP-NT.corba.0 CORBA 2 STP-NT.corba.1 CORBA 体系结构 c E 1 STP-NT.corba.2 CCM k E * STP-NT.corba.3 基于 CORBA 的编程 a E 1 STP-NT.j2ee.0 J2EE 1 STP-NT.j2ee.4 RMI a E * 南京大学软件工程专业本科教程——附录 B:专业基础/核心课程描述 附录 B 第 86 页STP-NT.j2ee.5 EJBa E * STP-NT.dnet.0 .NET 1 STP-NT.dnet.1 COM+ a E * STP-NT.dnet.5 .NET 远程处理(Remoting) a E * 5 教学补充事项教学补充事项 5.1 对前驱课程要求对前驱课程要求 《计算与软件工程 I、II》课程给学生介绍基础的软件设计知识,能够让学生了解软件设计的 基础过程,基础方法、技术与手段,能够让学生在整个软件工程中准确的定位软件设计活动。
《软 件构造》课程向学生介绍基础的软件构造方法 5.2 本课程教学考虑本课程教学考虑 在教学中,教师要提供一些大型和较为复杂的应用的实际设计方案,并引导学生进行分析与 学习;在此基础上,让学生能够认知复杂设计,并实际运用各种设计方法、技术与手段 5.3 对后续课程的教学建议对后续课程的教学建议 无 6 教学计划教学计划 序号 主题 内容 课时 相关知识点 1 设计基础要 素 设计的基本特征;软件设计的活动;软件设 计的关注点;软件设计的要素(安全性、可 靠性、可修改性、可维护性、性能) ;设计的 支持;设计的评价;设计的度量 2 SEF-MA.md.1 SEF-SD.ste.1~4 SEF-SD.ar.2~4 SEF-SD.dd.3~4 2 设计的方法 学 面向功能的设计;面向对象的设计;面向数 据的设计;基于复用的设计 2 SEF-SD.str.1~3 3 软件体系结 构的概念 体系结构的概念;组件和连接器;体系结构 需求;体系结构决策;常见的概念错误 3 SEF-MA.md.1 SEF-MA.tm.3 SEF-SD.ar.2 SEF-SD.ar.4 SEF-EV.pro.2 4 软件体系结 构的描述 体系结构的关注点;描述手段;体系结构模 型 1 SEF-MA.md.1 SEF-MA.md.3 SEF-MA.md.5 SEF-SD.ar.6 5 软件体系结 构的风格 常见的软件体系结构风格(模块级、进程级 和物理单元级) ; 不同风格的应用示例与比较3 SEF-SD.ar.1 SEF-SD.ste.3 6 软件体系结 构设计 体系结构设计的流派;用例驱动的体系结构 设计方法;体系结构设计示例 3 SEF-SD.ar.2~4 SEF-SD.ste.1~4 7 详细设计概 述 详细设计的环境;详细设计方法的选择 1 SEF-EV.pro.2 SEF-SD.dd.1 8 结构化详细 设计 内聚与耦合;结构图;数据设计;应用示例2 SEF-MA.md.1~6 SEF-MA.tm.1~2 SEF-MA.tm.5 SEF-SD.dd.3~5 SEF-SD.ste.2~3 9 面向对象详 细设计 内聚与耦合;面向对象设计原则;GARSP 原 则;设计模式;应用示例 6 SEF-MA.md.1~6 SEF-MA.tm.1~2南京大学软件工程专业本科教程——附录 B:专业基础/核心课程描述 附录 B 第 87 页。












