版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1软件工程西南财经大学天府学院2成绩考核v考勤 - 20v期末考试 - 30v项目成绩 - 50项目成绩项目成绩:本课程采用项目教学法,项目成绩包括需求、设计文档、UML建模图。3内容 - 理论v软件工程概论v软件过程介绍v结构化分析、设计、实现v面向对象方法学导论v面向对象分析、设计、实现v统一建模语言v项目展示 4内容 - 实验上机v用案图v对象图v类图v状态图v活动图v协作图v序列图 5如何学习软件工程v耐心先学习课本理论、多看开阔视野 v网络是最好的老师希赛 http:/UML软件工程组织 http:/ http:/ 百度http:/ v实践是最好的学习手段6参考书籍推荐v平衡敏捷和规
2、范作 者:(美)BarryBoehm (美)RichardTurner v软件架构实践作 者: (美) Len Bass (美) Pick Kazmanv产生式编程方法、工具与应用作 者:Generative Programming Methods,Tools,and Applications 7八十年代初科学家的预言vOsborne 1979 将迎来将迎来” 新的工业革命新的工业革命”vToffler 1980 微电子的发展是人类历史上的微电子的发展是人类历史上的”第三次浪潮第三次浪潮”v80年代初 美国商业周刊杂志在头版刊登大标题:美国商业周刊杂志在头版刊登大标题: “软件:新的驱动力软件
3、:新的驱动力”! 8vNaisbitt 1982 人类社会将人类社会将“从工业社会向信息社会转变从工业社会向信息社会转变”vFeigenbaum 1983 计算机控制的信息和知识将成为计算机控制的信息和知识将成为20世纪表现能力世纪表现能力的焦点的焦点vStoll 1989 网络和软件产生的网络和软件产生的“电子社会电子社会”是实现全球知识交是实现全球知识交流的关键。流的关键。9二十年后的现实v计算机的发展与普及计算机的发展与普及v计算机软件的发展与普及计算机软件的发展与普及v计算机网络的发展与普及计算机网络的发展与普及因为普及了计算机、软件和网络因为普及了计算机、软件和网络迎来了信息化社会和
4、知识经济。迎来了信息化社会和知识经济。10软件工程的重要性 v历史角度软件产业发展的必然软件危机11v社会角度 - 个人英雄主义时代的终结史玉柱史玉柱(巨人汉卡巨人汉卡)鲍岳桥(鲍岳桥(UCDOS)求伯君求伯君(WPS)刘旭刘旭(瑞星瑞星)王江民王江民(KV)王文京王文京(用友用友)张小龙张小龙(Foxmail)丁磊(丁磊(163邮局)邮局)洪以容(洪以容(netants)12v这些英雄如今不是销声匿迹,就是组成了自己的团这些英雄如今不是销声匿迹,就是组成了自己的团队。队。我们需要英雄,但是,如果只有英我们需要英雄,但是,如果只有英雄,那么就只有软件、而没有软件业了雄,那么就只有软件、而没有软
5、件业了。能够支撑起民族软件业的只能是靠能够支撑起民族软件业的只能是靠工程化思想武工程化思想武装起来的团队、还要有几只超级规模的团队装起来的团队、还要有几只超级规模的团队!13v我国的软件开发水平,单从编码来看,我们拥有众我国的软件开发水平,单从编码来看,我们拥有众多的高水平程序员,绝不逊色于任何国家,但软件多的高水平程序员,绝不逊色于任何国家,但软件开发管理水平与发达国家有很大差距,这也就是我开发管理水平与发达国家有很大差距,这也就是我们不能开发出像们不能开发出像Office、操作系统之类软件的原、操作系统之类软件的原因。因。v我们从单个程序员来说,能够编写出一流的代码,我们从单个程序员来说,
6、能够编写出一流的代码,漂亮的界面。但是却不能协调众多程序员去开发一漂亮的界面。但是却不能协调众多程序员去开发一个项目(工程)软件。在这一方面说我们个项目(工程)软件。在这一方面说我们中国程中国程序员一个人是一条龙,十个人是一条虫序员一个人是一条龙,十个人是一条虫并不为过。并不为过。14v例:首都机场。例:首都机场。印度人写的一个模块印度人写的一个模块200多行,我们程序员只用不多行,我们程序员只用不到到50行,但人家的模块同样正确、而且坚固、文行,但人家的模块同样正确、而且坚固、文档清晰易懂。档清晰易懂。= 技术技巧固然重要,但技术技巧固然重要,但软件开发中最大的问题软件开发中最大的问题已不是
7、技术问题,而是管理问题!已不是技术问题,而是管理问题!15v个人角度 - 专业人员必备的个人素质 1) 基础理论基础理论:训练分析解决问题的能力,深层研究的工具。:训练分析解决问题的能力,深层研究的工具。数学分析训练严密的逻辑思维。普通物理和西方哲学史等数学分析训练严密的逻辑思维。普通物理和西方哲学史等教会你很多思维方式,比如:假说教会你很多思维方式,比如:假说大胆假设、认真求证大胆假设、认真求证。2) 专业理论专业理论:数据库理论、网络基础、编译原理等。:数据库理论、网络基础、编译原理等。3) 专业技术专业技术:程序设计语言等。:程序设计语言等。4) 工程技术工程技术:软件工程,本、研教育中
8、:软件工程,本、研教育中唯一唯一涉及工程规范与涉及工程规范与管理的课程,它象粘合剂,技术经过它的粘合才能形成软管理的课程,它象粘合剂,技术经过它的粘合才能形成软件产品!件产品!5) 外语外语。多门语言多条路。多门语言多条路。6) 表达与交流能力表达与交流能力:团队内部、与客户通讯的基本素质。:团队内部、与客户通讯的基本素质。7) 法律常识与职业道德法律常识与职业道德:知识产权保护、行业特点的职业道:知识产权保护、行业特点的职业道德。德。16课程学习的目标v掌握基础理论掌握基础理论v树立工程化思想树立工程化思想v培养国际标准的意识培养国际标准的意识v锻炼团队合作精神锻炼团队合作精神v加强交流与动
9、手能力加强交流与动手能力17两个上升u转变对软件的认识转变对软件的认识 上升上升 程序程序 系统系统u 转变思维定式转变思维定式 上升上升 程序员程序员 系统工程师系统工程师( (系统分析员系统分析员) )18软件危机v软件的发展史v什么是软件v软件的特点v软件危机19v1946年到60年代初 程序设计时期主要采用批处理技术,没有任何其它形式的文档资料保留下来,开发出的程序根本无法维护。v20世纪60年代初到70年代初 程序系统时期程序的规模已经很大,需要多人分工协作,软件的开发方式由“个体生产”发展到了“软件作坊”。可是“软件作坊”基本上沿用了软件发展早期所形成的个体化的开发方式,软件的开发
10、与维护费用以惊人的速度增加。许多软件产品根本不能维护,最终导致出现了严重的“软件危机”20v20世纪70年代中期至80年代中期 软件工程时期软件的开发以工程化的思想为指导,用工程化的原则、方法和标准来开发和维护软件。v20世纪80年代中期至今 面向对象时期面向对象软件开发技术在迅速取代传统软件工程开发方法。21 早期早期 第二阶段第二阶段 第三阶段第三阶段 第四阶段第四阶段面向批处理面向批处理 多用户多用户 分布式系统分布式系统 强大的桌面系统强大的桌面系统有限的分布有限的分布 实时实时 嵌入嵌入“智能智能” 面向对象技面向对象技术术自定义软件自定义软件 数据库数据库 低成本硬件低成本硬件 专
11、家系专家系统 软件产品软件产品 消费者的影响消费者的影响 人工神经网络人工神经网络 并行计算并行计算 网络计算机网络计算机19501960197019801990200022什么是软件v软件 = 程序?v究竟什么是软件?软件 = 程序 + 数据 + 文档v软件软件是计算机系统中与硬件相互依存的另一是计算机系统中与硬件相互依存的另一部分,部分,它是包括程序,数据及其相关文档的它是包括程序,数据及其相关文档的完整集合完整集合23v程序程序是按事先设计的功能和性能要求执行的指令序列。- 可以在计算上运行v数据数据是使程序能正常操纵信息的数据结构。-运行程序所需要的v文档文档是与程序开发,维护和使用有
12、关的图文材料。-软件开发、维护、使用需要的。24PCSource CodeDataResultDocument程序程序 = 算法算法+数据结构数据结构25v软件的特点:(1) 软件是物理产品还是逻辑产品?(2) 软件有没有明显的制造过程?(3) 软件在运行使用期间,有没有像硬件那样的机械磨损、老化问题。 (4) 软件的开发和运行受计算机系统的限制吗?逻辑产品逻辑产品没没有有没没有有答案是肯定的答案是肯定的26(5)软件产品生产的成本主要是脑力劳动还是体力劳动?(6) 你认为软件本身是复杂还是简单?脑力劳动脑力劳动复复杂杂27(7) 软件成本昂贵还是廉价?(8) 软件的推广应用是否涉及社会因素?
13、 昂昂贵贵当然涉及当然涉及28软件的应用软件的应用v典型的软件比如有典型的软件比如有电子邮件电子邮件,嵌入式系统嵌入式系统,人机界人机界面面,办公套件办公套件,操作系统操作系统,编译器编译器,数据库数据库,游戏游戏等。等。 v各个行业几乎都有计算机软件的应用,比如各个行业几乎都有计算机软件的应用,比如工业工业,农业农业,银行银行,航空航空,政府部门,企业政府部门,企业等。等。29软件技术面临的问题软件技术面临的问题v规模v复杂性v生产率30例例1: Windows 9595有多少行代码?有多少行代码?1500w1500w Windows 9898有多少行代码?有多少行代码?1800w1800w
14、 Windows XP XP有多少行代码?有多少行代码?1800w1800w Vista 有多少行代码有多少行代码? ?5000W5000W31Exchange2000Windows20002000项目经理项目经理25人人约约250人人开发人员开发人员140人人约约1700人人测试人员测试人员350人人约约3200人人例例2:Exchange2000和和 Windows20002000开发人员结构开发人员结构32v1968年北大西洋公约组织的计算机科学家在德国召开国际会议,把计算机软件的开发和维护过程中出现的一系列严重问题称为“软件危机软件危机”。33vIBM OS/360:共约共约100万条
15、指令,花费了万条指令,花费了5000个人年;经费达个人年;经费达数亿美圆,而结果却令人沮丧,错误多达数亿美圆,而结果却令人沮丧,错误多达2000个个以上,系统根本无法正常运行。以上,系统根本无法正常运行。 OS/360系统的系统的负责人负责人Brooks这样描述开发过程的困难和混乱:这样描述开发过程的困难和混乱:“像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。泥潭中的命运。” 34软件危机的代表3536vTherac-25:一种辐射治疗的机器。由于其软件一种辐
16、射治疗的机器。由于其软件设计时的瑕疵设计时的瑕疵, 致命地超过剂量设定导致在致命地超过剂量设定导致在1985年六月到年六月到1987年一月之间年一月之间, 六件已知的医疗事故六件已知的医疗事故中中, 患者死亡或严重辐射灼伤患者死亡或严重辐射灼伤 。37软件危机的主要特征软件危机的主要特征v软件开发周期大大超过规定日期;软件开发周期大大超过规定日期;v软件开发成本严重超标;软件开发成本严重超标;v软件质量难于保证;软件质量难于保证;3852002020001000需求分析结构设计详细设计编码集成测试系统测试现场改正一个问题的改正一个问题的估算费用估算费用/美元美元改正一个问题的改正一个问题的估算
17、工作量估算工作量/人人日日0.050.52.5改正一个问题改正一个问题需付出的代价需付出的代价代价早期 中期 晚期 时间高中低变更代价随时变更代价随时间变化的趋势间变化的趋势39软件危机产生的原因v软件开发无计划v软件需求不充分v软件开发过程不规范v软件产品无评测手段v软件开发周期大大超过预算v软件开发成本严重超标v软件质量难于保证软件不能满足社会发展软件不能满足社会发展的需求,成为社会、经的需求,成为社会、经济发展的制约因素济发展的制约因素40v怎么样来解决软件危机?20世纪60年代后期出现了软件危机,北大两洋公约组织在德国提出了“软件工程软件工程”的概念,运用其它工程学的基本原理和方法,设
18、计和管理软件生产。诞生了软件工程学,这是目前发现的解决软件危机唯有效的方法。软件工程的目标:软件工程的目标:提高软件产品的质量和提高软件产品的质量和软件开发效率,减少软件维护的难度软件开发效率,减少软件维护的难度41什么是软件工程?v1983年年IEEE给软件工程的定义给软件工程的定义:软件工程是开:软件工程是开发、运行、维护和修复软件的系统方法。发、运行、维护和修复软件的系统方法。vFairly认为认为:“软件工程学是为了在成本限额以内软件工程学是为了在成本限额以内按时完成开发和修复软件产品所需要的系统生产和按时完成开发和修复软件产品所需要的系统生产和维护技术及管理学科维护技术及管理学科”。
19、强调强调“系统方法系统方法”,而不是而不是“个人技巧个人技巧”强调强调“成本限额以内成本限额以内”及及“技术和管理两个方面技术和管理两个方面”42vFritz Bauer认为认为:“软件工程是为了经济地获得软件工程是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建可靠的且能在实际机器上有效地运行的软件,而建立和使用的完善的工程化原则立和使用的完善的工程化原则”。v1993年年IEEE进一步给出了一个更全面的定义进一步给出了一个更全面的定义:软件工程是:软件工程是:(1)把系统化的、规范的、可度量的把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是途径应用于软件开
20、发、运行和维护的过程,也就是把工程化应用于软件中;把工程化应用于软件中;(2)研究研究(1)中提到的途中提到的途径。径。强调强调“经济地开发出高质经济地开发出高质量的软件,应建立和使用量的软件,应建立和使用的完善的工程化原则的完善的工程化原则”。43v什么是软件工程?软件工程就是指导计算机软件开发和维护的工程学科.采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程.44软件工程学三要素工具方法方法过程过程质量焦点质量焦点软件工程三要素v 过程是完成开发软件各项任务的
21、工作步骤。v 方法是完成软件开发的技术方法;包含了软件生命周期方法学与面向对象方法学v 工具是开发软件的支撑环境;45软件工程知识结构v 软件需求软件需求v 软件设计软件设计v 软件构建软件构建v 软件测试软件测试v 软件维护软件维护v 软件配置管理软件配置管理v 软件工程管理软件工程管理v 软件工程过程软件工程过程v 软件工程工具和方法软件工程工具和方法v 软件质量软件质量IEEE在2004年发布软件工程知识体系结构46v“软件工程软件工程”课程课程与其它软件专业课的区别与其它软件专业课的区别(1)(1)立足于系统的整体。立足于系统的整体。(2)(2)讲授系统分析、系统设计、测试及维护的理论
22、讲授系统分析、系统设计、测试及维护的理论和方法。和方法。(3)(3)构筑一个软件系统,实践软件开发全过程。构筑一个软件系统,实践软件开发全过程。47软件工程的软件工程的7条基本原理条基本原理v用分阶段的生命周期计划严格管理;用分阶段的生命周期计划严格管理;v坚持进行阶段评审;坚持进行阶段评审;v实行严格的产品控制;实行严格的产品控制;v采用现代程序设计技术;采用现代程序设计技术;v结果应能清楚审查;结果应能清楚审查;v开发小组的人员应该少而精;开发小组的人员应该少而精;v承认不断改进软件工程实践的必要性;承认不断改进软件工程实践的必要性;48软件工程的主要研究内容v软件开发技术软件开发技术:
23、软件工程方法学软件工程方法学 软件工程开发过程软件工程开发过程 软件工具和软件工程环境软件工具和软件工程环境 v软件工程管理软件工程管理: 软件管理学软件管理学 软件经济学软件经济学 软件心理学软件心理学49软件工程方法学软件工程方法学v传统方法学传统方法学v面向对象方法学面向对象方法学v目前流行的方法:目前流行的方法:(1)重量级:重量级:ISO9000,CMM和和RUP(2)轻量级:极限编程轻量级:极限编程(Extreme Programming XP)和敏捷流程和敏捷流程(Agile Process)强调以过程为中心强调以过程为中心强调以人为中心强调以人为中心50软件开发过程v软件生存周
24、期软件有一个孕育、诞生、成长、成熟、衰亡软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生的生存过程。这个过程即为计算机软件的生存期。存期。51v软件生存周期的组成(1)问题定义(2)可行性研究(3)需求分析(4)概要设计(5)详细设计(6)编码(7)测试(8)维护软件定义软件开发运行维护52v问题定义:在问题定义阶段,软件开发人员应该清楚:“要解决什么问题”。v可行性研究:知道了要解决的问题,在这个阶段应该清楚“用什么办法解决这个问题”,保证在技术上、实效上、法律上都是行得通的。v需求分析:确定软件的功能和性能。用户要要清楚开发出的软件系统能够做什么;软件开发人员也
25、应该清楚用户的具体要求是什么。53v概要设计:设计软件的总体结构,将一个大系统按照功能设计成小模块,每个模块完成一个相对独立的小功能。总体设计有时也称概要设计。v详细设计:这个阶段还不是编写程序,是对每个模块设计具体的算法和数据结构,可以包括具体细节,类似于工程设计中的施工图纸。详细设计有时也称模块设计。54v编码及调试:这个阶段的主要任务是根据详细设计的结果,用一种程序设计语言,编写正确的源程序,并且对每段程序进行严格测试。要求源程序容易理解、容易维护。v综合测试:通过测试使软件系统达到用户的要求。最基本的测试集成测试和验收测试。集成测试是在把模块联结成系统的过程中,每联结若干个模块都进行必
26、要的测试。验收测试是根据用户使用说明书,在用户的参与下对软件系统进行测试。55v软件维护:软件投入运行后,通常有四类维护活动:改正性维护、适应性维护、完善性维护、预防性维护。改正性维护是纠正软件中的错误;适应性维护是修改软件让其适应计算机硬件(或操作系统)环境的变化;完善性维护是根据用户的要求改善或扩充功能;预防性维护是为将来的维护做准备。56软件工作范围只考虑只考虑编写程序编写程序 涉及整个涉及整个软件生存软件生存周期周期扩展到扩展到57开发开发维护维护设计设计编写编写模块测试模块测试联合测试联合测试分析分析58实际应用合同阶段合同阶段开发阶段开发阶段产品维护阶段产品维护阶段产品市场调研产品
27、立项申请产品需求规格产品总体设计概要/详细设计编码及文档单元测试集成测试用户测试产品化产品发行产品结项产品维护产品个性化修改产品市场部工程部开发组工程部服务组用户测试人员软件开发生存周期流程59销售打单需求分析系统设计系统开发系统测试系统实施售后服务123456760销售打单需求分析系统设计系统开发系统测试系统实施售后服务1234567销售、售前工程师系统分析师系统架构师软件开发工程师软件测试工程师系统实施工程师售后服务工程师流程团队61售前工程师v做什么?(1)是项目开发人员与业务销售人员的桥梁(2)在业务销售人员眼中,售前人员扮演的是技术人员或技术专家的角色(3)在项目实施中的开发人员眼中
28、,售前人员是专注技术的销售人员(4)在用户眼中,售前人员,是代表公司技术水平的技术专家 62v生活写照上午写方案,下午做演讲,晚上陪吃饭 63v岗位职责(1)负责组织制定系统集成项目的技术方案编写、标书的准备、讲解及用户答疑等工作;(2)配合客户经理完成与用户的技术交流、技术方案宣讲、应用系统演示等工作; (3)配合业务部其它部门做好用户沟通、资料共享、技术协调等工作; (4)配合市场人员完成应用系统演示、产品宣传资料撰写等工作; (5)配合做好与合作伙伴厂商的技术交流。64v专业技能(1)网络(2)服务器(3)存储(4)安全(5)系统软件65v 需要具备的素质(1)熟悉自己的产品。(2)具有
29、比较全面技术专业知识。熟悉当前IT的技术发展方向。(3)对本公司的开发能力、技术优势、劣势有比较清楚的认识。(4)作为行业软件的销售,必须熟悉本行业的业务,对本行业的信息化的现状和发展方向有一定的认识,了解行业中的其它专业软件的基本情况。(5)熟悉本行业的技术和产品动向,了解同类产品及其竞争对手的情况和特点。(6)能力熟练使用文本和图形编辑器进行方案、标书的编写。(7)熟悉项目招投标的一般程序。(8)善于交流,有良好的沟通能力和技巧。66系统分析师v系统分析师就是解决做什么的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求67需要具备的素质v业务知识v善于交流,有良好的沟通能
30、力和技巧v过硬的计算机软件开发技术68系统架构师v架构分为两种,(1)第一种是基础架构的设计规划,例如:OS,硬件,网络,各种应用服务器等等。(2)第二种是软件开发设计的架构师,他们负责规划程序的运行模式,层次结构,调用关系,规划具体的实现技术类型,甚至配合整个团队做好软件开发中的项目管理。69v岗位职责(1)理解系统的业务需求,制定系统的整体框架(包括:技术框架和业务框架);(2)对系统框架相关技术和业务进行培训,指导开发人员开发。并解决系统开发、运行中出现的各种问题70软件开发工程师v应用软件开发,如:企业ERPv系统软件开发,如:驱动程序,防火墙,操作系统,杀毒软件等v网站开发,如:新浪
31、,淘宝类似网站的开发v移动开发,如:iPhone,Andriod等。71软件开发工程师v具备的素质(1)专业素质:至少熟悉一门编程语言,一种开发平台,一种数据库,良好的程序设计思想。(2)综合素质:为人讲诚信、踏实、认真,有钻研精神,工作效率高,精力充沛,良好的沟通能力和团队协作精神; 72软件测试工程师v软件测试的目的A:证明软件是有问题的:证明软件是有问题的B:证明软件是没有问题的:证明软件是没有问题的73沟通能力沟通能力移情能力移情能力技术能力技术能力自信心自信心外交能力外交能力幽默感幽默感很强的记忆力很强的记忆力耐心耐心怀疑精神怀疑精神洞察力洞察力4523671089111自我督促自我
32、督促74软件实施工程师v软件实施工程师的工作是软件产品服务主线的一个决定性环节,软件的成功离不开实施。那什么才是成功的实施呢?要让用户真正使用起来,让用户满意,用户的成功也就是软件的成功。软件的实施,其实并不是一件看起来很容易的事,也许可算是一项挑战,有时还需要工程师们一种“明知山有虎,偏向虎山行”的信心和勇气。75v工作内容负责工程实施: 包括常用操作系统、应用软件及公司所开发的软件安装、调试、定制开发及维护,还有少部分硬件、网络的工作; 负责现场培训: 现场软件应用培训; 协助项目验收; 负责需求的初步确认; 负责项目维护。 76Windows Linux Unix Solaris AIX
33、 服务器 IBM HP 网络 Cisco 华为 Oracle SQL Server DB2 WebSphere WebLogic JBoss IIS应用软件 77售后服务工程师v在软件或硬件方向从事售后技术维护、应用培训、升级管理、解决投诉,提升客户满意度,扩大用户群体对自有品牌的良好口碑。成为一名专业的技术支持工程师在企业里工作至少要3年以上,这样对企业的产品线,用户群体就会有一个全面的了解。 78软件开发模型v软件开发模型是软件开发全部过程、活动和任务的结构框架结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。 软件开软件开发模型发模型也常称为: 软件过程模型
34、 软件生存周期模型 软件工程范型79软件开发模型分类v瀑布模型v原型模型v增量模型v螺旋模型v喷泉模型80瀑布模型(Waterfall Model)可行性研究与计划可行性研究与计划需求分析需求分析设计设计编码编码运行维护运行维护测试测试定义定义阶段阶段开开发发阶阶段段维护阶段维护阶段81瀑布模型软件开发的特点v阶段间具有顺序性和依赖性的观点。v每个阶段必须完成规定的文档;每个阶段结束前完成文档审查82瀑布模型的优点v软件生命周期模软件生命周期模型型,使软件开发过程可以在分析、使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行;设计、编码、测试和维护的框架下进行;v软件开发过程具有软件
35、开发过程具有系统性系统性、可控性可控性,克服了软件开克服了软件开发的随意性发的随意性 。83瀑布模型的缺点v项目开始阶段用户项目开始阶段用户很难精确的提出产品需求很难精确的提出产品需求,由于,由于技术进步,用户对系统深入的理解,修改需求十分技术进步,用户对系统深入的理解,修改需求十分普遍。普遍。v项目开发晚期才能得到程序的运行版本,这时修改项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。软件需求和开发中的错误代价很大。v采用线性模型组织项目开发经常发生开发小组人员采用线性模型组织项目开发经常发生开发小组人员“堵塞状态堵塞状态”,特别是项目的开始和结束。特别是项目的开
36、始和结束。84实际的瀑布模型需求分析验证规格说明验证设计验证编码测试综合测试维护需求分析验证反馈线开发过程维护过程实线箭头表示开发过程;实线箭头表示开发过程;虚线箭头表示维护过程虚线箭头表示维护过程。85v瀑布模型的应用需求清晰,且小型的团队开发,整个开发团队没有明确的分工。每个成员都参与从需求、设计、编码、测试的过程。86快速原型模型v软件开发人员与用户一起进行需求分析,进行快速设计,建造原型,原型由用户评估,进步修改原型,再次进行设计。迭代这个过程,逐步使原型满足用户需要。87原型开发用户测试用户测试运行原型运行原型建造建造/ /修改修改 原型原型 听取用听取用 户意见户意见88 初 步
37、需 求初 步 需 求分析分析 快速设计快速设计 建造原型建造原型 用户评估原用户评估原型(新需求)型(新需求) 对原型加工对原型加工 开发产品开发产品 开始开始 结束结束 89v 优点(1)原型模型原型模型支持软件需求开发支持软件需求开发,帮助用户和开发人员,帮助用户和开发人员理解需求,是软件需求工程的关键。理解需求,是软件需求工程的关键。(2)它产生的正式需求文挡,是软件开发的基础。它产生的正式需求文挡,是软件开发的基础。(3)如果开发的原型是可运行的,它的若干高质量的程如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。序片段和开发工具可用于工作程序的开发。(
38、4)原型的开发和评审是系统分析员和用户原型的开发和评审是系统分析员和用户/客户共同客户共同参予的迭代过程,每个迭代循环都是线性过程。参予的迭代过程,每个迭代循环都是线性过程。90v缺点:缺点:(1)(1)对于对于大型软件项目大型软件项目,原型模型原型模型需要足够的人力需要足够的人力资源以建立足够的资源以建立足够的原型原型组。组。(2)(2)原型模型原型模型要求开发者和客户在一段时间内共同要求开发者和客户在一段时间内共同完成完成原型原型系统的开发,系统的开发,如果任何一方没有实现承诺如果任何一方没有实现承诺,会导致,会导致原型原型开发的失败开发的失败。(3)(3)如果系统难以模块化,建造如果系统
39、难以模块化,建造原型原型所需构件就有所需构件就有问题;如果问题;如果高性能高性能是一个指标,是一个指标,原型模型原型模型也可能不也可能不奏效。奏效。(4)(4)原型模型原型模型不适合采用很多新技术不适合采用很多新技术的项目的项目91v快速原型模型的应用(1)用户对自己的需求也不是很明确。(2)项目只能是中小型。(3)开发方和用户的关系一定要密切。92增量模型增量模型v增量模型即渐增模型,使用增量模型开发软件时,把软件产品构件来设计、编码、集成和测试。v每个构件由多个相互作用的模块构成,并且能够完成特定的功能。93需求分析需求分析验证验证规格说明规格说明验证验证概要设计概要设计验证验证针对每个构件,完成针对每个构件,完成详细设计、编码和集详细设计、编码和集成,经测试后交付给成,经测试后交付给用户用户维护维护增量模型增量模型94v把软件产品分解成增量构件时,应该使v分解时必须遵守的约束条件是v瀑布模型或快速原型模型的目标是就把一个满足需求的产品提交给用户。v增量模型分批地向用户提交产品,开发人员向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关节镜下半月板修复微创手术
- DB5308T 16.1-2014 景东无量山乌骨鸡养殖综合技术规范 第1部分:品种要求
- 宁银消金2027届暑期实习生招募备考题库及完整答案详解一套
- 2026西工大化学与化工学院博士后招聘58人备考题库及参考答案详解
- 应急疏散演练准则制度
- 危废处理操作管控办法
- 2026年安徽中医药大学公开招聘教学、科研人员及辅导员18名备考题库(第一批)及一套完整答案详解
- 2026黑龙江大庆市人民医院招聘备考题库参考答案详解
- 2026上海康余管理服务有限公司招聘2人备考题库完整答案详解
- 2026河南开封一五五医院招聘工作人员备考题库含答案详解
- 2026年贵州中考数学考试卷及答案
- 济南南美水务有限公司招聘笔试真题2024
- 住人集装箱房知识培训课件
- 露天矿山运输司机安全培训课件
- 新司机岗前安全培训内容课件
- 生鲜运输仓库管理办法
- 2024副高(内科护理)考试真题卷及答案
- 互联网保险业务营销宣传管理细则考试题及答案
- 私募基金合规管理与招募说明书模板
- 2025年北京朝阳区高二(下)期末化学试题和答案
- 索尼A7M3使用说明书
评论
0/150
提交评论