信息化综合资料→软件技术基础知识之软件工程.ppt

上传人:wuy****n92 文档编号:63546901 上传时间:2022-11-25 格式:PPT 页数:169 大小:364.50KB
返回 下载 相关 举报
信息化综合资料→软件技术基础知识之软件工程.ppt_第1页
第1页 / 共169页
信息化综合资料→软件技术基础知识之软件工程.ppt_第2页
第2页 / 共169页
点击查看更多>>
资源描述

《信息化综合资料→软件技术基础知识之软件工程.ppt》由会员分享,可在线阅读,更多相关《信息化综合资料→软件技术基础知识之软件工程.ppt(169页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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郑人杰,软件工程与软件工程管理,讲座n n国际标准 ISO 8631n n国家标

2、准 GB8566-88n nCMM软件成熟度模型第三部分 软件工程1.1.软件工程的基本概念2.2.软件开发方法与工作模型3.3.结构化开发方法概述4.4.习题1 软件工程的基本概念n n1.1 软件工程学的形成和发展n n1.2 软件工程学研究的内容n n1.3 软件与软件生命周期n n1.4 软件工程基本原则1.1 软件工程学的形成和发展n n软软件件工工程程学学是是在在克克服服6060年年代代末末所所出出现现的的“软软件件危危机机”(software software crisiscrisis)的的过过程程中中逐逐渐渐形形成与发展起来的成与发展起来的n n而而所所谓谓“软软件件危危机机”

3、是是在在软软件件的的规规模模越越来来越越大大,复复杂杂度度不不断断增增加加,软软件件需需求求量量不不断断增增大大的情况下出现的的情况下出现的n n由由于于软软件件开开发发过过程程是是一一种种高高密密度度的的脑脑力力劳劳动动,软软件件开开发发的的模模式式及及技技术术不不能能适适应应软软件件发发展展的的需要,所以需要,所以“软件危机软件危机”便产生了便产生了软件工程的发展n n计算机软件发展至今经历了三个不同的发展时期:程序设计时期(程序设计时期(2020世纪世纪5050年代年代6060年代)年代)软件时期(软件时期(2020世纪世纪6060年代中期年代中期7070年代)年代)软件工程时期(软件工

4、程时期(2020世纪世纪7070年代年代现在)现在)发展n n程序设计语言程序设计语言 (Programming)(Programming)机器语言机器语言 汇编语言汇编语言 ALGOL60ALGOL60 FORTRANFORTRAN COBOLCOBOL BASICBASICn n软件软件 (Software)1960(Software)1960 程序程序 文档文档 数据数据 n n软件危机引出软件工程软件危机引出软件工程 (Software Engineering)(Software Engineering)软件开发工程化软件开发工程化 1968 NATO1968 NATO 软件开发阶段与

5、瀑布模型软件开发阶段与瀑布模型 软件工程标准软件工程标准焦点n n目标少资源、高效益少资源、高效益在在人人力力投投入入、开开发发期期、成成本本、质质量量诸诸方方面面求求得最佳得最佳n n风险需求:不明与变更需求:不明与变更人员流动人员流动软件知识产权保护软件知识产权保护不存在绝对无缺陷的软件产品不存在绝对无缺陷的软件产品成功的标志n n如期完成n n预算内完成n n达到质量要求(需求和希望)软件业与制造业的差异|设计|生产|运 输|仓 储|功能度.制造业大量|设计(开发)|生产|运输|仓储|功能度.软件业大量软件的特点n n软件是一种逻辑实体,具有抽象性软件是一种逻辑实体,具有抽象性 这个特点

6、使它与其他工程对象有着明显的差异这个特点使它与其他工程对象有着明显的差异 人人们们可可以以把把它它记记录录在在纸纸上上、内内存存和和磁磁盘盘、光光盘盘上上,但但却却无无法法看看到到软软件件本本身身的的形形态态,必必须须通通过过观观察察、分分析析、思思考考、判判断断,才才能能了解它的功能、性能等特性了解它的功能、性能等特性n n软件没有明显的制造过程软件没有明显的制造过程 一一旦旦研研制制开开发发成成功功,就就可可以以大大量量拷拷贝贝同同一一内内容容的的副副本本,所所以以对对软件的质量控制,必须着重在软件开发方面下工夫软件的质量控制,必须着重在软件开发方面下工夫n n软件在使用过程中,没有磨损、

7、老化的问题软件在使用过程中,没有磨损、老化的问题 软软件件在在生生存存周周期期后后期期不不会会因因为为磨磨损损而而老老化化,但但会会为为了了适适应应硬硬件件、环环境境以以及及需需求求的的变变化化而而进进行行修修改改,而而这这些些修修改改又又不不可可避避免免地地引引入错误,导致软件失效率升高,从而使得软件退化入错误,导致软件失效率升高,从而使得软件退化 当修改的成本变得难以接受时,软件就被抛弃当修改的成本变得难以接受时,软件就被抛弃n n软件对硬件和环境有着不同程度的依赖性软件对硬件和环境有着不同程度的依赖性 这导致了软件移植的问题这导致了软件移植的问题软件的特点(cont.)n n软软件件的的

8、开开发发至至今今尚尚未未完完全全摆摆脱脱手手工工作作坊坊式式的的开开发发方方式式,生产效率低生产效率低n n软件是复杂的,而且以后会更加复杂软件是复杂的,而且以后会更加复杂 软件是人类有史以来生产的复杂度最高的工业产品软件是人类有史以来生产的复杂度最高的工业产品 软软件件涉涉及及人人类类社社会会的的各各行行各各业业、方方方方面面面面,软软件件开开发发常常常常涉涉及及其他领域的专门知识,这对软件工程师提出了很高的要求其他领域的专门知识,这对软件工程师提出了很高的要求n n软件的成本相当昂贵软件的成本相当昂贵 软软件件开开发发需需要要投投入入大大量量、高高强强度度的的脑脑力力劳劳动动,成成本本非非

9、常常高高,风风险也大险也大 现在软件的开销已大大超过了硬件的开销现在软件的开销已大大超过了硬件的开销n n软件工作牵涉到很多社会因素软件工作牵涉到很多社会因素 许许多多软软件件的的开开发发和和运运行行涉涉及及机机构构、体体制制和和管管理理方方式式等等问问题题,还还会涉及到人们的观念和心理会涉及到人们的观念和心理 这这些些人人的的因因素素,常常常常成成为为软软件件开开发发的的困困难难所所在在,直直接接影影响响到到项项目的成败目的成败软件危机(software crisis)n n软软件件危危机机是是指指计计算算机机软软件件开开发发和和维维护护过过程程中中所所遇到的一系列严重问题遇到的一系列严重问

10、题 软软件件的的数数量量急急剧剧膨膨胀胀,软软件件需需求求日日趋趋复复杂杂,维维护护的的难难度度越越来来越越大大,开开发发成成本本令令人人吃吃惊惊地地高高,而而失失败败的的软件开发项目却屡见不鲜软件开发项目却屡见不鲜n n它主要包含两个方面的问题:它主要包含两个方面的问题:如如何何开开发发软软件件,以以满满足足不不断断增增长长,日日趋趋复复杂杂的的需需求求软件产品质量低劣,甚至开发过程就夭折软件产品质量低劣,甚至开发过程就夭折 如如何何维维护护数数量量不不断断膨膨胀胀的的软软件件产产品品软软件件生生产产率率低,不能满足需要低,不能满足需要软件危机的表现n n对对软软件件开开发发成成本本和和进进

11、度度的的估估计计常常常常不不准准确确,开开发发成成本本超超出出预预算算,实实际际进进度度比比预预定定计计划划一一再拖延的现象并不罕见再拖延的现象并不罕见n n用用户户对对“已已完完成成”系系统统不不满满意意的的现现象象经经常常发发生生n n软软件件产产品品的的质质量量往往往往靠靠不不住住,BugBug一一大大堆堆,PatchPatch一个接一个一个接一个n n软件的可维护程度非常之低软件的可维护程度非常之低n n软件通常没有适当的文档资料软件通常没有适当的文档资料n n软件的成本不断提高软件的成本不断提高n n软软件件开开发发生生产产率率的的提提高高赶赶不不上上硬硬件件的的发发展展和和人们需求

12、的增长人们需求的增长产生软件危机的原因n n由由于于软软件件本本身身的的特特点点,管管理理和和控控制制软软件件开开发发过过程相当困难,而且软件维护较难程相当困难,而且软件维护较难 软软件件是是一一种种高高智智力力活活动动,由由复复杂杂的的逻逻辑辑、复复杂杂的的运运算和复杂的关联等构成算和复杂的关联等构成n n由由于于对对软软件件开开发发与与软软件件维维护护的的不不正正确确方方法法,产产生了软件危机生了软件危机 软软件件规规模模越越来来越越大大,功功能能越越来来越越强强,导导致致软软件件结结构构非常复杂非常复杂 忽视软件开发前期的需求分析忽视软件开发前期的需求分析 开开发发过过程程没没有有统统一

13、一的的、规规范范的的方方法法论论的的指指导导,文文档档资料不齐全,忽视人与人的交流资料不齐全,忽视人与人的交流 忽视测试阶段的工作,提交用户的软件质量差忽视测试阶段的工作,提交用户的软件质量差 轻视软件的维护;等等轻视软件的维护;等等对软件看法的转变n n早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧n n现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该容易看懂、容易使用、容易修改和扩充软件的定义n n软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括:程程序序(program)(program)是是按按照照事事先先设设计计

14、的的功功能能和性能要求执行的指令序列和性能要求执行的指令序列相相关关数数据据(data)(data)是是程程序序能能正正常常操操纵纵信信息息的数据结构的数据结构说说明明文文档档(document)(document)是是与与程程序序开开发发维维护和使用有关的各种图文资料护和使用有关的各种图文资料软件工程(software engineering)n n提出提出 19681968年年秋秋季季,NATONATO(北北约约)的的科科技技委委员员会会召召集集了了近近5050名名一一流流的的编编程程人人员员、计计算算机机科科学学家家和和工工业业界界巨巨头头,讨讨论论和和制制定定摆摆脱脱“软软件件危危机机

15、”的的对对策策。在在那次会议上第一次提出了软件工程这个概念。那次会议上第一次提出了软件工程这个概念。n n软件工程的定义软件工程的定义 软软件件工工程程是是一一门门研研究究如如何何用用系系统统化化、规规范范化化、数数量量化化等等工工程程原原则则和和方方法法去去进进行行软软件件的的开开发发和和维维护护的学科。的学科。1 软件工程的基本概念n n1.1 软件工程学的形成和发展n n1.2 软件工程学研究的内容n n1.3 软件与软件生命周期n n1.4 软件工程基本原则1.2 软件工程学研究的内容n n“软件工程”是软件工程人员寻求解决出现的软件危机而产生的n n它的核心思想是采采用用工工程程化化

16、的的原原理理与与方方法法对对软软件件进进行行计计划划、开发和维护开发和维护质量成本效率工具工具方法方法过程过程产品需求产品资源管理!?!高效率、低成本地高效率、低成本地开发高质量的软件!开发高质量的软件!软件工程面对的挑战软件工程两个方面的内容n n软件开发技术软件开发方法学软件开发方法学软件工具软件工具软件工程环境软件工程环境n n软件项目管理软件度量软件度量项目估算项目估算进度控制进度控制人员组织人员组织配置管理配置管理项目计划等项目计划等1 软件工程的基本概念n n1.1 软件工程学的形成和发展n n1.2 软件工程学研究的内容n n1.3 软件与软件生命周期n n1.4 软件工程基本原

17、则1.3 软件与软件生命周期n n关于软件关于软件 要要纠纠正正那那种种认认为为“软软件件就就是是程程序序,开开发发软软件件就就是是编写程序编写程序”的错误观念的错误观念 软软件件应应是是“程程序序以以及及开开发发、使使用用和和维维护护程程序序所所需需的所有文档的所有文档”。具体来说是由:。具体来说是由:n n应用程序:面向用户,为解决各种特定问题编写的程序应用程序:面向用户,为解决各种特定问题编写的程序n n系统程序:面向硬件,为应用程序服务的程序系统程序:面向硬件,为应用程序服务的程序n n面向用户的文档:如何使用和维护应用程序的资料面向用户的文档:如何使用和维护应用程序的资料n n面面向

18、向开开发发者者的的文文档档:记记载载了了应应用用程程序序的的设设计计和和开开发发过过程程,以便进一步开发和修改以便进一步开发和修改1.3 软件与软件生命周期n n软件生命周期(SLC)软软件件生生命命周周期期是是指指从从软软件件开开发发到到报报废废的的全全过程,也称软件生存期过程,也称软件生存期软件生命周期的描述模型软件生命周期的描述模型n n瀑布模型(经典)瀑布模型(经典)n n快速原型模型快速原型模型软件生命周期的三个时期软件生命周期的三个时期n n定义时期定义时期n n开发时期开发时期n n维护时期维护时期瀑布模型问题定义问题定义可行性研究可行性研究需求分析需求分析设设 计计编编 程程测

19、测 试试运行与维护运行与维护目标与范围说明书可行性论证报告需求说明书设计文档程序测试报告维护报告计划时期开发时期运行时期快速原型模型需求分析需求分析原型开发原型开发原型评定原型评定目标系统设计目标系统设计目标系统实现目标系统实现用户意见软件开发流程用 户初始需求交付的软件运行维护分析定义需求规格说明设计设计文档实现测试源程序软件生命周期定义期n n定义期要为被开发的软件规定要为被开发的软件规定“做什么做什么”开发人员要确定开发人员要确定n n软件将处理什么信息软件将处理什么信息n n软件的功能软件的功能n n软件的性能软件的性能n n建立什么样的接口建立什么样的接口n n要考虑什么设计限制要考

20、虑什么设计限制n n软件开发成功的确认标准软件开发成功的确认标准软件生命周期定义期n n定义期包括三个阶段的工作定义期包括三个阶段的工作 系统分析系统分析n n把把软软件件要要完完成成的的工工作作与与整整个个计计算算机机系系统统的的其其他他部部分分,如如硬件,操作人员及数据库等应完成的工作区分开来硬件,操作人员及数据库等应完成的工作区分开来 软件项目计划软件项目计划n n确确定定软软件件开开发发总总目目标标,进进行行风风险险分分析析,资资源源分分配配,成成本本估计,规定工作任务和进度安排估计,规定工作任务和进度安排 需求分析需求分析n n更明确地确定软件做什么更明确地确定软件做什么n n给出所

21、开发软件的功能,性能,用户接口给出所开发软件的功能,性能,用户接口n n对数据流进行分析对数据流进行分析n n给出功能说明给出功能说明n n写出用户手册初稿写出用户手册初稿软件生命周期开发期n n开发期着重解决所开发软件着重解决所开发软件“怎么做怎么做”的问题的问题开发期要进行开发期要进行n n设计数据结构设计数据结构n n设计软件总体结构设计软件总体结构n n实现软件的过程细节实现软件的过程细节n n将设计转换成程序语言将设计转换成程序语言n n进行测试进行测试软件生命周期开发期n n开发期含有以下三个阶段软件设计软件设计n n把把已已经经确确定定的的软软件件需需求求转转换换成成特特定定形形

22、式式的的设设计计表示,使其得以实现表示,使其得以实现程序编制程序编制n n用用某某个个编编程程语语言言表表达达软软件件设设计计时时确确定定的的处处理理过过程算法程算法软件测试软件测试n n对对已已编编制制的的程程序序进进行行测测试试,以以找找出出其其中中功功能能上上、逻辑上和实现中的错误逻辑上和实现中的错误软件生命周期维护期n n运行维护期着重解决因多种原因软件要做的变更着重解决因多种原因软件要做的变更软件投入使用后,要对软件作变更的理由软件投入使用后,要对软件作变更的理由n n开发期中存在的问题,当时未能发现和及时解决开发期中存在的问题,当时未能发现和及时解决n n适应变更了的软件运行环境适

23、应变更了的软件运行环境n n软件需进一步完善软件需进一步完善n n用户需求较小的变化用户需求较小的变化软件生存周期n n软件生存期的三个时期有时也笼统地称为软件开发n n为更清楚地表达生存期内各个阶段的工作和各阶段间的关系,可为生存期设计不同的范型,或称模型。如:瀑布模型瀑布模型螺旋模型螺旋模型喷泉模型喷泉模型软件生存周期方法学n n软件工程采用的生存周期方法学就是软件工程采用的生存周期方法学就是 从时间角度对软件开发和维护的复杂问题进行分解从时间角度对软件开发和维护的复杂问题进行分解 将软件的生存周期分为若干阶段将软件的生存周期分为若干阶段n n需求定义需求定义n n软件设计软件设计n n编

24、程编程n n测试测试n n运行维护等运行维护等 每个阶段有相对独立的任务,便于分工协作每个阶段有相对独立的任务,便于分工协作 使使软软件件开开发发过过程程按按有有秩秩序序能能管管理理的的方方式式组组织织起起来来,从而降低软件开发的难度从而降低软件开发的难度软件生命周期的花费比例1 软件工程的基本概念n n1.1 软件工程学的形成和发展n n1.2 软件工程学研究的内容n n1.3 软件与软件生命周期n n1.4 软件工程基本原则1.4 软件工程基本原则n n通用性和指导性通用性和指导性 软件工程实践总结出的基本现象软件工程实践总结出的基本现象n n稳定性稳定性 不会时时改变,不依赖于采用的技术

25、、方法和工具不会时时改变,不依赖于采用的技术、方法和工具n n概括性概括性 针对软件工程和软件产品特性的抽象描述针对软件工程和软件产品特性的抽象描述n n基础性基础性 理解和采用它需有具体的方法和技术做补充理解和采用它需有具体的方法和技术做补充软件工程的原则原则方法与技术方法学工具PrincipleMethod&Technique 体现原则的途径和步骤Methodology 方法和技术的组合,支持整个软件工程过程Tools 支持方法、技术和方法学的软件一般性原则n n严格性与形式化n n复杂性和分解n n模块化n n抽象性和细化n n变更预见性n n通用性与复用性n n递增式软件质量管理原则n

26、 n产品质量以满足用户需求为最高准则产品质量以满足用户需求为最高准则n n质量第一质量第一n n以人为本以人为本n n质量与生产率质量与生产率n n质量成本质量成本n n密切与用户的联系密切与用户的联系n n尽早排除缺陷尽早排除缺陷n n实施过程质量控制实施过程质量控制文档编制原则n n在文档标准基础上剪裁n n注意读者对象n n便于使用和查找n n使用术语、概念不应有矛盾n n描述的精确性,无多义性n n专职人员与开发人员结合n n独立性需求分析与定义原则n n编编制制需需求求规规格格说说明明以以前前,必必须须十十分分明明确确要要解解决决的的问问题题,即应先明确需求即应先明确需求n n真正弄

27、清需求,还应包括为什么这样定义真正弄清需求,还应包括为什么这样定义n n需求不清必将导致预算不准需求不清必将导致预算不准 总结产生错误的原因:总结产生错误的原因:n n需求变更,遗漏重要需求,与用户交流不畅需求变更,遗漏重要需求,与用户交流不畅n n需求分析不充分,需求规格说明质量低劣需求分析不充分,需求规格说明质量低劣n n发发现现需需求求规规格格说说明明中中有有问问题题,应应立立即即着着手手解解决决,不不可可将其带入后续开发阶段将其带入后续开发阶段n n需求规格说明中不应含有待确定的部分需求规格说明中不应含有待确定的部分n n进进行行需需求求分分析析时时不不做做设设计计,不不应应将将需需求

28、求分分析析做做什什么么与与如何做混淆如何做混淆设计原则n n重重视视需需求求向向设设计计转转化化工工作作,必必要要时时比比较较多多个个设计方案设计方案n n设设计计应应能能和和需需求求对对应应,保保证证每每项项需需求求均均在在设设计中得到体现计中得到体现n n设设计计文文档档是是设设计计的的成成果果,头头脑脑中中的的设设想想不不是是设计设计n n尽可能复用一切可复用的部分尽可能复用一切可复用的部分n n设计应易于变更、易于维护、易于排错设计应易于变更、易于维护、易于排错n n优秀的设计出自优秀人才之手优秀的设计出自优秀人才之手编码原则n n简明清晰n n尽可能少用、甚至不用全局变量n n程序执

29、行速度不应优先于正确性的考虑n n命名易记,充分注释,命名唯一,可追溯n n注意常见的规律是:编码错误通常相对集中管理原则n n大型复杂项目管理重于技术大型复杂项目管理重于技术n n人员不在多,而在精人员不在多,而在精n n计划指标应切合实际,不作不切实际的计划计划指标应切合实际,不作不切实际的计划n n注意收集、积累数据注意收集、积累数据n n不求一次估算能十分精确,但求不断调整不求一次估算能十分精确,但求不断调整n n大型项目重视风险分析大型项目重视风险分析n n项目进展快需分析原因,不可盲目乐观项目进展快需分析原因,不可盲目乐观n n项目完成以后,总结分析有益于积累经验项目完成以后,总结

30、分析有益于积累经验软件过程改进n n质量依赖于过程n n过程需要管理n n软件过程包括哪些过程包括哪些过程如何改进如何改进n n能力成熟度水平:能力成熟度水平:CMMCMM五级五级n n软件过程改进(软件过程改进(SPISPI)不成熟过程的特征n n随意的n n非强制性的n n主要依赖于实践者n n产品的功能、质量和进度常有冲突n n引入新技术时的风险n n质量难以预测成熟过程的特征n n工作按计划有序地进行n n过程、规程、文档规范有定义、文档化有定义、文档化易理解、易使用、可裁减易理解、易使用、可裁减可持续改进可持续改进n n管理的可见性n n产品和过程可度量、可预测n n新技术可以及时得

31、到有效应用 CMU/SEI5 5级级-优化层优化层*过程更改管理*技术更改管理*错误预防4 4级级-管理层管理层*质量管理*过程量化管理3 3级级-定义层定义层*同级评审组间协作*软件产品工程*软件集成管理培训计划*软件过程定义*软件过程要点2 2级级-可重复层可重复层软件配置管理软件质量保证软件子合同管理*软件项目追踪与监控软件项目计划需求管理1 1级级-初始层初始层软件过程成熟度模型的关键子过程域软件过程成熟度模型的关键子过程域能力成熟度模型第三部分 软件工程1.1.软件工程的基本概念2.2.软件开发方法与工作模型3.3.结构化开发方法概述4.4.习题2 软件开发方法与工作模型n n2.1

32、 结构化开发方法n n2.2 原型化方法n n2.3 面向对象的开发方法2.1 结构化开发方法n n结构化方法是现有软件开发方法中最成熟,应用最广泛的方法n n结构化开发方法的主要特点是快速,自然和方便n n结构化程序设计的概念首先是从编写程序中使用转向(GOTO)语句引起的GOTOGOTO语语句句的的过过多多使使用用使使得得程程序序结结构构混混乱乱,容易出错,且出错后不易发现和更正容易出错,且出错后不易发现和更正结构化开发方法n n结构化开发方法的出发点结构化开发方法的出发点 为了保证程序设计的质量为了保证程序设计的质量 使使设设计计程程序序具具有有易易读读性性、易易理理解解性性、通通用用性

33、性好好,执执行时具有较高的效率行时具有较高的效率n n结构化开发方法的基本要求结构化开发方法的基本要求 在详细设计阶段所有的模块只用三种基本控制结构在详细设计阶段所有的模块只用三种基本控制结构n n单入口、单出口和顺序单入口、单出口和顺序n n选择选择n n循环循环 在设计过程中采用自顶向下逐步求精的设计方法在设计过程中采用自顶向下逐步求精的设计方法结构化开发方法n n结构化开发方法的组成7070年代初年代初 结构化程序设计方法结构化程序设计方法 SPSP法法7070年代中年代中 结构化设计方法结构化设计方法 SDSD法法7070年代末年代末 结构化程序分析方法结构化程序分析方法 SASA法法

34、n nSA,SD,SP法相互衔接,形成了一整套开发方法n n若将SA,SD法结合起来,又称为结构化分析与设计技术(SADT技术)结构化方法的工作模型n n瀑瀑布布模模型型(Waterfall Waterfall ModelModel)是是结结构构化化方方法法的工作模型的工作模型n n但从但从8080年代开始,逐渐发现其不足:年代开始,逐渐发现其不足:软软件件开开发发过过程程是是一一个个充充满满回回朔朔过过程程,而而瀑瀑布布模模型型将将其其分分割割为为独独立立的的几几个个阶阶段段,不不能能从从本本质质上上反反映映软件开发过程本身的规律软件开发过程本身的规律 过分强调复审,并不能完全避免较为频繁的

35、变动过分强调复审,并不能完全避免较为频繁的变动n n尽尽管管如如此此,瀑瀑布布模模型型仍仍然然是是开开发发软软件件产产品品的的一个行之有效的工程模型一个行之有效的工程模型2 软件开发方法与工作模型n n2.1 结构化开发方法n n2.2 原型化方法n n2.3 面向对象的开发方法2.2 原型化方法n n原原型型是是软软件件开开发发过过程程中中软软件件的的一一个个早早期期可可运运行行的版本,它反映了最终系统的部分重要特征的版本,它反映了最终系统的部分重要特征n n原原型型化化方方法法的的基基本本思思想想是是花花费费少少量量代代价价建建立立一一个个可可运运行行的的系系统统,使使用用户户及及早早获获

36、得得学学习习的的机机会会,原原 型型 化化 方方 法法 又又 称称 速速 成成 原原 型型 法法(Rapid Rapid PrototypingPrototyping)n n强强调调的的是是软软件件开开发发人人员员与与用用户户的的不不断断交交互互,通通过原型的演进不断适应用户任务改变的需求过原型的演进不断适应用户任务改变的需求n n将将维维护护和和修修改改阶阶段段的的工工作作尽尽早早进进行行,使使用用户户验验收提前,从而使软件产品更加适用收提前,从而使软件产品更加适用原型化方法分类n n原型化方法按运用原型的目的和方式的不同分为:原型化方法按运用原型的目的和方式的不同分为:快速建立渐进原型(快

37、速建立渐进原型(RSPRSP法,法,Rapid Sequential PrototypingRapid Sequential Prototyping )n n该该法法建建立立的的原原型型反反映映了了系系统统的的某某些些特特征征,让让用用户户学学习习,有有利利于于获获得得更加精确的需求说明书,后阶段的工作仍按照瀑布模型开发更加精确的需求说明书,后阶段的工作仍按照瀑布模型开发 快速建立需求规格原型(快速建立需求规格原型(RCPRCP法,法,Rapid Cyclic PrototypingRapid Cyclic Prototyping )n n该该法法采采用用循循环环渐渐进进的的开开发发方方式式,

38、对对系系统统模模型型作作连连续续精精化化,将将系系统统需需要要具具备备的的性性质质逐逐步步添添加加上上去去,直直至至所所有有性性质质全全部部满满足足,此此时时的的原原型型模型也就是最终的产品模型也就是最终的产品n n速速成成原原型型适适合合于于开开发发“探探索索型型”,“实实验验型型”与与“进进化化型型”一类的软件系统一类的软件系统n n速成原型的工作模型是一个循环的模型速成原型的工作模型是一个循环的模型循环的速成原型工作模型n n速成原型循环方式步骤:速成原型循环方式步骤:快速分析快速分析 n n快速确定软件系统的基本要求快速确定软件系统的基本要求n n确确定定原原型型所所要要体体现现的的特

39、特征征(界界面面,总体结构,功能,性能)总体结构,功能,性能)构造原型构造原型 n n在在快快速速分分析析的的基基础础上上根根据据基基本本规规定定说说明明,忽忽略略细细节节,只只考考虑虑主主要要特特征征,快速构造一个可运行的系统快速构造一个可运行的系统n n它它有有三三类类原原型型:用用户户界界面面原原型型,功功能原型,性能原型能原型,性能原型 运行和评价原型运行和评价原型 n n用用户户试试用用原原型型并并与与开开发发者者之之间间频频繁繁交交流流,发发现现问问题题,目目的的是是验验证证原原型型的正确性的正确性 修正与改进修正与改进 n n对原型进行修改,增删对原型进行修改,增删快速分析或修改

40、运行构造评价原型循环的速成原型工作模型n n细化的速成原型工作模型细化的速成原型工作模型快速分析,确定初步规格说明快速分析,确定初步规格说明构造原型构造原型运行运行/评价原型评价原型原型完成原型完成否否要细部说明要细部说明否否效果满意否效果满意否严格说明细部严格说明细部整理原型提供文档整理原型提供文档修正改进原型修正改进原型NNYYYN2 软件开发方法与工作模型n n2.1 结构化开发方法n n2.2 原型化方法n n2.3 面向对象的开发方法2.3 面向对象的开发方法n n面向过程的开发方法面向数据流设计面向数据流设计面向数据结构设计面向数据结构设计n n面向对象的开发方法(OOSD)面向对

41、象的分析(面向对象的分析(OOAOOA)面向对象的设计(面向对象的设计(OODOOD)面向对象的程序设计(面向对象的程序设计(OOPOOP)面向过程的开发方法n n早期的高级语言都是面向过程的n n程序设计者必然要专注于:程程序序对对数数据据的的处处理理过过程程面面向向数数据据流流设设计计数据结构数据结构面向数据结构设计面向数据结构设计n n因此,由软件解决的问题通常用软件系统的数据流图或数据结构来表示面向过程的开发方法n n数据流图描描述述软软件件系系统统的的数数据据从从输输入入到到输输出出的的流流程程,适用于几乎所有顺序处理的软件适用于几乎所有顺序处理的软件n n数据结构描描述述软软件件系

42、系统统的的输输入入输输出出数数据据结结构构,适适用用于于数数据据处处理理,尤尤其其输输入入与与输输出出数数据据结结构构相相似的软件系统似的软件系统面向对象的开发方法(oosD)n n面向对象的开发方法(OOSD,Object-Oriented Software Development)根根据据稳稳定定的的对对象象建建立立系系统统模模型型,可可很很好好地地适应需要的变化适应需要的变化具具有有良良好好的的可可维维护护性性、可可扩扩充充性性和和可可重重用用性性是软件工程领域的一个研究重点是软件工程领域的一个研究重点被誉为被誉为9090年代软件的核心技术之一年代软件的核心技术之一面向对象的开发方法基本

43、思想n n对问题领域进行自然的分割,以便接近人类通常思维的方式n n建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程n n以对象作为最基本的元素分析和解决问题的核心面向对象的开发方法组成n n面向对象的开发方法的组成面向对象的开发方法的组成面面向向对对象象的的分分析析(OOAOOA,Object-Oriented Object-Oriented AnalysisAnalysis)面面 向向 对对 象象 的的 设设 计计(OODOOD,Object-Object-OrientedOriented DesignDesign)面面向向对对象象的

44、的程程序序设设计计(OOPOOP,Object-Object-OrientedOriented ProgrammingProgramming)n nOOP是OOSD的基础n nOOA和OOD是应用OOP的基础面向对象的分析(ooa)n nOOAOOA分析阶段将系统水平划分为五个层次分析阶段将系统水平划分为五个层次 主体主体 类和对象类和对象 结构结构 属性属性 方法方法n nOOAOOA的的任任务务就就是是通通过过分分析析问问题题域域,建建立立系系统统的概念模型的概念模型面向对象的分析(ooa)n nOOAOOA提供了三种模型:提供了三种模型:信信息息模模型型定定义义构构成成系系统统的的类类和

45、和对对象象,它它们们的的属性与操作属性与操作 状状态态模模型型描描述述系系统统的的控控制制结结构构,即即描描述述任任何何时时刻刻对对象象的的联联系系以以及及联联系系的的变变化化,或或称称为为时时序序,常用状态图和事件追踪图来描述常用状态图和事件追踪图来描述 处处理理模模型型描描述述系系统统内内部部数数据据的的传传送送和和处处理理方方法法n n面面向向对对象象的的分分析析(OOAOOA)和和设设计计(OODOOD)就就是是把把面面向向对对象象的的方方法法应应用用到到软软件件工工程程的的分分析析和和设设计计阶阶段段,从从而而建建立立更更加加适适应应当当今今庞庞大大、复杂且易变的系统的模型复杂且易变

46、的系统的模型面向对象的设计(ooD)n n在OOA建立的五个水平层次(主体、类和对象、结构、属性、方法)基础上,将系统结构在纵向上划分为:问题部件问题部件人机交互部件人机交互部件任务管理部件任务管理部件数据管理部件数据管理部件面向对象的设计(ooD)n nOODOOD法分为法分为 概要设计概要设计n n细化对象行为细化对象行为n n添加新对象添加新对象n n认定类认定类n n组类库组类库n n确定外部接口确定外部接口n n主要数据结构主要数据结构 详细设计详细设计n n加细对象描述加细对象描述面向对象的程序设计(ooP)n n使用面向对象的程序设计语言进行程序设计如:如:C+C+,Delphi

47、Delphi,AdaAda,SmallTalkSmallTalk,JavaJavan n面向对象的定义:面向对象面向对象 =对象对象 +类类 +继承继承 +消息消息如如果果一一个个软软件件系系统统是是按按照照这这样样四四个个概概念念设设计计和和实实现现的的,则则可可以以认认为为这这个个软软件件系系统统是是面向对象的面向对象的面向对象的程序设计(ooP)n n OOP具有三个重要特征:封装封装n n封封装装是是将将数数据据和和对对这这些些数数据据进进行行处处理理所所需需的的各各种种操作连接在一个根下的技术操作连接在一个根下的技术继承继承n n继继承承是是引引用用已已经经定定义义的的各各种种类类,

48、并并将将它它们们扩扩充充以以满足新的功能的一种技术满足新的功能的一种技术多态性多态性n n多态性实质上就是同一个名字可以用于多种目的多态性实质上就是同一个名字可以用于多种目的面向过程与面向对象n n传传统统的的面面向向过过程程(函函数数)的的编编程程方法方法 代代码码和和数数据据是是分分开的开的 函函数数是是最最重重要要的的,一一个个程程序序中中的的所所有有代代码码都都应应围围绕绕这些函数来设计这些函数来设计n n面向对象编程方法面向对象编程方法 必必须须将将代代码码与与数数据据构构造造在在一一个个程程序序块块中中,并且统一来管理并且统一来管理 对对象象是是最最重重要要的的,程程序序是是围围绕

49、绕这这些些对对象象来来设设计计的的,函函数数是是第第二二位的位的 用用对对象象调调用用函函数数,而而不不是是简简单单地地将将对对象象(数据)传递给函数(数据)传递给函数面向对象的基本概念n n对象(Object)n n类(Class)n n继承(Inheritance)n n消息(Message)n n软件IC(Integrate Circuit)面向对象的基本概念n n对象(对象(ObjectObject)是对客观存在的事物的描述,可以是事、物,或概念是对客观存在的事物的描述,可以是事、物,或概念 对对象象是是将将一一组组数数据据和和使使用用该该数数据据的的一一组组基基本本操操作作或或过过程

50、封装在一起的实体程封装在一起的实体 用用户户不不必必知知道道对对象象行行为为的的实实现现细细节节,只只需需根根据据对对象象提提供的外部特征接口访问对象供的外部特征接口访问对象 对对象象的的动动作作取取决决于于发发送送给给该该对对象象的的消消息息,消消息息通通知知对对象象要要求求完完成成某某个个功功能能。即即,对对象象之之间间的的通通讯讯是是以以“做做什什么么”的的消消息息发发送送为为契契机机的的,并并认认为为接接受受消消息息的的对对象象知道如何去做,消息激活对象的相应功能知道如何去做,消息激活对象的相应功能“面面向向对对象象”的的基基本本思思想想就就是是把把要要构构造造的的系系统统表表示示为为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁