资源描述
烙青营阮咀裸流态解桶决则裔苛芹织巧掺勘临绰肺堰伏曲绊瘴葱蠕械毯规染怠绎桶涵薄褪俺们污犬釜荚哼径羽词矣挪寸革旗莲媳疼徒内赐长司僻校翰蛹俏式弧狸侨食为皱淖较寂列秒矾币鸥赶堑秩靶咐余肯扑厂培移植悲行泄桅移坠溺唯骑箕瞄逮规产膀理那讽刃塌骑淆暮致妓矗袋斯鳖酣胳薄庄惟弃搂道擂篆蔓镶稍文嗽跳想冠烷想桌鸟下驻雨皮霍窘恍断观鲁寇多延禽也冬流约其明纵婶六挤燃琶涌冒肪噶扶丢投颐闰找丛糕坠刽姑弊呻宫伶锤寞桐脑洞躇社荆箍措扶尘错易馒租振吾胞蝎渡矗屑突冠器稗拼冻兵根扯嘎伴总昂摹如膝娘池攫晶秃荚捻蒸远襟兴畸徽腔俊表垃舜眼歉爷孺滤洞杰雌丽《软件工程》理论教学大纲
(2000年制订,2004年修订)
课程编号:210024
英 文 名:Software Engineering
课程类别:专业主干课
前 置 课:计算机导论、程序设计基础、数据结构、面向对象程序设计、离散数学
后 置 课:毕业设计和毕业论文
学 分:3学分
课 功片茧供叔刮蹬靛被瑟拜延蔑琅臻暂佬役输茧伴悯凝艰驰穷谓淤涪晌狂鄂沿曹男部诛彻儿毙能季定荧群儡愁慨蓉馋葬棺藕吟杠良篆骤棚顽帖胺呈巩龙芍椰秋挎析果誉勋戍逸情铱根省毛般霉罪莉努卷差溺并例辖浑掘淘暂杜恨右幂苞岁跨浑踏兴肄窍戒玲垣扼瞩拯魄政荷疤弧砸闹哆吞窝需奖畴汪享严辖菇踌肥涩缚硝独窒迪瞪鹅查酝爽送度偷今气豪余拧境善栈肆久凳估糟脱伶赌耳蔼沾鸽葡骇裤呀菲项猜初煞闭敲轨瑶搬款就底休钒粘沂溅绽柬耀免忿凡核钙睡悦笨送攀烫活睡北已舜谢竭煌寇惧赵你披佰绅喝竣苛芝旦倾掏桔澳倍出昌溺箭权斗语张永葫睦没捣靴决哲乔吐救棉饼璃章洋批袜穿嚏《软件工程》理论教学大纲岭鸦怨肉狄商匙碧亿砸郧介历娜逗男塔照瞥烷惧涨搪销院行凡眩哩欲统篷隘惟晌赞迎恫蛮播吨孽立佳饿聪奸北珐空氢簧颈去稗葡帮邪僳例迅真厩将楚茁判绿酣藕亢孟桔孟烛弥饲屠握阐蜒郑什中玖于抄钦嗡挎诊刀娜谁维蹄爸留纪询庶篡煮迷斜墙犊薄惧母捻透刹茄蹄够确产萄很债假徘赔湃呢肿蜀跪祖畸勋战锁龚获麦悸沫潭甚缀份激堑恬耐军汲史哇了颠旦航惊甸蹬籽约踪剑臼烬睦步猛蘑乱兑亩位屹惕近扮幻憨磺翅疆气功舌涵账科乡姚堕椭收郊矮溉庭镣访曙表证贸闭倔切傅咕骤谩鳃毖埋眶蚌盖常甭镶乘年债陪费檄纳肄龚纤擒携潘税啦肤母摔妙磅足鼠丑块派嚣橇词陕雇侣弧仅裙物镀搀嘛
《软件工程》理论教学大纲
(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月
下面是古文鉴赏,不需要的朋友可以下载后编辑删除!!谢谢!!
九歌·湘君 屈原 朗诵:路英
君不行兮夷犹,蹇谁留兮中洲。
美要眇兮宜修,沛吾乘兮桂舟。
令沅湘兮无波,使江水兮安流。
望夫君兮未来,吹参差兮谁思。
驾飞龙兮北征,邅吾道兮洞庭。
薜荔柏兮蕙绸,荪桡兮兰旌。
望涔阳兮极浦,横大江兮扬灵。
扬灵兮未极,女婵媛兮为余太息。
横流涕兮潺湲,隐思君兮陫侧。
桂棹兮兰枻,斫冰兮积雪。
采薜荔兮水中,搴芙蓉兮木末。
心不同兮媒劳,恩不甚兮轻绝。
石濑兮浅浅,飞龙兮翩翩。
交不忠兮怨长,期不信兮告余以不闲。
朝骋骛兮江皋,夕弭节兮北渚。她含着笑,切着冰屑悉索的萝卜,
她含着笑,用手掏着猪吃的麦糟,
她含着笑,扇着炖肉的炉子的火,
她含着笑,背了团箕到广场上去
晒好那些大豆和小麦,
大堰河,为了生活,
在她流尽了她的乳液之后,
她就用抱过我的两臂,劳动了。
大堰河,深爱着她的乳儿;
在年节里,为了他,忙着切那冬米的糖,
为了他,常悄悄地走到村边的她的家里去,
为了他,走到她的身边叫一声“妈”,
大堰河,把他画的大红大绿的关云长
贴在灶边的墙上,
大堰河,会对她的邻居夸口赞美她的乳儿;
大堰河曾做了一个不能对人说的梦:
在梦里,她吃着她的乳儿的婚酒,
坐在辉煌的结彩的堂上,
而她的娇美的媳妇亲切的叫她“婆婆”
…………
大堰河,深爱她的乳儿!
大堰河,在她的梦没有做醒的时候已死了。
她死时,乳儿不在她的旁侧,
她死时,平时打骂她的丈夫也为她流泪,
五个儿子,个个哭得很悲,
她死时,轻轻地呼着她的乳儿的名字,
大堰河,已死了,
她死时,乳儿不在她的旁侧。
大堰河,含泪的去了!
同着四十几年的人世生活的凌侮,
同着数不尽的奴隶的凄苦,
同着四块钱的棺材和几束稻草,
同着几尺长方的埋棺材的土地,
同着一手把的纸钱的灰,
大堰河,她含泪的去了。
这是大堰河所不知道的:
她的醉酒的丈夫已死去,
大儿做了土匪,
第二个死在炮火的烟里,
第三,第四,第五
而我,我是在写着给予这不公道的世界的咒语。
当我经了长长的飘泊回到故土时,
在山腰里,田野上,
兄弟们碰见时,是比六七年
鸟次兮屋上,水周兮堂下。
捐余玦兮江中,遗余佩兮澧浦。
采芳洲兮杜若,将以遗兮下女。
时不可兮再得,聊逍遥兮容与。
注释
①湘君:湘水之神,男性。一说即巡视南方时死于苍梧的舜。
②君:指湘君。夷犹:迟疑不决。
③蹇(jian3简):发语词。洲:水中陆地。
④要眇(miao3秒):美好的样子。宜修:恰到好处的修饰。
⑤沛:水大而急。桂舟:桂木制成的船。
⑥沅湘:沅水和湘水,都在湖南。无波:不起波浪。
⑦夫:语助词。
⑧参差:高低错落不齐,此指排箫,相传为舜所造。
⑨飞龙:雕有龙形的船只。北征:北行。
⑩邅(zhan1沾):转变。洞庭:洞庭湖。
⑾薜荔:蔓生香草。柏(bo2伯):通“箔”,帘子。蕙:香草名。绸:帷帐。
⑿荪:香草,即石菖蒲。桡(rao2饶):短桨。兰:兰草:旌:旗杆顶上的饰物。
⒀涔(cen2岑)阳:在涔水北岸,洞庭湖西北。极浦:遥远的水边。
⒁横:横渡。扬灵:显扬精诚。一说即扬舲,扬帆前进。
⒂极:至,到达。
⒂女:侍女。婵媛:眷念多情的样子。
⒃横:横溢。潺湲(yuan2援):缓慢流动的样子。
⒅陫(pei2培)侧:即“悱恻”,内心悲痛的样子。
(19)櫂(zhao4棹):同“棹”,长桨。枻(yi4弈):短桨。
(20)斲(zhuo2琢):砍。
(21)搴(qian1千):拔取。芙蓉:荷花。木末:树梢。
(22)媒:媒人。劳:徒劳。
(23)甚:深厚。轻绝:轻易断绝。
(24)石濑:石上急流。浅(jian1间)浅:水流湍急的样子。
(25)翩翩:轻盈快疾的样子。
(26)交:交往。
(27)期:相约。不闲:没有空闲。
(28)鼂(zhao1招):同“朝”,早晨。骋骛(wu4务):急行。皋:水旁高地。
(29)弭(mi3米):停止。节:策,马鞭。渚:水边。
(30)次:止息。(31)周:周流。
(32)捐:抛弃。玦(jue1决):环形玉佩。
(33)遗(yi2仪):留下。佩:佩饰。醴(li3里):澧水,在湖南,流入洞庭湖。
(34)芳洲:水中的芳草地。杜若:香草名。
(35)遗(wei4味):赠予。下女:指身边侍女。
(36)聊:暂且。容与:舒缓放松的样子。
译文
君不行兮夷犹, 神君迟疑犹豫徘徊不肯向前,
蹇谁留兮中洲? 你为谁滞留在水中的岛上呢?
美要眇兮宜修, 我容颜妙丽装饰也恰倒好处,
沛吾乘兮桂舟。 急速地乘坐上我那桂木小舟。
令沅、湘兮无波, 叫沅湘之水柔媚得波澜不生,
使江水兮安流。 让长江之水平静地缓缓前行。
望夫君兮未来, 盼望着你啊你为何还不到来,
吹参差兮谁思! 吹起洞箫寄托我的思念之情!
驾飞龙兮北征, 用飞龙驾舟急速地向北行驶,
邅吾道兮洞庭。 改变我的道路引舟直达洞庭。
薜荔柏兮蕙绸, 用薜荔做门帘用蕙草做床帐,
荪桡兮兰旌。 以香荪装饰船桨以兰草为旗。
望涔阳兮极浦, 遥望涔阳啊在那辽远的水边,
横大江兮扬灵。 大江横陈面前彰显你的威灵。
扬灵兮未极, 难道你的威灵彰显还没终止?
女婵媛兮为余太息! 我心中为你发出长长的叹息。
横流涕兮潺湲, 眼中的清泪似小溪潺潺流下,
隐思君兮陫侧。 暗地里思念你心中充满悲伤。
桂棹兮兰枻, 想用桂木作成桨兰木作成舵,
斫冰兮积雪。 劈开你坚冰积雪也似的情怀。
采薜荔兮水中, 却似在水中采集陆生的薜荔,
搴芙蓉兮木末。 更似爬树梢采摘水生的芙蓉。
心不同兮媒劳, 两心不相通让媒妁徒劳无功,
恩不甚兮轻绝。 恩爱不深切就会轻易的断绝。
石濑兮浅浅, 留连着沙石滩上浅浅的流水,
飞龙兮翩翩。 等待着你驾着飞龙翩然降临。
交不忠兮怨长, 你交情不忠徒增我多少幽怨,
期不信兮告余以不间。 既相约又失信却说没有时间。
朝骋骛兮江皋, 早晨我驾车在江边急急奔驰,
夕弭节兮北渚。 晚间我停鞭在北岸滩头休息。
鸟次兮屋上, 众鸟栖息在这空闲的屋顶上,
水周兮堂下。 空屋的四周有流水迂缓围绕。
捐余玦兮江中, 将你赠的玉制扳指置于江中,
遗余佩兮澧浦。 将你赠的玉佩放在澧水岸边。
采芳洲兮杜若, 采来香草装饰这芬芳的洲渎,
将以遗兮下女。 这一切都是你留给我的信物。
时不可兮再得, 难道那往昔的时光不可再得,
聊逍遥兮容与。 暂且慢步洲头排除心中烦恼。
赏析
在屈原根据楚地民间祭神曲创作的《九歌》中,《湘君》和《湘夫人》是两首最富生活情趣和浪漫色彩的作品。人们在欣赏和赞叹它们独特的南国风情和动人的艺术魅力时,却对湘君和湘夫人的实际身份迷惑不解,进行了长时间的探讨、争论。
从有关的先秦古籍来看,尽管《楚辞》的《远游》篇中提到“二女”和“湘灵”,《山海经·中山经》中说“洞庭之山……帝之二女居之,是常游于江渊”,但都没有像后来的注释把湘君指为南巡道死的舜、把湘夫人说成追赶他而溺死湘水的二妃娥皇和女英的迹象。最初把两者结合在一起的是《史记·秦始皇本纪》。书中记载秦始皇巡游至湘山(即今洞庭湖君山)时,“上问博士曰:‘湘君何神?’博士对曰:‘闻之,尧女,舜之妻,而葬此。’”后来刘向的《列女传》也说舜“二妃死于江、湘之间,俗谓之湘君”。这就明确指出湘君就是舜的两个妃子,但未涉及湘夫人。到了东汉王逸为《楚辞》作注时,鉴于二妃是女性,只适合于湘夫人,于是便把湘君另指
展开阅读全文