第一讲 软件开发概述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
2.4 导致软件失败的偶然因素
(2) 过程因素
软件开发过程确定以促进开发小组内部合作的活动和组织 的程序,使得能交给客户一个性能优良的产品。 过程模型包括:说明执行活动的次序;说明需要交出什么 样的制品,以及什么时候交出;将活动和制品分配给开发 者;提供监控项目进程、评估产出和计划未来项目的准则; 迭代式和增量式开发 能力成熟度模型CMM(1-5级) ISO9000
2. 软件危机与软件工程
2.3 软件开发的本质
由前节可以看出,在信息系统开发中许多关于项目失败、 超出期限和预算、解决方案错误、系统不可维护的例子, 几乎四分之三的软件项目由于上述原因中的一种或多种 而失败。 这些“基本的困难”确定了软件开发中的一个不变得事 实,这个不变事实简要地指明软件是作为一种创造性的
1.3 软件类型
(1)系统软件 操作系统:管理、分配、控制系统资源组程序的集合, 提供给用户可操作的基本应用界面。 编译程序:把高级语言转换为计算机可识别并执行的机 器语言 数据库管理系统:存储、管理数据,方便信息数据的使 用 网络通信管理程序:对网络间通信进行控制和管理 诊断程序:检查和判断计算机系统的故障 等等
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
1. 软件概念特点
1.3 软件特点
(5)软件成本相当昂贵.
软件的研制工作需要投入大量的、复杂的、高强度的脑力 劳动,它投入的成本是比较高的。 软件工作涉及到相当多的社会因素,如软件的开发和运行 涉及到机构设置,体制运作及管理方式等问题,甚至涉及 到人们的观念和心理,这些因素直接影响到项目的成败。
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
1. 软件概念特点
1.3 软件特点
(3)软件不同于机械、电子设备,它不存在磨损和老化问题, 然而它存在退化问题,设计人员必须多次修改。 桥梁维护仅限于粉刷、修复小裂缝、重铺路面。修改操作 系统三年修改50%的源代码,把操作系统从一种机器移植 到以一种完全不同的机器,是很自然的。 维护考虑经济问题。新旧技术选择。 只有坏的软件才需要维护? 软件维护成本和时间占整个软件成本和时间的50-60%, 有的甚至80%。
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
Biblioteka Baidu
1. 软件概念与特点
1.1 软件概念
世界上第一个编软件的人—阿达(Augusta Ada) 19世纪60年代为机械式计算机巴贝奇编写软件 软件是整个计算机系统中具体实现各种功能和操作的核心 部分。 软件=程序+方法+数据+文档 程序是按事先设计的功能和性能要求,执行的指令序 列 方法是提供如何构造软件的技术 数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料

东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
2.5 “软件工程”的提出
1968年北大西洋公约组织的计算机科学家在联邦德国召 开会议,讨论软件危机问题,正式提出“软件工程”的概 念。
软件工程即采用工程的概念、原理、技术和方法来开发和 维护软件,将工程管理技术成功的经验和思想与具体软件 的开发过程、研究技术相结合,形成一整套适合于计算机 软件开发的方法、规范和技术。
活动开发的产品,是由工匠而不是美术家创作的工艺品 或艺术品。
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
2.4 导致软件失败的偶然因素
(1) 投入者(客户、开发人员)
客户因素:客户的需要被误解或没有被完全捕捉;客户 需求变化过于频繁;客户没有准备为项目提交足够的资 源;客户不想与开发者合作;客户具有不现实的期望; 系统不再对客户有利。 开发组织:未雇佣最好的开发者;为现有的开发者未提 供继续培训和教育的机会;开发者之间进行信息交换和 交互不够;未通过消除障碍并努力激励开发者;未提供 一个令人鼓舞的工作环境;使个人目标和组织策略及目 标不一致;缺少团队工作;
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
1. 软件概念与特点 1.1 软件概念
至今尚无一个 明确的定义
软件的定义的发展 程序的集合:50-60年代 程序+文档:70年代,软件危机以后,认识到 文档的重要性 程序+文档+数据+方法:80年代以后,加强 软件生产的工程化、规范化
面向对象技术与Java程序
胡清河
东北大学 信息科学与工程学院 系统工程研究所
Who Am I?
胡清河
博士 副教授 huqinghe@ise.neu.edu.cn
东北大学 信息科学与工程学院 系统工程研究所
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
2.2 关于软件失败的几个故事
bug的故事 0金额帐单的故事 美国战略防空司令部的导弹虚惊 Therac—25医用线性加速器致病人死亡 飞毛腿导弹击中沙特兵营
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
2.7 软件开发的几个比喻
(1) 建造房子—开发方法与开发过程
盖一个茅草屋,几个人几天就可以完成。但盖一个摩天 大楼,需要很多人协作,需要可行性分析、设计蓝图、 施工、验收等过程,在投入后还要进行维护。 建筑师设计大厦会考虑体系结构问题。建造房子时可以 使用预先做好的预制件,而不用一砖一瓦开始做。有时 因为某些原因,可以把用于别的房子的构件,对房子质 量等没有影响。
1. 软件概念特点
1.3 软件特点
(1)软件是一种逻辑实体,而不是具体的物理实体,因此它 具有抽象性,质量问题不易暴露.
人们往往忽视软件质量问题及其造成的损失。 桥梁和操作系统的一个重要区别在于,土木工程界和软件 工程界对于崩溃这件事情的态度不一样。1940年Tacoma Narrows大桥坍塌 vs Windows死机 如果一个软件工程师像一般工程师对待桥梁坍塌那样严肃 地对待操作系统崩溃,软件工程的职业水准就会大大提高。
第一部分:基础知识
软件开发基本概念
软件危机与软件工程
软件 基础知识
中国软件现状
软件开发技术演化 面向对象基本概念
统一建模语言UML
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
第一讲 软件开发概述
软件概念与特点 软件危机与软件过程
软件生命周期
中国软件现状与解决
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
1. 软件概念与特点
1.2 软件发展历程
第一阶段 第三阶段 第四阶段
20世纪50年代初至60年代初 •自定义软件 •有限的分布 第二阶段 •面向批处理 20世纪60年代中至70年代末 •软件产品 •数据库 •实时 •多用户
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
1. 软件概念与特点 1.3 软件类型
(2)应用软件
财务管理系统 交通的票务系统 辅助教学软件 电子表格 Microsoft Office 等等
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
2.6 “软件工程”的基本原理
① ② ③ ④ ⑤ ⑥ ⑦ 用分阶段的生命周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采纳现代程序设计技术 结果应能清楚地审查 开发小组的人员应少而精 承认不断改进软件工程实践的必要性
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
2.7 软件开发的几个比喻
(2) 西部旅行—开发经验 对于一个完全不熟悉旅途和目的地情况的人,在途中会遇 到各种各样的问题,解决这些问题只能依赖别人的经验、 书本知识和自己的判断。如果这些问题解决得好,可能成 功到达目的地,否则就会走弯路,甚至离目的地越来越远, 最后由于时间或经费等原因不得不放弃履行。 如果这个人以前曾经成功地到达目的地,那么他以后再次 到西部旅行时就会熟悉沿途的情况,对可能遇到的风险就 会预先做好防范,成功到达目的地的机会就会大大增加。
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
1. 软件概念特点
1.3 软件特点
(2)软件生产与硬件不同,软件开发没有明显的制造过程, 不能完全工程化。 软件成为产品后,其制造只是简单的拷贝而已。 由于软件本身是非常复杂的--实际问题的复杂性、程序 逻辑结构的复杂性,软件执行时经过一个不连续的离散 状态(离散数学)。桥梁是一种类似于连续的系统,可 用微分方程描述。软件不能完全工程化。 容错的概念:设计桥梁要使它能承受可预见的考验。软 件设计的前提是我们并不能预见软件能遇到的任何情况, 在遇到意外时,能够将损失降到最小。
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
2.4 导致软件失败的偶然因素
(3) 建模语言和工具
开发人员需要一种语言来创建可视化系统模型,并与客 户和其他开发人员讨论。 目前通用的语言是UML和支持UML的一些CASE工具如: MagicDraw,Power Designer,Rational Rose
20世纪80年代末至今 •网络计算机 •并行计算 •人工神经网络 •专家系统 •强大的桌面系统 •多项开发技术
20世纪70年代中至80年代末 •消费者影响 •低成本硬件 •潜入”智能” •分布式系统
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
1. 软件概念与特点
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
1. 软件概念特点
1.3 软件特点
(4)软件开发和运行受到计算机系统的限制。
软件开发方法往往依赖于硬件技术,同时效仿硬件技术, 但是又远远落后于硬件技术。 比如至今为止,软件的开发尚未完全摆脱手工艺的方式, 但是硬件技术已经发展到超大规模集成电路阶段,而从 市场上买到的软件,本身是一个完整的系统,不能作为 构件再组成其他程序。
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
23% 28%
Cancelled Late/Over Budget Successful
49%
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
东北大学信息科学与工程学院系统工程研究所 胡清河 huqinghe@ise.neu.edu.cn
2. 软件危机与软件工程
2.1 软件危机
① ② ③ ④ ⑤ ⑥ ⑦ 对软件开发成本和进度估计常常很不准确 用户对“已完成的”软件系统不满意的现象经常发生 软件产品的质量往往不可靠 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统中所占比例逐年上升 软件开发生产效率提高的速度运远跟不上计算机应用 迅速普及深入的趋势。
相关文档
最新文档