《软件工程概述信息管理技术幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件工程概述信息管理技术幻灯片.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程概述信息管理技术第1页,共40页,编辑于2022年,星期三学习软件工程的目的学习软件工程的目的软件工程是一门集软件开发技术与软件软件工程是一门集软件开发技术与软件管理技术于一体的专门基础课。具有广管理技术于一体的专门基础课。具有广泛的实践性。泛的实践性。学习的目的是让学生学会用工程的原理、学习的目的是让学生学会用工程的原理、技术和当前最好的管理手段进行软件的技术和当前最好的管理手段进行软件的开发与维护。开发与维护。从而提高个人的素质。从而提高个人的素质。2第2页,共40页,编辑于2022年,星期三课程考核办法课程考核办法考核成绩:考核成绩:平时占平时占40%(含平时作业和期中测验)(含
2、平时作业和期中测验)实验占实验占20%(含平时实验成绩和实验报告含平时实验成绩和实验报告)期末测验占期末测验占40%3第3页,共40页,编辑于2022年,星期三案例练习案例练习 任务:请设计一个加法运算器。任务:请设计一个加法运算器。S1:S1:请选出四个组长请选出四个组长分成四组,每组完成一个任务。分成四组,每组完成一个任务。S2S2:第一组:提出具体的功能要求。第一组:提出具体的功能要求。第二组:进行软件的算法设计第二组:进行软件的算法设计,画出流程图。画出流程图。第三组:进行软件的编码编写第三组:进行软件的编码编写 C C 语言代码。语言代码。第四组:进行软件的测试第四组:进行软件的测试
3、组织一组数据测试。组织一组数据测试。S3S3:结果分析:结果分析 第4页,共40页,编辑于2022年,星期三第一章第一章 软件工程概述软件工程概述 1.1 1.1 软件的概念软件的概念 1.2 1.2 软件的发展与软件危机软件的发展与软件危机 1.3 1.3 软件工程软件工程 1.4 1.4 软件的开发方法、工具和环境软件的开发方法、工具和环境 小小 结结思考与练习思考与练习 返回章目录第5页,共40页,编辑于2022年,星期三1.1 1.1 软件的概念软件的概念 软件软件是软件工程学的一个重要概念。它是软件工程学的一个重要概念。它是由计算机程序发展而来的一种概念。是由计算机程序发展而来的一种
4、概念。那么,软件是不是程序呢那么,软件是不是程序呢?计算机程序计算机程序是按既定的算法,用某种计是按既定的算法,用某种计算机语言所规定的指令或语句编写的一系列算机语言所规定的指令或语句编写的一系列指令或语句的集合。指令或语句的集合。6第6页,共40页,编辑于2022年,星期三 中国大百科全书中对软件的定义是:中国大百科全书中对软件的定义是:软件是计算机系统中的程序和和有关文软件是计算机系统中的程序和和有关文件(文档)。件(文档)。这些文档资料包括这些文档资料包括:需求分析、功能说明、算法说明、结构说需求分析、功能说明、算法说明、结构说明、使用说明和维护说明等。明、使用说明和维护说明等。特点:特
5、点:软件软件是一种逻辑实体,有抽象性。是一种逻辑实体,有抽象性。在它的开发过程中没有明显的制造过程,在它的开发过程中没有明显的制造过程,没有硬件那样的机械磨损、老化问题。没有硬件那样的机械磨损、老化问题。7第7页,共40页,编辑于2022年,星期三软件可分为软件可分为可执行部分可执行部分和和不可执行部分不可执行部分。1 1可执行部分可执行部分 软件的可执行部分,是以编码信息软件的可执行部分,是以编码信息存放在存储介质上的程序与过程。存放在存储介质上的程序与过程。2 2不可执行部分不可执行部分 软软件件的的不不可可执执行行部部分分,包包括括面面向向开开发发者者的的文文档档和和面面向向用用户户的的
6、文文档档两两部部分分。这这两两部部分分文文档档虽虽不不可可执执行行,但但却却是是开开发发与维护可执行部分的重要依据。与维护可执行部分的重要依据。返回节目录8第8页,共40页,编辑于2022年,星期三 1.2 1.2 软件的发展与软件危机软件的发展与软件危机 1.2.1 1.2.1 计算机软件的发展计算机软件的发展 1.2.2 1.2.2 软件危机软件危机返回节目录9第9页,共40页,编辑于2022年,星期三1.2.1 1.2.1 计算机软件的发展计算机软件的发展 自自19461946年年世世界界上上第第一一台台电电子子计计算算机机诞诞生生以以来来,计计算算机机软软件件的的发发展展经经历历了了三
7、三个个时时期期,对对应应了了硬硬件件的的四四个个发发展展阶段。阶段。第一时期第一时期程序设计时期程序设计时期 从从19461946年年到到二二十十世世纪纪6060年年代代初初,是是计计算算机机软软件件发发展展的的初初期期。这这个个时时期期,程程序序仍仍是是工工程程技技术术人人员员为为解解决决某某个个具具体体的的实实际际问问题题而而专专门门编编写写的的,规规模模也也很很小小,程程序序设设计计很很少少考考虑虑通通用性,但十分讲究编程技巧。用性,但十分讲究编程技巧。此时只有程序的概念,还没有软件的概念。此时只有程序的概念,还没有软件的概念。10第10页,共40页,编辑于2022年,星期三第二时期第二
8、时期程序系统时期程序系统时期 从从2020世世纪纪6060年年代代初初到到7070年年代代初初,是是计计算算机机软软件件发发展展的的第第二二个个时时期期。此此时时,人人们们对对软软件件的的认认识识仅仅仅仅局局限限于于“软软件件程序程序+说明说明”。该时期软件开发的特征表现在以下三个方面:该时期软件开发的特征表现在以下三个方面:(1)(1)软件的开发方式由软件的开发方式由“个体生产个体生产”到到“软件作坊软件作坊”(2)(2)程序的运行、维护也不再由一个人来承担。程序的运行、维护也不再由一个人来承担。(3)(3)程程序序已已不不再再是是计计算算机机硬硬件件的的附附属属成成分分,而而是是计计算算机
9、机系系统中与硬件相互依存、共同发挥作用所不可缺少的部分。统中与硬件相互依存、共同发挥作用所不可缺少的部分。11第11页,共40页,编辑于2022年,星期三 这个时期,软件产业已经萌芽,其中一个重要特征这个时期,软件产业已经萌芽,其中一个重要特征就是出现了就是出现了“软件作坊软件作坊”,软件产品广泛销售,软件,软件产品广泛销售,软件的数量急剧增加。基本上沿用软件发展早期所形成的个的数量急剧增加。基本上沿用软件发展早期所形成的个体化开发方式。体化开发方式。软件的开发与维护费用以惊人的速度递增。更为软件的开发与维护费用以惊人的速度递增。更为严重的是,由于程序的严重的是,由于程序的个体化个体化开发特征
10、,使许多软件开发特征,使许多软件产品不可维护,最终导致了产品不可维护,最终导致了“软件危机软件危机“的出现。的出现。12第12页,共40页,编辑于2022年,星期三13第13页,共40页,编辑于2022年,星期三第三时期第三时期软件工程时期软件工程时期 从从2020世世纪纪7070年年代代中中期期至至今今,是是计计算算机机软软件件发发展展的的第第三三个个时时期期。这这个个时时期期软软件件产产业业已已经经兴兴起起,软软件件作作坊坊已已经经发发展展为为软软件件公公司司,甚甚至至是是跨跨国国软软件件公公司司。软软件件的的开开发发方方式式是是以以工工程程的的思思想想为为指指导导,用用工工程程化化的的原
11、原则则、方方法法和和标标准准来来开开发发和和维维护护软软件件。软软件件开开发发的的成成功功率率大大大大提提高高,软软件件的的质质量量也也有有了了很很大大的的保保证证。软软件件也也已已经经产产品化、系列化、标准化、工程化。品化、系列化、标准化、工程化。14第14页,共40页,编辑于2022年,星期三1.2.2 1.2.2 软件危机软件危机 1 1软件危机的概念及其表现软件危机的概念及其表现 软件本身是一个软件本身是一个逻辑实体逻辑实体,而非一个,而非一个物理实体物理实体,它,它是非实物性的,是不可见的。而软件开发又是一个是非实物性的,是不可见的。而软件开发又是一个“思考思考”过程,很难进行管理,
12、开发人员以过程,很难进行管理,开发人员以“手工作坊手工作坊”的方式开发软件,完全按照自己的爱好和习惯进行,的方式开发软件,完全按照自己的爱好和习惯进行,没有任何统一的标准和规范可以遵循。因而,在软件没有任何统一的标准和规范可以遵循。因而,在软件的开发过程中,人们遇到了许多困难(人员、时间、的开发过程中,人们遇到了许多困难(人员、时间、成本和维护)。成本和维护)。高成本与低质量的矛盾高成本与低质量的矛盾15第15页,共40页,编辑于2022年,星期三 2 2软件危机产生的原因软件危机产生的原因 A A 软软件件危危机机的的产产生生,一一方方面面与与软软件件本本身身的的特特点点有有关关,另一方面也
13、和另一方面也和软件开发与维护方法软件开发与维护方法的不正确有关。的不正确有关。因因为为:软软件件是是一一种种逻逻辑辑实实体体,有有抽抽象象性性。在在它它的的开开发发过过程程中中没没有有明明显显的的制制造造过过程程,没没有有硬硬件件那那样样的的机机械械磨磨损损、老老化化问问题题。在在某某个个系系统统设设计计完完成成以以前前,软软件件开开发发人人员员很很难难掌掌握握其其开开发发进进度度,也也不不易易对对其其进进行行质质量量评评价价。因因此此,管管理理和和控控制制软软件件的的开开发发极极为困难。为困难。16第16页,共40页,编辑于2022年,星期三 B B 另另外外软软件件规规模模的的不不断断增增
14、大大,使使程程序序的的复复杂杂程程度度也也在在不不断断增增加加,软软件件开开发发的的难难度度也也更更难难以以衡衡量量。对对于于大大型型软软件件的的开开发发要要求求所所有有参参与与研研发发的的人人员员之之间间也也必必须须能能够够进进行行准准确确地地交交流流。而而实实际际情情况况是是在在用用户户、领领域域专专家家、软软件件开开发发人人员员之之间间没没有有一一种种合合适适的的通通讯讯手手段段。用用户户与与软软件件人人员员之之间间交交流流困困难难,是是造造成成软软件件危危机机的重要原因之一的重要原因之一。17第17页,共40页,编辑于2022年,星期三 C C 软软件件危危机机产产生生的的另另一一原原
15、因因,是是软软件件的的开开发发采采用用了了“手工作坊手工作坊”式的式的开发模式开发模式。当当时时的的软软件件规规模模很很小小,多多为为一一个个人人或或一一组组人人开开发发,开开发发人人员员没没有有统统一一的的标标准准可可以以遵遵循循,只只是是按按照照各各自自的的爱爱好好和和习习惯惯进进行行软软件件的的设设计计。其其结结果果是是开开发发者者把把方方案案构构想想、总总体体设设计计等等重重要要开开发发步步骤骤完完全全装装在在大大脑脑里里,只只有有程程序序流流程程图图和和可可执执行行的的源源程程序序作作为为文文档档留留下下来来,缺缺少少必必要要的的、面面向向开开发发者者的的、不不可可执执行行的的文文档
16、档,如如软软件件需需求求说说明明书书、结结构构图图、程程序序代代码码中中的的注注释释、测测试试用用例例的的设设计及测试报告等。计及测试报告等。18第18页,共40页,编辑于2022年,星期三 3 3解决软件危机的途径解决软件危机的途径 为为摆摆脱脱软软件件危危机机,北北大大西西洋洋公公约约组组织织成成员员国国在在19681968年年和和19691969年年两两度度召召开开会会议议,商商讨讨解解决决“软软件件危危机机”的的对对策策。会会议议总总结结了了软软件件开开发发中中失失败败的的经经验验与与教教训训,吸吸收收了了机机械械工工程程和和土土木木工工程程设设计计中中成成熟熟而而严严密密的的工工程程
17、设设计计思思想想,首首次次提提出出了了“软软件件工工程程”的的概概念念,认认为为计计算算机机软软件件的的开开发发,也也应应像像工工程程设设计计一一样样,进进行行规规范范性性的的开开发发,走走“工工程程化化”的的道路。道路。第19页,共40页,编辑于2022年,星期三1.3 1.3 软件工程软件工程 1.3.1 1.3.1 软件工程概述软件工程概述 1.3.2 1.3.2 软件生存周期软件生存周期 1.3.3 1.3.3 软件生存期模型软件生存期模型返回节目录20第20页,共40页,编辑于2022年,星期三1.3.1 1.3.1 软件工程概述软件工程概述1.1.软件工程概述软件工程概述 软件工程
18、软件工程是指导计算机软件开发和维护的一是指导计算机软件开发和维护的一门工程学科。它运用工程开发的概念、原理、门工程学科。它运用工程开发的概念、原理、方法和技术来开发和维护软件,把经过时间考方法和技术来开发和维护软件,把经过时间考验而证明是正确的管理技术和当前能够用到的验而证明是正确的管理技术和当前能够用到的最好的开发方法结合起来,共同作用于软件的最好的开发方法结合起来,共同作用于软件的开发和维护。开发和维护。软件工程强调使用软件工程强调使用软件生命周期软件生命周期方法学和各方法学和各种先进的分析方法、设计技术。种先进的分析方法、设计技术。21第21页,共40页,编辑于2022年,星期三2 2、
19、软件工程研究的对象、软件工程研究的对象 软件工程主要研究如何应用一些科学理论和软件工程主要研究如何应用一些科学理论和工程技术观点,来指导软件系统的工程技术观点,来指导软件系统的开发开发与与维护维护。这使其逐渐成为一门严格的工程学科。这使其逐渐成为一门严格的工程学科。主要包括:主要包括:软件开发技术软件开发技术 软件管理软件管理 22第22页,共40页,编辑于2022年,星期三 3 3、软件工程的目标、软件工程的目标 软软件件工工程程的的目目标标是是提提高高软软件件产产品品的的质质量量与与软软件件开开发发的的生生产产率率,最最终终实实现现软软件件的的工业化生产。工业化生产。“质质量量”是是软软件
20、件需需求求方方最最关关心心的的问问题题,而而“生产率生产率”是软件供应方最关心的问题。是软件供应方最关心的问题。“质质量量”与与“生生产产率率”之之间间又又有有着着内内在在的联系,高生产率必须以质量合格为前提。的联系,高生产率必须以质量合格为前提。23第23页,共40页,编辑于2022年,星期三 4 4、软件工程的主要环节有:人员管理、项目管理、可行性、软件工程的主要环节有:人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试、维护等,如图与需求分析、系统设计、程序设计、测试、维护等,如图1.11.1所示。所示。24第24页,共40页,编辑于2022年,星期三1.3.2 1.3.2
21、软件生存周期软件生存周期 如同人的一生要经历婴儿期、少年如同人的一生要经历婴儿期、少年期、青年期、老年期直至死亡这样一个期、青年期、老年期直至死亡这样一个全过程一样,任何一个软件产品或软件全过程一样,任何一个软件产品或软件系统也要经历软件定义、软件开发、软系统也要经历软件定义、软件开发、软件维护直至被淘汰这样一个全过程。我件维护直至被淘汰这样一个全过程。我们把软件经历的这一全过程称为软件生们把软件经历的这一全过程称为软件生存周期。存周期。25第25页,共40页,编辑于2022年,星期三问题定义问题定义可行性分析可行性分析需求分析需求分析概要设计概要设计详细设计详细设计软件编码软件编码软件测试软
22、件测试软件维护软件维护软件开发软件开发软件定义软件定义软件维护软件维护26第26页,共40页,编辑于2022年,星期三1 1 软件的定义阶段软件的定义阶段 软件定义阶段主要解决待开发的软件是软件定义阶段主要解决待开发的软件是“做什么做什么”的这一问题。的这一问题。系统分析(定义)系统分析(定义)确定待开发软件的总体要求确定待开发软件的总体要求和适用范围,以及软硬件支撑的要求;和适用范围,以及软硬件支撑的要求;软件项目计划(可行性)软件项目计划(可行性)确定待开发软件的确定待开发软件的目标,对其进行可行性分析,并对资源分配、进度安排目标,对其进行可行性分析,并对资源分配、进度安排等作合理计划;等
23、作合理计划;需求分析(功能分析)需求分析(功能分析)确定系统的逻辑模型。确定系统的逻辑模型。27第27页,共40页,编辑于2022年,星期三 2 2软件的开发阶段软件的开发阶段 软件开发阶段主要解决该软件软件开发阶段主要解决该软件“怎样做怎样做”的问题。主的问题。主要完成软件中数据结构和软件自身结构的设计,算法的设计,要完成软件中数据结构和软件自身结构的设计,算法的设计,程序的编写,程序的测试。最后得到可交付使用的软件。程序的编写,程序的测试。最后得到可交付使用的软件。它通常由下述四个阶段组成:它通常由下述四个阶段组成:概要设计概要设计 详细设计详细设计 软件编码和单元测试软件编码和单元测试
24、综合测试综合测试28第28页,共40页,编辑于2022年,星期三3 3软件的维护软件的维护 通常有四类维护活动:通常有四类维护活动:改改正正性性维维护护,也也就就是是诊诊断断和和改改正正在在使使用用过过程程中中发发现的错误;现的错误;适应性维护,即修改软件以适应环境的变化;适应性维护,即修改软件以适应环境的变化;完完善善性性维维护护,即即根根据据用用户户的的要要求求改改进进或或扩扩充充软软件件使使它它更完善;更完善;预预防防性性维维护护,即即修修改改软软件件为为将将来来的的维维护护活活动动预预先先做做准备。准备。29第29页,共40页,编辑于2022年,星期三1.3.3 1.3.3 软件生存期
25、模型软件生存期模型 最早出现的软件开发模型是最早出现的软件开发模型是1970年年W。Royce提出的瀑布模型,而后随着软件工提出的瀑布模型,而后随着软件工程学科的发展和软件开发的实践,相继程学科的发展和软件开发的实践,相继提出了演化模型、螺旋模型、增量模型、提出了演化模型、螺旋模型、增量模型、喷泉模型等。喷泉模型等。近年、又提出了渐增模型。近年、又提出了渐增模型。30第30页,共40页,编辑于2022年,星期三1 1 瀑布模型瀑布模型 一一个个更更精精确确的的软软件件开开发发步步骤骤可可按按需需要要解解决决问问题题的的顺顺序序依依次为:次为:做什么做什么如何做如何做制作制作检测检测使用使用 首
26、首先先应应给给出出软软件件的的目目标标,确确定定要要做做什什么么;然然后后要要决决定定如如何何达达到到这这一一目目标标,给给出出策策略略、方方法法和和步步骤骤;继继而而加加以以实实现现,制制作作出出所所需需要要的的软软件件;经经过过适适当当的的检检测测,判判定定符符合合初初始始目目标标以以后后,方方可可投投人人运运行行和和使使用。可以说这是瀑布模型的雏型。用。可以说这是瀑布模型的雏型。19701970年年W WRoyceRoyce首先将这一瀑布模型的雏型精确化,提首先将这一瀑布模型的雏型精确化,提出了具有多个开发阶段的瀑布模型。出了具有多个开发阶段的瀑布模型。31第31页,共40页,编辑于20
27、22年,星期三问题定义问题定义可行性分析可行性分析需求分析需求分析概要设计概要设计详细设计详细设计软件编码软件编码软件测试软件测试软件维护软件维护软件开发软件开发软件定义软件定义软件维护软件维护32第32页,共40页,编辑于2022年,星期三 在在瀑瀑布布模模型型中中,各各阶阶段段结结束束后后,都都要要进行严格的评审。进行严格的评审。技术评审、管理复审技术评审、管理复审 评评审审不不合合格格,返返回回上上一一节节,重重新新设设计计开开发,保证了软件产品的质量。发,保证了软件产品的质量。特特点点:瀑瀑布布模模型型适适用用于于客客户户需需求求明明确确,技技术术成成熟熟,阶阶段段目目标标明明确确的的
28、项项目目,但缺少灵活性。但缺少灵活性。33第33页,共40页,编辑于2022年,星期三2 2螺旋模型螺旋模型 螺旋模型是在瀑布模型和演化模型的基础上,加入两螺旋模型是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。者所忽略的风险分析所建立的一种软件开发模型。制定计划制定计划确定软件目标,选定实施方案,弄确定软件目标,选定实施方案,弄清项目开发的限制条件;清项目开发的限制条件;风风险险分分析析分分析析所所选选方方案案,考考虑虑如如何何识识别别和和消消除风险;除风险;实施工程实施工程实施软件开发;实施软件开发;客客户评户评估估评评价开价开发发工作,提出修正建工作,提
29、出修正建议议。34第34页,共40页,编辑于2022年,星期三35第35页,共40页,编辑于2022年,星期三 特点:特点:螺螺旋旋模模型型适适合合于于大大型型软软件件的的开开发发,特特别别适适合合于于对对安安全全性性和和保保密密性性需需求求极极高高的系统开发。的系统开发。只只有有经经过过特特殊殊训训练练的的专专家家才才能能完完成成,很难用形式化的方法来描述。很难用形式化的方法来描述。36第36页,共40页,编辑于2022年,星期三3 3喷泉模型喷泉模型 喷喷泉泉模模型型体体现现了了软软件件创创建建所所固固有有的的迭迭代代和和无无间间隙隙的的特特征征。这这一一模模型型表表明明了了软软件件刻刻画
30、画活活动动需需要要多多次次重重复复。例例如如,在在编编码码之之前前(实实践践之之后后),再再次次进进行行分分析析和和设设计计,其其间间,添添加加有有关关功功能能,使使系系统统得得以以演演化化。同同时时,该该模模型型还还表表明明活活动动之之间间没没有有明明显显的的间间隙隙,例例如如在在分析和设计之间没有明显的界限。分析和设计之间没有明显的界限。喷喷泉泉模模型型主主要要用用于于支支持持面面向向对对象象开开发发过过程程。由由于于对对象象概概念念的的引引入入,使使分分析析、设设计计、实实现现之之间间的的表表达达没没有有明明显显间间隙隙。并并且且,这这一一表表达自然地支持复用。达自然地支持复用。37第3
31、7页,共40页,编辑于2022年,星期三38第38页,共40页,编辑于2022年,星期三小小 结结1 1 软件的概念软件的概念2 2 软件危机软件危机3 3 软件工程的概念软件工程的概念(重点)(重点)4 4 软件的生存期模型瀑布模型软件的生存期模型瀑布模型(重点)(重点)39第39页,共40页,编辑于2022年,星期三思考与练习思考与练习 课本课本 1616页页1 1、2 2、3 31-1.1-1.什什么么是是软软件件危危机机?它它和和软软件件工工程程有有什什么么关系关系?1-2.1-2.简简述述软软件件和和软软件件工工程程的的定定义义以以及及这这两两个定义的形成过程。个定义的形成过程。1-3.1-3.什什么么是是软软件件生生存存周周期期?简简述述软软件件生生存存周周期的各个阶段的基本任务和工作结果。期的各个阶段的基本任务和工作结果。40第40页,共40页,编辑于2022年,星期三