版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1软件工程(ruǎnjiànɡōnɡchénɡ)导论SoftwareEngineering(第6版)共八十一页在一些人的眼里,今天的软件开发似乎已经成为简单(jiǎndān)的事情,已有了不少很好的开发工具和软件库,软件开发人员训练有素,都强烈渴望去编写很酷的软件,可以在几天的时间里编写出一个相当复杂的软件。但是为什么有一些软件能够得到用户的喜欢,而另一些则不能?为什么有些软件能够在市场上成功,而有些则受到冷落?由此可见,开发软件并不一定难,难就难在如何开发有用的软件。2案例微软凌小宁博士(bóshì)共八十一页我最大的心得是,一个产品一定要找到能够真正(zhēnzhèng)适用的场合,不能只是为了技术而从事技术,为了研究而进行研究,却不管用户对你所研究的技术和产品有没有需求。否则,无论你的技术是多么优秀,多么先进,恐怕你的产品在市场上都无法获得成功。3案例微软张益肇博士(bóshì)共八十一页Wakeupeverydaywithafeelingofpassionforthedifferenttechnologywillmakeinpeople’sLife.4微软企业文化宗旨(zōngzhǐ)部分内容每天醒来的时候,要对技术给生活造成的改变(gǎibiàn)始终拥有一份激情。共八十一页
软件工程(ruǎnjiànɡōnɡchénɡ)是计算机科学与技术专业的一门核心课程。通过本课程的学习,使学生掌握系统的软件开发理论、技术和方法,使用正确地工程方法开发出成本低、可靠性好并在机器上能高效运行的软件,为今后从事软件开发和维护打下坚实的基础。5课程性质(xìngzhì)、目的与任务共八十一页软件工程学科介绍学习目标部分(bùfen)参考资料课程特点和学习的注意事项6课程(kèchéng)概述共八十一页软件工程(ruǎnjiànɡōnɡchénɡ)学科发展历史经历三个阶段:概念提出、学科雏形、学科建立。第一阶段:概念提出
1968年NATO会议(北大西洋公约组织的计算机科学家的国际会议)提出“软件工程”的概念。当时对“软件工程”代表性定义“为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法。
1972年IEEE学会的计算机分会IEEE-CS第一次出版了“软件工程学报”。7一、软件工程学科(xuékē)介绍共八十一页上世纪70年代末,美国将软件工程教程列入研究生教育计划(jìhuà)。1980年代末和1990年代初,软件工程教育得到卡内基-梅隆大学软件工程研究所(CMU/SEI)的支持。1991年,“软件工程”被ACM(美国计算机协会)和IEEE-CS列为计算机的九个知识领域之一。1993年,IEEE-CS和ACM为了把软件工程建设成为一个专业,建立了IEEE-CS/ACM联合指导委员会。8第二阶段:学科(xuékē)雏形共八十一页2004年8月,IEEE-CS和ACM给出:软件工程(ruǎnjiànɡōnɡchénɡ)知识体(SWEBOK,SoftwareEngineeringBodyofKnowledge)软件工程教育知识体(SEEK)
这两个体系的建立标志着软件工程学科在世界范围正式确立。
软件工程、计算机科学、计算机工程、信息系统、信息技术并列成为计算机学科下的独立学科。软件工程知识体(SWEBOK):全面描述了软件工程实践所需的知识。9第三阶段:学科(xuékē)确立共八十一页1、软件工程是计算(jìsuàn)学科9个领域之一算法和数据结构计算机系统结构人工智能和机器人学数据库和信息检索人-机交互操作系统程序设计语言软件方法学和软件工程数字和符号计算10软件工程与其他(qítā)学科的关系共八十一页绑定概念和形式模型效率抽象层次按时间(shíjiān)排序安全性11计算学科中12个重复(chóngfù)出现的基本概念软件工程是计算学科的分支,这12个概念同样将贯穿软件工程学科,是学科的精髓。大问题的复杂性一致性和完备性演化按空间排序重用折衷与决策共八十一页计算机工程计算机科学数学(shùxué)管理学项目管理质量管理系统工程学软件人类工程学其中,计算机科学、数学是基础
工程学科、管理学科也非常重要122、8个相关(xiāngguān)学科知识域共八十一页是指导计算机软件开发与维护的一门工程学科。
工程:将科学与数学原理运用于实际用途的应用手段如:设计、制造、机器操纵、构架等。典型的传统(chuántǒng)工程:建筑工程、机械工程、电力工程等。概括的说,软件工程即用工程、科学和数学的原则和方法研制、维护计算机软件的有关技术及管理方法其优点是以较小的代价开发高质量的软件并有效地维护它。13软件工程(ruǎnjiànɡōnɡchénɡ)是一门什么样的学科?共八十一页掌握软件工程的基础知识和理论,对软件工程学有一个全貌的了解。熟悉软件项目开发和维护的一般过程。熟练掌握软件需求分析、设计、编码和测试等阶段的主要思想和技术(jìshù)方法。14二、学习(xuéxí)目标(1)共八十一页通过学习,能够真正(zhēnzhèng)运用和深刻体会软件工程的思想方法,转变对软件开发的认识:从个人的单纯编程活动转移到进行系统分析与设计方面上来;转变思维定式:程序员--------系统工程师(系统分析员)15二、学习(xuéxí)目标(2)共八十一页《软件工程理论与实践》,许家珆等编著,高教出版社,2005。《软件工程》(第二版),齐治昌等,高教出版社,2004。《面向对象的系统分析》,杨芙清等,清华大学出版社,2001。《UML用户指南(zhǐnán)》,GBOOCH等,邵维忠等译,机械工业出版社,2002。16三、部分(bùfen)参考资料共八十一页1、知易行难
要将理论知识与实践运用结合,进行对照,以加深(jiāshēn)理解和掌握。2、内容纷杂
软件工程涉及计算机科学、数学、工程科学和管理科学等多个领域,其中:计算机科学和数学用于构造模型与算法;工程科学用于制定规范、设计范型、评估成本及确定权衡;管理科学用于计划、资源、质量和成本的管理。17四、课程特点(tèdiǎn)和学习的注意事项共八十一页1.1软件危机1.2软件工程1.3软件生命周期1.4软件过程1.5小结(xiǎojié)
习题18第1章软件工程学概述(ɡàishù)
共八十一页1、软件危机、软件工程(ruǎnjiànɡōnɡchénɡ)产生的原因2、软件工程过程和软件生命周期3、软件生命周期模型19学习(xuéxí)重点
共八十一页软件(ruǎnjiàn)危机软件生命周期软件工程软件生命周期模型软件过程20掌握(zhǎngwò)几个基本概念
共八十一页软件工程学的产生要从“软件危机”说起
1968年,第一届NATO(北大西洋公约组织的计算机科学家的国际会议)会议,“软件工程”的概念作为一种有效解决“软件危机”的途径(tújìng)被正式提出。
什么是软件危机?软件危机有什么典型表现?为什么会产生软件危机?怎么解决软件危机?21软件(ruǎnjiàn)危机与软件(ruǎnjiàn)工程学
共八十一页§1.1.1软件危机介绍
什么是软件危机?
软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重(yánzhòng)问题。
软件危机主要包括的问题(两方面):
①如何开发软件;②如何维护软件。22§1.1软件(ruǎnjiàn)危机
共八十一页开发费用和进度难以估算和控制,大大超过预期的资金和规定日期;软件需求分析不够充分,用户不满意“已经完成”的软件系统。软件质量难于保证;软件维护困难;难以改正程序中的错误;难以根据用户的需要(xūyào)在原有程序中增加一些新的功能。23软件危机(wēijī)有什么典型表现?(1)
共八十一页•通常没有保留适当的文档资料。文档的作用:供不同人员阅读;
软件开发管理人员:用于管理和评价(píngjià)软件开发工程的进展状况;软件开发人员:用于在软件开发过程中准确地交流信息;软件维护人员:维护的依据。•开发成本逐年上升;软件开发生产率提的速度,远远跟不上计算机应用迅速普及深入的趋势。24软件危机有什么(shénme)典型表现?(2)
共八十一页①1966年,IBM360机的操作系统(cāozuòxìtǒnɡ)。花费5000人-年的工作量,写了近100万行代码。错误百出,每次的新版本就是从前一版本中找1000个程序错误而修正的结果。
②1963年,美国用于控制火星探测器的计算机软件中的一个“,”号被误写为“·”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失。25几个软件危机(wēijī)的著名案例
共八十一页③美国丹佛新国际机场自动化行李系统软件。投资1.93亿美元,计划1993年万圣节启用。但开发人员一直为系统错误困扰,屡次(lǚcì)推后启用时间,直到1994年6月,机场计划者承认无法预测何时能启用。④1996年,欧洲阿里亚纳5型运载火箭坠毁,造成5亿美元损失。原因是控制软件中的一个错误。26共八十一页主要两个原因:1、与软件(ruǎnjiàn)本身的特点有关2、与软件开发与维护的方法不正确有关。27§1.1.2产生软件(ruǎnjiàn)危机的原因
共八十一页软件(ruǎnjiàn)与硬件、一般程序存在很多不同之处。
1、软件与硬件不同
•抽象性。软件生产没有明显的制造过程,难以衡量开发进展,也难以控制软件质量。
•问题的隐蔽性。没有硬件的磨损、老化问题,但存在开发早期在分析、设计阶段的错误,修改难度较大。28一、软件(ruǎnjiàn)本身的特点(1)
共八十一页2、软件与一般(yībān)程序不同(1)
①软件(ruǎnjiàn)远比一般程序规模庞大,复杂性高
•软件所反映的实际问题的复杂性;
•程序逻辑结构的复杂性。例1:Windows95,1000万行代码;
Windows2000,5000万行代码例2:Exchange2000和Windows2000开发人员Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人29共八十一页大型软件开发既有技术问题,还有社会问题。
社会因素:组织机构、体制、管理方式、观念、人的心理因素等。开发团队成员(chéngyuán)分工合作技术与管理的矛盾软件开发人员对软件应用的领域知识的了解30共八十一页①对用户需求的获取不正确
用户的原因
分析人员的原因
对分析人员的要求:沟通能力、归纳(guīnà)总结能力、经验
越是早期产生的错误,付出的代价越大。31二、软件开发维护(wéihù)方法中存在的问题(1)
共八十一页②
软件开发就是编写程序。
一个完整的软件产品由一整套完整的配置组成,程序只是其中的一个组成部分。软件开发过程包括多个(duōɡè)阶段,每个阶段的产品都是最终的完整的软件产品的一部分。③软件开发只要依靠个别编程高手就能完成。④轻视软件维护软件维护约占软件费用55~75%,包括修改软件运行的错误;对软件进行改进和功能扩充。32二、软件开发维护方法(fāngfǎ)中存在的问题(2)
共八十一页①软件开发尚未完全摆脱手工艺的开发方式。②软件成本相当昂贵,主要依靠大量复杂(fùzá)的、高强度的脑力劳动。③软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
软件的“可移植性”就是指的软件对硬件的依赖程度。良好的可移植性依赖少。33三、其他(qítā)产生软件危机的原因
共八十一页1、彻底消除“软件就是程序”的错误观念。2、充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,不是个人(gèrén)独立的劳动。3、推广和使用在实践中总结出来的软件开发的成功技术和方法。4、开发和使用更好的软件工具34§1.1.3消除(xiāochú)软件危机的途径
共八十一页
计算机和软件科学家为解决软件危机问题,尝试将在其它领域中行之有效的工程学知识运用到软件开发工作中来,经过不断实践和总结,最后得出一个结论:按工程化的原则和方法组织软件开发工作是有效的,是摆脱软件危机的一个主要(zhǔyào)出路。35总结(zǒngjié):“软件工程”的方法理论是摆脱软件
危机的一个主要出路。
共八十一页1)只要是编程高手,即使是不懂软件工程也能编出很好的软件。软件是服务于大众,却是由个性化的开发人员完成的。如果个性化太强,程序就无法阅读,其他人员也就无法维护。
例:国内80年代(niándài)涌现出来的众多汉字操作系统均是由编程高手完成的。36思考题(1)
共八十一页2)只要拥有一套讲述如何开发软件的书籍,并了解了书中的标准与示例,就可以解决软件开发中遇到的任何问题。软件是用来解决现实问题的,现实问题的特殊性对规范提出了挑战(要进行适应)。软件技术是发展的,没有祖传秘方。
就像拥有食谱并不能成为(chéngwéi)名厨一样,软件开发需要实践。37思考题(2)共八十一页3)只要(zhǐyào)拥有最好的开发工具、最好的计算机,一定能做出优秀的软件。
硬件环境只是必要条件,人才是充分条件。软件是人在一定的约束条件下创造出来的。因人因事而异。38思考题(3)共八十一页4)软件开发时,如果进度慢,落后(luòhòu)于计划,可以增加更多的程序员来解决。
增加人力可以减少开发时间吗?新手!任务的重新划分!沟通更加复杂!必须依靠科学地计划来解决这样的问题。39思考题(4)共八十一页5)争议(zhēngyì):如果软件运行较慢,是换一台更快的计算机,还是设计一种更快的算法?软件的性能问题;应用级别算法的合理性;系统级别操作系统、数据库系统、系统软件等;硬件级别机器性能40思考题(5)共八十一页一、“软件工程”的典型定义1)1968年,第一届NATO会议
为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。2)IEEE/CS(电气电子工程师协会/计算机科学分会)
①1993年,将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。②对①中提到的各种(ɡèzhǒnɡ)方法的研究41§1.2软件工程(ruǎnjiànɡōnɡchénɡ)§1.2.1软件工程介绍共八十一页3)其他学者的定义●Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。●FritzBauer:建立并使用完善(wánshàn)的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
所有定义都强调在软件开发过程中,应用工程化原则的重要性。42共八十一页问题一:软件工程适用范围?问题二:软件工程如何(rúhé)控制系统开发的复杂性的?问题三:以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?问题四:假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他大更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发哪个层次的软件?43几个关于软件工程(ruǎnjiànɡōnɡchénɡ)本质特性和基本原理的问题
共八十一页问题五:怎样理解“在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品”这句话?问题六:某软件开发,由于时间和资金都非常紧迫,在需求分析人员非常认真、仔细地做完需求分析之后,说:我们可以保证我们的需求分析正确性,不用花时间检查了,设计人员可以直接拿着这份分析报告,马上开始(kāishǐ)设计。如果你是项目负责人,你会如何决定?为什么?问题七:在需求分析完成并获得了用户的肯定,也通过了评审,进入软件设计阶段之后,用户的想法有了改变,提出了一个新的要求,此时如果你是项目负责人,应该怎样做?44几个(jǐɡè)关于软件工程本质特性和基本原理的问题
共八十一页1)软件工程关注于大型程序的构造。2)软件工程的中心课题是控制复杂性主要考虑:如何分解和集成3)软件经常变化4)开发软件的效率非常重要5)和谐地合作是开发软件的关键6)软件必须有效地支持它的用户7)在软件工程领域中是由具有(jùyǒu)一种文化背景的人替具有(jùyǒu)另一种文化背景的人创造产品扩展定义:软件=知识+程序+数据+文档45二、软件工程(ruǎnjiànɡōnɡchénɡ)本质特性(2)
共八十一页B.W.Boehm,1983年提出:1)用分阶段的生命周期计划严格管理2)坚持进行(jìnxíng)阶段评审3)实行严格的产品控制--基线(baseline)控制
4)采用现代程序设计技术5)结果应能清楚地审查6)开发小组的人员应该少而精7)承认不断改进软件工程实践的必要性46§1.2.2软件工程(ruǎnjiànɡōnɡchénɡ)的基本原理
共八十一页软件工程的包括“管理”和“技术”两方面内容:管理—对人、财、物的合理(hélǐ)使用和配置;技术—指软件开发中采用的方法、工具和过程。什么是软件工程方法学?通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。47§1.2.3软件工程(ruǎnjiànɡōnɡchénɡ)方法学
共八十一页要素一:软件工程过程
规定了完成各项任务的工作(gōngzuò)步骤。要素二:软件工程方法完成软件开发的各项任务的技术方法,为软件开发提供了“如何做”的技术。
如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
要素三:软件工程工具计算机辅助软件工程CASE(ComputerAidedSoftwarengineering),为软件工程方法提供自动或半自动的软件支撑环境。48一、软件工程(ruǎnjiànɡōnɡchénɡ)方法学三要素:工具、方法和过程
共八十一页两种:1、传统方法学(生命周期方法学或结构化范型(fànxínɡ))2、面向对象方法49二、软件工程(ruǎnjiànɡōnɡchénɡ)方法学思想
共八十一页●采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务;●把软件生命周期划分为若干个阶段,按顺序完成每个阶段的任务;●每个阶段开始(kāishǐ)和结束都有严格的标准,对任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始(kāishǐ)标准;●每一个阶段结束之前都必须进行正式严格的技术审查和管理复审。501.传统方法学(生命周期(zhōuqī)方法学或结构化范型)
共八十一页●分解任务,分工合作,降低整个软件开发工程的困难;●采用科学的管理(guǎnlǐ)技术和良好的技术方法对每个阶段成果都进行严格的审查。保证了软件的质量。传统方法学的缺点:
把数据和操作人为地分离成两个独立的部分,增加了软件开发与维护的难度。51传统(chuántǒng)方法学的优点:
共八十一页
模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,从而使描述问题的问题空间(kōngjiān)(也称为问题域)
与实现解法的解空间(也称为求解域)在结构上尽可能一致。522、面向对象方法学(OO,Object-Oriented)
共八十一页●把对象(object)作为融合了数据(shùjù)及在数据(shùjù)上的操作行为的统一的软件构件。●把所有对象都划分成类(class)。●按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。●对象彼此间仅能通过发送消息互相联系。53面向对象方法学4要点(yàodiǎn)
共八十一页●传统方法学:强调自顶向下顺序地完成软件开发的各阶段(jiēduàn)任务。
●面向对象方法:是主动地多次反复迭代的演化过程。54二者区别(qūbié)
共八十一页一、什么是软件生命周期(lifecycle)
指软件孕育、诞生、成长、成熟、衰亡的生存过程。●GB-8567中将软件生命周期分为7个阶段:可行性研究和项目开发计划;需求分析;概要设计;详细设计;编码;测试;维护(wéihù)
●其他分法,5个阶段:
需求定义、设计、编码、测试及维护;需求定义阶段包括可行性研究和项目开发计划、需求分析;设计阶段包括概要设计和详细设计。55§1.3软件(ruǎnjiàn)生命周期共八十一页问题一:开发一个软件大概需要多少资金、时间,将获得什么效益(xiàoyì)一般是在哪个阶段确定?相对而言,在哪个阶段与用户交流最多?问题二:系统分析员主要工作在哪个时期?程序员主要工作在哪个时期?
问题三:软件定义时期的三个阶段,各自回答什么关键问题?问题四:软件开发时期有几个阶段?各自回答什么关键问题?
问题五:软件体系结构最早是在哪个阶段决定的?问题六:详细设计与程序编写阶段有什么样的密切联系?
问题七:“软件测试是为了验证系统的正确性”这句话对吗?问题八:软件维护有哪几种?各有什么功能?56几个关于软件生命周期阶段(jiēduàn)的问题
共八十一页任务:●确定软件开发工程必须(bìxū)完成的总目标;●确定工程的可行性;●导出实现工程目标应该采用的策略及系统必须完成的功能;●估计完成该项工程需要的资源和成本,并且制定工程进度表。通常分为问题定义、可行性研究和需求分析三个阶段。571、软件定义(dìngyì)时期共八十一页
①问题定义阶段
回答:“要解决的问题是什么?”
②可行性研究阶段
回答:“对于上一个阶段所确定(quèdìng)的问题有行得通的解决办法吗?”
③需求分析(RequirementAnalysis)回答“为了解决这个问题,目标系统必须做什么?”用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明书(specification)。58软件定义(dìngyì)时期的三个阶段
共八十一页具体设计和实现前一个时期定义的软件,通常分为四个阶段:①总体设计(概要设计)回答:“概括地说,应该怎样实现目标系统?”
根据需求分析(fēnxī),设计软件的体系结构;定义结构中的组成模块。②详细设计(模块设计)
回答:“应该怎样具体地实现这个系统呢?”
对每个模块要完成的工作进行具体的描述,为源程序编写打下基础。编写设计说明书,提交评审。二者统称系统设计592、软件开发时期(shíqī)
共八十一页③程序编写(Coding,Programming):把软件设计转换成计算机可以接受的程序代码。④软件测试(Testing):按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用(shǐyòng)。包括单元测试和组装测试。二者统称系统实现60共八十一页使软件持久的满足用户的需要。包括:●改正性维护:运行中发现了软件中的错误需要修正(xiūzhèng)。●适应性维护:为了适应变化了的软件工作环境,需做适当变更。●完善性维护:当用户有新的要求时,应该及时改进软件以满足用户的要求。●预防性维护:即修改软件为将来的维护活动预先做准备。613、运行维护(wéihù)
(软件维护)时期(Running/Maintenance)
共八十一页1、什么是软件(ruǎnjiàn)过程
为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。ISO9000的定义:
使用资源将输入转化为输出的活动所构成的系统。“系统”是相互关联或相互作用的一组要素。是软件工程三要素之一。通常用软件生命周期模型来描述。62§1.4软件(ruǎnjiàn)过程(SoftwareProcess)共八十一页
又称:软件开发模型/软件过程模型/软件工程范型。指从软件项目需求定义(dìngyì)直至软件经使用后废弃为止,跨越整个生存周期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。常见的有:瀑布模型、演化模型、螺旋模型、喷泉模型、智能模型。632、什么(shénme)是软件生命周期模型
共八十一页1970年,由W.Royce提出
一、瀑布模型的过程1、传统的瀑布模型●从上一阶段(jiēduàn)接受本阶段(jiēduàn)的工作对象,作为输入;●利用输入,完成本阶段活动的内容;●本阶段的工作成果作为输出传入下一阶段。64§1.4.1瀑布(pùbù)模型(waterfallmodel)
共八十一页2、实际的瀑布模型
增加了一个评审活动,评审每个阶段完成的活动,若得到确认,则进行(jìnxíng)下一阶段的活动;否则返回前一阶段,甚至更前阶段返工;65共八十一页二、瀑布模型(móxíng)特点
1.阶段间具有顺序性和依赖性2.推迟实现的观点3.质量保证的观点66共八十一页优点:
●可强迫开发人员采用规范的方法;●严格地规定了每个阶段必须提交的文档;●要求每个阶段的所有产品都必须经过质量保证小组的仔细验证;缺点:无法解决软件需求不明确或不准确的问题;可能导致最终开发的产品不能真正(zhēnzhèng)满足用户需要。瀑布模型比较适合开发需求明确的软件。67三、瀑布(pùbù)模型优缺点共八十一页一、什么是“原型”?
原型是快速实现和运行的早期版本,反映最终系统部分(bùfen)重要特性。常见的原型实例:人机界面;系统主要功能。优点:
1、通常能反映用户真实需求;2、软件产品的开发基本上是线性顺序进行的。68§1.4.2快速(kuàisù)原型模型
共八十一页如右图。●获得用户的基本需求说明,据此快速建立一个小型软件系统;●用户试用,对其评价;●开发人员按照用户的意见(yìjiàn)快速地修改原型系统,获得新的原型版本,再请用户试用,如此反复,直到满足用户的要求;●用户确认原型系统之后,开发人员据此书写规格说明文档,进行下一步开发。69二、快速(kuàisù)原型的过程共八十一页
把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个阶段的增量构件往往实现软件的基本需求,提供(tígōng)最核心的功能;后面的增量构架逐渐添加系统的功能。70§1.4.3增量(zēnɡliànɡ)(渐增)模型共八十一页71图:增量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年涂料产品绿色认证服务合同
- 2025年度数据中心承建与数据中心冷却系统合同4篇
- 2025年度农业保险产品定制服务合同8篇
- 二零二五年度农村土地经营权流转合同示范文本
- 2025年度苗木养护与生态园林景观优化合同3篇
- 2025版门岗信息化管理平台建设合同范本4篇
- 二零二五年度体育产业投资入股合同3篇
- 二零二五年度牛羊肉产品研发与技术转移合同3篇
- 二零二五年度促销员权益保护及纠纷处理合同3篇
- 2025年度个人货车出租及运输服务合同3篇
- 红色革命故事《王二小的故事》
- 《白蛇缘起》赏析
- 海洋工程用高性能建筑钢材的研发
- 苏教版2022-2023学年三年级数学下册开学摸底考试卷(五)含答案与解析
- 英语48个国际音标课件(单词带声、附有声国际音标图)
- GB/T 6892-2023一般工业用铝及铝合金挤压型材
- 冷库安全管理制度
- 2023同等学力申硕统考英语考试真题
- 家具安装工培训教案优质资料
- 在双减政策下小学音乐社团活动有效开展及策略 论文
- envi二次开发素材包-idl培训
评论
0/150
提交评论