SE01第1章软件工程资料
- 格式:ppt
- 大小:526.50 KB
- 文档页数:49
软件⼯程复习资料软件⼯程第⼀章⼀、什么是软件?软件(Software)是计算机系统中与硬件相互依存的另⼀部分,它是包括程序(Program),数据(Data)及其相关⽂档(Document)的完整集合。
程序是按事先设计的功能和性能要求执⾏的指令序列数据是使程序能正常操纵信息的数据结构⽂档是与程序开发,维护和使⽤有关的图⽂材料⼆、软件危机原因:与软件本⾝的特点有关(难于维护, 逻辑复杂)与软件开发与维护的⽅法不正确有关:软件≠程序急于求成=拔苗助长各⾃为阵⽆⽅法/学现象:1.成本⾼2.计算机软件和硬件费⽤⽐3.软件质量得不到保证4.由于软件质量问题导致失败的软件项⽬⾮常多5.进度难以控制6.维护⾮常困难办法:软件⼯程(学)三、软件⼯程软件⼯程是应⽤计算机科学、数学及管理科学等原理开发软件的⼯程。
它借鉴传统⼯程的原则、⽅法,以提⾼质量,降低成本为⽬的。
开发、运⾏和维护软件的系统⽅法四、软件⼯程三要素软件⼯程⽅法学包含3个要素:⽅法、⼯具和过程。
五、软件⽣命周期六、软件过程模型瀑布模型瀑布模型适合于⽤户需求明确、完整、⽆重⼤变化的软件项⽬开发。
瀑布模型的成功在很⼤程度上是由于它基本上是⼀种⽂档驱动的模型。
“瀑布模型是由⽂档驱动的”这个事实也是它的⼀个主要缺点。
在项⽬开始的时候,⽤户常常难以清楚地给出所有需求;⽤户与开发⼈员对需求理解存在差异。
实际的项⽬很少按照顺序模型进⾏。
⽤户必须有耐⼼,等到系统开发完成。
缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是⾮常困难的,导致“阻塞状态”。
反馈信息慢,开发周期长。
虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在需求被很好地理解的情况下,仍然是⼀种合理的⽅法。
快速原型模型增量模型增量模型是迭代和演进的过程。
增量模型把软件产品分解成⼀系列的增量构件,在增量开发迭代中逐步加⼊。
每个构件由多个相互作⽤的模块构成,并且能够完成特定的功能。
第一章软件工程概述第一章软件工程概述1.1软件危机1.1.1软件危机的介绍1)软件危机在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机的典型表现:(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入趋势。
1.1.2产生软件危机的原因软件本身特点:缺乏可见性,在运行之前往往难以衡量,质量也难以评价不会因为长期使用而用坏,软件维护通常意味着修正或修改原来的设计,较难维护。
规模庞大,需分工合作,如何保证每个人的工作合在一起是极端复杂的问题。
软件开发与维护的方法不正确产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;软件开发所使用的方法和技术。
软件生命周期:一个软件从定义、开发、使用和维护直到最早被废弃。
软件产品必须由一个完整的配置组成(程序、文档、数据)1.1.3消除软件危机的途径正确认识计算机软件认识到软件开发是一个协同配合、共同完成的工程项目并吸取经验。
推广使用已总结的开发软件成功的技术和方法开发使用更好的软件工具1.2软件工程的介绍软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
《软件⼯程》第⼀章软件⼯程学概述第⼀章软件⼯程学概述1.1 软件危机1.1.1 软件的定义——定义:软件=“完成特定功能的程序+数据结构+⽂档”——特征:(3个)软件是开发的,⽽不是制造的;软件不磨损,但退化;⾃定义。
——发展问题1.1.2 软件危机的表现——定义:在计算机软件的开发和维护过程中所遇到的⼀系列严重的问题。
——表现:(6个)(1)对软件开发成本和进度的估计常常很不准确。
(2)软件产品质量较差,可靠性低。
(3)⽤户对开发出来的软件产品不满意。
(4)软件常常是不可维护的。
(5)软件产品缺少应有的⽂档资料。
(6)软件产品的供不应求。
1.1.3 软件危机的原因——客观原因——主观原因1.2 软件⼯程1.2.1 软件⼯程的概念——定义:指导软件开发与维护的⼯程科学。
采⽤⼯程的概念、原理、技术和⽅法来开发和维护软件,综合运⽤正确的管理技术和最好的技术⽅法,以经济地开发出⾼质量的软件并有效维护它。
IEEE的定义:①软件⼯程是把系统的、规范的、可度量的途径应⽤于软件开发、运⾏和维护过程,也就是把⼯程应⽤于软件;②对这些途径加以研究。
1.2.2 软件⼯程的基本原理(7个)——(1)⽤分阶段的⽣命周期计划严格管理(2)坚持进⾏阶段评审(3)实⾏严格的产品控制(4)采⽤现代程序设计技术(5)结果可以清楚地审查(6)开发⼩组成员少⽽精(7)承认不断改进软件⼯程实践的必要性1.2.3 软件⼯程⽅法学:3个要素(⽅法、⼯具和过程)——传统⽅法学:结构化技术,软件⽣命周期——⾯向对象⽅法学:类+对象+继承+消息,软件开发过程更接近⼈类认知模式1.3 软件⽣命周期1.3.1 软件⽣命周期的概念——定义:⼀个软件从定义、开发、使⽤和维护,直⾄最终被废弃,要经历的漫长的时期称为软件⽣命周期。
——构成:3个时期,8个阶段软件定义:问题定义,可⾏性研究,需求分析软件开发:总体设计,详细设计,编码和单元测试,综合测试;运⾏维护:软件维护1.3.2 各阶段的基本任务(8个阶段)——问题定义:需要解决的问题是什么?书⾯报告——可⾏性研究:确定软件系统是否值得去解《可⾏性研究报告》——需求分析:解决这些问题需要系统做什么?《软件需求规格说明书》——总体设计:应该怎样实现⽬标系统?《概要设计说明书》——详细设计:如何具体地实现这个系统?——编码和单元:写代码,测试每个模块!——测试、综合测试:通过各类测试和调试来完善软件《测试计划/⽅案》——软件维护:通过各种必须的维护活动使系统持久地满⾜⽤户的需要。