数据库与软件工程--软件工程概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件生命周期
软件生命期各阶段
软件生命期一般包括以下各阶段: 1. 软件计划与可行性研究 2. 软件系统需求分析 3. 软件设计 4. 软件编码 5. 软件测试与调试 6. 软件运行与维护
软件-建筑
计划与可行性研究 系统需求分析 软件设计 软件编码 软件测试与调试 软件运行与维护
一、 软件计划与可行性研究
软件工程相关概念
软件危机:
在软件开发过程中遇到的问题找不到解决的办法,致使问题积累起 来形成了日益尖锐的矛盾。
危机实例(1):1963年美国飞往火星的火箭探测器爆炸,造成 1000万美元(数亿美元)的损失。原因是用于控制火星探测器的计算机软
件 FORTRAN程序:
DO 5 I=1,3 误写为:DO 5 I=1.3
软件工程三要素
软件工程方法
为软件开发提供“如何做”的技术。如怎样定项目计划、怎 样实施需求分析、如何测试等。
软件工具
为软件工程方法提供自动或半自动软件支撑环境。如软件开发 工具、测试工具等。软件开发的不同阶段可使用不同的工具。
软件工程过程
将软件工程划分为若干阶段,分配方法和工具,定义每个阶 段的先后顺序和完成标志。
软件发展的三个阶段
程序设计时代(50-60年代)
软件指程序,软件开发关注程序编写,用汇编及机器语言
程序系统时代(60-70年代)
软件指程序及说明书,软件开发包括程序设计和测试,用 高级语言
软件工程时代(70年代以后)
软件开发包括软件生命期,用软件语言(包括需求定义语 言、软件功能语言、软件设计语言、程序设计语言等)
它综合应用计算机科学、数学及管理科学等原理开发 软件的工程。
计算机科学、数学用于构造模型与算法; 工程科学用于制定规范、设计范型、评估成本及确定 权衡; 管理科学用于用于计划、资源、质量、成本等管理。
软件工程的目标
能按时完成开发任务,及时交付使用; 付出较低的开发成本,达到要求的软件 功能; 取得较好的软件性能; 开发的软件易于移植; 需要较低的维护费用; 开发的软件可靠性高。
软件生存周期
生存周期概念 生存周期各阶段 生存周期模型
软件生存周期
软件生存周期概念
软件生存周期(software life cycle)又称为软件生命期。 是指从形成开发软件概念起,所开发的软件使用以后,直到 失去使用价值消亡为止的整个过程。
一般来说,整个生存周期包括计划、开发、运行三个 时期,每一个时期又划分为若干阶段。每个阶段有明确的任 务,这样使规模大、结构复杂和管理复杂的软件开发变得容 易控制和管理。
计算任务:任何以计算机为处理工具的任务 处理对象:数据(如数据、文字、图形、图像、声音等,它们只 是表示,而无含义)或信息(数据及有关的含义) 处理规则一般指处理的动作和步骤。程序必须装入计算机内才能 工作
文档是为了便于了解程序所需的阐明性资料,文档一般是 给人看的,不一定装入计算机
软件的特点:
✓抽象性—不是实物。 ✓严密性—是逻辑产品。 ✓智力性—思维过程。 ✓持久性—无时间损坏。 ✓一次性—创造性的产物。 ✓难以度量—难定量测量。 ✓易出错—信息转移造成。 ✓必须维护—纠错和变更。
目的
确定软件项目是否能够开源自文库?是否值得去开发? 输出:可行性研究报告
成本—效益分析 项目开发计划
一、软件计划与可行性研究
过程
初步确定项目的规模和目标,确定项目的约束和限制。
分析员进行简要的需求分析,抽象出逻辑结构,建立逻 辑模型。
克服软件危机的途径
消除 错误的概念和做法
推摆广脱使软用件成功危的机开发的技出术路和方:法
使加软强用件软软件开件管工发理具和的软件工工程程支化持环和境标准化
软件工程相关概念
软件工程:
软件工程是用科学知识和技术原理来定义、开发、维 护软件的一门综合性的交叉学科,软件工程是开发与维护 软件的规范化系统方法。
危机实例(2):1967年苏联“联盟一号”载人宇宙飞船在返航时,由 于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。 宇航员:弗拉迪米尔·科马洛夫
软件工程相关概念
软件危机:
危机实例(3): 人员伤亡:由于计算机软件被广泛应用于包括医院等与生命息息
相关的行业。这也使得软件的错误导致人员伤亡成为了可能。 Therac-25的意外:(在软件工程界被大量引用的案例) 在1985年六月到1987年一月之间, 六个已知的医疗事故来自于
Therac-25错误地超过剂量, 导致患者死亡或严重辐射灼伤
软件工程相关概念
软件危机:
危机实例(4):
IBM公司1963-1966年开发IBM360操作系统,项目花了5000人-年的 工作量,最多时有1000人投入开发工作,写出100万行源程序,但发行的 每一新版本都是上一版1000个错误的修正。
事后负责人F.D.Brooks总结教训时说:“……正象一只逃亡的野兽 落到泥潭中做垂死的挣扎,越是挣扎,陷的越深。最后无法逃脱灭顶的 灾难。程序设计工作正像这样一个泥潭,一批批程序员被迫在泥潭中拼 命挣扎,……谁也没料到问题竟会陷入这样的困境……”
软件危机的表现
对软件开发成本和进度的估计常常很不正确 用户对“已完成的”软件系统不满意的现象经常 发生 软件产品的质量往往靠不住 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统总成本中所占的比例逐年 上升 软件开发生产率提高的速度远远跟不上计算机应 用迅速普及深入的趋势
软件危机的原因
软件是逻辑产品,开发进度、成本难以估计 缺乏或不完整、不一致的文档给维护带来困难 用户对软件需求的描述往往不够精确,有遗漏,有二 义 软件开发人员对需求的理解与用户的本来愿望有差异 大型软件项目需多人协同完成,缺乏管理经验 开发人员不能有效地、独立自主地处理大型软件的全 部关系 缺乏有力的方法学和工具的支持 软件项目的特殊性和人类智力的局限性
数据库与软件工程--软件工程概述
路漫漫其悠远
少壮不努力,老大徒悲伤
软件工程综述 软件生存周期 软件质量与质量保证 软件工程管理 软件开发环境
软件发展的三个阶段 软件工程相关概念 软件工程目标 软件工程三要素
什么是计算机软件?
计算机软件指计算机系统中的程序及其文档
程序是计算任务的处理对象和处理规则的描述