?Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
第一章 软件工程
SNGZY
软 件 工 程
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程第一章 软件工程第一节 软件危机第二节 软件工程返回主菜单继续下一页返 回 上一页
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程第一节 软件危机计算机系统的发展历程软件危机的内涵产生软件危机的原因解决软件危机的途径返 回 本 章继续下一页返 回 上一页
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程第一节 软件危机返 回 本 章继续下一页返 回 上一页过程文档 硬件人数据库 软件系统输入输出计算机系统的发展历程
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程计算机系统的发展历程计算机系统发展的早期 (60年代中期以前 )
软件规模小,编写者和使用者往往是同一个人,
除程序清单外,无其它文档资料。
计算机系统发展的第 2代 ( 60年代中期到 70年代 )
比较广泛使用产品软件,仍沿用个体化开发方法。软件维护工作很难进行,甚至不可维护(不能修改运行时发现的错误,不能适应新的硬件环境)由于软件的,不可维护,,而导致了,软件危机,。
个体化的软件环境
“软件作坊,
第一节 软件危机继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程计算机系统的发展历程第 3代 ( 70年代中期开始 )
个人计算机产品、分布式系统对软件开发提出更高要求,软件在工业、学术界应用广泛,个人应用少。
第 4代 ( 70年代后期至今 )
复杂操作系统控制的强大的桌面系统,局域网和广域网,先进的应用软件配合,成为主流。集中主机环境转变为分布的 C/S,B/S环境。面向对象技术取代传统技术。
微处理器出现更强大的硬件和软件第一节 软件危机继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程软件危机的内涵是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 IBM360
软件危机:
主要是两个方面的问题:
如何开发软件 ── 怎样满足对软件日益增长的需求如何维护软件 ── 数量不断膨胀的已有软件第一节 软件危机继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
例,Windows95有 1000万行代码
Windows2000有 5000万行代码
Exchange2000和 Windows2000开发人员结构
Exchange2000 Windows2000
项目经理 25人 约 250人开发人员 140人 约 1700人测试人员 350人 约 3200人
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程软件危机的内涵
软件开发成本和进度的估计常常很不准确
用户对,已完成的,软件系统不满意的现象经常发生
软件产品的质量往往靠不住
软件常常是不可维护的
软件通常没有适当的文档资料
软件成本在计算机系统总成本中所占的比例逐年上升
软件开发生产率提高的速度远远跟不上计算机应用迅速及深入普及的速度第一节 软件危机继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程产生软件危机的原因软件本身的特点抽象性:逻辑实体,可记录,但看不到可复制性:与开发成本相比,复制成本很低无机械磨损、老化问题受硬件制约未完全摆脱手工工艺开发费用高第一节 软件危机继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程产生软件危机的原因软件人员的主观原因早期软件开发个体化。至今,忽视软件需求分析的重要性,轻视维护。
开发与维护的方法不正确第一节 软件危机继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
改正一个问题需付出的代价需求分析结构设计详细设计编码集成测试系统测试现场改正一个问题的估计费用改正一个问题估计的工作量
20
200
2000
1000
5.0
2.5
0.05
0.5
(美元 ) (人天 )
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程解决软件危机的途径推广使用在实践中总结出来的开发软件的成功的技术和方法研究、探索更好更有效的技术和方法开发和使用更好的软件工具有必要的组织管理措施第一节 软件危机继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程第二节 软件工程基本概念软件工程基本原理软件工程方法学继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程基本概念软件一般认为由三部分组成:
程序:在运行时,能提供所希望的功能和性能的指令集数据结构:使程序能够正确运行的数据结构文档:描述程序研制过程、方法及使用的文档第二节 软件工程继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程基本概念软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
第二节 软件工程继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程北大西洋公约组织 NATO的计算机科学家,
在联邦德国召开国际会议,讨论软件危机问题。正式提出,软件工程,这个名词
── 新兴工程学诞生了。
基本概念软件工程学诞生( 1968年)
第二节 软件工程继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程软件工程基本原理著名软件工程专家 B.W.Boehm在 1983年提出的 7条基本原理。
用分阶段的生命周期计划严格管理
坚持进行阶段评审
实行严格的产品控制
采用现代程序设计技术
结果应能清楚地审查
开发小组的人员应该少而精
承认不断改进软件工程实践的必要性继续下一页返 回 上一页返 回 本 章第二节 软件工程
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程软件工程基本原理软件工程的 7条基本原理用分阶段的生命周期计划严格管理应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。( Boehm认为应该严格执行六类计划:项目概要计划;里程碑计划;项目控制计划;产品控制计划;验证计划;
运行维护计划。)
第二节 软件工程继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程坚持进行阶段评审软件的质量保证工作不能等到编码阶段结束之后再进行。大部分错误是编码之前造成的:根据 Boehm等的统计设计错误占软件错误的 63%,编码错误仅占 37%。错误发现与改正得越晚,所付出的代价也越高。
第二节 软件工程软件工程基本原理软件工程的 7条基本原理继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程第二节 软件工程当需求改变时,必须实行严格的产品控制,
其中主要是实行基准配臵管理。一切有关修改软件的建议,特别是涉及到基准配臵的修改建议,都必须按照严格的规定进行评审,获得批准后才能实施修改。(基准配臵管理也称为变动控制)
实行严格的产品控制软件工程基本原理软件工程的 7条基本原理继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程采用现代程序设计技术采用先进的技术既可以提高软件开发的效率
,又可提高软件维护的效率。 60年代末提出结构程序设计技术 ------结构分析 (SA) 与结构设计( SD)。 80年代末提出面向对象的技术。
第二节 软件工程软件工程基本原理软件工程的 7条基本原理继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程第二节 软件工程软件工程基本原理结果应能清楚地审查软件开发人员工作进展情况可见性差,
难以准确度量,难于评价和管理。应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得结果能够清楚地审查。
软件工程的 7条基本原理继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程开发小组的人员应该少而精开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。小组人员增加,交流情况和讨论问题而造成的通讯开销也急剧增加,人数为 N,可能的通讯路径有 N(N-1)。
第二节 软件工程软件工程基本原理软件工程的 7条基本原理继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程承认不断改进软件工程实践的必要性不仅要积极主动的采纳新的软件技术,
而且要不断总结经验。
软件工程基本原理软件工程的 7条基本原理继续下一页返 回 上一页返 回 本 章第二节 软件工程
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程软件工程方法学方法学第二节 软件工程软件生命周期全过程使用的整套技术的集合。
继续下一页返 回 上一页返 回 本 章 方法学三要素方法:完成软件开发的各项任务的技术方法工具:为方法提供自动、半自动的软件支撑环境过程:获得高质量软件的任务框架,工作步骤
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程软件工程方法学传统方法学
(生命周期方法学、结构化范型)
第二节 软件工程继续下一页返 回 上一页返 回 本 章面向对象方法学
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程传统方法学 ( 生命周期方法学要点 )
生命周期一个软件从定义、开发、使用、和维护,
直到最终被废弃要经历一个漫长的时期,这个时期称为生命周期。
划分生存周期的基本原则
使各阶段的任务彼此间尽可能相对独立,
同一阶段各项任务的性质尽可能相同,有利于软件开发工程的组织管理第二节 软件工程继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程第二节 软件工程传统方法学 ( 生命周期方法学要点 )
生命周期的组成 问题定义软件定义 可行性研究需求分析总体设计生命周期 详细设计编码和单元测试综合测试软件维护 软件维护软件开发继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程第二节 软件工程面向对象方法学继续下一页返 回 上一页返 回 本 章面向对象方法 =对象 +类 +继承 +消息通信面向对象方法学尽可能模拟人类的思维方式,符合人类认识客观世界解决实际问题的过程。降低了软件产品的复杂性,提高了可理解性,简化了软件的开发和维护工作。提高了可重用性。
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程提高软件的可维护性。
减少维护的代价第一章 软件工程软件工程学的重要目标继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程本章内容综述本章对计算机软件工程学作一个简短的概述 。
首先通过回顾计算机系统发展简史,说明开发软件的一些错误方法和观念是怎样形成的 。 然后列举了这类错误方法带来的严重弊病 ( 软件危机 )
总结计算机软件的历史经验教训,借鉴其他工程领域的管理技术逐步使软件工程这门新学科发展和完善起来 。
本章可以使学生对软件工程的基本思想,原理,方法有概括的本质的认识,
第一章 软件工程继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程小结本章应重点掌握的内容
软件危机及产生的原因
划分软件生命周期各阶段的原则本章教学的难点掌握理解开发软件与写程序的区别,深刻体会传统方法学和面向对象方法学要点第一章 软件工程基本概念 软件危机、软件工程、
软件生命周期、面向对象方法基本内容继续下一页返 回 上一页返 回 本 章
Copyright 1998 Siemens Business Communications Inc,- All Rights Reserved 01 - 06/30/98 - MKTCOLLABORATION
SNGZY
软 件 工 程作业第一章 软件工程继续下一页返 回 上一页返 回 本 章习题,1— 5