01软件工程与软件过程.pptx
《01软件工程与软件过程.pptx》由会员分享,可在线阅读,更多相关《01软件工程与软件过程.pptx(53页珍藏版)》请在课桌文档上搜索。
1、,软件工程,2023/4/20,2,第1章 软件工程学概述,1.1 软件危机 1.2 软件工程 1.3 软件生命周期1.4 软件过程1.5 小结,2023/4/20,3,软件及软件工程,为什么要讲软件和软件工程只有对软件和软件的开发过程有充分的认识,才能更好的开发出过程受控、质量受控的软件产品。对于软件和软件开发过程的认识是困难的,存在很多困惑,需要对此有深刻的认识。,2023/4/20,4,一些对软件的偏见或误解,软件就是程序,软件开发就是编写程序。编完了程序,就一切OK了。掌握了最新的语言和工具,就能写程序了。软件是灵活的,软件的修改很容易。只要会编程,就能写软件,就是程序员;一个公司,只
2、要召些程序员,就能开发好的软件产品。只要有几个有经验的程序员,再找些兼职的大学生,就能组成一个软件公司。,2023/4/20,5,软件无处不在,软件不仅仅是在计算机运行的程序,任何预先定义好的程序步骤的地方,都有软件的身影软件的应用领域系统软件实时软件商业软件工程和科学计算软件嵌入式软件个人计算机软件基于Web的软件(网站)人工智能软件,2023/4/20,6,什么是软件,软件的定义软件由三部分组成:程序:在运行时,能提供所希望的功能和性能的指令集数据:使程序能够正确运行的数据文档:描述程序研制过程、方法及使用的文档软件处理的是信息和逻辑软件的开发,绝不仅仅是编写程序软件围绕着逻辑进行软件就是
3、一个信息交换器产生、管理、获取、修改、显示或传送信息,软件程序,2023/4/20,7,软件的特征,软件是逻辑的而不是有形的系统元件,具有与硬件完全不同的特征软件是被开发或设计的,而不是传统意义上被制造的软件成本集中于开发上,软件项目不能像制造项目那样管理。软件不会磨损,不过它会退化对未发现的BUG的修复,会引起较高的故障率。不能像硬件维修中直接更换磨损的零件,软件维护要复杂得多。,2023/4/20,8,软件的特征,大多数软件开发,仍是手工作坊式的开发模式在硬件世界和现代工业的发展中,被大量使用的标准设计的构建是一条非常成功的路子。标准化也是软件设计的一个方向,软件产业正在向基于构件的组装进
4、前进。软件是一种逻辑实体,具有抽象性。人们可以使用软件,但是无法看到软件本身的形态。必须通过观察、分析、思考、判断,才能了解其功能、性能等特性。设计中,软件的质量、可维护性、可测试性更加重要。当前软件设计的趋势,是设计高度封装,定义良好的应用接口。软件是复杂的,而且以后会更加复杂软件是人类有史以来生产的复杂度最高的工业产品。软件的复杂,不是因为软件本身复杂,而是人的思想复杂。,2023/4/20,9,软件危机的介绍,1.1 软件危机,硬件和软件发展的不平衡,硬件性能的发展极其迅速,给软件提出了更高的要求软件开发和维护成本越来越大,令人吃惊地高失败的软件开发项目屡见不鲜,什么是软件危机软件危机是
5、指在计算机软件的开发和维护过程中所遇到的一系列严重问题。,2023/4/20,10,软件危机,软件危机的表现软件成本日益增长 开发进度难以控制 软件质量差 软件维护困难软件开发速度跟不上计算机发展速度软件危机的原因技术原因软件规模越来越大 软件复杂度越来越高 管理原因软件开发缺乏正确的理论指导,过分依靠个人技巧和创造性对用户需求没有完整准确的认识,就匆忙着手编写程序如何克服软件危机:软件工程,2023/4/20,11,2023/4/20,12,引入同一变动付出的代价随时间变化的趋势,问题在哪里?,软件开发链条的“放大”作用。(规范每个环节)只有早期发现问题,才会尽量减少损失。(失之毫厘,谬以千
6、里)但客观规律:用户的牙膏不会一下子挤完。(静态开发方法“天生”会延迟问题的发现),2023/4/20,13,消除软件危机的途径对计算机软件正确认识。(软件不仅仅是程序)推广使用开发软件成功的技术和方法,研究探索更好更有效的技术和方法,消除错误概念和做法。开发和使用更好的软件工具。需要组织管理措施。软件工程正是从技术和管理两方面研究如何更好地开发和维护计算机软件的一门新兴学科。,无章法(个人英雄主义)工程项目管理模式(团队合作开发),2023/4/20,14,1.2 软件工程,软件工程(IEEE)1968年秋,提出软件工程1)将系统化、规范化、可量化的工程原则和方法,应用于软件的开发、运行和维
7、护。2)对1)中方法的理论研究。,软件工程认为:按照工程化的原则和方法组织软件开发工作,是摆脱软件危机的一个主要出路。主要目标:高效开发高质量软件。软件工程规范工业界:参照修改其它工程项目的管理模式如 ISO,PMI,Six Sigma学术界:CMM,2023/4/20,15,软件工程基本原理(开发与维护的指导)用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性,2023/4/20,16,软件的生命周期 软件开发过程瀑布模型快速原型、螺旋模型 喷泉模型等软件开发新过程敏捷软件开发(极限编
8、程XP)快速软件开发 统一软件开发过程,软件开发的规律,软件开发方法 结构化方法面向对象方法Jackson系统开发方法模块化方法软件复用,2023/4/20,17,软件工程方法学把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称范型(paradigm)。软件工程方法学三个要素:方法、工具和过程。方法是完成软件开发各项任务的技术,回答“如何做”;工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什么做”;过程是为获得高质量的软件要完成的一系列任务的框架,规定完成各项任务步骤,回答“如何控制、协调、保证质量”。,管理方法,2023/4/20,18,目前使
9、用得最广泛的软件工程方法学。传统方法学也称为生命周期方法学或结构化范型。当软件规模较大,或对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很困难。结构化静态分析,面向对象动态分析,世界万物是变化的,传统方法学与面向对象方法学,2023/4/20,19,传统方法的特点,生命周期模型软件过程划分为若干个阶段每个阶段有各自的任务阶段之间有某种顺序性,2023/4/20,20,面向对象方法:对象作为融合数据及在数据之上的操作行为的统一的软件构件。把所有对象都划分成类(Class)。每个类都定义了一组数据和一组操作。按照父类(或称
10、为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,称为继承。对象彼此间仅能通过发送消息互相联系封装性。,数据:静态操作:动态,Everything is Object.,2023/4/20,21,OO特点,面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式。用面向对象方法学开发软件的过程,是一个主动地多次反复迭代的演化过程。概念和表示方法上的一致性,阶段间平滑(无缝)过渡。特殊到一般的归纳思维过程;一般到特殊的演绎思维过程。(继承的思想),2023/4/20,22,OO特点(2),
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 01 软件工程 软件 过程
链接地址:https://www.desk33.com/p-341437.html