《软件工程》实验大纲

一、    说明

(一) 课程性质

《软件工程》课程是计算机科学与技术专业必修的一门专业课程。为了摆脱软件危机的困扰,一门研究软件开发与维护的普遍原理和技术的工程学科——软件工程学从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》,北航出版,19997月第一版

本课程使用教具和现代教育技术指导性意见

本课程概念较多,因此教学形式以讲授方式为主。为加强和落实动手能力的培养,每章课后应安排作业,作业应让学生尽可能在CASE环境下进行。对课程中关键性概念、设计思想方面的问题可辅以课堂讨论的形式。如条件许可,应利用网络技术进行授课、答疑和讨论。