教学大纲
课程号 课程属性 学分 311083020 课程名称 软件构造 是否双语教学 讲授 20 上机 □是 否 12 周学时 2 □ 专业必修 专业选修 2 总学时 32 开课学年 课程组教师 □1秋 □1春 □2秋 □2春 3秋 □3春 □4秋 □4春 黄武 负责人 黄武 (对选课学生的专业、基本知识和基本技能要求) 适用范围 软件工程专业学生 要求学生至少学习过一门高级语言,比如c++或java,曾自己编写过程序,最好有调试的经验 (课程背景、专业地位、授课对象、主要内容、授课方式、课程目标和要求等) 课程背景 如果要完成一个软件项目,其中唯一必不可少的一环是软件构造,软件构造得到软件的源代码和可执行代码,使软件产品的设想变为现实。如果不关心软件的质量,那么软件构造与一门语言课程无异。但是为了实现高质量的软件产品,则不仅需要有编码工作,还必须遵守软件构造的各种原则,具有良好的软件设计,遵守一定的编码原则以及规范的编码过程,具有软件测试的过程等,这些都是属于软件构造的内容。 专业地位 正规软件工程的开发过程包括需求分析、软件设计、软件构造以及软件测试及维护等,软件构课程描述 造是软件工程体系中间重要的一环。它的编码方法、规范及要求是保证高质量软件的重要环节。 主要内容 软件构造这门课从多个方面讲解软件构造相关的知识体系结构,包括:软件构造的概念,范围;软件构造的前期准备工作,构造的方法,关键的构造决策,构造的管理,如何构造高质量的类和子程序,如何进行防御式的编程,代码的布局和风格,代码重构等。是从代码的角度保证构建高质量的软件产品并利于代码的维护。 课程目标 让学生了解正规的软件构造过程及相关知识,掌握软件构造的基本概念和规则,了解软件构造的基本内容和规范,利用软件构造的知识构建一个真正的可运行的高质量软件。 课程要求 学生应该 1)按时上课;2) 完成上机实习; 3) 完成一个可以运行的程序 先行课程 《软件工程》、《面向对象程序设计》 (书名、作者或译者、出版社、出版时间、版次) 选用教材 《代码大全》第二版Steve.McConnell著 金戈等译, 电子工业出版社 2006.3,2014年6月第18次印刷,ISBN: 7-121-02298-2 (主要参考书目、文献、资料、网站等) 1.《The Practice of Programming》Brian W. Kernighan / Rob Pike, Addison-Wesley,1999.2,ISBN: 9780201615869 2.《Extreme Programming Explained: Embrace Change》Kent Beck, 2000,ISBN: 078-5342616415 课程资源 3.《Guide to Software Engineering Body of Knowledge 2004 Version》William E. Perry 清华大学出版社 ,2008.1,ISBN: 978-7-302-16692-4 4. http://www.cc2e.com/ 5. http://www.computer.org/portal/web/swebok 考核类型 □考试 考查 (课程考核内容、方式、基本原则等) 考核内容包括:软件构造的概念,范围;软件构造的前期准备工作,构造的方法,关键的构造决策,构造的管理,如何构造高质量的类和子程序,如何进行防御式的编程,代码的布局和风格等容 课程考核 方式:该课程严格管理学生的平时学习,注重实践,学生的总成绩由平时测验(20%)、学生课堂讨论(10%)、项目代码审核(10%)、项目报告(20%)以及期末考试(40%)构成。 基本原则 软件构造是一门实践性很强的课程,因此要求学生积极参加,包括与老师互动来理解知识,完成一个具有实用价值的可运行的程序。 成绩评定(百分比) 小测验:20%,课堂讨论:10%,项目文档:20%,项目代码审查:10% 期末成绩:40% (各章节主要教学内容、教学要求、教学重点、教学难点、学时分配等) 课程分为理论课和实践课,理论课10次,实践课6次,共16次。下面是理论课的内容: 第1次:软件构造概述(2学时) 讲解软件构造的基本概念,知识范围,基本内容,在软件工程中的地位以及课程安排等。 第2次:软件构造的准备活动(2学时) 讲解软件构造准备活动的重要性,了解软件的类型,软件规模对软件构造的影响,然后讲解软件构建的各种先决条件,包括:问题,需求以及构架等,然后讨论准备时间的长短。 第3次:关键的构建决策(2学时) 在开始软件构建之前,首先要做一些决策,包括:选择编程环境、语言,选择编程方法等,编程方法包括顺序开发、迭代开发等,然后介绍伪代码编程技术。 第4次:关键的设计概念(2学时) 教学内容 讲解设计中的挑战,关键的设计概念,管理软件的复杂度,设计的理想特征,设计层次以及信息隐藏和松散耦合等知识。 第5次:程序布局与风格(2学时) 好的程序布局与风格易于理解、维护,是编码的重要内容,本节讲解编码布局的基本原则,布局的技术与风格,包括:控制结构、单条语句、子程序、类以及注释的布局等。 第6次:管理构建(2学时) 鼓励良好的编程风格,配置管理,包括需求变更、设计变更以及代码变更的管理,评估构建进度,评估与控制等 第7次:可以工作的类(2学时) 讲解如何构建高效、清晰的类,包括良好的类接口,类的封装,类的设计和实现等知识 第8次:高质量的子程序(2学时) 讲解如何构建高质量的子程序,如何设计子程序,如何命名子程序,如何使用子程序的参数以
2
及子程序的长度考虑等 第9次:防御式编程(2学时) 保护程序免遭非法输入的数据破坏,断言的使用,各种错误处理技术等。 第10次:代码重构(2学时) 讲解代码重构的原因,方法,代码调整等内容 软件工具和环境 (课程选择的软件工具或环境,包括编程语言) Visual Studio 2010或Eclipse (项目描述、项目要求、项目阶段目标、开发环境要求等) 项目:显示任意波形的Chart系统 项目描述 运用学到的理论知识构建一个Chart系统,可以打开任意一个二进制文件,然后以曲线形式显示在自己构建的Chart窗口中。 项目要求 质量要求: 1)编码具有良好的风格,便于阅读与理解; 2)要有完整的构建管理过程,包括设计、编码到测试; 3)要有完整的构建文档,从基本需求、构架设计到源码以及测试文档等。 功能要求: 1)可以显示多个通道,比如1通道用于显示原始数据,2通道用于显示对原始数据的处理(微分、积分等处理); 2)具有数据拖动查找功能,通常而言,屏幕宽度并不能够显示整个数据文件,因此通过前后拖动滚动条来定位不同时间段的数据; 3)通用用户交互可以压缩和扩展显示数据。 开发环境要求: 课程项目 编程工具由同学自己选择,建议使用Visual Studio2010。 开发阶段: 项目工作应该从第7周就开始,由于这是一个实际的项目,要求必须得到可以运行的代码,因此,课堂规定的上机时间不足以完成该项目,同学很多时候需要自己在课堂外进行设计和编程,在课堂上的编程主要与老师交流,询问可能遇到的问题和疑惑。 第1次:需求理解与编写 讨论:什么样的体系结构比较适合信号采集系统,管道过滤器或其它 第2次:进行项目的构架设计 讨论:使用单线程还是多线程,各有什么好处?多线程中的注意事项有哪些? 第3次:编码系统-显示框架 讨论:使用数据库还是使用文件进行存贮,使用edf还是使用其他存贮规范 第4次:信号采集系统数据的存贮格式 讨论:Chart中有哪些显示的元素?如何实现多种显示模式,显示方向,显示模式等 第5次:波形显示 讨论:如何实现灵活的多通道数据显示,单通道和多通道之间的差异是什么? 第6次:数据处理 讨论:如何进行数据处理及处理数据的显示 完成时间:12月30日
3
版本号: 1.0
编制人: 黄武 编制日期: 2017年10 月 12日
审核人: 审核日期: 2017年 10 月 日
主管领导审批: 审批日期: 2017年10 月 日
4
因篇幅问题不能全部显示,请点此查看更多更全内容