电大软件工程应用题电子教案
软件工程电子教案第1章
(3) 软件产品的质量往往靠不住。软件可靠性和质 量保证的确切的定量概念刚刚出现不久,软件质量 保证技术(审查、复审和测试)还没有坚持不懈地应 用到软件开发的全过程中,这些都导致软件产品发 生质量问题。 (4) 软件常常是不可维护的。很多程序中的错误是 非常难改正的,实际上不可能使这些程序适应新的 硬件环境,也不能根据用户的需要在原有程序中增 加一些新的功能。“可重用的软件”还是一个没有 完全做到的、正在努力追求的目标,人们仍然在重 复开发类似的或基本类似的软件。
1.1.2 产生软件危机的原因
在软件开发和维护的过程中存在这么多严重问题, 一方面与软件本身的特点有关,另一方面也和软件 开发与维护的方法不正确有关。
1、软件不同于硬件,它是计算机系统中的逻辑部 件而不是物理部件。由于软件缺乏“可见性”,在 写出程序代码并在计算机上试运行之前,软件开发 过程的进展情况较难衡量,软件的质量也较难评价, 因此,管理和控制软件开发过程相当困难。 2、软件在运行过程中不会因为使用时间过长而被 “用坏”,如果运行中发现了错误 ,很可能是遇 到了一个在开发时期引入的在测试阶段没能检测出 来的错误。因此,软件维护通常意味着改正或修改 原来的设计,这就在客观上使得软件较难维护。
(1) 对软件开发成本和进度的估计常常很不准确。 实际成本比估计成本有可能高出一个数量级,实际 进度比预期进度拖延几个月甚至几年的现象并不罕 见。这种现象降低了软件开发组织的信誉。而为了 赶进度和节约成本所采取的一些权宜之计又往往损 害了软件产品的质量,从而不可避免地会引起用户 的不满。 (2) 用户对“已完成的”软件系统不满意的现象经 常发生。软件开发人员常常在对用户要求只有模糊 的了解,甚至对所要解决的问题还没有确切认识的 情况下,就匆忙着手编写程序。软件开发人员和用 户之间的信息交流往往很不充分,“闭门造车”必 然导致最终的产品不符合用户的实际需要。
软件工程电子教案--第3章
采用一种分析方法生成一个软件系统或其中所关心部分的简化需求规格说明。
对该规格说明进行评审通过后,立即生成设计规格说明。为了快速生成原型,这种设计仅注重所关心的问题,如软件的总体结构、用户界面和数据设计、或者某个复杂的算法等等,不注重过程内部的控制流设计。
使用可重用软部件、用户界面自动生成器等工具快速生成可运行的软件原型并通过测试。
多视点分析技术:
为了获得全面的需求分析结果,防止遗漏,有必要从各个视点分别对问题进行理解与分析,然后综合成全面的理解。分析人员可以就系统视点与用户视点、信息视点、功能视点与行为视点等多个视点分别进行分析,以确保需求分析的完全性。
§3.3需求规格说明与评审
一、需求规格说明书的作用与内容
1.需求规格说明书的作用主要有:
3、第三范式:满足第二范式条件,而且每个非关键字属性都仅由关键字决定。
§3.6状态转换图
一、状态
初态(一个初态)、终态、中间态(0-多个终态)
二、事件
引起系统做动作或转换状态的控制信息
三、符号
初态:实心圆终态:同心圆中间态:圆角矩形
四:例子
电话系统状态图
思路:让学生回忆电话的工作过程,抽离出状态,然后找出状态之间转换的事件
教学重点与难点
重点:1、需求分析的过程,能够用数据流图、E-R图、数据字典和简洁的算法描述所定义系统的逻辑模型
2、会应用结构化分析方法,
3、关注需求规格说明书的编写
难点:数据流图、E-R图、数据字典的应用
教学过程设计
新课导入、案例教学、课堂讨论、作业讲评。
教学方法
以多媒体讲授为主,适当结合提问、设问、讨论等方法。
简单举例说明1、2、3范式
软件工程电子教案第3章
第三,范式级别提高则需要访问的表增多,因此性 能(速度)将下降。从实用角度看来,在大多数场合 选用第三范式都比较恰当。 通常按照属性间的依赖情况区分规范化的程度。属 性间依赖情况满足不同程度要求的为不同范式,满 足最低要求的是第一范式,在第一范式中再进一步 满足一些要求的为第二范式,其余依此类推。下面 给出第一、第二和第三范式的定义: (1) 第一范式在同一表中没有重复项出现,如果有 则应将重复项去掉。 每个属性值都必须是原子值,即仅仅是一个简 单值而不含内部结构。
ቤተ መጻሕፍቲ ባይዱ
3.2 与用户沟通获取需求的方法
3.2.1 访谈 3.2.2 面向数据流自顶向下求精 3.2.3 简易的应用规格说明技术 3.2.4 快速建立软件原型 补充:需求分析的步骤
1、问题的识别 使用以上方法,双方确定对问题的综合需求。 基于项目有关的软件的功能、性能、环境、用户界 面、可靠性、安全性、保密性、可移植性、可维护 性、等方面的需求。
需求规格说明书
• 1、 引言 1.1 编写目的【阐明编写需求说明书的目的,指明读者 对象。】 1.2项目背景【应包括:a.项目的委托单位、开发单位和 主管部门;b.该软件系统与其他系统的关系。】 1.3 定义【列出文档中所用到的专门术语的定义和缩写 词的原文。】 1.4参考资料【可包括:a.项目经核准的计划任务书、合 同或上级机关的批文; b.该软件系统与其他系统的关 系; c. 文档所引用的资料、标准和规范。列出这些资 料的作者、标准、编号、发表日期、出版单位或资料 来源。】
3.1.2 分析系统的数据要求
分析系统的数据要求,这是软件需求分析的一 个重要任务。通常采用建立数据流图和数据模型的 方法(见3.4节)。 用数据字典可以全面准确地定义 数据,但是数据字典的缺点是不够形象直观。为了 提高可理解性,常常利用图形工具辅助描绘数据结 构。常用的图形工具有层次方框图HIPO和 Warnier图,在本章第3.7节中将简要地介绍这两种 图形工具。 软件系统经常使用各种长期保存的信息,为减 少数据冗余,避免出现插入异常或删除异常,简化 修改数据的过程,通常需要把数据结构规范化(见 3.5节)。
软件工程第1章电子教案
1.3 软件工程的概念
•返回目录
1.3.3 软件工程学的范畴 软件工程学所研究的主要内容包括:软件开发技术和
软件工程管理两个方面。其中:软件开发技术包含: 1、软件开发方法学 2、软件工具 3、软件工程环境 4、软件工程管理
软件工程第1章电子教案
1.4 软件生存周期及软件开发模型
主要教学内容: 1.4.1 软件生存周期 1.4.2 软件生存周期模型 1.4.3 瀑布模型(Waterfall model) 1.4.4 演化模型(evolutional model) 1.4.5 螺旋模型(spiral model) 1.4.6 智能模型(intelligence model)
•返回目录
软件工程的方法、工具、过程构成了软件工程的三要素。 软件工程的目标可概括为:在给定成本、进度的前提下, 开发出具有可修改性、有效性、可靠性、可理解性、可 维护性、可重用性、可适应性、可移植性、可追踪性和 可互操作性并满足用户要求的软件产品。
•图1.2 软件工程目标之间的关系
软件工程第1章电子教案
•返回目录
类别 微型 小型 中型 大型
甚大型
极大型
表1.1软件规模的分类
参加人员数
研制期限
1
1~4周
产品规模(源程序行数) 0.5k
1
1~6月
1k~2k
2~5
1~2年
5k~50k
5~20
2~3年
50k~100k
100~1000
4~5年
1M(=1000k)
2000~5000
5~10年
1M~10M
软件工程第1章电子教案
1.4 软件生存周期及软件开发模型 •返回目录
1.4.2 软件生存周期模型 软件生存周期模型是从软件项目需求定义直至软件经
软件工程电子教案(2)名师优质课赛课一等奖市公开课获奖课件
数字仪表板
数据流图
加仑/小时
英里/小时
英里/加仑
转/分
第44页
划分数据流图边界
第45页
数字仪表板第一级分解
第46页
未经细化输入结构
数字仪表板第二级分解
第47页
未经细化变换结构
第48页
未经细化输出结构
第49页
精化后数字仪表板系统软件结构
第50页
归纳
假如数据流不含有显著事务特点,最好使用变换设计假如含有显著事务中心,应该采取事务设计方法不要机械遵照规则,依据实际情况将模块进行合并或分解事务型结构例子——书本上“教材购销系统”
练习画N-S图
课堂练习: 1、某模块有两个输入a和b,一个输出c,当满足条件(a>0)and(b<2)时,c=a+b,不然c=a-b。用所学知识画出该模块N-S图。 2、某模块有三个输入a、b和c,一个输出s,当a=1时,s=b+2c,当a=2时,s=2b-c,当a=3时,s=b。用所学知识画出该模块N-S图。
(a)传入
(b)传出
(c)变换
(d)源
(f)控制
X
Y
Y
X
X
Y
图5.2 SC图使用模块符号
X
(e)漏
X
X
Y
…
第13页
SC图模块调用
简单调用
图5.3 简单调用两种表示法
B
(a)
X,Y
Z
A
C
Z
B
(b)
1
A
C
2
入
出
X,Y
Z
Z
—
第14页
选择调用
A
B
软件工程电子教案第6章
3. 出错信息处理 出错信息和警告信息,是出现问题时交互式系统给 出的“坏消息”。出错信息设计得不好,将向用户 提供无用的甚至误导的信息,反而会加重用户的挫 折感。 一般说来,交互式系统给出的出错信息或警告信息, 应该具有下述属性。 (1) 信息应该用用户可以理解的术语描述问题。 (2) 信息应该提供有助于从错误中恢复的建设性意 见。
6.1 3种基本的控制结构
“结构程序设计是尽可能少用GO TO语句的程 序设计方法。最好仅在检测出错误时才使用GO TO语句,而且应该总是使用前向GO TO语句。” 虽然从理论上说只用上述3种基本控制结构就 可以实现任何单入口单出口的程序,但是为了实际 使用方便起见,常常还允许使用DO-UNTIL和DOCASE两种控制结构,它们的流程图分别是图6.2(a) 和图6.2(b)。
(9) 提供对用户工作内容敏感的帮助设施(参见6.2.1节)。 (10) 用简单动词或动词短语作为命令名。过长的命令 名难于识别和记忆,也会占用过多的菜单空间。
2. 信息显示指南
可以用多种不同方式“显示”信息:用文字、图形和 声音;按位置、移动和大小;使用颜色、分辨率 和省略。下面是关于信息显示的设计指南。 (1) 只显示与当前工作内容有关的信息。用户在获得 有关系统的特定功能的信息时,不必看到与之无 关的数据、菜单和图形。
(2) 不要用数据淹没用户,应该用便于用户迅速吸取信 息的方式来表示数据。例如,可以用图形或图表来取 代庞大的表格。 (3) 使用一致的标记、标准的缩写和可预知的颜色。显 示的含义应该非常明确,用户无须参照其他信息源就 能理解。 (4) 允许用户保持可视化的语境。如果对所显示的图形 进行缩放,原始的图像应该一直显示着(以缩小的形式 放在显示屏的一角),以使用户知道当前看到的图像部 分在原图中所处的相对位置。 (5) 产生有意义的出错信息(参见6.2.1节)。 (6) 使用大小写、缩进和文本分组以帮助理解。人机界 面显示的信息大部分是文字,文字的布局和形式对用 户从中提取信息的难易程度有很大影响。
软件工程-电子教案第9章
9.3.2 设计用户界面 9.3.3 画UML顺序图或活动图
【例9.4】画出招聘考试管理系统的顺序图 某市人事局举行统一招聘考试。首先,各招聘 单位向人事局登记本单位各专业的招聘人数, 由人事局向社会公布招聘情况;考生报名、填 志愿;人事局组织安排考试;录入考试成绩; 向考生和招聘单位公布成绩;招聘单位进行录 用;发录用通知书。这里,共有三个对象类: 人事局、考生和招聘单位。
《软件工程》 陆惠恩主编
3
9.2.2 确定类的相互关系 1. 类的一般-特珠关系
《软件工程》 陆惠恩主编
4
2. 聚集关系
“整体-部分”关系
90 80 70 60 50 40 30 20 10 0 第一季度 第三季度 东部 西部 北部
《软件工程》 陆惠恩主编
5
3. 关联关系
阶 链属性
限定
《软件工程》 陆惠恩主编
《软件工程》 陆惠恩主编 18
9.7 UML的应用
9.7.1 UML模型 1. 用例模型 2. 静态模型 3.动态模型 4.实现模型
《软件工程》 陆惠恩主编
19
9.7.2 UML视图
视图域 视图 静态视图 结构分类 用例视图 实现视图 部署视图 状态视图 动态行为 活动视图 交互视图 图 类图 用例图 构件图 部署图 状态图 活动图 顺序图 协作图 模型管理 可扩展性 模型管理视图 类图 所有 所有 主要概念 类、关联、泛化、依赖关系、实现、接口 用例、执行者、关联、扩展、包含、用例 继承 构件、接口、依赖关系、实现 结点、构件、依赖关系、位置。 状态、事件、转换、动作 状态、活动、转换、分叉、连接 交互、对象、消息、激活 协作、交互、角色、消息 包、子系统、模型。 约束、版型、标签值
软件工程教案
《软件工程》教案刘鹏《软件工程》教学案一、课程的性质与任务软件工程课程是中央广播电视大学计算机科学与技术专业的统设必修课,4学分,72学时,其中讲课46学时,实验26学时,开设一学期。
软件工程课程主要研究如何将工程化方法应用于软件的开发、运行和维护过程之中。
根据培养计算机应用型人才的需要,本课程的任务是通过讲述软件的工程化开发方法和相关的开发工具、开发过程、开发规范,使学生了解软件工程的本质,掌握常用的开发方法,并且能够自觉地将软件工程原理灵活地运用于实际的软件开发和维护过程中,提高学生的专业素质。
二、与本课相关课程先修课程:计算机基础、数据库原理、程序设计语言。
后续课程:毕业设计。
三、课程的学习要求1.掌握软件的特点和软件工程的概念。
2.掌握结构化分析和设计方法。
3.掌握基于UML的面向对象分析和设计方法。
4.理解软件测试的基本概念和测试策略。
6.理解可行性分析方法和软件维护的基本方法。
7.了解良好的软件编程风格和编程规范。
8.了解软件项目管理、软件配置管理的概念和方法。
四、课程教学要求的层次本课程的教学要求分为掌握、理解和了解三个层次。
掌握是在理解的基础上加以灵活应用;理解是能正确表达有关概念和方法的含义,并且能够进行简单分析和判断;了解即能正确判别有关概念和方法。
在期末考核试卷中(涵盖实验内容),掌握的内容约占总分数的60%,理解的内容约占30%,了解的内容约占10%。
五、教学环节1.自学自学是学生重要的学习手段,要求以文字教材为主,辅以录像教材、CAI课件、网上教学资源进行学习。
录像教材和CAI课件强化课程的重点、难点内容,实验的演示与交互,案例分析等,可加深学生对课程内容的理解,提高程序分析和设计能力。
网上教学资源与教学进度同步,侧重于对学生教学过程的辅导,也是师生、生生沟通的平台,解决学生在学习过程中遇到的问题。
自学可以采取个人和小组学习等方式,学生应注意自学能力的培养,保证必要的自学时间。
《软件工程电子教案》课件
《软件工程电子教案》PPT课件第一章:软件工程概述1.1 软件工程的定义解释软件工程的含义和目的强调软件工程的重要性1.2 软件开发生命周期介绍软件开发生命周期的基本阶段讨论每个阶段的关键活动和任务1.3 软件工程原则介绍软件工程的基本原则解释每个原则的重要性和应用第二章:需求分析2.1 需求分析的重要性强调需求分析在软件工程中的作用解释需求分析的目标和结果2.2 需求收集和分析方法介绍需求收集和分析的主要方法讨论每种方法的优缺点和适用场景2.3 需求规格说明书解释需求规格说明书的结构和内容强调需求规格说明书的重要性和维护第三章:软件设计和架构3.1 软件设计的重要性强调软件设计在软件工程中的作用解释设计的目标和结果3.2 软件架构设计介绍软件架构设计的基本概念和方法讨论架构设计的重要性和评估3.3 详细设计解释详细设计的过程和工具强调详细设计的重要性和与实现的关联第四章:软件实现和编码4.1 编码的重要性强调编码在软件工程中的作用解释编码的目标和结果4.2 编程语言和工具介绍常用的编程语言和开发工具讨论每种语言和工具的适用场景和特点4.3 编码规范和最佳实践解释编码规范和最佳实践的作用强调遵循规范和最佳实践的重要性第五章:软件测试和验证5.1 软件测试的重要性强调软件测试在软件工程中的作用解释测试的目标和结果5.2 测试方法和策略介绍常用的软件测试方法和策略讨论每种方法和策略的适用场景和优缺点5.3 测试用例和测试覆盖率解释测试用例的设计和编写强调测试覆盖率的重要性和评估方法第六章:软件维护和演化6.1 软件维护的概念解释软件维护的定义和目的强调软件维护的重要性6.2 维护活动和维护过程介绍软件维护的主要活动和过程讨论每个活动的关键任务和挑战6.3 软件演化模型介绍软件演化的一些常见模型讨论每种模型的适用场景和特点第七章:软件项目管理7.1 软件项目管理的重要性强调软件项目管理在软件工程中的作用解释项目管理的目标和结果7.2 项目管理工具和技术介绍常用的软件项目管理工具和技术讨论每种工具和技术的适用场景和优缺点7.3 项目计划和进度控制解释项目计划的概念和过程强调进度控制的重要性和方法第八章:软件质量保证8.1 软件质量的概念解释软件质量的定义和重要性强调软件质量保证的作用8.2 质量标准和质量模型介绍常用的软件质量标准和模型讨论每种标准和模型的适用场景和特点8.3 质量保证过程和活动解释质量保证的过程和主要活动强调质量保证的重要性和实施方法第九章:软件工程伦理和法律问题9.1 软件工程伦理问题讨论软件工程中的伦理问题,如知识产权、隐私等强调软件工程师的伦理责任和行为准则9.2 软件工程法律问题介绍软件工程中涉及的法律问题,如版权、合同等讨论法律问题对软件工程的影响和应对策略9.3 合规性和标准化解释软件工程的合规性和标准化的概念强调合规性和标准化的作用和实施方法第十章:软件工程前沿技术10.1 软件工程新技术介绍软件工程中的一些前沿技术,如、云计算等讨论每种技术的应用场景和前景10.2 技术趋势和挑战讨论软件工程中的技术趋势和面临的挑战强调应对技术趋势和挑战的方法和策略10.3 未来软件工程的发展展望未来软件工程的发展方向和趋势强调软件工程师在未来的角色和责任重点和难点解析重点环节一:软件工程的定义和目的重点关注软件工程的定义和目的,理解软件工程的核心目标和原则。
《软件工程电子教案》课件
《软件工程电子教案》PPT课件第一章:软件工程概述1.1 软件与软件工程的概念解释软件的定义和特点介绍软件工程的目标和方法1.2 软件生命周期描述软件从需求分析到维护的各个阶段解释软件生命周期的主要活动和任务1.3 软件工程原则介绍软件工程的基本原则,如模块化、抽象化、逐步求精等解释这些原则的重要性及其在软件开发中的应用第二章:需求分析2.1 需求分析概述解释需求分析的目的和重要性介绍需求分析的主要任务和方法2.2 需求收集与分析介绍需求收集和分析的技术和工具解释如何确定用户需求和系统功能2.3 需求规格说明书解释需求规格说明书的编写和作用提供一个需求规格说明书的基本结构示例第三章:软件设计3.1 软件设计概述解释软件设计的概念和目的介绍软件设计的主要任务和方法3.2 总体设计解释总体设计的重要性和主要任务介绍总体设计的常用技术和工具3.3 详细设计解释详细设计的重要性和主要任务介绍详细设计的常用技术和工具第四章:编程与编码4.1 编程语言选择解释编程语言选择的重要性和考虑因素介绍常用的编程语言及其特点4.2 编码规范与技巧解释编码规范的意义和作用介绍编码规范的基本要求和常用技巧4.3 代码审查与优化解释代码审查的目的和重要性介绍代码审查的方法和技巧第五章:软件测试与维护5.1 软件测试概述解释软件测试的目的和重要性介绍软件测试的主要任务和方法5.2 测试用例设计与执行解释测试用例的设计原则和方法介绍测试用例的执行和缺陷跟踪5.3 软件维护解释软件维护的定义和重要性介绍软件维护的主要任务和方法《软件工程电子教案》PPT课件第六章:项目管理6.1 项目管理概述解释项目管理的概念和重要性介绍项目管理的主要任务和方法6.2 项目计划与组织解释项目计划的目的和内容介绍项目组织和团队建设的方法6.3 项目进度控制与风险管理解释项目进度控制的方法和工具介绍项目风险识别、评估和应对策略第七章:软件质量保证7.1 软件质量概述解释软件质量的概念和重要性介绍软件质量保证的目标和方法7.2 软件质量标准和评估解释软件质量标准的概念和分类介绍软件质量评估的方法和工具7.3 软件质量保证活动解释软件质量保证活动的内容和类型介绍软件质量保证计划在项目中的实施方法第八章:软件开发工具与环境8.1 软件开发工具概述解释软件开发工具的概念和作用介绍常用的软件开发工具类别和特点8.2 集成开发环境(IDE)解释IDE的概念和功能介绍主流IDE工具的使用方法和特点8.3 软件configuration management解释软件配置管理的重要性介绍软件配置管理工具和最佳实践第九章:面向对象方法9.1 面向对象概述解释面向对象的原理和特点介绍面向对象方法的主要概念,如类、对象、继承等9.2 面向对象分析解释面向对象分析的目标和方法介绍UML(统一建模语言)在面向对象分析中的应用9.3 面向对象设计解释面向对象设计的任务和原则介绍设计模式的概念和常用设计模式第十章:软件工程案例分析10.1 案例分析概述解释软件工程案例分析的目的和方法介绍案例分析的步骤和技巧10.2 案例分析实例提供一个或多个软件工程案例分析的具体实例分析案例中的成功经验和问题所在解释案例分析报告的结构和内容重点和难点解析重点环节1:软件生命周期软件生命周期是软件工程的基础,包括软件开发的各个阶段,如需求分析、设计、编码、测试和维护等。
《软件工程》电子教案 第一章
前言
本书是依据教育部《高职高专教育基础课程教学的基 本要求》和《高职高专教育专业人才培养目标与规格》 编写而成。全书共15章,内容主要包括:软件危机与软 件工程;软件开发模型;计算机系统工程,需求分析, 总体设计,详细设计,编码与测试,软件维护,面向对 象技术,快速原型技术,重用技术,人机界面设计。书 中含有丰富的例题与习题,便于教学与自学。 本书强调内容的实用性,以问题带知识点的方式 来阐述,内容精练,重点突出,概念清楚,针对性和实 际操作性强。
1.2.3 软件工程框架及原则
性 用 可 可 可 正 确 可 合 软 件 分 析 性 算 可 软 件 设 计 性 实 现 与 维 护
可可
可 开 发 模 型 设 计 方 法 支 持 过 程 管 理 过 程
原则: 一、选取适宜的开发模型; 二、采用合适设计方法; 三、提供高质量工程支持; 四、重视开发过程管理。
软件工程的方法、工具、过程构成了软件工 程的三要素。
1、软件工程的七条基本原理
(1)用分阶段的生命周期计划进行严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应能清楚地审查
(6)开发小组的人员应该少而精
(7)承认不断改进软件工程实践的必要性
2、有那些软件开发的错误方法和观念
1、 软件开发成本与进度估计不准确。 2、 闭门造车。软件开发人员仓促上阵,编写程序。 3、 软件产品的质量量化分析不够。 4、 软件重用性差。 5、 软件没有适当的文档资料。 6、 软件成本逐年上升。
本节小结
产生软件危机原因----与软件本身的特点有关: 1、软件是逻辑部件:试制阶段难衡量;开发质量较难 评价,开发过程管理和控制较难;运行过程才能暴露没 有检测出来的事故,相当于修改设计,软件维护困难; 2、软件规模庞大,有技术问题,也有管理方法问题。 3、早期开发的个体化;忽视需求分析;认为软件开发 写程序;轻视维护,对用户不了解, 4、对前期工作不能忽视,做好软件定义时期的工作, 这是降低成本,提高件质量的关键。 5、严重性:在软件开发的不同阶段修改付出代价(后 期是前期的2-3个数量级),软件维护是极端艰巨复杂的 工作,占55%~70%)
江苏广播电视大学开放教育本科《软件工程》课程教学大纲
江苏广播电视大学开放教育本科《软件工程》课程教学大纲第一部分大纲说明一、课程性质、目的与任务《软件工程》是江苏电大计算机应用专业教学计划中一门综合性和实践性很强的选修课程,主要内容包括软件工程概述、系统分析、软件需求分析、软件设计、Jackson系统开发方法、用户界面设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理等。
根据培养基本应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程实践打下良好的基础。
二、先修课程知识要求计算机的基础知识、程序设计的知识、面向对象程序设计知识三、课程的教学要求基本概念和基本知识:软件与软件工程,硬件系统分析和软件系统分析,生存周期与软件开发模式,结构化分析、需求分析,面向对象分析、设计与编码,软件的评审、测试与维护,项目计划与项目管理。
基本技能:能应用软件工程的基本方法参与软件项目的分析、设计、实现和维护且在实践中灵活运用重点:系统分析、系统设计、系统实现、系统维护难点:系统分析、需求分析、软件设计、软件测试六、考核本课程采取大作业与集中笔试考核相结合的方式,大作业占总成绩的20%,由各教学点和市校自行组织考核,江苏电大进行抽查,不做大作业者不能参加笔试;笔试由江苏电大根据教学大纲统一命题,占总成绩的80%。
第二部分教学内容和教学要求1 软件工程概述教学内容1.1 软件的概念、特点和分类(软件的概念和特点、软件的分类)1.2 软件的发展和软件危机(人们对软件的新的认识、软件的需求是软件发展的动力、软件工作范围的扩展)1.3 软件工程过程和软件生存期(软件工程过程、软件生存期)1.4 软件生存期模型(瀑布模型、演化模型、螺旋模型、喷泉模型、智能模型)1.5软件工程的基本目标(软件工程的定义、软件工程项目的基本目标)教学要求掌握:软件和软件工程的基本概念了解:软件生命周期及软件开发的各个模型2 系统分析教学内容2.1 基于计算机的系统2.2 计算机系统工程(硬件和硬件工程、软件和软件工程、人与人类工程、数据库和数据库工程)2.3 系统需求识别(系统分析的目标、系统分析过程)2.4 可行性研究2.5成本—效益分析(几种度量效益的方法、成本—效益的分析)2.6技术分析2.7分配与权衡2.8系统结构的模型化(结构图、系统结构的规格说明定义)2.9系统定义与评审(系统规格说明、系统定义的评审)教学要求理解:系统分析的含义了解:系统分析过程中的分析方法3 软件需求分析教学内容3.1 软件需求分析的任务3.2 需求分析的过程3.3 软件需求分析的原则3.4分析员和用户的责任3.5软件需求分析方法3.6原型化方法(软件原型化方法概述、快速原型开发模型(原型生存期)、软件开发过程、软件复用)3.7结构化分析方法(数据流图、数据词典、加工逻辑说明)3.8系统动态分析(状态迁移图、时序、Petri网)3.9数据及数据库需求(有关数据库的基本概念、E—R方法、数据结构的规范化、数据库分析的过程)3.10软件需求分析工具(SADT、PSL/PSA)教学要求:掌握:需求分析的方法理解:需求分析的任务和原则了解:需求分析工具4 软件设计教学内容4.1 软件设计的目标和任务(软件设计在开发阶段中的重要性、软件设计任务)4.2 软件设计基础(自顶向下,逐步细化、软件结构、程序结构、数据结构、软件过程、模块化、抽象化及信息屏蔽)4.3 模块的独立性(模块、模块独立性、耦合性、内聚性)4.4 结构化设计方法(典型的系统结构图、变换分析设计方法、事务分析、软件模块结构的改进、设计的后处理)4.5数据设计及文件设计(数据设计的原则、在设计程序结构时的数据结构的选择方法、文件设计)4.6过程设计(程序流程图、N—S图、PAD、判定表、PDL)教学要求掌握:软件设计的过程、步骤、方法及过程设计理解:软件设计过程中模块的特性、结构化程序设计方法5 Jackson系统开发(JSD)方法------面向数据结构的分析与设计方法教学内容5.1 进程模型5.2 JSD方法的步骤5.3 实体动作分析5.4 实体结构分析5.5定义初始模型5.6功能描述5.7 决定系统时间特性5.8 实现掌握:JSD方法6 用户界面设计教学要求6.1 用户界面应具备的特性(可使用性、灵活性、复杂性和可靠性)6.2用户界面设计的任务分析(用户特性分析、用户工作分析、用户模型和观点)6.3 用户界面任务和工作设计(任务分配、工作方式和工作设计)6.4 界面设计的基本类型(界面设计类型、菜单、图象、对话、问题描述语言、窗口)6.5 数据输入界面设计(数据输入的规则、输入表格设计、其它数据输入的方法)6.6数据显示界面设计(数据显示的规则、字符数据的显示、图形显示、报告)6.7控制界面的设计(用控制对话选择操作命令、用菜单界面进行控制、用功能键定义操作命令、用图标表示对象或命令、直接操纵、用窗口划分屏幕、命令语言、自然语言)教学要求掌握:用户界面设计过程、步骤及方法了解:用户界面设计的基本类型7 程序编码教学内容7.1 对源程序的质量要求7.2 结构化程序设计(关于GOTO语句的争论、结构化程序设计的原则、程序设计自顶向下,逐步求精、数据结构的合理化)7.3 程序设计风格(源程序文档化、数据说明、语句结构、输入和输出)7.4 程序效率(讨论效率的准则、算法对效率的影响、影响存储器效率的因素、影响输入/输出的因素)7.5 程序设计语言(程序设计语言特性的比较、程序设计语言的分类、程序设计语言的选择)7.6程序复杂性度量(代码行度量法、McCabe度量法、Halstead的软件科学、软件复杂性的综合度量)教学要求掌握:编码原则及方法了解:程序复杂性度量方法8 软件测试教学内容8.1 软件测试的基础(什么是软件测试、软件测试的目的和原则、软件测试的对象、测试信息流、测试与软件开发各阶段的关系)8.2 测试用例设计(黑盒测试、白盒测试)8.3 白盒测试的测试用例设计(逻辑覆盖、基本路径测试)8.4 黑盒测试的测试用例设计(等价类划分、边界值分析、错误推测法、因果图、功能图)8.5 软件测试的策略(单元测试、组装测试、确认测试、系统测试、测试的步骤及相应的测试种类)8.6 程序的静态分析方法(对程序的静态分析、人工测试)8.7 调试(调试的步骤、几种主要的调试方法、调试原则)8.8 软件测试工具(静态分析工具、动态分析工具、测试数据自动生成工具、模块测试台、测试合成环境)教学要求掌握:软件测试方法、策略了解:软件测试工具9 面向对象技术教学内容9.1 面向对象的概念(对象、类、继承、多态性和动态联编)9.2 开发过程(应用生存期、类生存期、综合方法、系统体系结构)9.3 面向对象分析与高层设计(面向对象分析、论域分析、应用分析、对象模型技术、高层设计、示例)9.4 类的设计(类设计的目标、通过复用设计类、类设计方法、类设计的例子)9.5 实现与测试(类的实现、应用程序的实现、测试一个面向对象的应用、面向对象的测试工具)9.6 Coad与Yourdon面向对象分析与设计技术(面向对象的分析、面向对象的设计)9.7 CRC卡片9.8 Booch的方法(Booch方法的设计过程、Booch方法的基本的模型)教学要求掌握:面向对象技术在软件开发时的运用过程及各种方法10 软件质量保证10.1软件质量的概念(软件质量的定义、软件质量的特性、软件质量特性之间的竞争)10.2软件质量的度量和评价(软件质量的度量、软件质量的评价)10.3软件质量保证(质量保证的概念、软件质量保证的主要任务、质量保证与检验)10.4软件质量保证体系10.5质量保证的体系(质量目标与度量、质量度量方法、软件质量管理小组)10.6软件的质量设计(质量特性转化为软件的内部结构、软件的质量展开)10.7技术评审(设计质量的评审内容、程序质量的评审内容)10.8软件可靠性(软件生存期与软件寿命的关系、软件可靠性的定义、软件可靠性的主要指标)10.9测试中的可靠性分析(推测错误的产生频度、估算软件中错误总数Er方法、测试精确度和测试覆盖度的评价、测试开始时的预测模型)10.10软件容错技术(什么是容错软件、容错的一般方法、容错软件的设计过程、软件的容错系统结构)教学要求掌握:软件质量保证体系理解:软件质量保证的概念11 软件维护11.1软件维护的概念(软件维护的定义、影响维护工作量因素、软件维护的策略、维护成本)11.2软件维护活动(维护机构、软件维护申请报告、软件维护工作流程、维护档案记录、维护评价)11.3程序修改的步骤及修改的副作用(分析和理解程序、修改程序、重新验证程序)11.4软件可维护性(软件可维护性的定义、可维护性的度量)11.5提高可维护性的方法(建立明确的软件质量目标和优先级、使用提高软件质量的技术和工具、进行明确的质量保证审查、选择可维护的程序设计语言、改进程序的文档)11.6维护“老化代码”11.7逆向工程和再工程(预防性维护、逆向工程的元素、再工程中的重构技术)11.8软件配置管理(软件配置管理、配置标识、版本控制、变更控制、配置状态报告、配置审核、软件配置管理工具PVCS)教学要求掌握:软件维护活动的方法理解:软件维护的逆向工程和再工程12 软件工程标准化与软件文档12.1什么是软件工程标准12.2软件工程标准化的意义12.3软件工程标准的制定与推行12.4软件工程标准的层次12.5中国的软件工程标准化工作12.6 ISO 9000-3标准及软件质量认证(ISO 9000标准产生的背景、ISO 9000系列标准的内容)12.7在开发机构中推行软件工程标准化12.8文档的作用与分类(软件文档的作用和分类、对文档编制的质量要求、文档的管理与维护)教学要求掌握:软件工程标准的制定过程理解:软件工程标准化的意义了解:中国软件工程标准化的过程13 软件项目管理与计划13.1项目管理过程13.2软件生产率和质量的度量(软件度量、面向规模的度量、面向功能的度量、软件质量的度量、协调不同的度量方法)13.3在软件工程过程中使用度量(建立基线、度量数据的收集、计算和评价)13.4软件项目估算(针对估算的考虑、软件项目计划的目标、软件的范围、软件开发中的资源、软件项目估算、分解技术)13.5软件开发成本估算(软件开发成本估算方法、专家判定技术、软件开发成本估算的经验模型、自动估算工具)13.6风险分析(风险识别、风险估计、风险评价、风险驾驭和监控)13.7进度安排(软件开发小组人数与软件生产率、任务的确定与并行性、制定开发进度计划、进度安排的图形方法、项目的追踪和控制)13.8软件项目的组织与计划(软件项目管理的特点、制定计划、软件项目的组织的建立、人员配备、指导与检验)13.9软件过程成熟模型(软件机构的的成熟性、软件过程成熟度模型、关键过程领域、成熟度提问单、利用CMM对软件机构进行成熟度评估)教学要求掌握:软件质量度量的方法和软件成本估算方法理解:软件生产率、风险分析了解:软件项目组织与计划第三部分课程大作业为了进一步弄清和巩固课堂所学的知识及实际的应用,配合讲课,设置以下课程大作业(该课程无平时作业):1. 结构化分析2. 概要设计3. 详细设计4. 测试5. 面向对象分析与设计6. 面向对象编程7. 面向对象测试实施要求:1. 课程大作业的1-4使用传统的软件工程方法;5-6使用面向对象的软件工程方法;可以设计一个大例子,用两种方法来做,也可以分别做两个例子。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、应用题
1.假设一家工厂的采购部门每天需要一张定货报表。
报表按零件编号排序,表中列出所有需要再次定货的零件。
对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应商、次要供应商。
零件入库或出席称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。
当某种零件的库存数量少于库存临界值时就应该再次定货。
试绘制数据流图。
1.一个简单的飞机机票预订系统:机票预订系统按功能可分成两部分,一部分为旅行社预订机票,另一部分为旅
客取票,两部分通过机票文件的数据存储联系起来。
旅行社把预订机票的旅客信息(姓名、年龄、单位、身份证号码、旅行时间、目的地等)输入机票预订系统。
系统为旅客安排航班,打印出取票通知单(附有应交的账款)。
旅客在飞机起飞的前一天凭取票通知单交款取票,系统检验无误,输出机票给旅客。
请你根据以上的描述,画出数据流程图。
2. 用用例图描述图书管理。
该系统主要包括三类用户:读者、图书管理员、系统管理员。
其中,读者是多个,图书管理员是几个,系统管理员是一个。
对于系统,读者可以查询自己的借阅情况、分门别类的查询图书和在规定期限内续借不能超过一次操作的情况下进行自行登录续借书等。
图书管理员主要是日常操作以下几个工作环节:图书订购、新书验证、书目录入、图书登记、读者信息管理、借阅书登记、图书信息注销和读者信息注销等,而系统管理员统筹管理图书的系统相关事宜,比如权限维护、日志维护、增删用户和管理系统后台数据等。
某个学生成绩管理系统的部分功能如下:
(1)基本信息管理:教务管理人员输入或修改学期教学计划、学生名单和教师名单;
(2)学生选课:学生根据课程和教师信息进行选课;
(3)分配任课教师:教务管理人员为符合开课条件的课程分配教师和时间;
(4)教师查询并打印课表;
(5)成绩管理:每门课程的教师在考试评分结束后将考试成绩录入,学生可查询。
请根据要求画出该问题的数据流程图。
2. 现在有一个医院病房监护系统,请根据用户需求建立系统的Use Case模型。
用户提出的系统功能要求如下:在医院病房监护系统中,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。
在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,系统会定期自动更新病历。
当病症出现异常时,系统会立即自动报警,通知值班医生及时处理,同时立即打印病人的病情报告,立即更新病历。
请按上述描述,画出系统的用例图。