软件工程(完整1教程)PPT课件
合集下载
软件工程PPT
签订合同的 方法
【案例3】 1963年,美国用于控制火星探测器的计 算机软件中的一个“,”号被误写为“〃”,而 致使飞往火星的探测器发生爆炸,造成高达数亿 美元的损失。 • 如果开发的软件隐含错误,可靠性得不到保证, 那么在运行过程中很可能对整个系统造成十分严 重的后果,轻则影响到系统的正常工作,重则导 致整个系统的瘫痪,乃至造成无可挽回的恶性事 故。
课程介绍:
• 教材及参考书:
–教材:
• 赵池龙等编著,《实用软件工程(第三版)》,电子工 业出版社,十一五规划教材,2011。
–参考书:
• 赵池龙等编著,《软件工程实践教程》,电子工业出 版社,2011; • Roger S. Pressman,Software Engineering:A Practitioner's Approach,清华大学出版社 2001
–如,银行的存款可能被化为乌有,甚至弄成赤字; 工厂的产品全部报废,导致工厂破产。
软件测试的重要性
课程介绍:
• 课程概括
–课程名称:软件工程(Software
Engineering)
–课程特点
• 是计算机专业的重要专业课之一,研究软件开 发和软件管理的一门工程科学; • 需要有关“程序设计语言”、“数据结构”、 “人机交互”、“数据库原理”等课程的知识 作为本课程的基础; • 理论性较强,涉及的知识面广。
这是为什么?就是因为该市是中等城市,不像北京、西安是大城市, “餐饮系统”的客户珠海一家软件公司 (乙方)与珠海一家中药网站公司(甲方),签订 了一个“中药网站开发合同”。该合同中的有 关条款规定:“软件开发费用共计9万元人民 币,开发工期总共为一个月,即2月至3月”。 并且还规定:“乙方若不按期交付项目,每拖 延一天,甲方扣除乙方的软件开发总费用的 1%”。
【案例3】 1963年,美国用于控制火星探测器的计 算机软件中的一个“,”号被误写为“〃”,而 致使飞往火星的探测器发生爆炸,造成高达数亿 美元的损失。 • 如果开发的软件隐含错误,可靠性得不到保证, 那么在运行过程中很可能对整个系统造成十分严 重的后果,轻则影响到系统的正常工作,重则导 致整个系统的瘫痪,乃至造成无可挽回的恶性事 故。
课程介绍:
• 教材及参考书:
–教材:
• 赵池龙等编著,《实用软件工程(第三版)》,电子工 业出版社,十一五规划教材,2011。
–参考书:
• 赵池龙等编著,《软件工程实践教程》,电子工业出 版社,2011; • Roger S. Pressman,Software Engineering:A Practitioner's Approach,清华大学出版社 2001
–如,银行的存款可能被化为乌有,甚至弄成赤字; 工厂的产品全部报废,导致工厂破产。
软件测试的重要性
课程介绍:
• 课程概括
–课程名称:软件工程(Software
Engineering)
–课程特点
• 是计算机专业的重要专业课之一,研究软件开 发和软件管理的一门工程科学; • 需要有关“程序设计语言”、“数据结构”、 “人机交互”、“数据库原理”等课程的知识 作为本课程的基础; • 理论性较强,涉及的知识面广。
这是为什么?就是因为该市是中等城市,不像北京、西安是大城市, “餐饮系统”的客户珠海一家软件公司 (乙方)与珠海一家中药网站公司(甲方),签订 了一个“中药网站开发合同”。该合同中的有 关条款规定:“软件开发费用共计9万元人民 币,开发工期总共为一个月,即2月至3月”。 并且还规定:“乙方若不按期交付项目,每拖 延一天,甲方扣除乙方的软件开发总费用的 1%”。
第1章软件工程学概述
36
(3)软件经常变化 (4)开发软件的效率非常重要 (5.) 和谐地合作是开发软件的关键 (6.) 软件必须有效地支持它的用户 开发软件的目的就是支持用户的工作,满足 用户对软件的需求 (7. )在软件工程领域中通常由具有一种文 化背景的人替具有另一种文化背景的人创 造产品
37
软件工程的研究内容
软件是计算机系统中与硬件(hardware)相互依存 的另一部分,与硬件合为一体完成系统功能。 软件定义包括如下几点: (1)功能和性能的指令集(即程序); (2)程序能正常操纵信息的数据结构(即相关数 据); (3)与程序开发维护和使用有关的各种图文数据 (即说明文档)。
16
软件=程序+数据+相关文档
软件的发展主要经历了以下3个发展阶段:
第一阶段(20世纪50年代初期至20世纪60年 代中期) 特点:(1)称为程序设计阶段 (2)软件生产以个体化为主 (3)编写程序的工具只有低级语言 (4)软件规模小,几乎没有系统化的 标准可循
11
(5)软件由软件使用者自己开发和编写,适 合个人应用 (6)没有“软件”概念,对于程序有关的文 档的重要性认识不足,开发主要围绕硬件 进行 (7)工程规模小,使用工具单一,开发者之 间没有明确分工 第二阶段(20世纪60年代中期至70年代末期) 称程序系统阶段
7
ENIAC诞生于二战时期,最初是作为辅助炮兵计 算炮弹轨迹的工具,在盟军登陆西欧前一年开始 制造,但直到1945年停火时还没完成。在冷战初 期军方就发现了ENIAC的大量用途,它的17468 根真空管被用来测试氢弹的早期设计的可行性。 这台计算机每秒能执行5000条指令,在当时的情 况下它的运算速度比电动式计算机快1000倍。当 然,现在iPhone 6每秒能响应250亿条指令。
(3)软件经常变化 (4)开发软件的效率非常重要 (5.) 和谐地合作是开发软件的关键 (6.) 软件必须有效地支持它的用户 开发软件的目的就是支持用户的工作,满足 用户对软件的需求 (7. )在软件工程领域中通常由具有一种文 化背景的人替具有另一种文化背景的人创 造产品
37
软件工程的研究内容
软件是计算机系统中与硬件(hardware)相互依存 的另一部分,与硬件合为一体完成系统功能。 软件定义包括如下几点: (1)功能和性能的指令集(即程序); (2)程序能正常操纵信息的数据结构(即相关数 据); (3)与程序开发维护和使用有关的各种图文数据 (即说明文档)。
16
软件=程序+数据+相关文档
软件的发展主要经历了以下3个发展阶段:
第一阶段(20世纪50年代初期至20世纪60年 代中期) 特点:(1)称为程序设计阶段 (2)软件生产以个体化为主 (3)编写程序的工具只有低级语言 (4)软件规模小,几乎没有系统化的 标准可循
11
(5)软件由软件使用者自己开发和编写,适 合个人应用 (6)没有“软件”概念,对于程序有关的文 档的重要性认识不足,开发主要围绕硬件 进行 (7)工程规模小,使用工具单一,开发者之 间没有明确分工 第二阶段(20世纪60年代中期至70年代末期) 称程序系统阶段
7
ENIAC诞生于二战时期,最初是作为辅助炮兵计 算炮弹轨迹的工具,在盟军登陆西欧前一年开始 制造,但直到1945年停火时还没完成。在冷战初 期军方就发现了ENIAC的大量用途,它的17468 根真空管被用来测试氢弹的早期设计的可行性。 这台计算机每秒能执行5000条指令,在当时的情 况下它的运算速度比电动式计算机快1000倍。当 然,现在iPhone 6每秒能响应250亿条指令。
软件工程PPT课件(1)
25人 140人 350人
©Copyright 1998 Siemens Business Communications Inc. - All Rights Reserved
01 - 06/30/98 - MKT
SNGZY
软 件 工 程
第一节
软件危机
软件危ห้องสมุดไป่ตู้的内涵
返回本章
软件开发成本和进度的估计常常很不准确 用户对“已完成的”软件系统不满意的现象经常发生 软件产品的质量往往靠不住 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度远远跟不上计算机应用迅
返 回 上一页
继续下一页
速及深入普及的速度
COLLABORATION ©Copyright 1998 Siemens Business Communications Inc. - All Rights Reserved
01 - 06/30/98 - MKT
SNGZY
软 件 工 程
第一节
01 - 06/30/98 - MKT
SNGZY
软 件 工 程
第一节
软件危机
计算机系统的发展历程
计算机系统发展的早期(60年代中期以前)
个体化的软件环境
软件规模小,编写者和使用者往往是同一个人,
返回本章
除程序清单外,无其它文档资料。
返 回 上一页
计算机系统发展的第2代(60年代中期到70年代)
“软件作坊”
软件危机
产生软件危机的原因
软件本身的特点
抽象性:逻辑实体,可记录,但看不到 可复制性:与开发成本相比,复制成本很低 无机械磨损、老化问题 受硬件制约 未完全摆脱手工工艺 开发费用高
软件工程ppt课件完整版
缺陷跟踪
使用缺陷管理工具对缺陷进行 跟踪,确保每个缺陷都得到处 理。
缺陷修复
开发人员对缺陷进行分析并修 复,然后提交给测试人员进行 验证。
回归测试
对修复后的缺陷进行回归测试 ,确保修复没有引入新的缺陷
。
质量评估与改进
质量评估
定期对软件产品的质量进行评估,包括功能 、性能、安全等方面。
过程改进
对软件开发过程进行持续改进,提高开发效 率和软件质量。
,提高代码的可读性和可维护性。
模块化开发
02
采用模块化开发方式,将系统划分为不同的模块进行开发,提
高开发效率和质量。
错误处理
03
对可能出现的错误进行充分的考虑和处理,包括异常捕获、日
志记录和错误提示等,确保系统的稳定性和可靠性。
05 测试与质量保证
测试类型及方法
功能测试对软件产品的各项功 进行验证,确保符 合需求和设计。
同时引入了风险管理机制。
螺旋模型的主要阶段包括:制 定计划、风险分析、工程实施
和客户评估。
螺旋模型的优点在于其强调风 险分析和迭代开发,能够及时 发现并解决问题,降低项目风 险。
螺旋模型的缺点在于其需要较 高的项目管理能力和技术水平 ,且可能因为过度关注风险而 忽略其他重要因素。
敏捷开发模型
敏捷开发的主要实践包括:短周期迭代开发、 持续集成、持续交付和自动化测试等。
水平。
04
迭代增量模型的优点在于其能够逐步增加系统功能和 性能,降低项目风险,同时也能够及时发现并解决问 题。
03 需求分析与管理
需求获取与整理
确定需求来源
与客户、利益相关者、业务领域 专家等进行沟通,明确需求背景
和范围。
使用缺陷管理工具对缺陷进行 跟踪,确保每个缺陷都得到处 理。
缺陷修复
开发人员对缺陷进行分析并修 复,然后提交给测试人员进行 验证。
回归测试
对修复后的缺陷进行回归测试 ,确保修复没有引入新的缺陷
。
质量评估与改进
质量评估
定期对软件产品的质量进行评估,包括功能 、性能、安全等方面。
过程改进
对软件开发过程进行持续改进,提高开发效 率和软件质量。
,提高代码的可读性和可维护性。
模块化开发
02
采用模块化开发方式,将系统划分为不同的模块进行开发,提
高开发效率和质量。
错误处理
03
对可能出现的错误进行充分的考虑和处理,包括异常捕获、日
志记录和错误提示等,确保系统的稳定性和可靠性。
05 测试与质量保证
测试类型及方法
功能测试对软件产品的各项功 进行验证,确保符 合需求和设计。
同时引入了风险管理机制。
螺旋模型的主要阶段包括:制 定计划、风险分析、工程实施
和客户评估。
螺旋模型的优点在于其强调风 险分析和迭代开发,能够及时 发现并解决问题,降低项目风 险。
螺旋模型的缺点在于其需要较 高的项目管理能力和技术水平 ,且可能因为过度关注风险而 忽略其他重要因素。
敏捷开发模型
敏捷开发的主要实践包括:短周期迭代开发、 持续集成、持续交付和自动化测试等。
水平。
04
迭代增量模型的优点在于其能够逐步增加系统功能和 性能,降低项目风险,同时也能够及时发现并解决问 题。
03 需求分析与管理
需求获取与整理
确定需求来源
与客户、利益相关者、业务领域 专家等进行沟通,明确需求背景
和范围。
软件工程经典教程(清华大学用).ppt共48页
角色
岗位职责
PM
1、跟踪单元测试计划和用例的编写、编码和单元测试活动执行的进展情
况,并协调资源。
2、组织专家评审单元测试计划和用例。
3、组织专家评审代码。
4、组织归档。
5、汇总TL的缺陷数据,输出单元测试报告。
TL
1、编写单元测试计划,编写并评审单元测试用例。
2、分配编码工作,控制编码和单元测试进度。
3、协调组员完成编码、代码走读、测试数据准备与管理、单元测试、问 题的修改工作。
4、组织单元测试工作,
5、执行单元测试用例,记录、修改、验证单元测试中发现的缺陷,汇总 模块单元测试缺陷数据和原因分析给PM。
开发人员
1、编写并评审单元测试用例。 2、编码,走读代码,修改代码。 3、执行单元测试用例,记录、修改、验证单元测试中发现的缺陷 。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
三)需求分析★
需求变更流程
角色分配
角色
PM
岗位职责
组织项目组成员对需求文挡的评审。发生需求变更时,组织项目组成员对 项目变更进行实施。
SE
TL 开发人员
TC 测试人员
CCB 评审专家
组织开发人员和测试人员理解需求,提供技术支持,维护需求问题跟踪单 和需求矩阵,识别需求和其他工作产品及计划间的不一致。 和PM一同分 析需求变更,评定严重级别。 编写需求文档,组织预审、内审、外审,以及输出评审表 编写需求文档,参加评审 理解需求,参加评审 理解需求,参加评审 评估需求变更,对变更做出决策 评审需求文挡
软件工程专业介绍1PPT课件
➢研究高级程序设计语言、编译程序、操作系统、 支持编程的工具及各种应用软件
➢工作方式逐步从个体方式转向合作方式
➢出现软件危机
软件危机
许多软件项目不能满足客户的要求 许多软件项目超出预算和时间安排
软件危机
IBM公司的 OS/360,共约100万条指令,花费了5000个人 年;经费达数亿美圆,而结果却令人沮丧,错误多达2000个以 上,系统根本无法正常运行。 OS/360系统的负责人Brooks这样 描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎, 挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹 没在泥潭中的命运。…”
1963年美国飞往火星的火箭爆炸,造成1000万美元的 损失。原因是FORTRAN程序:
DO 5 I=1,3 误写为:DO 5 I=1 . 3
1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软 件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。
软件危机的表现
• 对软件开发成本和进度的估计常常很不正确 • 用户对“已完成的”软件系统不满意的现象经常发生 • 软件产品的质量往往靠不住 • 软件常常是不可维护的 • 软件通常没有适当的文档资料 • 软件成本在计算机系统总成本中所占的比例逐年上升 • 软件开发生产率提高的速度远远跟不上计算机应用迅
软件工程专业
主讲:
内容摘要 一、计算机软件 二、软件工程Biblioteka 内容摘要一、计算机软件
1. 软件的发展 2. 软件的特点 3. 软件的分类 4. 软件语言
计算机软件
• 计算机软件指计算机系统中的程序及其文档
– 程序是计算任务的处理对象和处理规则的描述
• 任务:以计算机为处理工具的任务都是计算任务 • 处理对象:数据(如数据、文字、图形、图像、声音
➢工作方式逐步从个体方式转向合作方式
➢出现软件危机
软件危机
许多软件项目不能满足客户的要求 许多软件项目超出预算和时间安排
软件危机
IBM公司的 OS/360,共约100万条指令,花费了5000个人 年;经费达数亿美圆,而结果却令人沮丧,错误多达2000个以 上,系统根本无法正常运行。 OS/360系统的负责人Brooks这样 描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎, 挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹 没在泥潭中的命运。…”
1963年美国飞往火星的火箭爆炸,造成1000万美元的 损失。原因是FORTRAN程序:
DO 5 I=1,3 误写为:DO 5 I=1 . 3
1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软 件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。
软件危机的表现
• 对软件开发成本和进度的估计常常很不正确 • 用户对“已完成的”软件系统不满意的现象经常发生 • 软件产品的质量往往靠不住 • 软件常常是不可维护的 • 软件通常没有适当的文档资料 • 软件成本在计算机系统总成本中所占的比例逐年上升 • 软件开发生产率提高的速度远远跟不上计算机应用迅
软件工程专业
主讲:
内容摘要 一、计算机软件 二、软件工程Biblioteka 内容摘要一、计算机软件
1. 软件的发展 2. 软件的特点 3. 软件的分类 4. 软件语言
计算机软件
• 计算机软件指计算机系统中的程序及其文档
– 程序是计算任务的处理对象和处理规则的描述
• 任务:以计算机为处理工具的任务都是计算任务 • 处理对象:数据(如数据、文字、图形、图像、声音
软件工程导论_第一章
2.
•
二、软件工程的特性
1. 软件工程关注于大型程序的构造
2. 软件工程的中心课题是控制复杂性 3. 软件经常变化 4. 开发软件的效率非常重要 5. 和谐地合作是开发软件的关键 6. 软件必须有效地支持它的用户 7. 在软件工程领域中是由具有一种文化背景 的人替具有另一种文化背景的人创造产品
• 1.2.2 软件工程的基本原理
• 软件的特点
– 脑力劳动、逻辑(不会时好时坏)、无损耗、研制成 本大,复制成本低
• 软件的分类
– 基于软件功能的划分
• 系统软件(操作系统、网络软件、编译程序、数据库管理系统、 编辑软件、系统检查与诊断软件等) • 应用软件 • 支撑软件
– 基于软件工作方式的划分
• • • • 实时处理软件 分时软件 交互式软件 批处理软件
• 软件的另一个定义: • 软件是计算机系统中与硬件相互依存的另 一部分,它是包括程序、数据及其相关文 档的完整集合。
– 程序是按事先设计的功能和性能要求编写的指 令序列(源程序,目标程序,脚本程序script) – 数据是使程序能正常操纵信息的数据结构; – 文档是与程序开发、维护和使用有关的图文材 料。
• 这个项目的负责人F. D. Brooks事后总结了他在组织开发过程中的沉 痛教训时说:“......正像一只逃亡的野兽落到泥潭中做垂死的挣扎, 越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。......程序设计工 作正像这样一个泥潭,......一批批程序员被迫在泥潭中拼命挣 扎,......谁也没有料到问题竟会陷入这样的困境......”。IBM360 操作系统的历史教训成为软件开发项目的典型事例为人们所记取。
1.3 软件生命周期
• 软件产品或系统一系列相关活动的全周期
《软件工程》教学课件CH7-1面向对象的概念
面向对象分析与设计的建模
软件开发需要把问题解决模型化。 模型化是理解一个复杂系统的工具; 模型是系统早期抽象的重要结构; 常用的面向对象分析与设计模型 Rumbaugh 等人的 OMT 模型 Coad 和 Yourdon 的模型 Booch 开发模型 UML 统一建模语言
面向对象的特点
抽象性:对象的数据抽象和行为抽象; 封装性:信息隐蔽; 共享性: 同一类中所有实例共享数据结构和行为特征; 同一应用中所有实例通过继承共享数据结构和 行为特征; 不同应用中所有实例通过复用共享数据结构和 行为特征
对象
对象是系统中用来描述客观事物的一个实体,是 构成系统的一个基本单位,由一组属性和一组对 属性进行操作的服务组成。 属性一般只能通过执行对象的操作来改变。
2)
a.
b.
c.
3)
a. b.
活动定义了工作人员所执行的工作。有 3 类 步骤: 思考步骤 执行步骤 评审步骤 制品是过程生产、修改或使用的一种信息。 RUP 的制品分为 5 个信息集。 管理集:计划制品、操作制品 需求集:构想文档、项目相关人员需求、 用例模型和业务模型
c.
d.
e.
4)
设计集:设计模型、软件体系结构描述、 测试模型 实现集:源代码和可执行程序、相关数据 结构和数据文档 实施集:安装资料、用户文档、培训材料 工作流用来描述生成结果的活动序列,用以 描述工作人员之间的交互。在 RUP 中共有 9 个核心过程工作流,包括 6 个核心工程工作 流和 3 个核心支持工作流。
用例和参与者的事例 银行储户通过自动取款机(自动柜员机)提款, 转账或检查账户余额。用一组用例表达如下:
软件工程完整PPT教程大纲
应对措施
针对不同类型的风险制定相应 的应对措施,包括预防、减轻、 转移等。
监控与调整
在项目执行过程中持续监控风 险状况,根据实际情况调整应 对措施。
06
CATALOGUE
软件维护与升级策略
软件维护类型及周期
纠正性维护 适应性维护 完善性维护 预防性维护
修复软件缺陷和错误,确保软件正常运行。周期根据错误严重性 和用户需求而定。
05
CATALOGUE
项目管理与团队协作
项目管理流程梳理
规划阶段
制定详细的项目计划,包括任 务分解、资源分配、进度安排 等。
监控阶段
对项目进度、质量、成本等方 面进行实时监控,及时发现问 题并调整。
项目启动
明确项目目标、范围、时间、 成本等关键要素,组建项目团 队。
执行阶段
按照项目计划逐步推进,确保 各项工作按时完成。
数据库设计步骤
包括概念设计、逻辑设计、物理设计 等。
数据库优化策略 如索引优化、查询优化、存储优化等。
数据库新技术 如分布式数据库、NoSQL数据库等。
界面设计原则及实例
界面设计原则
包括用户友好性、易用性、美观性等。
界面设计实例
包括桌面应用界面、Web应用界面、移动应 用界面等。
界面设计要素
如布局、色彩、字体、图标等。
包括电脑游戏、手机游戏、网络游戏等各类 游戏软件的开发。
涉及人工智能算法实现、机器学习模型训练 和应用等方面的软件开发。
02
CATALOGUE
需求分析与设计
需求分析方法与工具
需求分析过程
包括需求获取、需求确认、需求规格说明等步 骤。
常用需求分析方法
如面向数据流的分析、面向对象的分析等。
实用软件工程(第5版)课件 (1)[115页]
▪ 软件工程是研究软件生产和软件管理的工程科学,其内 容包括市场调研、正式立项、需求分析、项目策划、概 要设计、详细设计、编程、测试、试运行、产品发布、 用户培训、产品复制、实施、系统维护、版本升级。
▪ 【例1-1】请读者规划、设计、安装一个校园网。这是一 个硬件工程,工作内容包括:制定设计方案,网络设备 的选型、配置、采购、验货、布线、安装、调试、运行 和交付。在安装和调试中,又要安装和调试许多软件, 如网络操作系统、数据库管理系统、教学软件系统、办 公自动化系统、防火墙及杀毒软件等。
▪ 硬件是看得见、摸得着的电子机械设备块,如主板、硬 盘、U盘、电源、显示器、键盘、鼠标、打印机、电缆等 等。
▪ 软件是依附在硬件上面的程序、数据和文档的集合,是 指挥控制计算机系统(包括硬件和软件)工作的神经中 枢。
▪ 如果将硬件比做人的身体,那么软件就相当于人的神经 中枢和知识才能。
软件分类
▪ 按功能分: ▪ (1) 系统软件 ;(2) 支撑软件;(3) 应用软件。 ▪ 按规模分: ▪ (1) 小型软件(1--5人年); ▪ (2) 中型软件(5--50人年) ▪ (3) 大型软件(50人年以上)。 ▪ 按工作方式分: ▪ (1) 实时软件;(2) 分时软件;(3) 交互式软件; ▪ (4) 批处理软件;(5) 嵌入式软件。 ▪ 按服务对象分: ▪ (1) 项目软件;(2) 产品软件。
实用软件工程
(第5版)
赵池龙 程努华 姜晔 编著
本教材(第5版)7大创新
1. 从多个方面、多种角度,彻底讲清楚了“面向对象、面向元数 据、面向过程”三种软件工程方法;
2. 提出“面向流程分析、面向元数据设计、面向对象实现、面向 功能测试、面向过程管理”的“五个面向”软件工程实践论;
▪ 【例1-1】请读者规划、设计、安装一个校园网。这是一 个硬件工程,工作内容包括:制定设计方案,网络设备 的选型、配置、采购、验货、布线、安装、调试、运行 和交付。在安装和调试中,又要安装和调试许多软件, 如网络操作系统、数据库管理系统、教学软件系统、办 公自动化系统、防火墙及杀毒软件等。
▪ 硬件是看得见、摸得着的电子机械设备块,如主板、硬 盘、U盘、电源、显示器、键盘、鼠标、打印机、电缆等 等。
▪ 软件是依附在硬件上面的程序、数据和文档的集合,是 指挥控制计算机系统(包括硬件和软件)工作的神经中 枢。
▪ 如果将硬件比做人的身体,那么软件就相当于人的神经 中枢和知识才能。
软件分类
▪ 按功能分: ▪ (1) 系统软件 ;(2) 支撑软件;(3) 应用软件。 ▪ 按规模分: ▪ (1) 小型软件(1--5人年); ▪ (2) 中型软件(5--50人年) ▪ (3) 大型软件(50人年以上)。 ▪ 按工作方式分: ▪ (1) 实时软件;(2) 分时软件;(3) 交互式软件; ▪ (4) 批处理软件;(5) 嵌入式软件。 ▪ 按服务对象分: ▪ (1) 项目软件;(2) 产品软件。
实用软件工程
(第5版)
赵池龙 程努华 姜晔 编著
本教材(第5版)7大创新
1. 从多个方面、多种角度,彻底讲清楚了“面向对象、面向元数 据、面向过程”三种软件工程方法;
2. 提出“面向流程分析、面向元数据设计、面向对象实现、面向 功能测试、面向过程管理”的“五个面向”软件工程实践论;
《软件详细设计教程》课件第9章
第9章 面向对象分析
上述五个层次对应着在面向对象分析过程中建立对象模 型的五项主要活动:找出类与对象;识别结构;识别主题; 定义属性;定义服务。必须强调指出的是,我们说的是“五 项活动”,而没有说五个步骤。事实上,这五项工作完全没 有必要顺序完成,也无须彻底完成一项工作以后再开始另外 一项工作。虽然这五项活动的抽象层次不同,但是在进行面 向对象分析时并不需要严格遵守自顶向下的原则。人们往往 喜欢先在一个较高的抽象层次上工作,如果在思考过程中突 然想到一个具体事物,就会把注意力转移到深入分析发掘这 个具体领域上,然后又返回到原先所在的较高的抽象层次。 例如,分析员找出一个类与对象,想到在这个类中应该包含 的一个服务,于是把这个服务的名字写在服务层,然后又返 回到类与对象层,继续寻找问题域中的另一个类与对象。
第9章 面向对象分析
终端与相应的分行计算机通信,分行计算机具体处理针对某 个账户的事务并且维护账户。
拥有银行账户的储户有权申请领取现金兑换卡,使用现 金兑换卡可以通过ATM访问自己的账户。目前仅限于用现 金兑换卡在ATM上提取现金(即取款),或查询有关自己账户 的信息(例如某个指定账户上的余额)。将来可能还要求使用 ATM办理转账、存款等事务。
第9章 面向对象分析
9.2 需 求 陈 述
9.2.1 书写要点 通常,需求陈述的内容包括:问题范围、功能需求、性
能需求、应用环境及假设条件等。总之,需求陈述应该阐明 “做什么”而不是“怎样做”。它应该描述用户的需求而不 是提出解决问题的方法;应该指出哪些是系统必要的性质, 哪些是任选的性质;应该避免对设计策略施加过多的约束, 也不要描述系统的内部结构,因为这样做将限制实现的灵活 性。对系统性能及系统与外界环境交互协议的描述,是合适 的需求。此外,对采用的软件工程标准、模块构造准则、将 来可能做的扩充以及可维护性要求等方面的描述,也都是适 当的需求。
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 1.2.2 软件工程的基本原理
• 1. 用分阶段的生命周期计划严格管理; • 2. 坚持进行阶段评审; • 3. 实行严格的产品控制; • 4. 采用现代程序设计技术; • 5. 结果能清楚地审查; • 6. 开发小组的人员应该少而精; • 7. 承认不断改进软件工程实践的必要性。
•1.2.3 软件工程方法学
• 1.4.4 螺旋模型
• 可把它看作在每 个阶段之前都增加 风险分析的快速原 型模型。
• 1.4.5 喷泉模型
典型的面向对象软件 开发过程模型之一。
1.4.6 Rational 统一过 程
• 1. RUP软件开发经验 • (1)迭代式开发 • (2)管理需求 • (3)使用基于构件的体系结构 • (4)可视化建模 • (5)贯穿于开发过程的软件质量验证 • (6)控制软件变更
软件危机的典型表现:
• 1)对软件开发成本和进度的估计常常很 不准确;
• 2)用户对完成的软件系统不满意的现象 经常发生;
• 3)软件产品的质量往往靠不住;
• 4)软件常常是不可维护的; • 5)软件通常没有适当的文档资料; • 6)软件成本在计算机系统总成本中所占
的比例逐年上升; • 7)软件开发生产率提高的速度跟不上计
•2. 面向对象方法学
• 把数据和对数据的操作紧密结合起来的方法,
模拟人类认识世界解决问题的方法和过程。
• 面向对象的方法
•
=对象(属性与服务的封装)
•
+分类
•
+继承
•
+通过消息的通讯
3. 其他开发方法
• 1)适用于实时事物处理系统的有限状态机
方法(FSM);
• 2)适用于并发软件系统的PETRI网方法;
软件工程
( Software Engineering )
第1章:软件工程学概述
•1.1 软件危机
• 60年代中期以前:通用硬件相当普遍,软件却是 为某个具体的应用而编写的。 • 60年代中到70年代中:软件作坊。
1.1.1 软件危机的介绍
• 软件危机:计算机软件的开发和维护过程 中所遇到的一系列严重问题。(正常、不正 常运行软件都具有这种问题)
1.4 软件过程
•软件过程:为了获得高质量软件所需要完成的 一系列任务的框架,它规定了完成各项任务的工 作步骤。 •软件过程(ISO9000):使用资源将输入转化为 输出的活动所构成的系统。 •输入:如软件需求 •输出:如软件产品
• 1.4.1 瀑布模型
1. 阶段间具有顺序性和 依赖性
2. 推迟实现的观点 3. 质量保证的观点
• 3)以数学概念和理论为基础的形式化方法
,如
• SDC公司的形式化开发方法FDM:
•
(Formal Development Methodology)
• IBM公司的维也纳开发方法VDM:
1.3 软件生命周期
•软件生命周期: •指软件从提出到最终被淘汰的这个存在期。
• 软件生命周期组成:
•1)软件定义;软源自工程的本质特性:• 1. 软件工程关注于大型程序的构造; • 2. 软件工程的中心课题是控制复杂性; • 3. 软件经常变化; • 4. 开发软件的效率非常重要; • 5. 和谐地合作是软件开发的关键; • 6. 软件必须有效地支持它的用户; • 7. 在软件工程领域中是由具有一种文化背景
的人替具有另一种文化背景的人创造产品。
1.4.7 敏捷过程与极限编程
•1.敏捷过程 • 具有高效、快速响应变化的开发过程。 •(1)个体和交互胜过过程和工具; •(2)可以工作的软件胜过面面俱到的文档; •(3)客户合作胜过合同谈判; •(4)响应变化胜过遵循计划。 •2.极限编程 • 敏捷过程中最著名的一种,指把好的开发 实践运用到极致,多应用于软件需求模糊的 场合。
优点:采用规范的
方法;严格规定每 个阶段提交的文档; 要求每个阶段交出 的产品必须经过验 证。
• 1.4.2 快速原型模型
• 优点:不带反馈环,基本 上是线性顺序进行。
1.4.3 增量模型
优点:能较短时间内提交可完成部分工作的产品;可以使用 户有充裕的时间学习和适应新产品。
• 一种风险更大的增量模型:
•
• 通常把在软件生命周期全过程中使用的一整 套技术方法的集合称为方法学(Methodology) ,也称为范型(Paradigm)。
• 软件工程方法学的3要素:方法、工具和过程
•1. 传统方法学 • 也称为生命周期方法学或结构化范型。 • 结构化方法(Structure Method)有: • 1)结构化设计方法(SD); • 2)结构化分析方法(SA); • 3)结构化分析与设计技术(SADT) • 4)JACKSON方法 • 5)WARNIER方法
1.2 软件工程
• 1.2.1 软件工程的介绍 1968年NATO会议:软件工程就是为了经济地获 得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。
1993年IEEE:软件工程是(1)把系统的、规范 的、可度量的途径应用于软件开发、运行和维护 过程;(2)研究(1)中提到的途径。
•
A.问题定义 B.可行性研究 C.需求
分析
•
2)软件开发;
•
D.总体设计
E.详细设计
•
F.编码和单元测试 G.综合测试
•
3)运行维护。
软件生命周期各个阶段:
• 1.问题定义; • 2.可行性研究; • 3.需求分析; • 4.总体设计(概要设计); • 5.详细设计; • 6.编码与单元测试; • 7.综合测试; • 8.维护。
算机应用的发展趋势。
• 1.1.2 产生软件危机的原因
1)软件本身特点造成; 2)软件开发与维护的方法不正确。
主要表现: (a)忽视软件需求分析; (b)认为软件开发就是写程序并使之运行; (c)轻视软件维护;
• 在软件开发的不同阶段进行修改需要付出 的代价很不相同:
代价
高
中
低
早期 中期 后期 软件开发时期
引入同一修改的代价随时间变化的趋势
1.1.3 解决软件危机的途径
• 1)推广使用在实践中总结出来的开发 软件的成功技术和方法,并研究探索更 有效的技术和方法;
• 2)开发和使用更好的软件工具; • 3)良好的组织管理措施。
• 为了解决软件危机产生的问题,软件工程与 方法学逐渐形成,然后出现了两个相互相承又 各有侧重的学科: • 1)软件工程学:主要应用工程的方法和技 术研究软件开发与维护的方法、工具和管理的 一门交叉学科。 • 2)程序设计方法学:主要应用数学的方法 研究程序的性质以及程序设计的理论和方法的 学科。