当前位置:文档之家› 四川大学软件学院本科课程教学大纲

四川大学软件学院本科课程教学大纲

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