1 / 44
文档名称:

2015年软件工程0-1软件工程介绍.ppt

格式:ppt   页数:44页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2015年软件工程0-1软件工程介绍.ppt

上传人:3099984911 2015/3/9 文件大小:0 KB

下载得到文件列表

2015年软件工程0-1软件工程介绍.ppt

文档介绍

文档介绍:《软件工程》
第1章
软件工程介绍
软件与软件的复杂度
什么是软件?(站在软件工程的角度看)
软件就是:
一个或多个计算机程序,其执行时能提供所期望的功能和性能
一个或多个数据结构,这些结构使得程序能够完全操纵信息
一个或多个文档,这些文档描述了程序分析、设计、实现和维护的细节
软件的定义:
面向过程的程序=算法+数据结构
面向对象的程序=对象+消息
面向构件的程序=构件+构架
50年代:软件=程序
60年代:软件=程序+文档(分析、设计、测试、维护,但不包括管理文档)
70年代:软件=程序+文档+数据(初始化数据、测试数据、研发数据、运行数据、维护数据、工程数据、项目管理数据等)
1984年美国开始认识到软件管理是一个过程管理,,96年出现UML。
“软件工作产品”——开发过程中产生的各种软件
“软件产品”——最后交付的软件
软件与软件的复杂度
IEEE Standard Glossary of Software Engineering Terminology给出了有关软件的定义:
软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。
计算机程序是计算机设备可以接受的一系列指令和说明,为计算机执行提供所需的功能和性能。
数据是事实、概念或指令的结构化表示,能够被计算机设备接收、理解或处理。
文档是描述程序研制过程、方法及使用的图文材料。
软件与软件的复杂度
IEEE Standard Glossary of Software Engineering Terminology给出了有关软件的定义(英文版):
Software. Computer programs, procedures, and possibly associated documentation and data peraining to the operation of puter system.
软件与软件的复杂度
软件的分类:
(1)按功能分:系统软件、支撑软件、应用软件
(2)按规模分:大型、中型、小型
(3)按工作方式分:实时/分时、交互/批处理
(4)按服务对象分:定制软件、产品软件(或称为通用软件)
(5)按销售方式分:定单软件、非定单软件
软件与软件的复杂度
软件的特征
软件是设计开发的,而不是传统意义上生产制造的
软件不会磨损
大多数软件仍然是定制的,而不是通过已有构件组装而成,虽然软件业内向着基于构件的构造模式发展
从对比的角度理解这三点:
软件是开发出来的,不是制造出来的
软件可能被“废弃”,但不会“用坏”
软件大部分是定制的,而不是装配的
软件与软件的复杂度
软件的特征
抽象性:逻辑实体,可记录,但看不到
可复制性:与开发成本相比,复制成本很低
软件与软件的复杂度
软件的复杂度
更高的技术复杂性
- 嵌入式,实时的,分布式的,不可出错的
- 定制的, 空前的,可复用的
- 高性能的
较低的技术复杂度
- 大部分是4GL, 或基于组件技术的
- 应用反向工程
- 基于交互式的对性能要求不高
较高管理复杂度
- 大范围
- 合同契约性
- 受很多人制约的
- “项目”型的
较低的管理复杂度
- 小范围
- 非正式的
- 简单的资金运作
- “产品”型的
防御 MIS系统
防御
武器系统
信息
交换
CASE工具
国际空中运输
控制系统
企业IS
(IS应用)
商业
编译器
商业制表软件
IS应用
分布式对象
小型科学模拟
大型组织/实体仿真模拟
一个比较中等的项目
- 5-10 人
- 10-15 个月的开发周期
- 3-5 个外部界面
- 一些不可知的事情& 风险
嵌入式
车用软件
IS应用
GUI/RDB
计算机软件发展的四个阶段:
1. 早期时代(60年代中期之前)程序设计阶段
硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。计算机的主要应用为快速计算,出现了Algol、Fortran等编程语言。
2. 第二代(60年代中期-70年代中期)程序系统阶段
出现“软件作坊”、产品软件;“个体化”开发方法。计算机的应用开始涉及到各种以非数值计算的商业业务领域,交互技术、数据库、操作系统等得到发展,出现了Pascal、Cobol等编程语言和关系数据库管理系统为标志的结构化软件技术。瀑布模型得到普遍使用。
3. 第三代(70年代中期之后-80年代)软件工程阶段
软件开发成为一门新兴的工程学科——软件工程。软件开发过程得到管理、工程化了。O模型、CMM等。以Smalltalk、C++为代表的面向对象技术崛起,传统的结构化技