您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C225SE:《软件构造》课程描述
南京大学软件工程专业本科教程——附录B:专业基础/核心课程描述附录B第67页C225SE:《软件构造》课程描述0课程基本信息课程编号:C225SE课程名称:软件构造英文名称:SoftwareConstruction英文简称:SC预备课程:离散数学、计算与软件工程I、数据结构与算法、计算与软件工程II、操作系统授课时间:二年级第二学期时间分配:课堂教学(48课时)+实验安排(48课时)+课后作业与阅读(48课时)学分数:31课程简介本课程是软件工程专业的专业核心课程。课程内容既包括软件构造的一般原则(模块设计、代码重用、类设计等)和软件构造的常用技巧(契约式设计、防御式编程、异常处理、配置式编程、基于状态转移和基于表的软件设计、基于语法分析的设计等),又包括软件构造的形式化方法(规范说明语言及其应用、形式化构造工具),还包括软件构造工作的执行要点(编码及其规范、工具使用、单元测试技巧、性能优化等)。2教材与参考资料2.1教材与指定阅读材料1)SteveMcConnell,代码大全(第二版),电子工业出版社2)AndrewHunt,DavidThomas,程序员修炼之道-从小工到专家,电子工业出版社2.2参考资料1)BertrandMeyer,面向对象软件构造(英文第二版),机械工业出版社2)软件构造课程网站:~pammann/619-sched.html~bochmann/SEG2106/index.html=1492教学目标完成这门课程以后,学生应具有以下的能力:1)了解软件构造的基本思想、方法和技术,能够应用各种基础的软件代码开发技术和工具进行软件系统构造;2)掌握规范说明语言与方法的应用,能为底层软件模块创建简单的形式规范,检查规范的有效性,并用适当工具从规范直接生成代码;3)理解形式化软件构造方法,能够设计面向简单应用的语言和协议,并使用恰当工具为语言和协议生成代码;4)掌握高效的软件构造方法,能够应用防御性程序设计应对编码以及实际应用中可能存在的错误及异常情况,实现高质量软件构造过程;5)理解并发软件设计,利用互斥机制使用资源,为顺序访问可重用资源制定规则(包括线南京大学软件工程专业本科教程——附录B:专业基础/核心课程描述附录B第68页程和数据库加锁)。4相关知识体系编号描述k,c,aE,D,O学时SEF-SC.ct.0软件构造技术21SEF-SC.ct.1API设计和使用aE2SEF-SC.ct.2代码重用和代码库aE2SEF-SC.ct.3面向对象运行时问题aE1SEF-SC.ct.4参数化和泛化aE1SEF-SC.ct.5断言、基于合同的设计、防御性程序设计aE2SEF-SC.ct.6错误处理、异常处理和容错aE3SEF-SC.ct.7基于状态和表格驱动的代码开发技术aE2SEF-SC.ct.8运行时配置和国际化cE2SEF-SC.ct.9基于语法的输入处理(语法分析)aE1SEF-SC.ct.10并发原语(例如信号量、管程等)aE1SEF-SC.ct.14性能分析和调优kE2SEF-SC.ct.15平台标准(Posix等)kD1SEF-SC.ct.16测试优先的程序设计kD1SEF-SC.tl.0构造工具4SEF-SC.tl.1开发环境aE1SEF-SC.tl.3单元测试工具aE1SEF-SC.tl.4面向应用的语言(如脚本语言、可视化语言、特定领域语言、标记语言、宏语言等)cE1SEF-SC.tl.5剖面、性能分析和切片工具kD1MEP-MF.df.0表述基础2MEP-MF.df.1有限状态机,正则表达式cE1MEP-MF.df.2文法cE1MEP-MF.fm.0形式化构造方法9MEP-MF.fm.1抽象机的应用(如SDL、Paisley等)kE*MEP-MF.fm.2规范说明语言与方法的应用(如ASM、B、CSP、VDM、Z)aE2MEP-MF.fm.3从规范说明自动生成代码aE*MEP-MF.fm.4程序导出cE*MEP-MF.fm.5候选实现分析cE1MEP-MF.fm.6将规范说明映射到不同实现kE2MEP-MF.fm.7细化cE1MEP-MF.fm.8正确性证明cD1SEF-MA.md.0建模基础4SEF-MA.md.1建模原理(例如分解、抽象、一般化、投影/视点、清晰化、使用形式化方法等)aE1SEF-MA.md.2前置和后置条件,不变式cE2SEF-MA.md.3数学建模和规范语言(Z、VDM等)cE1南京大学软件工程专业本科教程——附录B:专业基础/核心课程描述附录B第69页SEF-VV.tst.0测试3SEF-VV.tst.1单元测试aE2SEF-VV.tst.2异常处理(编写触发异常处理的测试用例,设计好的处理代码)aE1STP-SD.mod.0建模工具4STP-SD.mod.1RationalRoseaE1STP-SD.mod.3EnterpriseArchitectaD1STP-SD.mod.4SDLkE2STP-SD.pe.0集成开发环境2STP-SD.pe.1MicrosoftVisualStudioaE1STP-SD.pe.2EclipseaE1STP-SD.tdb.0测试、调试与集成工具3STP-SD.tdb.1JUnitaE1STP-SD.tdb.2ANTaE1STP-SD.tdb.13CppUnitkD1STP-SD.lp.0程序库工具包7STP-SD.lp.1JDKkE1STP-SD.lp.2QTkO2STP-SD.lp.3ACEkO2STP-SD.lp.4POSIXkE25教学补充事项5.1对前驱课程的教学需求要求学生完成《计算与软件工程I/II》课程的学习,掌握基本的软件工程知识,同时掌握《数据结构与算法》以及《离散数学》等课程的相关基础理论。此外,学生已具备并发的基础知识。5.2本课程的教学考虑课程注重培养学生良好的编码习惯和编码技巧。5.3对后续课程的教学建议《软件系统设计与体系结构》课程进一步展开复杂软件构造技术的教学。6教学计划序号主题内容课时相关知识点1软件构造基础软件构造的概念;构造的目的;重要性;常用隐喻等;工具与环境2SEF-SC.tl.12模块设计自顶向下;自底向上;信息隐蔽;解耦;开放模块;闭合模块等2SEF-SC.ct.13类的设计和使用类设计(抽象数据类型;类和对象;信息隐蔽;继承和聚集;多态;动态绑定等);接口设计(抽象、封装);使用范围;设计准则(副作用、成员函数参数设置、大小等)4SEF-SC.ct.1SEF-SC.ct.34代码复用设计包与库;重载;泛化;设计模式;配置式编程5SEF-SC.ct.2SEF-SC.ct.4SEF-SC.ct.8南京大学软件工程专业本科教程——附录B:专业基础/核心课程描述附录B第70页5函数与类方法设计可靠性的基本概念;断言;前置与后置条件;不变式;防御性程序设计(非法输入处理;预计变更等)2SEF-SC.ct.56复杂功能代码的计基于表格(直接存取、变址存取、阶梯存取)的代码设计;基于状态机的代码设计;基于语法输入的代码设计3SEF-SC.ct.7SEF-SC.ct.97错误与异常代码设计基本概念(故障、异常);错误处理;异常处理;容错5SEF-SC.ct.6SEF-SC.ct.16SEF-VV.tst.28特殊功能代码的设计并发程序设计的背景、策略;同步与通信;基于平台的代码设计(Windows编程、POSIX标准)2SEF-SC.ct.10SEF-SC.ct.159代码的测试与调试单元测试;性能分析和调优;特殊测试工具的使用(剖面、切片)6SEF-SC.ct.14SEF-SC.tl.3SEF-SC.tl.5SEF-VV.tst.110构造管理项目大小对构造过程的影响;版本控制策略及工具111形式语言基础状态机;正则表达式;BNF范式等4MEP-MF.df.1~2SEF-MA.md.1~312规范说明语言SDL系统结构;语法;系统行为描述(触发事件、进程创建、过程调用);定时操作;注释;数据定义等4MEP-MF.fm.1~2SEF-MA.md.1~313规范说明语言的应用从规范说明自动生成代码;程序导出;候选实现分析;将规范说明映射到不同实现;细化;正确性证明8MEP-MF.fm.3~8SEF-MA.md.1~37实验7.1实验目标1)使学生掌握软件构造方法与技巧的使用;2)使学生掌握软件构造的工具使用;3)使学生深入理解形式化技术。7.2实验内容实验一:要求学生在规定时间内,使用多种软件构造方法与技巧完成一组指定的程序设计任务;实验二:要求学生使用指定的软件构造工具,对已有的程序源代码进行分析和优化调整;实验三:指定一个简易的形式化描述语言,要求学生构造一个解析语言的工具。7.3实验组织实验一和实验二以个人为单位。实验三以小组为单位,3~4人一组。7.4实验报告实验一和实验二要求学生提交高质量的程序代码。实验三要求学生提交一个有效的程序,并完成一个项目总结报告。8课后作业课后作业应该包含:南京大学软件工程专业本科教程——附录B:专业基础/核心课程描述附录B第71页1)要求学生了解软件构造工作的实践现状及其不足,了解常用软件构造技术的实践应用情况;2)要求学生了解软件构造技术的分布及其工具支持情况;3)要求学生更深入的了解形式化技术及其在软件工程中的应用情况;4)完成一些小的习题:a)分析简单的代码段,找出问题并加以改正;b)按照指定的编码规范,分析简单的代码段,找出不规范的地方并加以改正;c)分析简单的代码段,进行优化处理;d)为简单的需求建立形式化描述。9评分体系笔试×60%+实验×30%+课后作业×10%
本文标题:C225SE:《软件构造》课程描述
链接地址:https://www.777doc.com/doc-1238563 .html