《软件工程》理论教学大纲.doc
《《软件工程》理论教学大纲.doc》由会员分享,可在线阅读,更多相关《《软件工程》理论教学大纲.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程理论教学大纲(2000年制订,2004年修订)课程编号:英 文 名:Software Engineering课程类别:专业主干课前 置 课:计算机导论、程序设计基础、数据结构、面向对象程序设计、离散数学后 置 课:毕业设计和毕业论文学 分:3学分课 时:48课时(其中理论教学32课时,实验教学16课时)主讲教师: 韩忠愿等选定教材: 张海藩. 软件工程. 北京:人民邮电出版社. 2002年.课程概述:本课程面向信息系统与信息管理专业的学生,介绍软件系统性质、目标、环境的分析方法,目标系统逻辑联系、功能联系、控制联系和状态转换过程的描述方法,软件结构、测试方案的设计要求和分析方法,软件工
2、程学新进展,以及上述过程所用的规范化图文数表模型。具体包括:软件工程概念及其过程模型、结构化分析/设计/实现方法和工具,面向对象方法学及面向对象的概念、模型、分析方法、设计方法、实现方法,软件项目管理及其定量度量方法、相关国际标准。最后介绍佩特网等形式化方法、统一建模语言、软件常用技术和软构件的分类与检索。教学目的:本课程的教学目的,应使学生掌握大型复杂软件系统的开发方法、规则和工具。首先,应使其克服长期书写小程序形成的“重编码、轻分析设计;重编码、轻技术资料建设和管理”的习惯;其次,要理解软件工程原理/方法/规则的必要性和掌握其技术细节;第三,要了解软件工程学的进展和前沿动态;第四,要通过软
3、件系统设计的练习,巩固和应用所学知识。教学方法:本课程的难点在于,学生不曾经过大型软件开发的训练,因此在讲解中要适时插入大量软件开发事例,要求教师具有一定的软件开发经验;本课程不安排具体编程环境和开发语言的学习,但必须以大型软件开发实例说明问题,因此要求教师熟悉多种开发环境和开发语言;此外,软件开发技术的滞后和软件应用的广泛性所形成的反差,要求教师了解并适时提出计算机辅助软件工程(CASE)的问题。因此,作为教师,应把案例的收集和规律的提取作为重点;作为学生,重点是掌握基本思想和基本方法及其综合应用。教学中以讲授和讨论为主,实验内容则是在Power Designer、Project、IBM R
4、ational Rose等CASE环境下实习理论教学中的建模、分析和管理过程。 各章教学要求及教学要点第一章 软件工程概述课时分配:2课时教学要求:本章对计算机软件工程学进行简短的概述。首先要通过回顾计算机系统软硬件关系的发展简史,说明开发软件的一些错误方法和观念是怎样形成的。然后列举这些错误方法带来的严重弊病(软件危机),澄清一些糊涂观念。为了计算机系统的进一步发展,需要认真研究开发和维护软件的科学技术。应总结计算机软件技术发展的历史经验教训,借鉴其他工程领域的管理技术。教学内容:第一节 软件工程一、什么是软件工程概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、
5、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。二、软件工程的基本原理1用分阶段的生命周期计划严格管理;2坚持进行阶段评审;3实行严格的产品控制;4采用现代程序设计技术;5结果应能清楚地审查;6开发小组的人员应该少而精;7承认不断改进软件工程实践的必要性。第二节 软件工程方法学一、方法学(methodology)范型(paradigm)瀑布模型、喷泉模型、快速原型模型、增量模型、螺旋模型。二、软件工程方法学三要素:方法、工具和过程。三、传统方法学和面向对象方法学思考题:1.什么是软件
6、工程?怎么应用软件工程消除软件危机?2.软件工程化的观点认为,软件生命周期包含哪些阶段?3.简要论述结构化范式和面向对象范式的要点,并比较这两种范式的优缺点。第二章 软件过程课时分配:2课时教学要求:本章需要明确:软件过程是为了获得高质量软件产品所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程必须科学、合理,才能开发出高质量的软件产品。按照在软件生命周期全过程中应完成任务的性质,在概念上可以把软件生命周期划分成问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试以及维护等八个阶段。实际从事软件开发工作时,软件规模、种类、开发环境及使用的技术方法等因
7、素,都影响阶段的划分。因此,一个科学、有效的软件过程应该定义一组适合于所承担的项目特点的任务集合。据此,本章讲授五类典型的软件生命周期模型及其特点。教学要点第一节 软件生命周期的基本任务一、问题定义“要解决的问题是什么?”二、可行性研究“上一个阶段所确定的问题是否有行得通的解决办法?”三、需求分析用规格说明(specification) 定义“目标系统必须做什么?”四、概要设计“怎样实现目标系统?”五、详细设计“怎样具体地实现这个系统?”六、编码和单元测试写出正确的容易理解、容易维护的程序模块。七、综合测试通过各种类型的测试及相应的调试,使软件达到预定的要求。八、软件维护通过各种必要的维护活动
8、使系统持久地满足用户的需要(改正性维护、适应性维护、完善性维护、预防性维护)。第二节 瀑布模型一、 阶段间具有顺序性和依赖性。二、 推迟实现的观点。三、 质量保证的观点。思考题:1.什么是软件过程?它与软件工程方法学有什么关系?2.假设你要开发一个软件,它的功能是把某个数开平方,所得的结果应该精确到小数点后4位。一旦实现并测试完毕后,该产品将会被抛弃。你打算选用哪种软件生命周期模型?3.列出上一题所述软件产品在开发过程中可能遇到的风险。第三章 结构化分析课时分配:3课时教学要求:本章讲授用户需求的发现、求精、建模、规格说明和复审的过程。本章还要说明模型的以下作用:1.模型能帮助分析员更好地理解
9、软件系统的信息、功能和行为,从而使得需求分析工作更容易完成,使需求分析的结果更系统化。2.模型是复审需求分析成果时的焦点,因此,也成为验证规格说明的完整性、一致性和准确性的重要依据。3.模型是设计的基础,为设计者提供软件的实质性表示,通过设计工作将把这些表示转化成软件实现。在此基础上,引导学生使用实体关系图来建立数据模型,掌握数据流图的基本符号,并能正确地使用这些符号建立目标系统的功能模型。此外,简要说明状态转换图和数据字典。教学内容:第一节 概述一、需求分析的含义(发现、求精、建模、规格说明和复审的过程)。二、模型为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。三、结构化
10、分析通常建立数据模型、功能模型和行为模型等三种模型。四、用分析模型表示软件需求并写出准确的软件需求规格说明。第二节 需求分析与需求工程一、 访谈访谈(或称为会谈)。最早开始运用的获取用户需求的技术,也是迄今为止仍然广泛使用的主要的需求分析技术。二、 规格说明技术。这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。三、软件原型化方法。构建原型的要点是,它应该实现用户看得见的功能(例如屏幕显示或打印报表),省略目标系统的“隐含”功能(例如修改文件)。第三节 软件需求规格说明一、 软件需求规格说明简略大纲。引言、信息描述、功能描述、行为描述、确认标准
11、、参考书目、附录。二、需求规格说明书各部分的撰写要点。第四节 实体关系图数据模型包含三种相互关联的信息:数据对象、描述数据对象的属性及数据对象彼此间相互连接的关系。第五节 数据流图一、数据流图符号。正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。二、例子。三、图元命名。第六节 状态转换图一、 状况转换图的各种图形结构要素。二、换图的应用实例。第七节 数据字典一、数据字典是为了描述在结构化分析过程中定义的对象的内容而使用的一种半形式化的工具。二、数据字典是所有与系统相关的数据元素的有组织的
12、列表。三、数据字典是对系统中使用的所有数据元素的定义的集合。四、数据字典的内容(名字、别名、使用地点与方式、内容描述、补充信息)。五、数据字典中表示数据构成的符号。思考题:1.银行计算机储蓄系统的工作过程大致如下:储户填写存款单和取款单,由业务员键入系统。如果是存款,则系统记录存款人姓名、住址(或电话号码)、身份证号、存储类型、存款日期、到期日起、利率及密码等信息,并打印存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确和存款时未留密码,则计算利息并打印利息清单。2.用数据流图描绘本系统的功能,并用实体联系图描绘系统中的数据对象。第四章 结构化设计课时分配:6课时教
13、学要求:本章应使学生学会用各种图形描绘软件结构。描述程序处理过程的工具,可分为图形、表格和语言三类,这三类工具各有所长,教学中应该让学生能够根据需要选用适当的工具。教学内容:第一节 结构化设计与结构化分析的关系结构化分析的结果为结构化设计提供了最基本的输入信息,结构化设计是结构化分析的继续。第二节 软件设计的概念和原理一、模块化。模块是由边界元素限定的相邻的程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符来代表它。像Pascal或Ada这样的块结构语言中的Beginend对,或者C,C+和Java语言中的对,都是边界元素的例子。因此,过程、函数、子程序和宏等,都可作为模块。
14、面向对象范型中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。1.模块可分解性;2.模块可组装性;3.模块可理解性;4.模块连续性;5.模块保护性。二、抽象。三、逐步求精。四、信息隐藏。第三节 模块独立一、耦合。耦合是对一个软件结构内不同模块之间互连程度的度量,分为数据耦合,控制耦合,公共环境耦合,内容耦合。二、内聚。内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。分为功能内聚、顺序内聚、通讯内聚、过程内聚、
15、时间内聚、逻辑内聚、偶尔内聚。第四节 启发规则一、改进软件结构提高模块独立性。二、模块规模应该适中。三、深度、宽度、扇出和扇入都应适当。四、模块的作用域应该在控制域之内。五、力争降低模块接口的复杂程度。六、设计单入口单出口的模块。七、模块功能应该可以预测。第五节 表示软件结构的图形工具一、 层次图。二、 HIPO图。三、 层次图和HIPO图的区别和所适用的情况。第六节 面向数据流的设计方法一、概念。1.变换流如果数据流图中的输入经过加工处理后才沿输出通道变换成外部形式后离开软件系统,这种数据流称为变换流。2.事务流如果数据流图中的输入未经加工处理后就沿多个输出通道离开软件系统进入下一个分支,这
16、种数据流称为变换流。二、变换分析。复查基本系统模型、复查并精化数据流图、确定数据流图具有变换特性还是事务特性、确定输入流和输出流的边界,从而孤立出变换中心、完成“第一级分解”、完成“第二级分解”、使用设计度量和启发规则对第一次分割得到的软件结构进一步精化。三、事务分析。事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在于由数据流图到软件结构的映射方法不同。四、设计优化。第七节 过程设计一、经典的结构程序设计。只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这三种基本控制结构。二、扩展的结构程序设计。除了上述三种基本控制结构之外,还允许使用DO-CASE型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 理论 教学大纲
限制150内