软件工程概述.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、软件危机
5、对软件开发的深层次认识:
➢ 开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不 一样 正如建设一个平房和高楼大厦 建造房屋的过程
确定和分析需求 房子的总体设计(建筑平面图和建筑透视图) 房子的详细设计(建筑平面图的细化以及规格说明) 识别并设计房子的组成部分 建造房子的每一个组成部分 测试房子的每一个组成部分 把房子的各个部分集成在一起,在住户搬进来之前作最后的修改
一、软件的定义、特点
1软件的定义: 什么是程序(2/2) 程序设计语言具有良好、严格语法和语义 目前程序设计语言主要有以下几种类型
面向机器: 如汇编语言、机器语言等 面向过程: 如Fortran, Pascal, C等等 面向对象: 如Java等等 面向问题: 如结构化查询语言SQL等等
一、软件的定义、特点
➢ 大型、复杂软件系统的开发是一项工程,必须按照工程化的方法组织 软件的生产和管理,必须经过分析、设计、实现、测试、维护等一系 列软件过程和活动
a.《软件工程》 杨卫东译 人民邮电出版社 b.《实用面向对象软件工程教程》 殷人昆等译 电子工业出版社
返回
第一章
本章要点
软件工程概述
1软件的定义及软件发展过程 2软件危机及软件工程的产生 3软件工程学定义、本课程学习的目的
一、软件的定义、特点
1软件的定义 程序 + 数据 + 文档
与计算机系统操作有关的程序、数据以及任何与之相关的文档的集合。
可执行部分
程序
不可执行部分
文档 1
文档3 文档
2
一、软件的定义、特点
1软件的定义: 什么是程序(1/2): 程序: 由程序设计语言所描述的、能为计算机所识别、理解和处理的语
句序列 程序例子
Main( ) { int i, j; // 变量定义
char Str[10]; i = i + j ; // 语句说明 ……}
一、如何开发软件,以满足不断增长,日趋复杂的需求; 二、如何维护数量不断膨胀的软件产品。
4、软件危机产生的原因
➢ 逻辑产品,不同于物理产品 ➢ 复杂性高
逻辑产品,逻辑复杂性,远高于硬件复杂性 软件的复杂性随规模呈指数级上升 ➢ 规模大 应用扩大,代码量,1000万行,仍在不断膨胀 ➢ 影响软件生产率和质量的因素比较复杂 人员的能力和水平 团队合作 ➢ 缺乏有效、系统原理、原则、方法和工具的指导和辅助:
二、软件的发展过程
1、20世纪50年代—60年代初:程序设计阶段
特点:个体化;只有程序清单;以硬件发展为主
2、20世纪60年代初—70年代初:程序系统阶段
特点:作坊式;软件数量剧增;软件维护费用惊人;提 出“软件工 厂”概念;出现软件危机
3、 70年代— 90年代:软件工程阶段
软件成本剧增;硬件技术 (微电子学)日趋成熟;软件工程时代
二、 主要内容
1、软件工程的基本概念及软件危机
2、软件生存周期及软件开发模型
3、软件计划
4、软件分析(需求分析)
5、软件系统设计
6、软件测试
7、软件维护
8、面向对象软件工程
返回
三、课程特点
1、是专业课; 2、属“工程”学科; 3、是一门需不断完善的、发展的、可创新的学科。
返回
四、参考教材
1、主要参考书目: 《软件工程技术及应用》贾铁军著 机械工业出版社 2、其他参考书目:
软件工程与技术
课程简介
一.本课程学习的目的 二.本课程的主要内容 三.本课程的特点 四.本课程的教/学及考核方式 五.主要参考书目 六.实验安排
一、本课百度文库学习目的
消除错误地认识 学习软件工程基本理论 学习主流的软件开发方法 熟悉软件开发过程 掌握软件开发全过程中的各重要阶段的任务及相
关描述方法 ; 如何分析问题并设计出合理的解决方案 如何保证软件质量 培养软件工程师的基本素质
1软件的定义: 什么是文档: 文档: 记录软件开发活动和阶段性成果、理解软件所必需的阐述性资料
需求分析文档、软件设计文挡、用户文档等 编写文档目的
促进对软件的开发,管理和维护; 便于各种人员(用户,开发人员)的交流
一、软件的定义、特点
2软件的特点 ➢不会老化 ➢逻辑产品 (智力, 无形) ➢维护困难和复杂(完善, 纠错,…...) ➢生产只需复制 ➢软件开发性质如成本、进度等难以估计 ➢软件的开发更加依赖于开发人员的业务素质、智力、人员的合作 、组织和管理
2、软件危机的表现(1 of 3)
成本高
90
IBM 360 OS, 5000多人年,耗时4年 80
70
(1963-1966),花费2亿多美元
60
美国空军:1955年软件占总费用(计算 50
机系统)的18%,70年60%,85年达到 40
30
85%
20
美国全球军事指挥控制系统,硬件1亿 10
美元,软件高达7.2亿美元
0 60年代
计算机软件和硬件费用比
80年代
计算机软件 计算机硬件
三、软件危机
2、软件危机的表现(2 of 3)
软件质量得不到保证 软件应用面的扩大:科学计算、军事、航空航天、工业控制、企 业管理、办公、家庭 软件越来越多的应用于安全犹关(safety critical)的系统,对软件质 量提出更高的要求 80年代欧洲亚丽安娜火箭的发射失败,原因是软件错误 美国阿托拉斯火箭的发射失败,原因是软件故障 英国1986年开发的办公室信息系统Folios经4年,因性能达不到要 求,1989年取消 日本第5代机因为软件问题在投入50亿美元后于1993年下马
由于软件质量问题导致失败的软件项目非常多
三、软件危机
2、软件危机的表现(3 of 3)
➢ 进度难以控制 项目延期比比皆是 由于进度问题而取消的软件项目较常见 只有一小部分的项目能够按期完成
➢ 维护非常困难 软件维护的多样性 软件维护的复杂性 软件维护的副作用
三、软件危机
3、软件危机包含两方面问题
4、 90年代至今:
现代信息技术飞速发展(并行计算机处理、三层处理模式、数据仓 库、多媒体技术、网络技术、电子商务等)称为:网络时代
三、软件危机
Crisis!
1、软件危机定义:
软件在开发和维护过程中遇到的一系列问题 ➢困扰学术界和工业界 ➢用户对软件开发缺乏信心 ➢软件开发的高投入和高风险
三、软件危机