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