软件工程导论(全)张海藩PPT课件
合集下载
软件工程导论课件之第11章面向对象设计(第五版)(张海藩编著).pptx
3. 典型的可重用软件成分 项目计划 成本估计 体系结构 需求模型和规格说明 设计 源代码 用户文档和技术文档 用户界面 数据 测试用例
11.3.2 类构件
面向对象技术中的“类”,是比较理想的可重 用软构件,称之为类构件。
1. 可重用软构件应具备的特点
模块独立性强 具有高度可塑性 接口清晰、简明、可靠
件开发规范的重用)。 软件成分的重用。
2. 软件成分的重用级别
代码重用:通常把它理解为调用库中的模块。 代码重用的几种形式:
源代码剪贴
源代码包含
继承
设计结果重用:重用某个软件系统的设计模型 (即求解域模型)。这个级别的重用有助于把一 个应用系统移植到完全不同的软硬件平台上。
分析结果重用:重用某个系统的分析模型。这 种重用特别适用于用户需求未改变,但系统体 系结构发生了根本变化的场合。
在一个中等规模(大约包含100个类)的系统中, 类等级层次数应保持为7±2。
3. 设计简单的类 应该尽量设计小而简单的类,以便于开发和管
理。
为使类保持简单,应该注意以下几点:
避免包含过多的属性。 有明确的定义。 尽量简化对象之间的合作关系。 不要提供太多服务。 在开发大型软件系统时,设计出大量较小的类,需
多态重用
利用多态性不仅可以使对象的对外接口更加一般化, 从而降低了消息连接的复杂程度,而且还提供了一 种简便可靠的软构件组合机制。
11.3.3 软件重用的效益
1. 质量 随着每一次重用,都会有一些错误被发现并被清除,
构件的质量也会随之改善。
2. 生产率 当把可重用的软件成分应用于软件开发的全过程时,
第11章 面向对象设计
11.1 面向对象设计的准则 11.2 启发规则 11.3 软件重用 11.4 系统分解 11.5 设计问题域子系统 11.6 设计人机交互子系统 11.7 设计任务管理子系统 11.8 设计数据管理子系统 11.9Байду номын сангаас设计类中的服务 11.10 设计关联 11.11 设计优化
《软件工程导论》张海潘_第五版_清华_课后答案PPT课件
答 经济上的可行性 ——这个系统的经济效益能超过它的开发成本吗? (投资与效益) 爱 操作可行性 ——系统的操作方式在这个用户组织内行得通吗?
护士 护士
社会、政策允许的可行性
2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系
统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息
an.c 利息
2.3
打印利息
值
d清a单 ai
w. 某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客信息(姓名、性别…等)输入进该系统,系统 ww 为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印 网 出机票给旅客。
源
旅客
取票通知 账单/票款
网 检验信 源息
检验信 息过程
重试信息
资
SC 图
件 用户执行模块 课
案
答 读用户命令
命令处理
题
习
案系统设置
现用/非现用
密码处理
答 控制器
系统
控制器
爱
读系统 数据
建立配 置文件
读 密码
用文件 比较密码
密码输出 控制器
机票预订系统(参见习题 2 第 3 题)
显示信息 与状态
产生 无效信息
6
更新日志
日志
日志
7 产生病情 要求
报告
课件 事样务
数据 数据
案
D1 患者日志
答
6.数据定义 1、顺序 + 2、选择〔 | 〕3、重复
题 – 定货系统 P39 习 – 习题 2 第 5 题 P44 案 2-1 应该从哪些方面研究目标系统的可行性?
护士 护士
社会、政策允许的可行性
2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系
统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息
an.c 利息
2.3
打印利息
值
d清a单 ai
w. 某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客信息(姓名、性别…等)输入进该系统,系统 ww 为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印 网 出机票给旅客。
源
旅客
取票通知 账单/票款
网 检验信 源息
检验信 息过程
重试信息
资
SC 图
件 用户执行模块 课
案
答 读用户命令
命令处理
题
习
案系统设置
现用/非现用
密码处理
答 控制器
系统
控制器
爱
读系统 数据
建立配 置文件
读 密码
用文件 比较密码
密码输出 控制器
机票预订系统(参见习题 2 第 3 题)
显示信息 与状态
产生 无效信息
6
更新日志
日志
日志
7 产生病情 要求
报告
课件 事样务
数据 数据
案
D1 患者日志
答
6.数据定义 1、顺序 + 2、选择〔 | 〕3、重复
题 – 定货系统 P39 习 – 习题 2 第 5 题 P44 案 2-1 应该从哪些方面研究目标系统的可行性?
软件工程导论第一章.ppt
参考书目
- 软件工程导论(第5版)张海藩 清华大学出版社 - 软件工程(第二版)齐治昌、谭庆平、宁洪 编著,高等教育出版社 - Shari Lawrence P fleeger 软件工程——理论与实践(第2版)(高教出版社 影印版),2003
考核方式:闭卷考试 70% 平时成绩(考勤+作业) 30%
(2) 需求分析
本阶段要回答的关键问题是“目标系统应当做什么?”
(3) 软件设计
设计是软件工程的技术核心。本阶段要回答的关键问题是“如何实现目 标系统?”
1.3 软件生命周期(6)
各个阶段所要完成的基本任务 (4) 程序编码和单元测试
1963年美国飞往火星的火箭爆炸,造成1000万美元的损失 。原因是FORTRAN程序:
DO 5 I=1,3 误写为:DO 5 I=1.3
1967年苏联“联盟一号”载人宇宙飞船在返航时, 由于软件忽略一个小数点,在进入大气层时因打不开降 落伞而烧毁。
1.1 软件与软件危机(5)
产生软件危机的原因
- 在软件开发和维护的过程中存在这么多严重问题,一方面与 软件本身的特点有关,另一方面也和软件开发与维护的方法 不正确有关。 ➢客观:软件本身特点 - 逻辑部件 - 规模庞大 ➢主观:不正确的开发方法 - 忽视需求分析 - 错误认为:软件开发=程序编写 - 轻视软件维护 - …….
1.2 软件工程及其基本原理(2)
软件工程的目标
- 软件工程的目标是运用先进的软件开发的周期、较低的成本
生产出高质量 的软件产品,并最终实现软件的工业化生产。
- 软件的质量特性:功能性、可靠性、可使用性、效率、可维 护性和可移植性。
1.2 软件工程及其基本原理(3)
软件开发时期
- 软件工程导论(第5版)张海藩 清华大学出版社 - 软件工程(第二版)齐治昌、谭庆平、宁洪 编著,高等教育出版社 - Shari Lawrence P fleeger 软件工程——理论与实践(第2版)(高教出版社 影印版),2003
考核方式:闭卷考试 70% 平时成绩(考勤+作业) 30%
(2) 需求分析
本阶段要回答的关键问题是“目标系统应当做什么?”
(3) 软件设计
设计是软件工程的技术核心。本阶段要回答的关键问题是“如何实现目 标系统?”
1.3 软件生命周期(6)
各个阶段所要完成的基本任务 (4) 程序编码和单元测试
1963年美国飞往火星的火箭爆炸,造成1000万美元的损失 。原因是FORTRAN程序:
DO 5 I=1,3 误写为:DO 5 I=1.3
1967年苏联“联盟一号”载人宇宙飞船在返航时, 由于软件忽略一个小数点,在进入大气层时因打不开降 落伞而烧毁。
1.1 软件与软件危机(5)
产生软件危机的原因
- 在软件开发和维护的过程中存在这么多严重问题,一方面与 软件本身的特点有关,另一方面也和软件开发与维护的方法 不正确有关。 ➢客观:软件本身特点 - 逻辑部件 - 规模庞大 ➢主观:不正确的开发方法 - 忽视需求分析 - 错误认为:软件开发=程序编写 - 轻视软件维护 - …….
1.2 软件工程及其基本原理(2)
软件工程的目标
- 软件工程的目标是运用先进的软件开发的周期、较低的成本
生产出高质量 的软件产品,并最终实现软件的工业化生产。
- 软件的质量特性:功能性、可靠性、可使用性、效率、可维 护性和可移植性。
1.2 软件工程及其基本原理(3)
软件开发时期
软件工程导论课件全张海藩
软件性能优化
利用大数据技术分析和监控软件系统的运行状态,发现性能瓶颈并 进行优化,提高软件系统的稳定性和效率。
软件故障预测与预防
通过分析历史故障数据和系统日志,预测可能出现的故障并提前采取 预防措施,降低软件维护成本。
云计算在软件工程中的应用
云计算平台开发
基于云计算平台开发软件应用,实现资源的动态分配、弹性扩展和按需付费,降低软件开发和运 维成本。
和输出。
在瀑布模型中,软件开发过程被划分为需求分析、设 计、编码、测试和维护等阶段,每个阶段都必须在前
一个阶段完成后才能开始。
瀑布模型的优点是易于理解和管理,适用于需求稳定、 变更较少的情况。但是,它缺乏灵活性,难以应对需 求变更和快速变化的市场环境。
螺旋模型
螺旋模型是一种迭代式的软件开发过程 模型,它将开发过程划分为多个循环, 每个循环包括需求分析、设计、编码和 测试等阶段。
在敏捷开发模型中,开发团队会按照短周期(通常是一到四周)进行迭代开发,每个周期都会交付可用 的软件产品。
敏捷开发模型的优点是能够快速响应变化、降低开发风险、提高软件质量。但是,它需要更多的沟通和 协作能力,同时也需要更加灵活的管理方式。
其他过程模型
除了上述三种常见的软件开发过程模 型外,还有其他一些过程模型,如原 型模型、增量模型等。
缺陷分析
对缺陷进行分析,找出根本原因,避免类似缺陷再次出现。
质量评估指标
缺陷密度
衡量软件质量的重要指标,表示每千行代码 中的缺陷数。
回归测试通过率
评估软件修复缺陷后,原有功能是否正常的 重要指标。
测试覆盖率
评估测试用例对软件产品功能的覆盖程度。
用户满意度
反映用户对软件产品质量和服务的满意程度。
利用大数据技术分析和监控软件系统的运行状态,发现性能瓶颈并 进行优化,提高软件系统的稳定性和效率。
软件故障预测与预防
通过分析历史故障数据和系统日志,预测可能出现的故障并提前采取 预防措施,降低软件维护成本。
云计算在软件工程中的应用
云计算平台开发
基于云计算平台开发软件应用,实现资源的动态分配、弹性扩展和按需付费,降低软件开发和运 维成本。
和输出。
在瀑布模型中,软件开发过程被划分为需求分析、设 计、编码、测试和维护等阶段,每个阶段都必须在前
一个阶段完成后才能开始。
瀑布模型的优点是易于理解和管理,适用于需求稳定、 变更较少的情况。但是,它缺乏灵活性,难以应对需 求变更和快速变化的市场环境。
螺旋模型
螺旋模型是一种迭代式的软件开发过程 模型,它将开发过程划分为多个循环, 每个循环包括需求分析、设计、编码和 测试等阶段。
在敏捷开发模型中,开发团队会按照短周期(通常是一到四周)进行迭代开发,每个周期都会交付可用 的软件产品。
敏捷开发模型的优点是能够快速响应变化、降低开发风险、提高软件质量。但是,它需要更多的沟通和 协作能力,同时也需要更加灵活的管理方式。
其他过程模型
除了上述三种常见的软件开发过程模 型外,还有其他一些过程模型,如原 型模型、增量模型等。
缺陷分析
对缺陷进行分析,找出根本原因,避免类似缺陷再次出现。
质量评估指标
缺陷密度
衡量软件质量的重要指标,表示每千行代码 中的缺陷数。
回归测试通过率
评估软件修复缺陷后,原有功能是否正常的 重要指标。
测试覆盖率
评估测试用例对软件产品功能的覆盖程度。
用户满意度
反映用户对软件产品质量和服务的满意程度。
软件工程导论张海潘(第六版)第1-13章总结 PPT课件
+
[ ]
{ }
( )
意思是等价于(或定义为);
+
意思是和(即,连接两个分量);
[ ]意思是或(即,从方括弧内列出的若干个分量中选择一 个),通常用“|”号隔开供选择的分量; { } 意思是重复(即,重复花括弧内的分量);常常使用上限 和下限进一步注释表示重复的花括弧。 ( ) 意思是可选(即,圆括弧里的分量可有可无)。
从下述3个方面研究每种解法的可行性:
1)技术可行性 2)经济可行性 3)操作可行性 其他方面:运行可行性、法律可行性
2、典型的可行性研究有下述一些步骤:
1.复查系统规模和目标。
3.导出新系统的高层逻辑模型 5.导出和评价供选择的解法 7.草拟开发计划
2.研究目前正在使用的系统
4.进一步定义问题 6.推荐行动方针 8.书写文档提交审查。
(1)建立数据模型——E-R图 (2)描绘数据结构——层次方框图和Warnier图 (3)数据结构规范化
32
第三章
4、需求分析过程建立三种模型
数据模型:实体-联系图
需求分析
功能模型:数据流图
行为模型:状态转换图
数据字典是分析模型的核心
5、实体-联系图 数据模型中包含3种相互关联的信息:数据对象、数据 对象的属性、数据对象彼此间相互连接的关系。 联系可分为以下三种类型:一对一,一对多和多对
外地号码=数字零+3位数字+8位数字 非零数字=[1|2|3|4|5|6|7|8|9]
a)拨校外电话需先拨0, 若是本市电话则再接着拨8位 数 字(第1位不是0); b)若是外地电话则拨3位区 码再拨8位电话号码(第1位不 是0)。
数字零=0
软件工程导论之第3章-需求分析(第五版)(张海藩编著)-b-百度文库PPT课件
- 注意分配会议时间,记录所有言论。
55
单击此处编辑2.母需版求标专题题样式讨论会
• 单击此处编辑母版副标题样式
56
单击此处编辑母版3.标问题卷样调式查
• 问卷调查
• 单-击可此用于处确编认假辑设母和收版集副统计标倾题向样数据式
- 问卷需要快速回答,允许匿名方式
• 存在问题
- 相关的问题不能事先决定 -问题背后的假设对答案造成偏颇,如这符合你的期望吗? -- 难以探索一些新领域 - 难以继续用户的模糊响应
• 单需击要此系处统编做辑什么母。版副标题样式
• 用例建模的步骤
- 确定系统的参与者 确定场景 - 确定系统用例 - 确定用例之间的关系 编写用例描述文档
60
青岛科技大学信息学院
3.3 分析建模与规格说明
3.3.1分析建模
-需求分析的步骤
1、问题识别
双方确定对问题的综合需求。基于项目有 关的软件的功能、性能、环境、用户界面、可 靠性、安全性、保密性、可移植性、可维护性、 等方面的需求。
3.6 状态转换图 3.7 其他图形工具 3.8 验证软件需求 3.9 小结 习题
青岛科技大学信息学院
青岛科技大学信息学院
3.2 与用户沟通获取需求的方法
需求获取的关键在于通过与用户的沟通和交流,收集 和理解用户的各项要求。
3.2.(1) 访谈--访问用户和用户领域的专家 (2) 需求讨论会 (3) 问卷调查 (4) 现场考察
3.3.2 软件需求规格说明
青岛科技大学信息学院
3.3.2 软件需求规格说明
软件需求规格说明书,是需求分析阶段得 出的最主要的文档。
补充:需求分析阶段要编写文档:
1)编写“需求规格说明书” 2)编写初步用户手册 3)编写“确认测试计划”(为系统完成后确认验收的依 据). 4) 修改完善软件开发计划
55
单击此处编辑2.母需版求标专题题样式讨论会
• 单击此处编辑母版副标题样式
56
单击此处编辑母版3.标问题卷样调式查
• 问卷调查
• 单-击可此用于处确编认假辑设母和收版集副统计标倾题向样数据式
- 问卷需要快速回答,允许匿名方式
• 存在问题
- 相关的问题不能事先决定 -问题背后的假设对答案造成偏颇,如这符合你的期望吗? -- 难以探索一些新领域 - 难以继续用户的模糊响应
• 单需击要此系处统编做辑什么母。版副标题样式
• 用例建模的步骤
- 确定系统的参与者 确定场景 - 确定系统用例 - 确定用例之间的关系 编写用例描述文档
60
青岛科技大学信息学院
3.3 分析建模与规格说明
3.3.1分析建模
-需求分析的步骤
1、问题识别
双方确定对问题的综合需求。基于项目有 关的软件的功能、性能、环境、用户界面、可 靠性、安全性、保密性、可移植性、可维护性、 等方面的需求。
3.6 状态转换图 3.7 其他图形工具 3.8 验证软件需求 3.9 小结 习题
青岛科技大学信息学院
青岛科技大学信息学院
3.2 与用户沟通获取需求的方法
需求获取的关键在于通过与用户的沟通和交流,收集 和理解用户的各项要求。
3.2.(1) 访谈--访问用户和用户领域的专家 (2) 需求讨论会 (3) 问卷调查 (4) 现场考察
3.3.2 软件需求规格说明
青岛科技大学信息学院
3.3.2 软件需求规格说明
软件需求规格说明书,是需求分析阶段得 出的最主要的文档。
补充:需求分析阶段要编写文档:
1)编写“需求规格说明书” 2)编写初步用户手册 3)编写“确认测试计划”(为系统完成后确认验收的依 据). 4) 修改完善软件开发计划
软件工程导论课件之第4章 形式化说明技术(第五版)(张海藩编著)_百度文库
实质上与上面的通俗定义是一样的。
第4章 形式化说明技术
前言 4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结
4.1 概述
4.1.1 非形式化方法的缺点
用自然语言(典型的非形式化方法)书写的系统规 格说明书,可能存在矛盾、二义性、含糊性、不完 整性及抽象层次混乱等问题。
矛盾是指一组相互冲突的陈述。
矛盾是指一组相互冲突的陈述。(不同系统分析员定义范围不同) 二义性是指读者可以用不同方式理解的陈述。 含糊性,例如:这样的需求:“系统界面应该是对 用户友好的。”实际上,这样笼统的陈述并没有给 出任何有用的信息。 不完整性可能是在系统规格说明中最常遇到的问题 之一。(如规格中没有考虑登录失败的转向的页面,即考虑问题不全面) 抽象层次混乱是指在非常抽象的陈述中混进了一些 关于细节的低层次陈述。(总体设计中混入了详细设计,分不清他们)
第4章 形式化说明技术
前言 4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结
形式化说明技术=形式化方法,概念等同。
软件生命周期包括哪几个阶段?
可行性研究
需求分析 总体设计 详细设计
编码和单元测试 描述“系统规格说明书 ”的方法,有哪些? 需求规格说明书
总体设计规格说明书
状态
事件/输入
图4.1 保险箱的状态转换图
图4.1是一个有穷状态机的状态转换图。状态转换 并不一定要用图形方式描述,表4.1的表格形式也 可以表达同样的信息。
转换函数:当前状态+事件/输入下个状态
从上面这个简单例子可以看出,一个有穷状态机包 括下述5个部分:状态集J、输入集K、由当前状态 和当前输入确定下一个状态(次态)的转换函数T、 初始态S和终态集F。对于保险箱的例子,相应的 有穷状态机的各部分如下。 状态集J:{保险箱锁定,A,B,保险箱解锁,报 警}。 输入集K:{1L,1R,2L,2R,3L,3R}。 转换函数T:如表4.1所示。(当前状态+事件/输入下个状态) 初始态S:保险箱锁定。 终态集F:{保险箱解锁,报警}。
第4章 形式化说明技术
前言 4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结
4.1 概述
4.1.1 非形式化方法的缺点
用自然语言(典型的非形式化方法)书写的系统规 格说明书,可能存在矛盾、二义性、含糊性、不完 整性及抽象层次混乱等问题。
矛盾是指一组相互冲突的陈述。
矛盾是指一组相互冲突的陈述。(不同系统分析员定义范围不同) 二义性是指读者可以用不同方式理解的陈述。 含糊性,例如:这样的需求:“系统界面应该是对 用户友好的。”实际上,这样笼统的陈述并没有给 出任何有用的信息。 不完整性可能是在系统规格说明中最常遇到的问题 之一。(如规格中没有考虑登录失败的转向的页面,即考虑问题不全面) 抽象层次混乱是指在非常抽象的陈述中混进了一些 关于细节的低层次陈述。(总体设计中混入了详细设计,分不清他们)
第4章 形式化说明技术
前言 4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结
形式化说明技术=形式化方法,概念等同。
软件生命周期包括哪几个阶段?
可行性研究
需求分析 总体设计 详细设计
编码和单元测试 描述“系统规格说明书 ”的方法,有哪些? 需求规格说明书
总体设计规格说明书
状态
事件/输入
图4.1 保险箱的状态转换图
图4.1是一个有穷状态机的状态转换图。状态转换 并不一定要用图形方式描述,表4.1的表格形式也 可以表达同样的信息。
转换函数:当前状态+事件/输入下个状态
从上面这个简单例子可以看出,一个有穷状态机包 括下述5个部分:状态集J、输入集K、由当前状态 和当前输入确定下一个状态(次态)的转换函数T、 初始态S和终态集F。对于保险箱的例子,相应的 有穷状态机的各部分如下。 状态集J:{保险箱锁定,A,B,保险箱解锁,报 警}。 输入集K:{1L,1R,2L,2R,3L,3R}。 转换函数T:如表4.1所示。(当前状态+事件/输入下个状态) 初始态S:保险箱锁定。 终态集F:{保险箱解锁,报警}。
软件工程导论全套精品课件(第六版)(张海潘编著)
2
第1章 软件工程学概述
引言
3
主要内容
1.1 软件危机 1.2 软件工程 1.3 软件生命周期
1.4 软件过程
第1章 软件工程学概述
主要内容
4
主要内容
1.1 软件危机 1.2 软件工程 1.3 软件生命周期
1.4 软件过程
第1章 软件工程学概述
1.1 软件危机
1.1 软件危机
1.1.1 软件危机的介绍
14
件,把经过时间考验而证明正确的管理技术和当前能够得 到的最好的技术方法结合起来,以经济地开发出高质量的 软件并有效地维护它,这就是软件工程。
第1章 软件工程学概述
1.2.1
软件工程的介绍
软件工程
1968年在第一届NATO会议上曾经给出了软件工程的一个
15
早期定义:“软件工程就是为了经济地获得可靠的且能在 实际机器上有效地运行的软件,而建立和使用完善的工程 原理。” 1993年IEEE进一步给出了一个更全面更具体的定义: “软件工程是: ①把系统的、规范的、可度量的途径应用 于软件开发、运行和维护过程,也就是把工程应用于软件; ②研究①中提到的途径。
与软件本身特点有关
软件不同于硬件, 1管理和控制软件 开发过程相当困 难。 软件在运行过程 2中不会因为使用 时间过长而被 “用坏 “如果运 行中发现了错误, 很可能是遇到了 一个在开发时期 引入的在测试阶 段没能检测出来 的错误。 软件不同于一般 3程序 ,它的一个 显著特点是规模 庞大 ,而且程序 复杂性将随着程 序规模的增加而 呈指数上升。
9
错误的认识和做法 6主要表现为忽视软 件需求分析的重要 性,认为软件开发 就是写程序并设法 使之运行,轻视软 件维护等
软件工程导论张海藩
通常把编码和测试统称为实现。
编码就是把软件设计结果翻译成用某种程序设计语 言书写的程序。
软件测试在软件生命周期中横跨两个阶段。
通常在编写出每个模块之后就对它做单元测试。
在这个阶段结束之后,对软件系统还应该进行各 种综合测试,通常由专门的测试人员承担这项工 作。
通过测试发现错误之后还必须诊断并改正错误,这 就是调试的目的。调试是测试阶段最困难的工作。
7.1.2 编码风格
1. 程序内部的文档 恰当的标识符 适当的注解 程序的视觉组织
2. 数据说明 数据说明的次序应该标准化。
当多个变量名在一个语句中说明时,应该按字 母顺序排列这些变量。
如果设计时使用了一个复杂的数据结构,则应 该用注解说明用程序设计语言实现这个数据结 构的方法和特点。
3. 语句构造 不要为了节省空间而把多个语句写在同一行; 尽量避免复杂的条件测试; 尽量减少对“非”条件的测试; 避免大量使用循环嵌套和条件嵌套;
利用括号使逻辑表达式或算术表达式的运算次 序清晰直观。
4. 输入输出 对所有输入数据都进行检验; 检查输入项重要组合的合法性; 保持输入格式简单; 使用数据结束标记,不要要求用户指定数据的数目;
FOR I:=1 TO N-1 DO BEGIN T:=I; FOR J:=I+1 TO N DO IF A[J]<A[T] THEN T:=J; IF T<>I THEN BEGIN WORK:=A[T]; A[T]:=A[I]; A[I]:=WORK; END END;
例6:强调清晰性
A[I]=A[I]+A[T]; A[T]=A[I]-A[T]; A[I]=A[I]-A[T];
(3) 输入输出的效率
软件工程导论课件之第13章 软件项目管理(第五版)(张海藩编著)
13.1.2 功能点技术
功能点技术依据对软件信息域特性和软件复杂
性的评估结果,估算软件规模。 这种方法用功能点(FP)为单位度量软件规模。
1. 信息域特性 功能点技术定义了信息域的5个特性: 输入项数(Inp):用户向软件输入的项数,这 些输入给软件提供面向应用的数据。 输出项数(Out):软件向用户输出的项数,它 们向用户提供面向应用的信息, 查询数(Inq):查询即是一次联机输入,它导 致软件以联机输出方式产生某种即时响应。 主文件数(Maf):逻辑主文件的数目。 外部接口数(Inf):机器可读的全部接口的数量, 用这些接口把信息传送给另一个系统。
新增加了4个成本因素,它们分别是要求的可重用性、需要 的文档量、人员连续性(即人员稳定程度)和多地点开发。 略去了原始模型中的2个成本因素(计算机切换时间和使用 现代程序设计实践)。 某些成本因素(分析员能力、平台经验、语言和工具经验) 对生产率的影响(即工作量系数最大值与最小值的比率)增 加了,另一些成本因素(程序员能力)的影响减小了。
工序 刮旧漆 2 4 刷新漆 3 6 清理 1 2
表 13.5 各道工序估计需用的时间( 小时) 墙壁 1 或3 2 或4
小时 作业 刮旧漆 刷新漆 清理
2
4
6
8
10 12 14 16 18 20 22 24
第一面墙
第二面墙
第三面墙
第四面墙
Gantt图的主要优点: Gantt图能很形象地描绘任务分解情况,以及 每个子任务(作业)的开始和结束时间。 具有直观简明和容易掌握、容易绘制的优点。 Gantt图的3个主要缺点: 不能显式地描绘各项作业彼此间的依赖关系; 进度计划的关键部分不明确,难于判定哪些部 分应当是主攻和主控的对象; 计划中有潜力的部分及潜力的大小不明确,往 往造成潜力的浪费。
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
与方法。
张
主要内容包括:软件工程概述、软件生存周期及软件
海 藩
需求分析、软件设计方法、软件测试技术等。 通过本课程的学习,使学生能真正的从中了解软件开
发的整个过程。为了让学生真正得以实践,结合实际软件
开发项目,让学生从问题定义开始,经过可行性研究、需
求分析、概要设计、详细设计、编码直到最后要对自己开
软制品
张
(软体)
海
藩
软件是计算机系统中与硬件相互依存的另一部分。 它包括程序、数据及其相关文档的完整集合。
2020/8/1
软
件 工
2、软件特点
程
导
. 软件是一种逻辑实体,而不是具体的物理实体
. 软件的生产与硬件不同
. 在软件的运行和使用期间,没有硬件那样的机械
张
磨损,老化问题
海
藩
失
磨合
修改点 失
实际曲线
张 海 藩
具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但为什么 有一些软件能够得到用户的喜欢,而另一些
则不能?为什么有些软件能够在市场上成功
,而有些则受到冷落?由此可见,开发软件
并不一定难,难就难在如何开发有用的软件。
微软凌小宁博士
2020/8/1
支持管理: 标准检验程序 库管理程序
2020/8/1
软
件 工
2、按软件的规模进行划分
程 导
按开发软件所需的 人力、时间以及完成的
源代码行数。
张 海
类别
参加人数
研制期限 产品规模(源代码行数)
藩
微型
1
1-4周
约500行
小型
1
1-6周
约2000行
中型
2-5
1-2年
5000-50000行
大型
5-20
2-3年
程
导
1、按软件的功能进行划分
张 海 藩
系应支 统用撑 软软软 件件件
2020/8/1
软
件 工
支撑软件
程
导
一般类型:
支持需求分析:
文本编辑程序
PSL/PSA问题描述语言
张
文本格式化程序
关系数据库管理系统
海 藩
支持设计: 图形软件包
支持测试: 静态分析器
结构化流程图绘图程序
测试覆盖检验程序
支持实现: 编辑程序 连接编辑程序
通过本课程的学习,为学生后期的毕业设计环节
奠定了良好的基础。
2020/8/1
软
件
各章学时安排
工
程
导
章 学时 章 学时 章 学时 章 学时
1
2
3
4
9
4 13 2
张
海
补充 2
4
2 10 2 14 4
藩
2
2
8
4 12 2
总学时 46=38(讲授)+8(课程设计)
2020/8/1
软
件 工
第一章 软件工程概述
软 件 工 程 导
我最大的心得是,一个产品一定要找到能够
张
真正适用的场合,不能只是为了技术而从事技术
海
为了研究而进行研究,却不管用户对你所研究的
藩
技术和产品有没有需求。否则,无论你的技术是
多么优秀,多么先进,恐怕你的产品在市场上都
无法获得成功。
微软张益肇博士
2020/8/1
软 件 工 程 导
课程的性质、目的与任务
《软件工程》
Software Engineering
2020/8/1
软 件
工
程
第一部分
导
整体概述
张
海
THE FIRST PART OF THE OVERALL OVERVIEW,
藩
PLEASE SUMMARIZE THE CONTENT
软 件 工 程 导
在一些人眼里,今天的软件开发似乎已
成为简单的事情,已有了不少很好的开发工
程
导
传统工程
水利工程 建筑工程 机械工程 … …
张
新兴工程
气象工程 生物工程 软件工程
海
藩
本章将对软件的地位和作用、软件的特点、软件 的发展、软件的危机以及软件工程学科的形成、软件 生期等方面的问题和基本概念
2020/8/1
软
件 工
1.1 软件的概念与特点
程
导
1、软件
software soft+ware
于1968年 NATO 组织在 德国召开的一次会议上提出
张 海 藩
是把软件当作一种工业产品,要求 “采用工程化的 原理与方法对软件进行计划、开发和维护 ”。
2020/8/1
软
件 工
2、 软件工程学
程
导
软件开发方法学
软件开发技术 软件工具
张
软件工程环境
海
藩
软件工程学
软件工程管理
软件工程管理学 软件经济学
2020/8/1
软
件 工
3、软件的演变(即从传统软件开发到现代软件开发)
程
导
程序 软件 软件产品
张
传统软件开发 现代软件开发
海
藩
营业额
240
增长曲线
80
0.00016 1975
1989
2000
2020/8/1
软
件 工
1.3 软件生存周期 (SW life cycle)
程
导
把软件从产生、发展到成熟、直至衰亡为止
发的软件还要进行测试,这样一个软件开发过程,从而使
学生掌握软件开发的基本技能。
2020/8/1
软 件 工 程 导
学习本课程的基本要求
张
本课程是继程序设计课程之后,对提高学生软件
海 藩
开发能力有重要作用的一门课程。要求学生在学习本 课程前应掌握信息管理系统、数据结构、结构化程序
设计、面向对象程序设计以及程序设计方法论。
张 海
软件工程是计算机科学与技术专业的一门专 业核心课程。通过本课程的学习,使学生掌握系
藩
统的软件开发理论、技术和方法,使用正确的工
程方法开发出成本低、可靠性好并在机器上能高
效运行的软件,为今后从事软件开发和维护打下
坚实的基础。
2020/8/1
软
件
工
程
导
课程主要内容
本课程比较全面、系统地介绍软件工程的概念、技术
---- 软件工程学的范畴
2020/8/1
软 件 工 程 导
微软企业文化宗旨部分内容
张
海
Wake up every day with a feeling of passion
藩
for the different technology will make in people’s
Life.
每天醒来的时候,要对技术给生活造成的改变 始终拥有一份 激情。
效Leabharlann 调整率磨损
效
用坏
率
理想曲线
硬件失效率曲线 时间
软件失效率曲线
时间
2020/8/1
软
件 工
. 软件的成本相当昂贵
程
导
成本%
张 海 藩
软
件
软件需求
复
杂
差距
硬件
性 软件技术
软件
时间
软件技术的发展落后于需求
1950 1970 1985 1995 年份
硬、软件成本比例的变化
2020/8/1
软
件 工
3、软件的分类
5万-10万行
甚大型
100-1000
4-5年
100万行
极大型
2000-5000 5-10年
1000万行
2020/8/1
软 件 工 程 导
3、按软件开发划分
张
海
藩
软软
件件
项产
目品
开开
发发
2020/8/1
软
件
工
1.2 软件工程的概念及范畴
程
导
1、“软件工程”----Software Engineering