01_1_软件工程概述

01_1_软件工程概述

ID:33588560

大小:2.70 MB

页数:45页

时间:2019-02-27

01_1_软件工程概述_第1页
01_1_软件工程概述_第2页
01_1_软件工程概述_第3页
01_1_软件工程概述_第4页
01_1_软件工程概述_第5页
资源描述:

《01_1_软件工程概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件工程大连理工大学软件学院第1章软件工程学概述•1.1软件危机•1.2软件工程•1.3软件生命周期•1.4软件过程•1.5小结2010/9/5大连理工大学软件学院2111.1软件危机•软件危机的介绍•硬件和软件发展的不平衡,硬件性能的发展极其迅速,给软件提出了更高的要求•软件开发和维护成本越来越大,令人吃惊地高•失败的软件开发项目屡见不鲜软件成本在系统中的比例•什么是软件危机100%85%90%80%80%72%–软件危机是指在计算70%60%60%机软件的开发和维护50%40%过程中所遇到的一系30%18%20%10%10%列严重问题。0%50年代初1955年1970年1975年19

2、80年1985年2010/9/5大连理工大学软件学院3软件危机•软件危机的表现–软件成本日益增长–开发进度难以控制–软件质量差–软件维护困难–软件开发速度跟不上计算机发展速度•软件危机的原因–技术原因•软件规模越来越大•软件复杂度越来越高–管理原因•软件开发缺乏正确的理论指导,过分依靠个人技巧和创造性•对用户需求没有完整准确的认识,就匆忙着手编写程序•如何克服软件危机:软件工程2010/9/5大连理工大学软件学院42010/9/5大连理工大学软件学院5问题在哪里?•软件开发链条的“放大”作用。(规范每个环节)•只有早期发现问题,才会尽量减少损失。(失之毫厘,谬以千里)•但客观规律:用户的

3、牙膏不会一下子挤完。(静态开发方法“天生”会延迟问题的发现)引入同一变动付出的代价随时间变化的趋势2010/9/5大连理工大学软件学院6•消除软件危机的途径–对计算机软件正确认识。(软件的偏见、定义及特征)–推广使用开发软件成功的技术和方法,研究探索更好更有效的技术和方法,消除错误概念和做法。软件工程–开发和使用更好的软件工具。三要素–需要组织管理措施。•软件工程正是从技术和管理两方面研究如何更好地开发和维护计算机软件的一门新兴学科。无章法(个人英雄主义)工程项目管理模式(团队合作开发)2010/9/5大连理工大学软件学院7121.2软件工程•软件工程(IEEE)–1968年秋,提出软件

4、工程1)将系统化、规范化、可量化的工程原则和方法,应用于软件的开发、运行和维护。2)对1)中方法的理论研究。•主要目标:高效开发高质量软件。•软件工程规范–工业界:参照修改其它工程项目的管理模式如ISO,PMI,SixSigma–学术界:CMM2010/9/5大连理工大学软件学院8•软件工程基本原理(开发与维护的指导)1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性2010/9/5大连理工大学软件学院9软件开发的规律•软件的生命周期•软件开发过程–瀑布

5、模型–快速原型、螺旋模型•软件开发方法–喷泉模型等–结构化方法•软件开发新过程–面向对象方法–敏捷软件开发(极限编–Jackson系统开发方法程—XP)–模块化方法–统一软件开发过程–软件复用2010/9/5大连理工大学软件学院10•软件工程方法学–把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称范型(paradigm)。–软件工程(方法学)三个要素:方法、工具和过程。•方法是完成软件开发各项任务的技术,回答“如何做”;•工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什么做”;•过程是为获得高质量的软件要完成的一系列任务的框架,规定完成各

6、项任务步骤,回答“如何控制、协调、保证质量”。2010/9/5大连理工大学软件学院11传统方法学•传统方法学也称为生命周期方法学或结构化范型。–当软件规模较大,或对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功;–此外,使用传统方法学开发出的软件,维护起来通常都很困难。•结构化-静态分析,面向对象-动态分析2010/9/5大连理工大学软件学院12传统方法的特点•生命周期模型•软件过程划分为若干个阶段•每个阶段有各自的任务•阶段之间有某种顺序性2010/9/5大连理工大学软件学院13EverythingisEverythingis•面向对象方法:Object.1.对

7、象作为融合数据及在数据之上的操作行为的统一的软件构件。数据:静态操作:动态2.把所有对象都划分成类(Class)。每个类都定义了一组数据和一组操作。3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,称为继承。4.对象彼此间仅能通过发送消息互相联系-封装性。2010/9/5大连理工大学软件学院14OO特点•面向对象方法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。