软件工程
导论
方向:项目经理,技术经理,产品经理。
不学软件工程没有分析‘,没有设计,后期维护难,bug多
项目不能举一反三。没有计划性,总是延期,比其他同事慢...
人们对软件的认识
开发软件不等于编写程序
1.问题的定义和规划
2.需求分析
3.软件设计
4.程序编码
5.软件测试
6.实现和运转
计算机软件技术的发展
第一代软件
机器语言
10110000 00000110//将6 送到al
第二代软件
高级程序设计语言
fortran basic
第三代软件
操作系统的出现
dos unix...实现对计算机的管理
第四代软件
出现了结构化程序设计技术(C语言)
第五代软件
面向对象的设计语言
Java c++
软件的分类
按照规模分
微型500行以下 小型2000行以下 中型5000-50000 大型5w-10w 超大型100w以上
按工作方式划分
实时处理软件
分时处理软件
交互式软件
批处理软件
按应用的功能划分
系统软件
支撑软件(如编译软件,文本编辑器)
应用软件
按照服务的对象划分
项目软件(合同约束)
产品软件(为市场开发)
按使用频率划分
如天气预报,工业普查
按失效影响划分:失效代价
软件的特点
抽象性
复制简单,软件保护
不存在老化和磨损
对计算机存在依赖
软件产品大多是“定做的”
复杂性
研制成本昂贵
设计很多社会因素,对软件的看法。
软件工程的产生
软件危机刺激软件工程的产生
丹佛新国际机场事件
开发成功比预期时间长太多了
美国银行信托软件
投入6000万美元没做出来
软件危机包括
如何开发软件,满足软件日益增长的需求
如何维护数量不断膨胀的问题
软件危机的主要表现
软件开发进度难以预测
软件开发成本难以控制
用户对产品功能难以满足
软件产品质量难以保证
软件产品难以维护
软件缺少适当的文档资料
软件危机产生的原因
用户需求不明确
缺乏正确的理论指导
软件开发规模越来越大
软件开发复杂度越来越高
软件是逻辑部件而非物理部件
在开发和维护关系上的错误观念