《软件工程》实验大纲
(一) 课程性质
《软件工程》课程是计算机科学与技术专业必修的一门专业课程。为了摆脱软件危机的困扰,一门研究软件开发与维护的普遍原理和技术的工程学科——软件工程学从60年代末期开始迅速发展起来了,现在它已经成为计算机科学技术的一个重要分支,一个异常活跃的研究领域。严格遵循软件工程方法论可以大大提高软件开发的成功率,能够显著减少软件开发和维护中的问题。软件工程学(通常简称软件工程)研究的范围非常广泛,包括技术方法、工具和管理等许多方面,软件工程又是一门迅速发展的新兴学科,新的技术方法和工具不断涌现,真可谓五花八门层出不穷。本课程将着重从实用角度讲述软件工程的基本原理、概念和技术方法,同时也尽量注意课程的全面性和系统性。使学生学完本课程之后既能对实际的软件开发工作有所帮助,又能为今后深入研究这门学科奠定良好的基础。
本课程应以高级算法语言、数据结构、算法设计等课程为基础。除此,要求学生有一定的编程能力或经验。
(二)
教学目的
本课程的目的是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程实践打下良好的基础。
本课程的具体任务是:
1. 概括介绍软件工程学产生的历史背景以及它的基本原理、概念和方法。
2. 按软件生存周期的顺序介绍各个阶段的任务、过程、方法和工具。
3. 讨论软件工程的管理技术。
(三)
教学内容
正文共13章,第一章概括介绍软件工程学产生的历史背景以及它的基本原理、概念和方法。第二章到第八章按软件生存周期的顺序介绍各个阶段的任务、过程、方法和工具。第九章到第十二章对面向对象的方法作了全面、系统、深入的介绍,强调了软件工程与人工智能的相互结合、互相促进的发展趋势。第十三章着重讨论软件工程的管理技术。
(四)
教学时数
课堂教学:36学时 实验教学:36学时 总学时:36+36=72(学时)
(五)
教学方式
以讲授法为主,结合讨论法和案例分析法。
二、 本文
(一)基本要求
《软件工程》是计算机应用专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、总体设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理。
根据培养基层应用型人才的需要,本实验课程的目的与任务是使学生通过对本实验课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程实践打下良好的基础。
(二)项目总表
本课程安排在第七学期第二周开始,开设九个必做实验项目,计划36个学时。
实验项目名称 |
学时数 |
项目类别 |
项目类型 |
实验一 问题定义 |
2 |
基础性 |
必做实验 |
实验二 可行性研究 |
2 |
基础性 |
必做实验 |
实验三 需求分析 |
4 |
基础性 |
必做实验 |
实验四 总体设计 |
4 |
基础性 |
必做实验 |
实验五 详细设计 |
6 |
基础性 |
必做实验 |
实验六 编码和单元设计 |
6 |
综合性、设计性 |
必做实验 |
实验七 综合测试 |
2 |
综合性、设计性 |
必做实验 |
实验八 软件维护 |
2 |
综合性、设计性 |
必做实验 |
实验九 面向对象设计 |
8 |
综合性、设计性 |
必做实验 |
合
计 |
36 |
|
|
注:
项目类别:基础性、综合性、设计性
项目类型:必做实验、选做实验
(三)实验内容
实验一 问题定义
内容: 对系统的实际用户和使用部门负责人进行访问调查,扼要的写出对问题的理解。
目的: 通过讨论澄清含糊不清的问题,改正不正确的理解。
要求: 写出一份合理的书面文档。
主要仪器设备及耗材:实际的案例,计算机,纸张等。
实验二 可行性研究
内容: 通过用数据流图表示导出系统的高层逻辑模型,并在此基础上建立更准确、更具体的确定工程规模和目标。
目的: 准确的估计系统的成本和效益。
要求: 学会绘制系统流图、数据流图、编写数据字典,并写出一份合理的可行性研究报告。
主要仪器设备及耗材:实际的案例,计算机,纸张等。
实验三
需求分析
内容: 应用数据流图、数据字典和简要的算法表示系统的逻辑模型。
目的: 生成经过用户确认的系统逻辑模型。
要求: 学会建立ER模型和规范化,掌握层次方框图、Warnier图、IPO图等图形工具,并写出一份合理的需求分析报告。
主要仪器设备及耗材:实际的案例,计算机,纸张等。
实验四
总体设计
内容: 寻找实现目标系统的各个不同的方案。
目的: 生成经过用户确认的系统逻辑模型。
要求: 学会绘制系统流图,数据流图,编写数据字典,并写出一份合理的需求分析报告。
主要仪器设备及耗材:实际的案例,计算机,纸张等。
实验五 详细设计
内容: 设计出程序的详细规格说明。
目的: 确定怎样具体的实现所要求的目标系统,除了应该保证程序的可靠性之外,编写出来的程序可读性好,容易理解,容易测试和和容易修改、维护是详细设计阶段的重要目的。
要求: 选择合适的详细设计工具(程序流程图、盒图、PAD图、HIPO图、判定表、判定树和PDL语言等),使用面向数据结构的设计方法(例如Jackson方法和Warnier方法)进行详细设计,用模块开发文件夹的形式组织管理与一个模块有关的全部文档。
主要仪器设备及耗材:实际的案例,计算机,纸张等。
实验六
编码和单元设计
内容: 选用合适的开发工具编写正确的容易理解、容易维护的程序模块。
目的: 编写具有可靠性强、可理解性好、可修改性强、可测试性好的代码。
要求: 使用自底向上或自顶向下的程序设计方法学开发,并实现具体的程序代码,注意程序的书写风格。
主要仪器设备及耗材:实际的案例,计算机,纸张等。
实验七
综合测试
内容: 进行软件的测试和调试,判断其可靠性。
目的: 通过各类型的测试及相应的调试使软件达到预定的要求(发现错误并改正)。
要求: 应该用正式的文档资料把测试计划、详细设计方案以及实际测试结果保存下来,写出详细的测试报告。
主要仪器设备及耗材:实际的案例,计算机,纸张等。
实验八
软件维护
内容: 通过四类维护活动(改正性维护、适应性维护、完善性维护、预防性维护)对软件进行维护。
目的: 通过各种必要的维护活动使系统持久的满足用户的需求。
要求: 记录每一次维护情况,作为正式的文档资料加以保存。
主要仪器设备及耗材:实际的案例,计算机,纸张等。
实验九 面向对象设计
内容: 应用面向对象设计方法学进行系统设计。
目的: 掌握面向对象建模、面向对象分析、面向对象设计、面向对象实现。
要求: 绘制出对象模型,写出实验报告。
主要仪器设备及耗材:实际的案例,计算机,纸张等。
(四)考核要求
能够用软件工程的思想综合应用所学的知识内容完成每个实验 ,按实验要求完成相应的文档资料。
1、张海藩,《软件工程导论》,清华大学出版社,2008年第五版;
2、软件工程原理 沈备军 陈昊鹏
陈玉亭编著。北京:高等教育出版社,2013
3、郑人杰,《实用软件工程》(第二版),清华大学出版社;
4、周之英,《现代软件工程》,科学出版社;
5、刘超编,《可视化面向对象建模技术--标准建模语言UML》,北航出版,1999年7月第一版
本课程使用教具和现代教育技术指导性意见
本课程概念较多,因此教学形式以讲授方式为主。为加强和落实动手能力的培养,每章课后应安排作业,作业应让学生尽可能在CASE环境下进行。对课程中关键性概念、设计思想方面的问题可辅以课堂讨论的形式。如条件许可,应利用网络技术进行授课、答疑和讨论。