软件工程知识重点详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
典型案例 • IBM公司 • 1963年-1966年 • IBM360机的操作系统 • 5000人工作一年 • 100万行源程序
每次发行的新版本都是从前一版本中修正1000个程序错误 项目负责人F.D.Brooks事后总结: • “……正像一只逃亡的野兽落到泥潭中垂死地挣扎,越是挣扎,陷得越深,最
后无法逃脱灭顶的灾难。” • “……程序设计工作正像这样一个泥潭,……一批批程序员被迫在泥潭中拼命
获取、修改、显示或传送信息
2020/7/16
5
软件的特征
• 软件是一种逻辑实体,而不是具体的物理实体。因此它具有抽象性。 • 人们可以使用软件,但是无法看到软件本身的形态 。 • 必须通过观察、分析、思考、判断,才能了解其功能、性能等特性。
• 软件的生产与硬件不同,在它的开发过程中没有明显的制造过程。 • 生产螺钉,随时可以监控其质量是否满足要求 • 生产软件,不可控,导致项目延期、失败
2020/7/16
13
1.1 软件危机
• 软件危机的介绍 • 随着计算机应用的日益普及,软件数量急剧膨胀 • 软件开发和维护成本越来越大,令人吃惊地高 • 失败的软件开发项目屡见不鲜
• 什么是软件危机、 • 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题
2020/7/16
14
1.1 软件危机
2020/7/16
16
1.1 软件危机
• 软件危机的原因
• 软件规模越来越大,软件复杂度越来越高 • 软件开发缺乏正确的理论指导,过分依靠个人技巧和创造性 • 没有充分的文档资料(软件配置主要包括程序、文档和数据等) • 软件可靠性缺少度量的标准,质量无法保证 • 轻视软件维护(维护费用占软件总费用的55%-70%) • 用户需求没有完整准确的认识,就匆忙着手编写程序(主要原因)
80% 1980年
85% 1985年
9
软件ቤተ መጻሕፍቲ ባይዱ分类
• 按软件的功能进行划分 • 系统软件 • 操作系统 • 数据库管理系统 • 设备驱动程序 • 通信处理程序等
2020/7/16
10
软件的分类
• 按软件的功能进行划分 • 支撑软件 • 文本编辑程序 • 文件格式化程序 • 程序库系统 • 支持需求分析、设计、实现、测试和支持管理的软件
2020/7/16
3
一些对软件的偏见或误解
• 软件就是程序,软件开发就是编写程序。编完了程序,就一切OK了。 • 掌握了最新的语言和工具,就能写程序了。 • 软件是灵活的,软件的修改很容易。 • 只要会编程,就能写软件,就是程序员;一个公司,只要召些程序员,就能开发好的软件
产品。 • 只要有几个有经验的程序员,再找些兼职的大学生,就能组成一个软件公司。
知识重点(软件工程部分)
2020/7/16
1
一 、软件工程基本原理
• 1.1 软件危机 • 1.2 软件工程 • 1.3 软件生命周期 • 1.4 软件过程
2020/7/16
2
软件及软件工程
• 为什么要讲软件和软件工程 • 只有对软件和软件的开发过程有充分的认识,才能更好的开发出过程受控、质量受控 的软件产品。 • 对于软件和软件开发过程的认识是困难的,存在很多困惑,需要对此有深刻的认识。
7
软件的特征
• 软件的开发至今尚未完全摆脱手工作坊的开发方式。 • 小作坊 • 大作坊 • 依赖核心程序员的手工生产
• 软件本身是复杂的 • 不可预见实际问题的复杂性(需求改变) • 不可预见外界环境的复杂性(断电、硬盘满、网络故障、病毒) • 程序逻辑结构的复杂性(看别人程序难) 软件是人类有史以来生产的复杂度最高的工业产品
2020/7/16
17
2020/7/16
2020/7/16
6
软件的特征
• 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。 • 重装 • 故障修复更加困难
• 软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖 性 • Windows->linux • Oralce->sql server • 微机->手机
2020/7/16
2020/7/16
11
软件的分类
• 按软件的功能进行划分 • 应用软件 • 商业数据处理软件(股票) • 工程与科学计算软件(matlab) • 计算机辅助设计/制造软件(autocad) • 系统仿真软件(科学研究用) • 智能产品嵌入软件(智能手机,智能住宅) • 医疗、制药软件(医院管理信息系统) • 事务管理、办公自动化软件(政府工作流) • 计算机辅助教学软件(PPT)
挣扎,……谁也没有料到问题竟会陷入这样的困境……”。
2020/7/16
15
1.1 软件危机
• 软件危机的表现
• 对软件开发成本和进度的估计常常很不准确 • 用户对“已完成的”软件系统不满意的现象经常发生 • 软件产品的质量往往靠不住 • 软件常常是不可维护的 • 软件通常没有适当的文档资料 • 软件成本在计算机系统总成本中所占的比例逐年上升 • 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势
2020/7/16
8
软件的特征
• 软件成本相当昂贵 • 人工费 • 宣传费 • 运营费 • 税收 • ……
2020/7/16
软件成本在系统中的比例
100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
0%
10% 50年代初
18% 1955年
60% 1970年
72% 1975年
2020/7/16
4
什么是软件
• 软件的定义—软件是计算机系统中与硬件相互依存的另一部分,软件由三部分组成: • 程序:在运行时,能提供所希望的功能和性能的指令集 • 数据:使程序能够正确运行的数据 • 文档:描述程序研制过程、方法及使用的文档
• 软件的开发,绝不仅仅是编写程序 • 软件可看做一个信息交换器,产生、管理、
2020/7/16
12
软件的分类
• 按软件的工作方式划分 • 实时处理软件(对实时性要求高的场合) • 分时软件(windows操作系统) • 交互式软件(等待用户输入) • 批处理软件(无需用户干预)
• 按软件服务对象的范围划分 • 项目软件(委托开发,知识产权属于委托方) • 产品软件(知识产权属于开发方)
相关文档
最新文档