第1章 软件工程概述

上传人:n**** 文档编号:60469999 上传时间:2018-11-16 格式:PPT 页数:53 大小:1.02MB
返回 下载 相关 举报
第1章 软件工程概述_第1页
第1页 / 共53页
第1章 软件工程概述_第2页
第2页 / 共53页
第1章 软件工程概述_第3页
第3页 / 共53页
第1章 软件工程概述_第4页
第4页 / 共53页
第1章 软件工程概述_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《第1章 软件工程概述》由会员分享,可在线阅读,更多相关《第1章 软件工程概述(53页珍藏版)》请在金锄头文库上搜索。

1、软件工程概论 主讲:曾子维,辽宁科技大学 软件学院,联系方式:,Tel: 5929800 作业Email: 资料Email: ,密码5929800,课程介绍,总学时:48学时(3学分),均为理论。 考核方式 成绩=课堂(10%)+模拟项目(40%)+期末考试(50%,开卷考试)。 参考资料 1 沈文轩软件工程基础与使用教程 自编 2012版 2 张海藩软件工程导论(第五版)清华大学出版社 2008.2 3 史济民等软件工程原理方法与应用 高等教育出版社 2002.12 第2版 4人月神化 (美)弗雷德里克.布鲁克斯 清华大学出版社,课程介绍,上篇:软件工程基础篇(主要内容) 第1章 软件工程

2、概述 第2章 软件过程 第3章 软件计划 第4章 软件需求基础 第5章 软件设计基础 第6章 模型结构化的从分析到设计 第7章 面向对象的从分析到设计 第8章 软件实现 第9章 软件维护 第10章 软件项目管理,课程介绍,下篇:基于架构与MVC模式的一体化开发 (简介或自学) 第11章 架构与MVC模式 第12章 面向架构与MVC的一体化开发方法 第13章 一体化开发方法应用实例,教学目标 了解软件的概念和软件产品的特点; 了解软件危机以及解决办法软件工程的重要性;了解软件工程的概念、原理和内容。 教学重点 软件工程的基本原理。 教学难点 软件工程课程的框架。,第1章 软件工程概述,1.1 软

3、件的概念 1.2 软件的发展与软件危机的产生 1.3 解决软件危机的途径 1.4 软件工程的定义 1.5 软件工程的内容 1.6 软件发展的新阶段与新问题 1.7软件工程的演变发展,第1章 软件工程概述,1.1.1 软件和软件产品 1.软件 1983年IEEE为软件下的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。 软件工程的先驱者Roger S. Pressman教授:软件是 (1)能够完成预定功能和性能的可执行的指令(计算机程序); (2)使得程序能够适当地操作信息的数据结构; (3)描述程序的操作和使用的文档。 “软件=程序” 错误认识;,1.1 软

4、件的概念,“软件=程序+数据+文档” 被广泛接受。 程序和数据是软件运行的基本要素(基因),而文档则是延续软件运行寿命的保障。 2.软件产品 软件产品自身特点 软件是抽象的逻辑产品不是实物产品。 软件的实现与硬件和支撑环境密切相关,不能独立存在。 软件复制容易,软件著作权保护。 软件不会损耗,但会随着环境的变化而退化。 软件的错误较多,测试也无法杜绝。,1.1 软件的概念, 业界环境特点 软件开发者和用户知识领域不同,造成交流上的困难。不断修改需求,致使双方厌倦,工程流产。 大型应用软件开发工期长于软件平台技术的更新周期,往往开发完就是落后的产品。 构件与复用技术并不理想,在IT公司内部通过开

5、发积累可利用一些复用,但还没有做到象其它物理产品那样在市场上供应购买标准构件。 开发人员流动性大,质量和工期不保证。,1.1 软件的概念,1.1.2 软件产品的类型 不同的角度可分为不同类型 按工作方式分:有实时软件、 交互式软件、 批处理式软件等; 按服务对象分:有商业通用、企业定制、个人办公、工程应用、科学计算、人工智能等软件。 软件工程的角度划分如下三个层面: 基础软件、应用软件、支撑软件。,1.1 软件的概念,1.1.2 软件产品的类型 1.基础软件:保证计算机本身运行和支撑应用软件运行的基础环境; 系统软件:操作系统、语言处理系统、通用办公软件 数据库:如Oracle、SQL Ser

6、ver、DB2、Informix、MySQL等国外数据库软件,国产的数据库软件有东软OpenBASE、金仓KingbaseES等。 中间件:为处于自己上层的应用软件提供运行与开发的环境,帮助用户开发和集成应用软件。 有两个关键特征,为上层的应用层服务;必须连接到操作系统的层面,并确保持运行工作状态。 例如:微软公司的IIS、Apache公司的开源Tomcat。,1.1 软件的概念,1.1.2 软件产品的类型 2.支撑软件:在系统软件和应用软件之间,提供应用软件设计、开发、测试、评估、运行检测等辅助功能的软件 编程工具:微软的Visual Studio、IBM提供的开源集成开发环境Eclipse

7、等; 建模工具:如IBM Rational Rose 软件建模; 版本控制、软件测试; 3. 应用软件:解决特定应用领域问题或解决具体项目而开发的软件; 4. 嵌入式软件:就是嵌入在硬件中的操作系统和开发工具软件及应用程序;应用及其广泛。,1.1 软件的概念,1.2.1 软件的发展过程 软件发展的四个过程:,1.2 软件的发展与软件危机的产生,表1-1 软件开发早期三个阶段,1.2.2 软件危机 1.软件危机概念 软件危机(software crisis),这个名词是1968年在德国召开的NATO( North Atlantic Treaty Organization ,北大西洋公约组织 )会

8、议上计算机科学家首次提出的。 先看几个例子: 1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。,1.2 软件的发展与软件危机的产生,1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序: DO 5 I=1,3 误写为:DO 5 I=1.3 IBM公司的OS/360,共约100万条指令,花费了5000个人年;经费达数亿美元,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。 OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越

9、多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。”,1.2 软件的发展与软件危机的产生,2. 软件危机产生的原因,1.2 软件的发展与软件危机的产生,1.2.3 软件危机的表现(1) (1) 软件开发进度难以预测,开发成本难以控制,导致超预算、超时; (2) 产品功能难以满足用户需求; (3) 软件产品质量无法保证; (4) 软件缺少适当的文档资料,维护困难; (5) 软件成本超过硬件成本; (6) 软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势;,1.2 软件的发展与软件危机的产生,1.3 解决软件危机的途径,软件工程(Software Engineering)的两个定义 1

10、968年在第一届NATO(北大西洋公约组织)会议上曾经给出了软件工程的一个早期定义:“软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。” 软件工程的目标:是经济地开发出高质量的软件; 软件工程方法:运用工程学科的相关工程原理去开发软件。,1.4 软件工程的定义,1993年IEEE进一步给出了一个更全面更具体的定义:“软件工程是: 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。” 软件工程的作用: (1)是指导软件产品进行计划、开发和维护的工程学科 (2)指导软件行业按工业化生产过程进行软件

11、开发,即按照目标化、规范化、文档化、标准化工程化。,1.4 软件工程的定义,软件工程是围绕软件开发的一门交叉学科: 软件工程=计算机科学+工程学+管理学。 1.5.1 从计算机科学视角看软件工程 1. 软件工程的知识体系 IEEE的软件工程知识体系指南(SWEBOK)中界定了软件工程的10个知识领域: 软件工程过程 ( Software Engineering Process) 软件工程工具和方法( Software Engineering Tools and Methods ) 软件需求(Software Requirement),1.5 软件工程的内容,1. 软件工程的知识体系 IEEE的

12、软件工程知识体系指南(SWEBOK)中界定了软件工程的10个知识领域: 软件设计 (Software Design ) 软件构造 (Software Construction) 软件测试 (Software Testing) 软件维护 (Software Maintenance) 软件配置管理 (Software Configuration management) 软件工程管理 ( Software Engineering management ) 软件质量 ( Software Quality),1.5 软件工程的内容,2. 软件工程三要素 分别是过程、方法和工具软件质量的保障。 目标:软件

13、工程必须以有组织的质量保证为基础,进行全面质量管理,不断地过程改进使软件工程方法走向成熟。 1) 软件工程“过程”:是进行一系列有组织的活动,从而能够合理地和及时地开发出计算机软件。 过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理。,1.5 软件工程的内容,2) 软件工程“方法”:为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列的开发活动如何来做。开发方法经历了从面向结构、面向对象、面向组件到面向服务的发展工程。 3) 软件过程“工具”:为过程和方法提供自动的或半自动的支持。

14、这些软件工具被集成起来,建立起一个支持软件开发的系统,称之为计算机辅助软件工程 (CASE ,Computer Aided Software Engineering)。 CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。,1.5 软件工程的内容,3转变学习思维 从计算机技术的学习上升到软件工程的学习,要提升学习的思维: 1) 将模块的算法分析与程序设计的思维定式提升到系统分析与设计层面; 2) 将只定位程序员的训练提升到系统工程师培养层面; 3) 将只关心符合计算机逻辑提升到符合工程规范的层面;,1.5 软件工程的内容,1.5.2 从工程视角看软件工程,1

15、.5 软件工程的内容,1.5.3 从管理视角看软件工程 软件工程的过程、方法和工具许多属于管理学领域问题,又由于软件的特殊性,软件规模难以估算、劳动效率和产品质量难以评价、加工过程难以控制,因此软件工程管理与物理加工的传统管理既具有共性又具有特殊性,即要借鉴传统工程管理规范又要发展新的理论和实践,所以对软件工程的管理的是一个不断发展和完善、新的管理学科。 软件工程管理的主要形式是项目管理。,1.5 软件工程的内容,软件项目管理就是运用系列的知识、技能、工具和技术,在软件开发的活动中有效地掌控资源,对项目时间、质量和成本进行管理。如项目计划、团队管理、质量管理、过程管理、过程改进、配置管理等。有

16、关内容见本书第10章“软件项目管理”。,1.5 软件工程的内容,1.5.4 从基本原理看软件工程 软件工程的专家学者们陆续提出了100多条关于软件工程的准则或信条提高软件质量。 美国著名的软件工程专家巴利玻姆(Barry Boehm) 在此基础之上,于1983年提出了软件工程的七条基本原理。 它们是相互独立的,是缺一不可的最小集合;同时,它们又是相当完备的。人们当然不能用数学方法严格证明它们是一个完备的集合,但是可以证明,在此之前已经提出的100多条软件工程准则都可以有这七条原理的任意组合蕴含或派生。,1.5 软件工程的内容,1.5 软件工程的内容,1.5.4 从基本原理看软件工程 1用分阶段的生命周期计划严格管理; 把软件生命周期分成若干阶段,并相应制定出切实可行的计划是为了将软件开发复杂性变得容易控制和管理。 严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号