[精选]软件工程技术基础25044.pptx
《[精选]软件工程技术基础25044.pptx》由会员分享,可在线阅读,更多相关《[精选]软件工程技术基础25044.pptx(170页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件技术基础软件技术基础-软件工程软件工程计算机软件基础之一第三部分第三部分 软件工程软件工程n目的与要求n讲课内容与学时n参考资料目的与要求目的与要求n n学习、掌握和了解软件工程的概念n n掌握软件工程的方法和软件开发的过程n n初步了解对软件开发质量的监控和管理讲课内容与学时讲课内容与学时1.1.软件工程的基本概念(2)2.2.软件开发方法与工作模型(2)3.3.结构化开发方法概述(2)4.4.小结与习题(2)教科书、参考书教科书、参考书n n孙淑霞、肖阳春等编,2000 软件技术基础,成都理工大学n n黄迪明编,1998,软件技术基础,电子科技大学出版社n n郑人杰,软件工程与软件工程
2、管理,讲座n n国际标准 ISO 8631n n国家标准 GB8566-88n nCMM软件成熟度模型第三部分第三部分 软件工程软件工程1.1.软件工程的基本概念2.2.软件开发方法与工作模型3.3.结构化开发方法概述4.4.习题1 1 软件工程的基本概念软件工程的基本概念n n1.1 软件工程学的形成和发展n n1.2 软件工程学研究的内容n n1.3 软件与软件生命周期n n1.4 软件工程基本原则1.1 1.1 软件工程学的形成和发展软件工程学的形成和发展n n软软件件工工程程学学是是在在克克服服6060年年代代末末所所出出现现的的“软软件件危危机机”(software software
3、 crisiscrisis)的的过过程程中中逐逐渐渐形形成与发展起来的成与发展起来的n n而而所所谓谓“软软件件危危机机”是是在在软软件件的的规规模模越越来来越越大大,复复杂杂度度不不断断增增加加,软软件件需需求求量量不不断断增增大大的情况下出现的的情况下出现的n n由由于于软软件件开开发发过过程程是是一一种种高高密密度度的的脑脑力力劳劳动动,软软件件开开发发的的模模式式及及技技术术不不能能适适应应软软件件发发展展的的需要,所以需要,所以“软件危机软件危机”便产生了便产生了软件工程的发展软件工程的发展n n计算机软件发展至今经历了三个不同的发展时期:程序设计时期(程序设计时期(2020世纪世纪
4、5050年代年代6060年代)年代)软件时期(软件时期(2020世纪世纪6060年代中期年代中期7070年代)年代)软件工程时期(软件工程时期(2020世纪世纪7070年代年代现在)现在)发展发展n n程序设计语言程序设计语言 (Programming)(Programming)机器语言机器语言 汇编语言汇编语言 ALGOL60ALGOL60 FORTRANFORTRAN COBOLCOBOL BASICBASICn n软件软件 (Software)1960(Software)1960 程序程序 文档文档 数据数据 n n软件危机引出软件工程软件危机引出软件工程 (Software Engin
5、eering)(Software Engineering)软件开发工程化软件开发工程化 1968 NATO1968 NATO 软件开发阶段与瀑布模型软件开发阶段与瀑布模型 软件工程标准软件工程标准焦点焦点n n目标少资源、高效益少资源、高效益在在人人力力投投入入、开开发发期期、成成本本、质质量量诸诸方方面面求求得最佳得最佳n n风险需求:不明与变更需求:不明与变更人员流动人员流动软件知识产权保护软件知识产权保护不存在绝对无缺陷的软件产品不存在绝对无缺陷的软件产品成功的标志成功的标志n n如期完成n n预算内完成n n达到质量要求(需求和希望)软件业与制造业的差异软件业与制造业的差异|设计|生产
6、|运 输|仓 储|功能度.制造业大量|设计(开发)|生产|运输|仓储|功能度.软件业大量软件的特点软件的特点n n软件是一种逻辑实体,具有抽象性软件是一种逻辑实体,具有抽象性 这个特点使它与其他工程对象有着明显的差异这个特点使它与其他工程对象有着明显的差异 人人们们可可以以把把它它记记录录在在纸纸上上、内内存存和和磁磁盘盘、光光盘盘上上,但但却却无无法法看看到到软软件件本本身身的的形形态态,必必须须通通过过观观察察、分分析析、思思考考、判判断断,才才能能了解它的功能、性能等特性了解它的功能、性能等特性n n软件没有明显的制造过程软件没有明显的制造过程 一一旦旦研研制制开开发发成成功功,就就可可
7、以以大大量量拷拷贝贝同同一一内内容容的的副副本本,所所以以对对软件的质量控制,必须着重在软件开发方面下工夫软件的质量控制,必须着重在软件开发方面下工夫n n软件在使用过程中,没有磨损、老化的问题软件在使用过程中,没有磨损、老化的问题 软软件件在在生生存存周周期期后后期期不不会会因因为为磨磨损损而而老老化化,但但会会为为了了适适应应硬硬件件、环环境境以以及及需需求求的的变变化化而而进进行行修修改改,而而这这些些修修改改又又不不可可避避免免地地引引入错误,导致软件失效率升高,从而使得软件退化入错误,导致软件失效率升高,从而使得软件退化 当修改的成本变得难以接受时,软件就被抛弃当修改的成本变得难以接
8、受时,软件就被抛弃n n软件对硬件和环境有着不同程度的依赖性软件对硬件和环境有着不同程度的依赖性 这导致了软件移植的问题这导致了软件移植的问题软件的特点软件的特点(cont.)(cont.)n n软软件件的的开开发发至至今今尚尚未未完完全全摆摆脱脱手手工工作作坊坊式式的的开开发发方方式式,生产效率低生产效率低n n软件是复杂的,而且以后会更加复杂软件是复杂的,而且以后会更加复杂 软件是人类有史以来生产的复杂度最高的工业产品软件是人类有史以来生产的复杂度最高的工业产品 软软件件涉涉及及人人类类社社会会的的各各行行各各业业、方方方方面面面面,软软件件开开发发常常常常涉涉及及其他领域的专门知识,这对
9、软件工程师提出了很高的要求其他领域的专门知识,这对软件工程师提出了很高的要求n n软件的成本相当昂贵软件的成本相当昂贵 软软件件开开发发需需要要投投入入大大量量、高高强强度度的的脑脑力力劳劳动动,成成本本非非常常高高,风风险也大险也大 现在软件的开销已大大超过了硬件的开销现在软件的开销已大大超过了硬件的开销n n软件工作牵涉到很多社会因素软件工作牵涉到很多社会因素 许许多多软软件件的的开开发发和和运运行行涉涉及及机机构构、体体制制和和管管理理方方式式等等问问题题,还还会涉及到人们的观念和心理会涉及到人们的观念和心理 这这些些人人的的因因素素,常常常常成成为为软软件件开开发发的的困困难难所所在在
10、,直直接接影影响响到到项项目的成败目的成败软件危机软件危机(software (software crisis)crisis)n n软软件件危危机机是是指指计计算算机机软软件件开开发发和和维维护护过过程程中中所所遇到的一系列严重问题遇到的一系列严重问题 软软件件的的数数量量急急剧剧膨膨胀胀,软软件件需需求求日日趋趋复复杂杂,维维护护的的难难度度越越来来越越大大,开开发发成成本本令令人人吃吃惊惊地地高高,而而失失败败的的软件开发项目却屡见不鲜软件开发项目却屡见不鲜n n它主要包含两个方面的问题:它主要包含两个方面的问题:如如何何开开发发软软件件,以以满满足足不不断断增增长长,日日趋趋复复杂杂的的
11、需需求求软件产品质量低劣,甚至开发过程就夭折软件产品质量低劣,甚至开发过程就夭折 如如何何维维护护数数量量不不断断膨膨胀胀的的软软件件产产品品软软件件生生产产率率低,不能满足需要低,不能满足需要软件危机的表现软件危机的表现n n对对软软件件开开发发成成本本和和进进度度的的估估计计常常常常不不准准确确,开开发发成成本本超超出出预预算算,实实际际进进度度比比预预定定计计划划一一再拖延的现象并不罕见再拖延的现象并不罕见n n用用户户对对“已已完完成成”系系统统不不满满意意的的现现象象经经常常发发生生n n软软件件产产品品的的质质量量往往往往靠靠不不住住,BugBug一一大大堆堆,PatchPatch
12、一个接一个一个接一个n n软件的可维护程度非常之低软件的可维护程度非常之低n n软件通常没有适当的文档资料软件通常没有适当的文档资料n n软件的成本不断提高软件的成本不断提高n n软软件件开开发发生生产产率率的的提提高高赶赶不不上上硬硬件件的的发发展展和和人们需求的增长人们需求的增长产生软件危机的原因产生软件危机的原因n n由由于于软软件件本本身身的的特特点点,管管理理和和控控制制软软件件开开发发过过程相当困难,而且软件维护较难程相当困难,而且软件维护较难 软软件件是是一一种种高高智智力力活活动动,由由复复杂杂的的逻逻辑辑、复复杂杂的的运运算和复杂的关联等构成算和复杂的关联等构成n n由由于于
13、对对软软件件开开发发与与软软件件维维护护的的不不正正确确方方法法,产产生了软件危机生了软件危机 软软件件规规模模越越来来越越大大,功功能能越越来来越越强强,导导致致软软件件结结构构非常复杂非常复杂 忽视软件开发前期的需求分析忽视软件开发前期的需求分析 开开发发过过程程没没有有统统一一的的、规规范范的的方方法法论论的的指指导导,文文档档资料不齐全,忽视人与人的交流资料不齐全,忽视人与人的交流 忽视测试阶段的工作,提交用户的软件质量差忽视测试阶段的工作,提交用户的软件质量差 轻视软件的维护;等等轻视软件的维护;等等对软件看法的转变对软件看法的转变n n早期那些被认为是优秀的程序常常很难被别人看懂,
14、通篇充满了程序技巧n n现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该容易看懂、容易使用、容易修改和扩充软件的定义软件的定义n n软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括:程程序序(program)(program)是是按按照照事事先先设设计计的的功功能能和性能要求执行的指令序列和性能要求执行的指令序列相相关关数数据据(data)(data)是是程程序序能能正正常常操操纵纵信信息息的数据结构的数据结构说说明明文文档档(document)(document)是是与与程程序序开开发发维维护和使用有关的各种图文资料护和使用有关的各种图文
15、资料软件工程软件工程(software(software engineering)engineering)n n提出提出 19681968年年秋秋季季,NATONATO(北北约约)的的科科技技委委员员会会召召集集了了近近5050名名一一流流的的编编程程人人员员、计计算算机机科科学学家家和和工工业业界界巨巨头头,讨讨论论和和制制定定摆摆脱脱“软软件件危危机机”的的对对策策。在在那次会议上第一次提出了软件工程这个概念。那次会议上第一次提出了软件工程这个概念。n n软件工程的定义软件工程的定义 软软件件工工程程是是一一门门研研究究如如何何用用系系统统化化、规规范范化化、数数量量化化等等工工程程原原则
16、则和和方方法法去去进进行行软软件件的的开开发发和和维维护护的学科。的学科。1 1 软件工程的基本概念软件工程的基本概念n n1.1 软件工程学的形成和发展n n1.2 软件工程学研究的内容n n1.3 软件与软件生命周期n n1.4 软件工程基本原则1.2 1.2 软件工程学研究的内容软件工程学研究的内容n n“软件工程”是软件工程人员寻求解决出现的软件危机而产生的n n它的核心思想是采采用用工工程程化化的的原原理理与与方方法法对对软软件件进进行行计计划划、开发和维护开发和维护质量成本效率工具工具方法方法过程过程产品需求产品资源管理!?!高效率、低成本地高效率、低成本地开发高质量的软件!开发高
17、质量的软件!软件工程面对的挑战软件工程面对的挑战软件工程两个方面的内容软件工程两个方面的内容n n软件开发技术软件开发方法学软件开发方法学软件工具软件工具软件工程环境软件工程环境n n软件项目管理软件度量软件度量项目估算项目估算进度控制进度控制人员组织人员组织配置管理配置管理项目计划等项目计划等1 1 软件工程的基本概念软件工程的基本概念n n1.1 软件工程学的形成和发展n n1.2 软件工程学研究的内容n n1.3 软件与软件生命周期n n1.4 软件工程基本原则1.3 1.3 软件与软件生命周期软件与软件生命周期n n关于软件关于软件 要要纠纠正正那那种种认认为为“软软件件就就是是程程序
18、序,开开发发软软件件就就是是编写程序编写程序”的错误观念的错误观念 软软件件应应是是“程程序序以以及及开开发发、使使用用和和维维护护程程序序所所需需的所有文档的所有文档”。具体来说是由:。具体来说是由:n n应用程序:面向用户,为解决各种特定问题编写的程序应用程序:面向用户,为解决各种特定问题编写的程序n n系统程序:面向硬件,为应用程序服务的程序系统程序:面向硬件,为应用程序服务的程序n n面向用户的文档:如何使用和维护应用程序的资料面向用户的文档:如何使用和维护应用程序的资料n n面面向向开开发发者者的的文文档档:记记载载了了应应用用程程序序的的设设计计和和开开发发过过程程,以便进一步开发
19、和修改以便进一步开发和修改1.3 1.3 软件与软件生命周期软件与软件生命周期n n软件生命周期(SLC)软软件件生生命命周周期期是是指指从从软软件件开开发发到到报报废废的的全全过程,也称软件生存期过程,也称软件生存期软件生命周期的描述模型软件生命周期的描述模型n n瀑布模型(经典)瀑布模型(经典)n n快速原型模型快速原型模型软件生命周期的三个时期软件生命周期的三个时期n n定义时期定义时期n n开发时期开发时期n n维护时期维护时期瀑布模型瀑布模型问题定义问题定义可行性研究可行性研究需求分析需求分析设设 计计编编 程程测测 试试运行与维护运行与维护目标与范围说明书可行性论证报告需求说明书设
20、计文档程序测试报告维护报告计划时期开发时期运行时期快速原型模型快速原型模型需求分析需求分析原型开发原型开发原型评定原型评定目标系统设计目标系统设计目标系统实现目标系统实现用户意见软件开发流程软件开发流程用 户初始需求交付的软件运行维护分析定义需求规格说明设计设计文档实现测试源程序软件生命周期软件生命周期定义期定义期n n定义期要为被开发的软件规定要为被开发的软件规定“做什么做什么”开发人员要确定开发人员要确定n n软件将处理什么信息软件将处理什么信息n n软件的功能软件的功能n n软件的性能软件的性能n n建立什么样的接口建立什么样的接口n n要考虑什么设计限制要考虑什么设计限制n n软件开发
21、成功的确认标准软件开发成功的确认标准软件生命周期软件生命周期定义期定义期n n定义期包括三个阶段的工作定义期包括三个阶段的工作 系统分析系统分析n n把把软软件件要要完完成成的的工工作作与与整整个个计计算算机机系系统统的的其其他他部部分分,如如硬件,操作人员及数据库等应完成的工作区分开来硬件,操作人员及数据库等应完成的工作区分开来 软件项目计划软件项目计划n n确确定定软软件件开开发发总总目目标标,进进行行风风险险分分析析,资资源源分分配配,成成本本估计,规定工作任务和进度安排估计,规定工作任务和进度安排 需求分析需求分析n n更明确地确定软件做什么更明确地确定软件做什么n n给出所开发软件的
22、功能,性能,用户接口给出所开发软件的功能,性能,用户接口n n对数据流进行分析对数据流进行分析n n给出功能说明给出功能说明n n写出用户手册初稿写出用户手册初稿软件生命周期软件生命周期开发期开发期n n开发期着重解决所开发软件着重解决所开发软件“怎么做怎么做”的问题的问题开发期要进行开发期要进行n n设计数据结构设计数据结构n n设计软件总体结构设计软件总体结构n n实现软件的过程细节实现软件的过程细节n n将设计转换成程序语言将设计转换成程序语言n n进行测试进行测试软件生命周期软件生命周期开发期开发期n n开发期含有以下三个阶段软件设计软件设计n n把把已已经经确确定定的的软软件件需需求
23、求转转换换成成特特定定形形式式的的设设计计表示,使其得以实现表示,使其得以实现程序编制程序编制n n用用某某个个编编程程语语言言表表达达软软件件设设计计时时确确定定的的处处理理过过程算法程算法软件测试软件测试n n对对已已编编制制的的程程序序进进行行测测试试,以以找找出出其其中中功功能能上上、逻辑上和实现中的错误逻辑上和实现中的错误软件生命周期软件生命周期维护期维护期n n运行维护期着重解决因多种原因软件要做的变更着重解决因多种原因软件要做的变更软件投入使用后,要对软件作变更的理由软件投入使用后,要对软件作变更的理由n n开发期中存在的问题,当时未能发现和及时解决开发期中存在的问题,当时未能发
24、现和及时解决n n适应变更了的软件运行环境适应变更了的软件运行环境n n软件需进一步完善软件需进一步完善n n用户需求较小的变化用户需求较小的变化软件生存周期软件生存周期n n软件生存期的三个时期有时也笼统地称为软件开发n n为更清楚地表达生存期内各个阶段的工作和各阶段间的关系,可为生存期设计不同的范型,或称模型。如:瀑布模型瀑布模型螺旋模型螺旋模型喷泉模型喷泉模型软件生存周期方法学软件生存周期方法学n n软件工程采用的生存周期方法学就是软件工程采用的生存周期方法学就是 从时间角度对软件开发和维护的复杂问题进行分解从时间角度对软件开发和维护的复杂问题进行分解 将软件的生存周期分为若干阶段将软件
25、的生存周期分为若干阶段n n需求定义需求定义n n软件设计软件设计n n编程编程n n测试测试n n运行维护等运行维护等 每个阶段有相对独立的任务,便于分工协作每个阶段有相对独立的任务,便于分工协作 使使软软件件开开发发过过程程按按有有秩秩序序能能管管理理的的方方式式组组织织起起来来,从而降低软件开发的难度从而降低软件开发的难度软件生命周期的花费比例软件生命周期的花费比例1 1 软件工程的基本概念软件工程的基本概念n n1.1 软件工程学的形成和发展n n1.2 软件工程学研究的内容n n1.3 软件与软件生命周期n n1.4 软件工程基本原则1.4 1.4 软件工程基本原则软件工程基本原则n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 软件工程 技术 基础 25044
限制150内