第一篇:《软件工程》理论教学大纲
《软件工程》理论教学大纲
(2000年制订,2004年修订)
课程编号:210024 英 文 名:Software Engineering 课程类别:专业主干课
前 置 课:计算机导论、程序设计基础、数据结构、面向对象程序设计、离散数学 后 置 课:毕业设计和毕业论文 学
分:3学分
课
时:48课时(其中理论教学32课时,实验教学16课时)主讲教师: 韩忠愿等
选定教材: 张海藩.软件工程.北京:人民邮电出版社.2002年.课程概述:
本课程面向信息系统与信息管理专业的学生,介绍软件系统性质、目标、环境的分析方法,目标系统逻辑联系、功能联系、控制联系和状态转换过程的描述方法,软件结构、测试方案的设计要求和分析方法,软件工程学新进展,以及上述过程所用的规范化图文数表模型。具体包括:软件工程概念及其过程模型、结构化分析/设计/实现方法和工具,面向对象方法学及面向对象的概念、模型、分析方法、设计方法、实现方法,软件项目管理及其定量度量方法、相关国际标准。最后介绍佩特网等形式化方法、统一建模语言、软件常用技术和软构件的分类与检索。教学目的:
本课程的教学目的,应使学生掌握大型复杂软件系统的开发方法、规则和工具。首先,应使其克服长期书写小程序形成的“重编码、轻分析设计;重编码、轻技术资料建设和管理”的习惯;其次,要理解软件工程原理/方法/规则的必要性和掌握其技术细节;第三,要了解软件工程学的进展和前沿动态;第四,要通过软件系统设计的练习,巩固和应用所学知识。教学方法:
本课程的难点在于,学生不曾经过大型软件开发的训练,因此在讲解中要适时插入大量软件开发事例,要求教师具有一定的软件开发经验;本课程不安排具体编程环境和开发语言的学习,但必须以大型软件开发实例说明问题,因此要求教师熟悉多种开发环境和开发语言;此外,软件开发技术的滞后和软件应用的广泛性所形成的反差,要求教师了解并适时提出计算机辅助软件工程(CASE)的问题。因此,作为教师,应把案例的收集和规律的提取作为重点;作为学生,重点是掌握基本思想和基本方法及其综合应用。教学中以讲授和讨论为主,实验内容则是在Power Designer、Project、IBM Rational Rose等CASE环境下实习理论教学中的建模、分析和管理过程。各章教学要求及教学要点
第一章 软件工程概述
课时分配:2课时 教学要求:
本章对计算机软件工程学进行简短的概述。首先要通过回顾计算机系统软硬件关系的发展简史,说明开发软件的一些错误方法和观念是怎样形成的。然后列举这些错误方法带来的严重弊病(软件危机),澄清一些糊涂观念。为了计算机系统的进一步发展,需要认真研究开发和维护软件的科学技术。应总结计算机软件技术发展的历史经验教训,借鉴其他工程领域的管理技术。教学内容:
第一节
软件工程
一、什么是软件工程
概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
二、软件工程的基本原理
1.用分阶段的生命周期计划严格管理; 2.坚持进行阶段评审; 3.实行严格的产品控制; 4.采用现代程序设计技术; 5.结果应能清楚地审查; 6.开发小组的人员应该少而精;
7.承认不断改进软件工程实践的必要性。
第二节 软件工程方法学
一、方法学(methodology)范型(paradigm)瀑布模型、喷泉模型、快速原型模型、增量模型、螺旋模型。
二、软件工程方法学三要素:方法、工具和过程。
三、传统方法学和面向对象方法学 思考题:
1.什么是软件工程?怎么应用软件工程消除软件危机? 2.软件工程化的观点认为,软件生命周期包含哪些阶段?
3.简要论述结构化范式和面向对象范式的要点,并比较这两种范式的优缺点。
第二章 软件过程
课时分配:2课时 教学要求:
本章需要明确:软件过程是为了获得高质量软件产品所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程必须科学、合理,才能开发出高质量的软件产品。按照在软件生命周期全过程中应完成任务的性质,在概念上可以把软件生命周期划分成问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试以及维护等八个阶段。实际从事软件开发工作时,软件规模、种类、开发环境及使用的技术方法等因素,都影响阶段的划分。因此,一个科学、有效的软件过程应该定义一组适合于所承担的项目特点的任务集合。据此,本章讲授五类典型的软件生命周期模型及其特点。教学要点
第一节 软件生命周期的基本任务
一、问题定义—“要解决的问题是什么?”
二、可行性研究—“上一个阶段所确定的问题是否有行得通的解决办法?”
三、需求分析—用规格说明(specification)定义“目标系统必须做什么?”
四、概要设计—“怎样实现目标系统?”
五、详细设计—“怎样具体地实现这个系统?”
六、编码和单元测试—写出正确的容易理解、容易维护的程序模块。
七、综合测试—通过各种类型的测试及相应的调试,使软件达到预定的要求。
八、软件维护—通过各种必要的维护活动使系统持久地满足用户的需要(改正性维护、适应性维护、完善性维护、预防性维护)。
第二节 瀑布模型
一、阶段间具有顺序性和依赖性。
二、推迟实现的观点。
三、质量保证的观点。思考题:
1.什么是软件过程?它与软件工程方法学有什么关系?
2.假设你要开发一个软件,它的功能是把某个数开平方,所得的结果应该精确到小数点后4位。一旦实现并测试完毕后,该产品将会被抛弃。你打算选用哪种软件生命周期模型?
3.列出上一题所述软件产品在开发过程中可能遇到的风险。
第三章 结构化分析
课时分配:3课时 教学要求:
本章讲授用户需求的发现、求精、建模、规格说明和复审的过程。本章还要说明模型的以下作用:1.模型能帮助分析员更好地理解软件系统的信息、功能和行为,从而使得需求分析工作更容易完成,使需求分析的结果更系统化。2.模型是复审需求分析成果时的焦点,因此,也成为验证规格说明的完整性、一致性和准确性的重要依据。3.模型是设计的基础,为设计者提供软件的实质性表示,通过设计工作将把这些表示转化成软件实现。在此基础上,引导学生使用实体—关系图来建立数据模型,掌握数据流图的基本符号,并能正确地使用这些符号建立目标系统的功能模型。此外,简要说明状态转换图和数据字典。教学内容:
第一节
概述
一、需求分析的含义(发现、求精、建模、规格说明和复审的过程)。
二、模型—为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。
三、结构化分析通常建立数据模型、功能模型和行为模型等三种模型。
四、用分析模型表示软件需求并写出准确的软件需求规格说明。
第二节 需求分析与需求工程
一、访谈—访谈(或称为会谈)。
最早开始运用的获取用户需求的技术,也是迄今为止仍然广泛使用的主要的需求分析技术。
二、规格说明技术。
这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。
三、软件原型化方法。
构建原型的要点是,它应该实现用户看得见的功能(例如屏幕显示或打印报表),省略目标系统的“隐含”功能(例如修改文件)。
第三节 软件需求规格说明
一、软件需求规格说明简略大纲。
引言、信息描述、功能描述、行为描述、确认标准、参考书目、附录。
二、需求规格说明书各部分的撰写要点。
第四节 实体—关系图
数据模型包含三种相互关联的信息:数据对象、描述数据对象的属性及数据对象彼此间相互连接的关系。
第五节 数据流图
一、数据流图符号。正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。
二、例子。
三、图元命名。
第六节 状态转换图
一、状况转换图的各种图形结构要素。
二、换图的应用实例。
第七节 数据字典
一、数据字典是为了描述在结构化分析过程中定义的对象的内容而使用的一种半形式化的工具。
二、数据字典是所有与系统相关的数据元素的有组织的列表。
三、数据字典是对系统中使用的所有数据元素的定义的集合。
四、数据字典的内容(名字、别名、使用地点与方式、内容描述、补充信息)。
五、数据字典中表示数据构成的符号。思考题:
1.银行计算机储蓄系统的工作过程大致如下:储户填写存款单和取款单,由业务员键入系统。如果是存款,则系统记录存款人姓名、住址(或电话号码)、身份证号、存储类型、存款日期、到期日起、利率及密码等信息,并打印存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确和存款时未留密码,则计算利息并打印利息清单。
2.用数据流图描绘本系统的功能,并用实体联系图描绘系统中的数据对象。
第四章 结构化设计
课时分配:6课时 教学要求:
本章应使学生学会用各种图形描绘软件结构。描述程序处理过程的工具,可分为图形、表格和语言三类,这三类工具各有所长,教学中应该让学生能够根据需要选用适当的工具。教学内容:
第一节
结构化设计与结构化分析的关系
结构化分析的结果为结构化设计提供了最基本的输入信息,结构化设计是结构化分析的继续。
第二节 软件设计的概念和原理
一、模块化。模块是由边界元素限定的相邻的程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符来代表它。像Pascal或Ada这样的块结构语言中的Begin„end对,或者C,C++和Java语言中的{„}对,都是边界元素的例子。因此,过程、函数、子程序和宏等,都可作为模块。面向对象范型中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件。
模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
1.模块可分解性; 2.模块可组装性; 3.模块可理解性; 4.模块连续性; 5.模块保护性。
二、抽象。
三、逐步求精。
四、信息隐藏。
第三节 模块独立
一、耦合。
耦合是对一个软件结构内不同模块之间互连程度的度量,分为数据耦合,控制耦合,公共环境耦合,内容耦合。
二、内聚。
内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。分为功能内聚、顺序内聚、通讯内聚、过程内聚、时间内聚、逻辑内聚、偶尔内聚。
第四节 启发规则
一、改进软件结构提高模块独立性。
二、模块规模应该适中。
三、深度、宽度、扇出和扇入都应适当。
四、模块的作用域应该在控制域之内。
五、力争降低模块接口的复杂程度。
六、设计单入口单出口的模块。
七、模块功能应该可以预测。
第五节 表示软件结构的图形工具
一、层次图。
二、HIPO图。
三、层次图和HIPO图的区别和所适用的情况。
第六节 面向数据流的设计方法
一、概念。
1.变换流—如果数据流图中的输入经过加工处理后才沿输出通道变换成外部形式后离开软件系统,这种数据流称为变换流。
2.事务流—如果数据流图中的输入未经加工处理后就沿多个输出通道离开软件系统进入下一个分支,这种数据流称为变换流。
二、变换分析。
复查基本系统模型、复查并精化数据流图、确定数据流图具有变换特性还是事务特性、确定输入流和输出流的边界,从而孤立出变换中心、完成“第一级分解”、完成“第二级分解”、使用设计度量和启发规则对第一次分割得到的软件结构进一步精化。
三、事务分析。
事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在于由数据流图到软件结构的映射方法不同。
四、设计优化。
第七节 过程设计
一、经典的结构程序设计。
只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这三种基本控制结构。
二、扩展的结构程序设计。
除了上述三种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构。
三、修正的结构程序设计。
在上述结构的基础上,再加上允许使用LEAVE(或BREAK)的结构。
第八节 过程设计的工具
描述程序处理过程的工具称为过程设计的工具,它们可以分为图形、表格和语言三类。
一、程序流程图。
二、盒图(N-S图)。
盒图没有箭头,因此不允许随意转移控制。坚持使用盒图作为详细设计的工具,可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯。
三、PAD图。
用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。
四、判定表。
当算法中包含多重嵌套的条件选择时,判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。
五、判定树。
判定表虽然能清晰地表示复杂的条件组合与应做的动作之间的对应关系,但其含义却不是一眼就能看出来的,初次接触这种工具的人要理解它需要有一个简短的学习过程。判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。
六、过程设计语言(PDL)。思考题:
1.分析模型中的哪些信息为数据设计奠定了基础?哪些信息为软件体系结构设计奠定了基础?那些信息为接口设计奠定了基础?那些信息为过程设计奠定了基础?
2.为每种类型的模块偶合举一个具体例子。3.对每种类型的模块内聚举一个具体例子。4.举例说明信息隐藏和模块独立的关系。5.举例说明藕合和可移植性的关系。
第五章 结构化实现
课时分配:3课时 教学要求:
学习本章后,为了设计出有效的测试方案,学生必须深入理解并应用指导软件测试的基本准则,应该能够应用各种测试方法设计软件系统的测试方案,并根据测试结构进行错误定位、软件调试和软件可靠性估计等后续工作。教学内容:
第一节 软件实现的基本问题
一、选择程序设计语言。
二、编码风格。
程序内部的文档、数据说明、语句构造、输入/输出、效率。
第二节 软件测试基础
一、测试目标。
1.测试是为了发现程序中的错误而执行程序的过程;
2.好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; 3.成功的测试是发现了至今为止尚未发现的错误的测试。
二、黑盒测试和白盒测试。
三、测试准则。
1.所有的测试都应该能追溯到用户需求;
2.应该在测试开始之前的相当长时间,就制定出测试计划; 3.测试发现的错误中的80%很可能是由程序中20%的模块造成的; 4.测试应该从“小规模”开始,并逐步进行“大规模”测试; 5.穷举测试是不可能的;
6.为了达到最佳的测试效果,应该由独立的第三方来从事测试工作。
四、流图。
第三节 逻辑覆盖
一、语句覆盖。
二、判定覆盖。
三、条件覆盖。
四、判定/条件覆盖。
五、条件组合覆盖。
第四节 控制结构测试
一、基本路径测试。
1.根据过程设计结果画出相应的流图; 2.计算流图的环形复杂度; 3.确定线性独立路径的基本集合;
4.设计可强制执行基本集合中每条路径的测试用例。
二、条件测试。
三、数据流测试。
四、循环测试。1.简单循环; 2.嵌套循环; 3.串接循环。
第五节 黑盒测试技术
一、等价划分。
1.如果规定了输入值的范围,则可划分出一个有效的等价类输入值在此范围内(两个无效的等价类输入值小于最小值或大于最大值)。2.如果规定了输入数据的个数,则类似地也可以划分出一个有效的等价类和两个无效的等价类。
3.如果规定了输入数据的一组值,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类(任一个不允许的输入值)。
4.如果规定了输入数据必须遵循的规则,则可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从各种不同角度违反规则)。
5.如果规定了输入数据为整型,则可以划分出正整数、零和负整数等三个有效类。6.如果程序的处理对象是表格,则应该使用空表,以及含一项或多项的表。
二、边界值分析。
三、错误推测。
第六节 测试策略
一、测试步骤。
二、单元测试。1.代码审查; 2.软件测试。
三、集成测试。1.自顶向下集成; 2.自底向上集成; 3.回归测试;
4.不同集成测试策略的比较。
四、确认测试。
第七节 调试
一、调试过程。
二、调试途径。1.蛮干法; 2.回溯法; 3.原因排除法。思考题:
航空公司向软件公司订购了一个规划飞行路线的程序。假设你是另一软件公司的软件工程师。航空公司已雇用你在的公司对上述程序进行验收测试。你的任务是,根据下述事实设计验收测试的输入数据,并解释你选取这些数据的理由:领航员向程序输入出发点和目的地,以及根据天气和飞机型号而初步确定的飞行高度。程序读入途中的风向风力等数据,并且制定出三套飞行计划(高度、速度、方向及途中的五个位子校核点)。所制定的飞行计划应做到燃油消耗和飞行时间都最少。
第六章 面向对象的概念与模型
课时分配:3课时 教学要求:
面向对象方法学比较自然地模拟了人类认识客观世界的思维方式,本章教学应使学生了解面向对象方法的概念和规律和工具,能够用面向对象的思想描述问题域,从而建立关于软件系统的对象模型,当然,出于面向对象建模的需要,也要重温过程建模和功能建模方法。教学内容:
第一节
概述
一、面相对象思想基本内涵:OO=Objects+ Classes+ Inheritance+ Communication with messages。
二、面向对象方法学的主要优点。
与人类习惯的思维方法一致、稳定性好、可重用性好、较易开发大型软件产品、可维护性好。
三、面向对象方法的其他概念。
(类Class)、对象、消息(Message)、方法(Method)、属性(Attribute)、封装(Encapsulation)、继承(Inheritance)、多态性(Polymorphism)、重载(Overloading)。
第二节 对象模型
一、表示类—&—对象的图形符号。
二、表示结构的图形符号。
三、对象模型之例。
第三节 动态模型
一、概念。
二、符号。
第四节 功能模型
一、表示方法。二、三种模型之间的关系。思考题:
1.试分析传统的生命周期方法学的优缺点。2.什么是面向对象方法学?这种方法有什么优点? 3.什么是对象?它与传统的数据有何关系?有何不同? 4.什么是模型?开发软件为什么要建立模型? 5.什么是对象模型? 6.什么是动态模型? 7.什么是功能模型?
第七章 面向对象分析
课时分配:2课时 教学要求:
本章介绍面向对象思想和方法在具体软件系统分析中的应用,包括一些具体的操作技术,如对象、属性、联系和行为的初选和求精等。本章讲述的自动取款机系统和电梯系统这两个实例,应该有助于读者更深入、具体地理解面向对象分析的方法与过程。教学内容:
第一节 分析过程
一、概述。二、三个子模型与五个层次。
第二节 需求陈述
一、书写要点。
二、例子。
第三节 建立对象模型
一、确定类—&—对象。1.找出候选的类—&—对象; 2.筛选出正确的类—&—对象。
二、确定关联。1.初步确定关联; 2.筛选; 3.进一步完善。
三、划分主题。
四、确定属性。1.分析; 2.选择。
五、识别继承关系。
六、反复修改。
第四节 其他过程
一、建立动态模型。
二、建立功能模型。
三、定义服务。
第五节 面向对象分析实例
思考题:
1.用面向对象方法分析研究一个储蓄系统,试建立它的对象模型、动态模型和功能模型。2.用面向对象方法分析研究一个机票预定系统,试建立它的对象模型、动态模型和功能模型。
3.用面向对象方法分析研究一个患者监护系统,试建立它的对象模型、动态模型和功能模型。
第八章 面向对象设计
课时分配:2课时 教学要求:
本章在前面两章关于面向对象思想及其基本应用的系统介绍的基础上,考虑到面向对象分析与结构化分析在过程、要求和原则等方面的相似性,讲授从略;同时考虑到具体实现技术的差异,着重介绍在面向对象方法中实现模块化、信息隐蔽的若干技术。教学内容:
第一节 面相对象设计方法与过程
一、面向对象设计的准则。
二、启发规则。
三、系统分解。
四、设计问题域子系统。
五、设计人-机交互子系统。
六、设计任务管理子系统。
七、设计数据管理子系统。
八、设计类中的服务。
九、设计关联。
十、设计优化。
十一、面向对象分析与设计实例。
第九章 计划
课时分配:4课时 教学要求:
软件工程包括技术和管理两方面的内容,是管理与技术紧密结合的产物。只有在科学而严格的管理之下,先进的技术方法和优秀的软件工具才能真正发挥出它们的威力。因此,本章教学应使学生在认识软件管理特点的基础上,掌握主流的估算和评价指标,并能据此安排和优化软件项目的进度。教学内容:
第一节 度量软件规模
一、代码行技术。
二、功能点技术。
功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。1.信息域特性—输入项数(Inp)、输出项数(Out)、查询数(Inq),主文件数(Maf)和外部接口数(Inf)。
2.计算未调整的功能点数UFP。3.计算技术复杂性因子TCF。
第二节 工作量估算
一、静态单变量模型:E=A+B×(ev)C。
二、动态多变量模型:E=〔LOC×B0.333/P〕3×(1/t)4。
三、COCOMO模型。
第三节 进度计划
一、基本原则。
二、Gantt图。
三、工程网络。
四、估算进度。
五、关键路径。
六、机动时间。思考题:
分析研究一个仓库管理信息系统,要求: 1.用代码行技术估算本系统的规模; 2.用功能点技术估算本系统的规模; 3.用静态单变量模型估算开发本系统所需的工作量; 4.假设由一个人开发本系统,请制定进度计划; 5.假设由两个人开发本系统,请制订进度计划。
第十章 软件工程项目管理组织
课时分配:2课时 教学要求:
本章教学要具体介绍国外比较流行的民主制程序员组、主程序员组和现代程序员组的组织方式,讨论不同组织方式的优缺点和适用范围。然后再从更广阔的角度进一步讨论通用的软件项目组的组织结构问题,主要讲述风险管理、质量保证和配置管理等三类软件工程控制活动。教学内容:
第一节 组织策略
一、民主制程序员组;
二、主程序员组;
三、现代程序员组;
四、软件项目组。
第二节 控制策略
一、风险管理;
二、质量保证;
三、配置管理。
第十一章 国际标准
课时分配:3课时 教学要求:
本章简要地介绍几个与软件项目管理有关的国际标准,供学生在实际工作中参考、借鉴。教学内容:
第一节 常用标准
一、IEEE1058.1软件项目管理计划标准。
二、ISO9000质量标准。
三、ISO/IEC12207软件生命周期过程标准。
四、ISO/IECTR15504软件过程评估标准。
五、能力成熟度模型。
附 录:参考书目
1.齐治昌等.软件工程[M].北京:高等教育出版社,北京.1997.2.王选.软件设计方法[M].北京:清华大学出版社,1992.3.Pont M J.Software Engineering with C++ and CASE Tools[M].Addison-Wesle,1996.4.周之英.现代软件工程[M].北京:科学出版社,1999.5.张海藩.软件工程导论(第三版)[M].北京:清华大学出版社,1998.6.张海藩.牟永敏.面向对象程序设计实用教程[M].北京:清华大学出版社,2001.7.张海藩等.计算机第四代语言[M].北京:电子工业出版社,1996.8.蒋慧等.UML设计核心技术[M].北京:希望电子出版社,2001.9.柏路等译.C++面向对象的程序开发技术[M].北京:电子工业出版社,1996.10.Roger S.Pressman.Software Engineering—A Practitioner’s Approach.Fourth Edition[M].McGraw-Hill,1997.11.Stephen R.Schach.Software Engineering with Java[M].McGraw-Hill,1999.执笔人:
韩忠愿
审定人:
程国达
2004年6月
2004年6月
2004年6月
院(系、部)负责人:韩忠愿
第二篇:《软件工程》教学大纲
《软件工程》教学大纲
《软件工程》教学大纲 课程编号及名称:040112软件工程 2 教学目的与要求:
软件工程是计算机科学与技术专业开设的一门专业必修课,是指导计算机软件开发与维护、培养学生计算机软件开发与应用综合能力的一门综合性课程。学生通过本课程的学习与课程实践,应能了解软件项目开发和维护的一般过程,掌握软件开发的基本原理和技术,掌握现代化的软件开发方法和步骤,为今后从事软件开发打下坚实基础。3学时学分:
总学时48学时,总学分3。其中授课40学时,实验8学时。4 先修课程的要求:
数据结构、C语言程序设计、面向对象的程序设计、数据库系统原理 教材与教学参考书目:
[1]
选用教材:《软件工程(第二版)》齐治昌,高等教育出版社 [2] 《软件工程导论》(第四版)张海藩编著,清华大学出版社 [3] 《实用软件工程》(第二版)郑人杰编著,清华大学出版社 [4] 《软件工程技术概论》朱三元 等编著,科学出版社 [5] 《现代软件工程》(上、中、下)周之英 编著,科学出版社 [6] 《面向对象的系统分析》 邵维忠 杨芙清 著,清华大学出版社 [7] 《软件测试》(美)Ron Patton 著,周予滨 等译,机械工业出版社 [8] 《System Analysis and Design Methods, fifth Edition》,Jeffrey L.等著,高等教育出版社
[9] 《能力成熟度模型(CMM):软件过程改进指南》,SEI编著,刘孟仁 等译,电子工业出版社
[10] 《软件测试自动化技术与实例详解》,Mark Fewster & Dorothy Graham 著,舒智勇等译,电子工业出版社
[11] 《软件工程》第二版 王立福等编著,北京大学出版社 [12] 《UML参考手册》Ivar Jacobson,James Rumbaugh,Grady Booch著,姚淑兰、唐发根译,机械工业出版社 [13] 刘超编,《可视化面向对象建模技术--标准建模语言UML》,北航出版,1999年7月第一版 6 课程主要内容:
软件危机与软件工程;软件、软件工程过程与典型的软件工程过程模型;与瀑布模型、演化模型等相对应的软件开发方法;面向对象的开发方法等。
(一)绪论(2学时)
软件危机与软件工程概念;软件工程过程及其典型开发模型;软件开发应遵循的基本原则;软件质量评价与软件度量等
(二)可行性分析与需求分析(6学时)
可行性研究的任务、种类与方法;软件需求及需求分析的任务、意义;需求获取技术;结构化分析技术
(三)系统设计(6学时)
系统设计的阶段与任务;模块独立、内聚与耦合概念;结构化设计方法;Jackson方法;详细设计工具
(四)系统编码(2学时)
软件实现;开发工具选择的原则;软件编程的风格与规范
(五)系统测试(4学时)
《软件工程》教学大纲
软件测试的概念、任务与原则;软件测试的阶段及过程管理;软件测试方法及方案设计;软件调试;软件测试自动化;软件可靠性研究
(六)系统运行及维护(2学时)
系统交付使用的方式及相关工作;软件维护的种类与相关概念;软件维护的实施过程与责任分工;提高软件可维护性的技术
(七)原型开发方法(6学时)
传统开发方法的问题;原型概念;原型开发方法及其支撑条件
(八)面向对象的软件工程开发方法(8学时)
面向对象方法概述及其优势;面向对象的分析方法;面向对象的设计方法;统一建模语言UML; 软件复用
(九)软件项目管理与质量保证(4学时)
软件项目管理概述;软件项目规划与估算;软件项目风险管理;软件项目的组织与进度计划;软件配置管理概述、配置管理的内容与工具;软件质量保证与软件过程能力成熟度模型CMM 教学内容重点:软件工程过程与典型的软件工程过程模型;软件开发应遵循的基本原则;结构化分析与设计技术;原型开发方法;面向对象的分析与设计方法
教学内容难点:结构化分析与设计技术;面向对象的分析与设计方法 7 实验教学安排:
在结构化分析方法、结构化设计方法与Jackson方法、原型开发方法、面向对象的软件工程开发方法教学过程中安排3-4次实验活动,要求学生认真完成。8 课程考核方式:
由于本课具有实践性强的特点,建议采用大作业平时成绩与结课考试相结合的方法综合评定学生成绩。本课特点及教学中应注意的问题:
本课特点:
1、实践性强;
2、表面理解显得较易,切实掌握非常困难。针对以上特点,教学过程中应极为重视实践环节的指导与检查,要求学生认真完成实践活动,以求学得扎实、深刻。
第三篇:软件工程教学大纲
《软件工程》教学大纲
课程名称:软件工程
英文名称:Software Engineering 学时数及学分:54学时 3学分 教材名称及作者、出版社:《软件工程导论》齐治昌、谭庆平、宁洪,高等教育出版社。大纲主笔人:郭
一、课程的目的、要求和任务
“软件工程”是计算机科学软件专业的一门重要专业骨干课程,它的主要目地和任务是: 1. 系统地介绍软件工程的基本原理、概念、技术和方法,简介软件工程的最新技术及其研究发展方向;2. 通过本课程的学习,使学生了解、掌握软件生存周期阶段的工程任务、具体过程、技术过程、技术方法和各种工具;3. 通过本课程的学习,使学生了解软件工程管理的重要性及基本的管理技术;4. 能将上述知识用于该课程的课程设计实习中,实现一个具体题目的全部软件开发过程。
二、大纲基本内容及学时分配 1.概论(4学时)
1)软件危机
2)软件工程概论
3)技术审查和管理复审
说明:要求学生掌握本节内容;2)、3)是本节重点。2.可行性研究(4学时)
1)可行性研究的任务及步骤 2)系统流程图与数据流图 3)数据字典
4)成本效益分析
说明:要求学生掌握本节内容;1)、2)、4)是本节重点。3.需求分析(8学时)
1)需求分析的任务及分析过程 2)验证分析的图型工具
3)验证软件需求 4)原型法
说明:要求学生掌握本节内容;1)、2)、3)是本节重点。4.总体设计(8学时)
1)总体设计的任务及过程 * 2)软件设计的重要概念及规则 3)软件设计的图形工具 * 4)面向数据流的设计方法 * 说明:要求学生掌握本节内容;1)、3)、4)是本节重点。5.详细设计(8学时)1)结构化程序设计
2)详细设计的工具 3)Jackson 设计方法 4)Warnier 设计方法
5)程序复杂度的定量度量方法
说明:要求学生掌握本节内容;1)、2)、5)是本节重点。6.编码(4学时)
1)程序设计语言的分类及选择 2)程序设计的风格及方法 3)程序设计自动化及工具
说明:要求学生掌握本节内容;2)是本节重点。7.测试(8学时)
1)软件测试的目标及测试的步骤
2)黑盒测试、白盒测试及测试方案的设计 3)单元测试、集成测试、验收测试 4)调试及软件可靠性的估算
5)自动测试工具
说明:要求学生掌握本节内容;1)、2)、4)是本节重点。8.维护(4学时)
1)软件维护的定义及特点 * 2)维护的进行过程和可维护性
说明:要求学生掌握本节内容;1)是本节重点。9.软件工程的管理技术(6学时)
1)成本估算
2)进度计划及人员组织
3)软件的质量保证
4)项目计划的制定及管理
5)软件工程的管理工具
说明:要求学生掌握本节内容;1)、3)、4)是本节重点。10.面向对象方法学引论(6学时)
1)基本概念及面向对象建模 2)对象模型 3)动态模型 4)功能模型
说明:本节内容选讲;1)是本节重点。11.面向对象分析(4学时)
1)面向对象分析的基本过程及需求陈述 2)建立对象模型、动态模型、功能模型 3)定义服务
说明:本节内容选讲;1)、2)是本节重点。12.面向对象设计(6学时)
1)面向对象设计的准则、启发规则及软件重用 2)系统分解
3)问题域、人-机交互、任务管理、数据管理等子系统的设计 4)设计类中的服务、关联及设计优化 说明:本节内容选讲;1)、3)是本节重点。13. 面向对象的实现(4学时)
1)程序设计语言的选择 2)程序设计风格
3)面向对象测试
说明:本节内容选讲。
三、与其它课程的关系
1.先行课程: 程序设计语言、数据结构、操作系统、编译原理、数据库等。
2.后续课程:高级程序设计语言概论、软件工具与环境、信息管理系统(MIS)、计算机辅助教育等。
四、考核方式
1.期末闭卷考试 占总成绩的50–60% 2.课程设计 占总成绩的30% 3.平时成绩(作业、上机和课堂考勤等)占总成绩的 10-20%
五、参考书目
《软件工程导论》齐治昌、谭庆平、宁洪,高等教育出版社。《软件工程概论》,孙振飞 应振澍 编著,湖南科学技术出版社。
第四篇:软件工程实验教学大纲
软件工程实验教学大纲
前 言
软件工程实验是为计算机相关专业本科《软件工程》课程配套设置的,是《软件工程》课程讲授中一个重要的、不可或缺的实践环节。其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件初步设计、软件详细设计、软件测试等阶段的方法和技术,通过该课程设计使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。
按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,通过对一个简单项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。因此设置五个实验项目,从项目发的准备工作,系统分析过程,系统设计过程,软件测试到系统实施,覆盖软件开发的整个过程,此外又引入我国国家《计算机开发规范》,以规范技术文档的书写标准,提高实验教学质量。
通过实验训练,达到如下目的:
使学生进一步了解和掌握软件工程原理,提高对实际项目的分析和设计能力,通过实验课程,熟悉和基本掌握软件工程方法学、软件开发的过程,文档资料的编写格式及规范,全面领会和贯通所学习的理论知识,从而培养学生综合运用所学课程知识,分析解决问题的能力,培养学生理论联系实际作风,实事求是,严肃认真的科学态度和良好的工作作风,为今后从事科学研究工作打下基础。
实验一:项目开发的准备工作
实验学时:2 实验类型:验证性
一、目的与任务
目的:确定课题,组织组员,合理分工,熟悉软件开发环境,培养团队精神。
任务:学习软件开发小组的组织和管理,合理分工,将项目开发各阶段的任务明确,并熟悉相应的软件开发环境。
二、内容、要求与安排方式
1、实验内容与要求:
根据各组选择的课题,实行项目经理制,各组推荐一名组长,统一管理整个项目的实施过程,并合理调整资源和负责项目全局;根据项目的难易合理分配组员的任务,对问题达成一致的看法;针对项目的实施,熟悉相应的软件开发工具的使用环境。
2、实验安排方式:
本实验为开放实验,各组可同时进行实验,每组4-6人。3.准备参考资料和阅读相关的国家有关软件开发的标准文档。
三、思考题
1、项目开发首先要做的事是什么?
2、你认为该软件应具备的最重要的特性是什么。
3、你认为怎样分工是最合理的?
实验二:系统分析过程
实验学时:4 实验类型:验证性
一、目的与任务
目的:确定项目的可实施性,在此基础上完成系统的逻辑功能模型的建立。
任务:采用不同的软件开发技术,完成对项目的分析过程,给出系统的逻辑功能模型,数据字典以及规格说明书。
二、内容、要求与安排方式
1、实验内容与要求:
明白项目的业务流程图,绘制数据流程图,功能分析图,编写数据字典,数据加工处理的描述,软件系统流程设想图(新系统模型),需求规格说明书。
2、实验安排方式:
本实验为开放实验,各组可同时进行实验,每组8-10人。
三、思考题
1、需求分析在软件开发中真的有那么重要吗?
2、分析系统流程图,流程图和数据流图的区别和各自的特点。
3、怎样写合乎规范的数据流图和数据词典?
4、怎样组织对该工作的评审?
实验三:系统设计过程
实验学时:4 实验类型:设计性
一、目的与任务
目的:在实验二基础上完成系统的体系结构的建立和系统详 2 细设计,并给出相应的规格说明书。
任务:认真分析实验二的结果,给出系统合理的体系结构,描绘系统结构图,并合理划分系统的各组成模块,最后给出系统的各部分设计规格说明书。
二、内容、要求与安排方式
1、实验内容与要求:
功能结构图设计,软件处理流程设计,输出设计(主要指打印输出设计),存储文件格式设计(数据库结构设计),输入设计(主要指数据录入卡设计),代码设计,程序设计说明书
2、实验安排方式:
本实验为开放实验,各组可同时进行实验,每组8-10人。
三、思考题
1.系统设计和需求分析的关系是什么?两者必须先后关联吗? 2.怎样描绘系统的体系结构? 3.怎样绘制复合规范的流程图。4.怎样组织对设计阶段工作的评审?
实验四:系统实现
实验学时:4 实验类型:设计性
一、目的与任务
目的:系统运行和软件后期制作,了解程序设计的风格。任务:编写源程序,正确书写软件说明书和用户手册,总结软件开发中的得失。
二、内容、要求与安排方式
1、实验内容与要求:
完善系统所涉及的程序框图,源程序,模拟运行数据,打印报表,软件使用说明书和用户手册等。
2、验安排方式:
本实验为开放实验,各组可同时进行实验,每组8-10人。
三、思考题
1、怎样合理选择软件开发的工具?
2、怎样进行用户说明手册和使用手册的编写。
3、总结项目实施中的得失。
实验五:软件测试
实验学时:4 实验类型:综合性
一、目的与任务
目的:在实验四的基础上,完成对系统的组装和测试。
任务:正确运用软件测试技术和方法,完成系统的单元测试、综合测试、确认测试、系统测试的方法,掌握测试用例的设计方法,并给出测试报告。
二、内容、要求与安排方式
1、实验内容与要求:
(1)能够正确运用软件测试的过程与方法,结合一个模拟课题,复习、巩固、软件工程中系统测试知识,提高软件测试的实践能力。
(2)熟悉单元测试、综合测试、确认测试、系统测试的方法,掌握测试用例的设计方法。
(3)树立正确的软件测试思想,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。
2、验安排方式:
本实验为开放实验,各组可同时进行实验,每组8-10人。
三、思考题
1.怎样看待测试的重要性。2.怎样选择测试的技术和方案。
3.比较逻辑测试和基本路径测试的不同和联系。4.怎样组织对测试阶段工作的评审?
附录一:
实验要求
软件工程实验要求学生采用“项目小组”的形式,结合具体的开发项目进行设计。具体要求如下:
1、班级按项目小组进行分组,每组不得超过6人
2、每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目
3、项目中的每项任务要落实到人且规定该任务的起止日期和时间
4、每个项目小组必须按照《软件工程实验教学大纲》附录中给定的文档规范标准提供项目文档
5、题目自定或采用附录二中的题目
6、软件开发的方法自定(结构化或面向对象的方法学)
附录二:
实验题目
题目一:“基于最小二乘法的公交车辆GPS补偿定位系统的研究” 1. 研究内容: 本项目主要研究智能公交调度系统中,在不增加硬件设备的基础上,通过软件来解决GPS在动态环境中信号失锁问题的方法。提出了基于最小二乘曲线拟合方法的GPS数据补偿算法,该算法将公交车辆的行驶线路数字化为一个曲线模型,并且在客观条件影响车载GPS设备无法接收到GPS信号时,利用对应线路的曲线模型模拟公交车辆的行驶,实现补偿定位。解决由于GPS失锁引起的三个问题。2. 研究意义: 城市智能公共交通管理系统公交车辆的定位跟踪、辅助导航、车辆调度指挥、动态发布公交信息以及出行者最佳路径查询等功能。通过建设智能公交管理系统可以大大提高城市公交车辆的综合管理和调度的智能化,从而有效缓解城市交通的压力。3. 研究方案:
针对公交行业中公交车辆的行驶路线相对固定的特点,根据车辆的历史定位数据,对该行驶线路进行曲线拟合,形成一条数字曲线模型。由于公交线路形状存在复杂和多样性,所以在拟合中采用分段拟合,将线路根据其形状分成几条分别拟合。在GPS无法接收到定位信号时,将最后一次获得的定位坐标投影到曲线模型上,以此为起点,在曲线模型上模拟车辆行驶并按原定GPS采样间隔发送曲线模型上的对应坐标值,作为车辆的定位数据信息,解决GPS的失锁问题。当GPS定位信号重新获取后,停止模拟行驶,以实际定位数据为准。本项目采用最小二乘二次曲线拟合。4. 研究成果:
本系统以公交业务三级调度模式为系统设计框架,集计算机控制技术、无线通信技术、全球卫星定位技术、地理信息技术为一体的公共交通系统。该系统基本上实现了公交调度业务的覆盖和公交调度的智能化的要求,是一款比较出色的智能公交调度系统,本项目所探讨的用最小二乘曲线拟合解决GPS失锁问题的方法将在将来的智能公交调度系统软件中得到实际应用。
题目二:物业小区“一站式” 收费终端系统的软件实现
1、研究内容:
在选择合适的终端设备及运行系统平台基础上,利用目前流行的的面向对象程序设计语言Visual Basic 6.0和SQL的底层数据库设计的软件支持,硬件采用触摸式液晶屏幕实现用户与终端交互,通过网络实现终端和银行的交互,预先模拟出收费企业、银行、小区住户三方的数据库信息(以银行为交易中心),当住户在小区的终端上刷卡消费时,终端将实时发送信息至银行,实现银行数据库相应企业账户和该刷卡用户账户信息的更改和刷新。软件实现功能暂定代缴水费、电费、煤气费、电话费(固定电话、移动手机用户、联通手机用户)。
2、研究意义:
随着现代都市生活节奏的加快,人们对生活的便捷性也随之提出了更高的要求。而日常生活中消费性资源的固定费用,如电话费,燃气费,水电费等的交纳也面临着越来越突出的矛盾:一方面,周末到银行交纳各项费用的用户剧增,加大了银行的工作量;另一方面,也使用户浪费了大量的时间在排队上,产生了一些负面影响;第三,虽然目前银行开通了在网上在线交费业务,但由于互联网的很多安全漏洞,用户无法安心的在网上进行交费。针对目前用户需要解决这种矛盾的迫切性,我们设计了“物业小区一站式收费终端系统”:该终端有点像银行的自动取款机,位于中间位置的是一个触摸式的液晶屏幕,在正常状态下,屏幕上播放着城市(合肥)的风光片等信息,用手指触摸后,直接进入首页。利用该终端可以使用储蓄卡交纳水气煤电等各项费用。该项目的开发可以很好的解决银行与用户之间的不协调性,不仅可以提高银行处理数据的能力,而且为用户节省了时间。目前合肥市的大部分小区还没有这种终端,因此市场前景广阔。
3、研究方案:
在选择合适的终端设备及运行系统平台基础上,预先模拟出收费企业、银行、小区住户三方的数据库信息(以银行为交易中心),当住户在小区的终端上刷卡消费时,终端将实时发送信息至银行,实现银行数据库相应企业账户和该刷卡用户账户信息的更改和刷新。软件实现功能暂定代缴水费、电费、煤气费、电话费(固定电话、移动手机用户、联通手机用户)。软件开发将以瀑布模型为主要依托,进行问题陈述、问题定义、需求分析、可行性研究报告,并配以相应E-R图、DFD图、SC图和数据字典等,然后用统一建模语言UML描述软件,再结合动态模型机制构造状态图、顺序图、协作图、活动图等,以文档为驱动逐步进行系统的整体设 6 计。在硬件上,主要在于如何选择合适的服务器、客户机、交换机、打印机及网络设备来构建完整安全的终端;软件方面,集中体现在操作系统、数据库系统、开发语言的选择。需要解决的关键问题还有终端液晶屏幕是采用什么触发方式(电容触发等方式),服务器平台用LINUX还是用Windows 2000 Server及更高版本等。
4、研究成果:
利用目前流行的的面向对象程序设计语言Visual Basic 6.0和SQL的底层数据库设计的软件支持,硬件采用触摸式液晶屏幕实现用户与终端交互,通过网络实现终端和银行的交互。当住户在小区的终端上刷卡消费时,终端将实时发送信息至银行,实现银行数据库相应企业账户和该刷卡用户账户信息的更改和刷新。软件实现功能暂定代缴水费、电费、煤气费、电话费。
题目三:“大型超市品类管理子系统的研究与开发” 1.系统简介
随着社会经济的飞速发展,我国的大型超市及连锁企业步入多元化,跨地区,高效率为特点的新阶段。随之而来的是对超市物品管理,人员管理,库存量统计及物品进出超市记录管理的需要。而由于统计量大,管理过程中会出现很多问题,市场就需要一个全面的,详细的品类管理子系统对超市进行管理工作。研究的内容包括:商品陈列、库存量、各类商品的销售数量、单价、利润及供求关系。首先,品类管理系统主要分为三个子系统:采购系统,销售系统和管理系统。采购系统的主要工作过程是:在数据库中统计库存量小于一定数目的物品,将需要采购的物品上报给采购人员。在新的物品进库后,对物品数量进行重新统计。销售系统的主要工作过程是:每一次采购将物品单备份并储存,以便在月末结帐时进行核对。管理系统的主要工作过程是:每隔固定时间或者是在系统需要时统计出物品进出量以及超市盈利。以上功能要求在计算机上实现。2.技术要求和限制条件
(1)在当超市物品库中的各种物品数量发生变化(包括进货和出货)时,都应修改相关的物品记录,如库存表或进/出库表。(2)正当出货或进货时不得对物品数量进行统计,只有在出,进货完成后才可以统计
(3)系统的外部项要包括超市服务人员,出货人员和进货人员
题目四:“基于感应式门禁的中小学家校通系统的设计与实现” 1.系统简介
目前,学生的在校管理工作越来越受到学校和家长的重视。管理的好坏将直接影响到学生的安全,以及学生的学习状况与水平。而传统的管理工具及方法有着很大的局限性,例如,学生离开家时,家长不能很好的了解到他们在学校的情况,而离开学校时,校方又不能了解到学生在校外的表现与行为。近几年来,孩子经常让家长担心的事情莫过于放学不回家,甚至逃课去网吧和游戏厅。时间一长,他们就可能会生成网瘾、游戏瘾。
本套系统的开发,就是在于加强校方和家长之间的交流与联系,让家长在校外就能了解到孩子在学校的表现,这样,更有助于家长对孩子的管理、孩子成绩的提高。
当学生离开家来上学时,一旦他们从学校大门经过,门禁系统的感应器将感应到该同学的到来,并记录下来。然后将记录传到校方服务器,由校方服务器与移动电话公司服务系统建立联系。这时,移动电话公司便会以短信的形式把“孩子已经到校”的信息告诉给家长。相反的,如果家长在孩子离开家来学校的很长时间后没有受到信息,那么家长就可以知道他的孩子没有来学校。这样 就实现了 学校与家长时时的管理孩子。2.研究方案:
系统的建设描述:第一,采集学生的信息。这主要包括学生的班级、姓名、年级、家长姓名、家长手机。特别的就是家长的手机,这是系统的关键信息所在。第二,建立校园内部网络;首先,在每个学生的学生证件上安装磁条,并保证磁条与学生的学号一一对应,每个磁条中存储着持卡学生的信息。在学校大门安装磁条感应器,并与校园主机相连接。这样可以把磁条所感应到的信息第一时间反馈给主机。第三,班主任将根据学生在学校的表现分成不同的等级,然后将它输入主机。第四,学生每次的模拟成绩或作业完成情况也将输入主机。第五,校方和移动电话公司或网络公司建立联系,校方把所要向学生家长公布的信息通过移动电话公司的短信息业务或网络公司的电子邮件业务发送给家长。
题目五:基于手机短信业务的银行信用卡消费告知系统
1、系统简介
据调查,目前越来越多的人们放弃使用固定电话,更愿意使用方便、快捷的移动通讯工具。为方便人们及时掌握消费情况,通讯商需要开发一个信用卡消费告知系统。通讯商把用户的基本资料(手机号码、信用卡帐号、开户银行等)输入系统中,并且事先与银行、消费场所的数据库建立连接。用户申请开通此项业务后,系 8 统随时与用户建立联系,消费场所通过终端机把顾客的消费信息映射到银行的数据库中,银行通过与通讯商之间的共享关系,由通讯商以短信息形式将消费信息发给用户。此外系统应定时检查更新数据库用户的基本资料及其他相关信息。
2、技术要求及限制条件
(1)在使用本系统时应考虑用户信息的合法性(如银行帐号、身份证号码)等。
(2)对于本系统还应补充如下功能:
用户要对应多个银行帐号; 用户取消此业务的处理; 用户更改手机号码的处理;
一个银行帐号对应多个手机号码的处理;
(3)外部输入项至少包括:手机运营商、银行、消费场所。
第五篇:软件工程课程设计教学大纲
专业实践教学大纲
《软件工程课程设计》教学大纲
英文名称
课程代码:
学分:1 分
执笔人:金霜 审定人:
一、前言
《软件工程课程设计》是一个综合的设计性实验,是在学习完核心课程《软件工程》后,对《软件工程》所学内容的一次综合运用;旨在使学生进一步掌握软件工程的方法和技术,树立团队合作精神,培养学生的自主学习能力和创造性的工程设计能力,提高综合分析和解决问题的能力。
二、教学大纲
1、目的要求
《软件工程》是一门理论性和实践性非常强的课程,学生仅仅通过课堂获取知识是远远不够的,必须加强实践教学,利用具有实际工程背景的软件设计题目,和软件工程设计工具(rose、viso),培养学生对软件系统的需求分析、系统分析、软件测试能力。初步掌握系统分析、系统设计、系统测试的方法,让学生掌握软件工程设计工具(rose、viso)使用方法。
2、主要内容
(1)项目可行研究
☆ 成立项目小组,六人一组,其中4名开发人员,2名测试人员,并选定项目组长一名。
☆ 项目组长召集小组成员选择设计项目
项目可由老师指定,也可以学生自选后报老师审核。
☆ 项目组长召集成员进行项目可行性研究,确定项目的大小、范围和复杂程度等。☆ 确定任务进度、分工和完成项目设计的工具。
☆ 按照《软件工程课程设计报告》的格式要求,完成报告中的《项目可行性研究》部分。(2)需求分析
☆ 根据项目的大小、范围和复杂程度等情况,由全体组员共同完成项目的需求分析,包括项目功能、项目运行环境、项目开发环境、项目角色等。
☆ 使用软件工程设计工具绘制项目总功能图、总用例图,并进行文字阐述。☆ 按照《软件工程课程设计报告》的格式要求,完成报告中的《需求分析》部分。(3)系统概要设计
☆ 项目组长根据需求分析,进行任务分工,由开发人员进行系统概要设计
☆ 开发人员根据自己所分的模块任务,对模块的功能和参与者进行详细阐述,使用软件工程设计工具,绘制模块用例图
☆ 按照《软件工程课程设计报告》的格式要求,完成报告中的《系统概要设计》部分。
(4)系统详细设计
☆ 开发人员根据自己所分的模块的概要设计,进行详细设计
☆ 开发人员对自己所分模块的实现流程进行阐述,并使用软件工程设计工具,绘制类图、活动图(或者是状态图,二选一)。
☆ 组长绘制项目的ER图。
☆ 按照《软件工程课程设计报告》的格式要求,完成报告中的《系统详细设计》部分。
(5)系统测试计划
☆ 根据系统需求分析,由测试人员共同完成测试计划编写。
☆ 按照《软件工程课程设计报告》的格式要求,完成报告中的《测试计划》部分。(6)系统功能测试用例设计
☆ 组长根据测试需求分析,对测试人员进行任务分工。☆ 测试人员根据任务分工,绘制自己所分模块的实现顺序图。☆ 测试人员根据自己所绘制的顺序图,进行系统功能测试用例设计
☆ 按照《软件工程课程设计报告》的格式要求,完成报告中的《系统功能测试用例设计》部分。
(7)答辩(根据进度可选)
☆ 将各部分文档进行整合,完成《软件工程课程设计报告》
☆ 制作PPT,答辩时间5分钟,提问3~5分钟。(8)课时安排参考 ☆ 项目可行研究、需求分析4学时
☆ 系统概要设计、系统详细设计(系统测试需求分析、系统功能测试用例设计)8学时 ☆ 答辩4学时
三、成绩考核与评定
成绩考核由以下几部分组成:
(1)平时考勤占10%。
(2)设计表现占20%。组员的设计表现成绩由组长提供;组长的设计表现成绩由老师根据小组整体完成情况给于。
(3)答辩表现占20%,若没有答辩环节,以考勤分代替。(4)文档完成情况占50%。
成绩评定实行优、良、中、及格、不及格五个等级。
四、重点说明执行本大纲应注意的问题
1、严格审核学生所选项目,提倡项目的新颖性和实用性。
2、严格审核学生的需求分析和任务分工,确保每个学生有足够的工作量。
3、严格考勤,迟到15分钟之内算迟到,迟到2次算旷课1次;迟到15分钟以上算旷课。旷课2次,成绩即为不及格
4、允许学生上网查资料,但严格控制学生不得上网进行玩游戏、看电影等与课程设计无关的活动。
5、答辩主要围绕项目设计的合理性和可实现性提3-5个问题,根据学生回答情况,确定答辩分数。
6、审核文档,允许学生有所借鉴,但不得完全抄袭,一旦发现,以0分计。
附:教学参考书目(添加教材信息)
1、《软件工程》(第4版)人民邮电出版社
张海藩
2、《软件工程概论》 清华大学出版社
郑人杰、殷人昆
3、《软件工程课程设计大纲》由老师提供
4、《软件工程课程设计报告》由老师提供
5、《UML系统建模与分析设计课程设计》 机械工业出版社 刁成嘉、刁奕
6、《Rose工具使用方法参考》由老师提供