欢迎来到天天文库
浏览记录
ID:34566995
大小:1.75 MB
页数:16页
时间:2019-03-08
《2软件工程方法学和软件过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《软件工程导论》讲义2012版:第二讲软件工程方法学和软件过程第二讲软件工程方法学和软件过程一、软件工程的基本原理1968年正式提出软件工程的学科概念后,各国专家提出了100多条软件工程应当遵循的准则。南加州大学教授、著名软件工程专家B.Boehm综合了这些专家的意见,并总结了自己服务的TRW公司多年开发软件的经验,于1983年提出了软件工程的七条基本原理。1、用分阶段的生命周期计划严格管理(Manageusingaphasedlife-cycleplan.)软件开发是一个由各个阶段组成的完整的过
2、程,至少包括软件定义、软件开发和软件维护三个阶段。按照软件开发过程的阶段划分来制定严格的开发计划,并且对计划的实施进行严格管理,才能够保证软件开发的最终结果能够满足要求。2、坚持进行阶段评审(Performcontinuousvalidation.)阶段评审有助于及早发现错误,保证软件的质量,降低软件开发成本。3、实行严格的产品控制(Maintaindisciplinedproductcontrol.)产品控制就是要对软件的配置变化严格管理,尽量减少软件开发中的交互影响,以保证软件的一致性。4、采
3、用现代程序设计技术(Usemodernprogrammingpractices.)现代程序设计技术使得程序结构更清晰、更规范,软件开发的效率更高,更容易维护。5、坚持使结果的责任清晰明确(Maintainclearaccountabilityforresults.)软件是一个逻辑产品,结果难以检验,因此必须用适当的文档和方式来表达,以便于开发过程中的审查,使得开发人员对每个阶段的结果都有清晰明确的责任。6、开发小组的人员应该少而精(Usebetterandfewerpeople.)高素质人员和低通
4、讯代价,是开发高质量软件的保障。微软开发WindowsNT时,一个开发小组的人员只有十几人,而Windows95的开发人员有200人,而Vista的开发人员则超过了2000人,Windows7的开发人数达到2500人,分为25个小组,每个小组成员总数约为100人左右,其中代码开发者40人,技术测试员40人,项目管理人员20人。7、承认不断改进软件过程的必要性(Maintainacommitmenttoimprovetheprocess.)遵从上述六条基本原理,就能够较好地实现软件的工程化生产。但是
5、,它们只是对现有经验的总结和归纳,并不能保证适应软件实践的变化。因此,根据实际情况对于软件过程持续改进是非常必要的。二、软件工程方法学1、软件工程方法学软件工程方法学(Methodology)是指一套完整的、相关的软件开发技术,第1页自动化学院模式识别与智能系统研究所高琪gaoqi@bit.edu.cn《软件工程导论》讲义2012版:第二讲软件工程方法学和软件过程包括原则、方法、过程和工具,也称为软件开发范型(Paradigm)。目前主要的软件工程方法学包括:生命周期方法学Life-CycleMe
6、thodology面向对象方法学Object-orientedMethodology敏捷方法学AgileMethodology2、生命周期方法学:(1)定义:生命周期方法学是指严格按照软件的生命周期,采用分阶段计划和控制,以及顺序实施的步骤,和各种结构化分析(SA,StructuredAnalysis)和结构化设计(SD,StructuredDesign)技术的软件开发方式。生命周期方法学首先是一种软件开发的方式,它的特点,一是分阶段计划、控制、顺序实施,另外就是在各个阶段采用结构化(包括结构化分
7、析和结构化设计)技术。要注意:软件的生命周期概念和软件工程的生命周期方法学概念是两个不同的概念,不能混淆。软件的生命周期方法学,只是软件开发的一种方法学,同其他软件开发方法学一样,都是以软件生命周期的概念为基础而研究建立的。生命周期方法学是软件工程最传统的方法学,虽然它并未完全解决软件危机的问题,但是对软件工程的发展起到了极其重要的促进作用,至今仍旧是最成熟和应用最为广泛的方法学。我们上面给出了软件工程生命周期方法学的定义,下面我们就根据这个定义,来详细讨论一下生命周期方法学的主要特点,分析一下怎
8、么样的软件开发方式就可以被称做是“生命周期方法学”。(2)特点:严格的分阶段计划就是将软件开发过程从时间上分解,降低软件开发的复杂度。软件危机的主要表现之一,就在于软件的开发过程难以管理和控制,软件的质量没有保证。随着软件规模越来越大,开发周期越来越长,整个软件开发过程也变得越来越复杂,越来越混乱。人类解决复杂问题的一个惯常方式就是分解,把复杂的事物分解为小的部分,再逐一解决。生命周期方法学依照软件的生命周期,将完整的软件开发过程从时间上划分为许多相对独立的阶段。在每一个阶段,都有
此文档下载收益归作者所有