登陆注册
8724600000005

第5章 软件工程概述(3)

Rational Rose是支持UML建模的强大的可视化工具。Rational Rose是个菜单驱动应用程序,它支持8种不同类型的UML框图:用例图、类图、时序图、协作图、状态图、活动图、组件图、分布图。Rose对不同框图都提供了不同的工具栏。

Rose界面的五大部分是浏览器、文档窗口、工具栏、框架窗口和日志:

①浏览器:用于在模型中迅速漫游。

②文档窗口:用于查看或更新模型元素的文档。

③工具栏:用于迅速访问常用命令。

④框架窗口:用户显示和编辑一个或几个UML框图。

⑤日志:用于查看错误消息和报告各个命令的结果。

在Rose的浏览器中有4个视图:UseCase视图、Logical视图、Component视图和Deployment视图。

1)UseCase视图

UseCase视图包括系统中所有的角色、用例图和用例模型图,还可能包括一些时序图和协作图。

UseCase视图是系统中与实现无关的视图,它关注于系统功能的高层形状,而不关注于系统的具体实现。

2)Logical视图

Logical视图关注系统如何实现用例中提出的功能,包括特定的类、类图、时序图、协作图、状态图等。

3)Component视图在Rose中,组件和组件图在Component视图中显示。

4)Deployment视图在Rose中,分布图在Deployment视图中显示。

1.3软件过程

1.3.1软件过程改进的目标

软件过程管理的核心是持续的软件过程改进(Software Process Improvement)。在建立了持续的过程改进环境的软件组织中,其软件开发过程是可控制的、可预测的、可度量的。在这样的软件组织中,定义好的软件过程被制度化、规范化,软件过程中的行为被文档化。这样的理想状态就是通过软件过程管理要实现的目标。

1.3.2软件过程管理的主要内容

软件过程管理的核心是持续的软件过程改进(Software Process Improvement)。而软件过程改进的第一步就是过程基础结构的建立(Establish Process Infrastructure)。这一步骤主要完成企业过程管理的基础性工作,包括获取管理者的支持,获取资金,创建软件过程工程小组(Software Engineering Process Group,SEPG)或者创建过程改进组(Process Improvement Team,PIT),进行任务职责的分配等工作。Sami Zahran指出软件过程改进的基础架构包含两部分主要内容:一是组织与管理方面的架构,也就前面所提到的软件过程改进过程中各类角色的定义及其职责的分配;二是技术方面的架构,主要是过程改进中各类工具的建立。

软件过程改进计划,也就是Planning of Process Implementation and Change。这一步包括过程管理的几个重要内容:过程定义(Process Definition)、过程度量(Process Measurement)和过程定性分析(Process Qualitative Analysis)。

过程定义(Process Definition),显然是整个过程改进的基础。整个组织的过程改进必须基于明确的过程定义,以方便员工的交流、过程改进的实施。过程可以在两个层次上加以定义:一个是在抽象层次上,从软件的开发过程的技术角度来定义,可以得到生命周期框架模型(Life Cycle Framework Model),也就是通常所说的软件生命周期。此外,在具体层次上,综合考虑软件工程管理方面的内容,可以得到各种软件生命周期过程模型(Software Life Cycle Process Model)。

在正式实施一个定义好的软件过程之前,企业或组织必须对现有的软件过程加以评估或者度量,以明确现有软件过程的优势及缺陷,并以此为基础定义新的软件过程。对于现有软件过程的定量数据的收集、整理、分析的过程就是这里的过程度量。对于现有软件过程的定性分析就是上面提到的过程定性分析。

当新的过程定义好之后,就进入了过程改进的实施阶段。也就是Process Implementation and Change阶段。在这一阶段,通常需要选择一些成熟的软件过程改进框架,作为企业过程改进的指南。SEI的能力成熟度模型CMM和国际化标准组织的ISO/IEC15504都是这样的过程改进模型。

过程度量(Process Measurement)是指当过程改进顺利完成之后,为了实现持续的过程改进,还有必要对现有的软件过程加以评估(Evaluation),以明确当前的软件过程的实际效果。CMM和ISO/IEC15504均提供了相应的评估模型。

1.4软件生命周期模型

软件生命周期模型,也就是前面说到的Life Cycle Framework Model。它是在较为抽象的级别对软件过程从技术角度加以定义的一种软件过程模型。这也就意味着真实的软件过程模型可能并非都能符合如此理想模型,很有可能是下面提到的典型软件生命周期的改进或者一定程度上的互相叠加。

下面介绍几种典型的软件生命周期模型。

1.4.1线性顺序模型(Linear Sequential Model)

线性顺序模型就是瀑布模型(Waterfall Model)。线性模型至少包括需求分析、软件设计、软件构造、软件测试、软件维护等阶段。它是最早提出的一种软件生命周期模型。这一模型的最根本特征就是严格线型。这里的线型有两层含义:一是相对螺旋模型而言的。螺旋模型本质上是一种迭代式的开发,而非线性开发。另一层含义是相对有反馈的线性模型而言。在有反馈的线性模型中,后续阶段中发现的问题都会直接反馈给前续阶段,以及时调整整个软件的分析设计,避免缺陷放大。这也就是说,严格的线性模型后继阶段无法把在其阶段的信息反馈给前续阶段。因而严格的线性模型要想得到有效地实施,必须基于确定的需求,详细而准确的设计,而且分析设计的结果必须严格文档化。所以有时又称其为基于文档(Document Based)的软件生命周期模型。

但现实中的软件过程不可能严格遵守线性化,或多或少我们会在分析、设计阶段犯下错误,而且随着企业环境的日益复杂,需求变更已经变成了一种常见现象,软件工程领域正在发起一场“Embrace Change”的革命。这就意味着,传统的线性模型是不符合实际的。因而用得比较多的可能是经过改进的线性模型,它是带反馈的,或者说是可回溯的线性模型,有时又称其为V模型。

V模型中,有两点值得注意。

①它将测试阶段细化,并将各测试阶段的结果直接反馈给前面的相应阶段。从该模型可以看出真实测试过程的开始与需求分析的结束,需求分析的结果就是用户验收测试或者系统测试的依据。

②它体现了V&;V策略。从分析到编程,每一个阶段结束后,都进行相应的检查(Review)。这里的Review就是Validation和Verification的过程。

1.4.2原型(Prototype)实现模型

在开发软件时,客户提的需求往往是比较抽象的商业目标,而不能确定具体的、详细的输入、处理、输出细节。对于一些非功能性的需求,如系统的响应时间、系统的可靠性要求,用户更是难以提出。由此,导致很多软件的开发风险极大。为此人们提出了原型,原型可能是最终系统的一个简单的实现,这种实现便于客户理解开发者实现的内容。通过这样一个原型,客户可以与开发者充分交流,以消除双方的误解。因此很大程度上原型是客户和开发者沟通的界面。

在理解了基础需求的基础上,就可以在较短的时间内快速设计,并实现一个简单的原型,然后对原型加以评价、提炼,最终将这一阶段的原型提交给客户确认。如果客户觉得还需要修改,则再次进入原型实现周期,也就是原型的迭代周期。否则,用户就得到比较满意的最终的产品。原型法有一个原型循环迭代周期,因而与线性模型相比,原型法一个典型的特征就是迭代。

1.4.3螺旋模型(Spiral Model)

螺旋模型是Boehm于1988年提出的。将原型实现的迭代特征与线性模型中的线性控制这两个方面结合起来,使得基于迭代的快速开发成为现实。螺旋模型从中心部分的环开始,每个环代表了一个迭代周期。在每个迭代周期,进行以下几类活动。

①Planning:在这一活动中,系统分析师分析项目所要实现的目标以及开发项目的一些限制性约束。

②RiskAnalysis:就是对整个项目进行风险分析,标识出最有风险的部分,并为之寻求相应的解决方案。在每个迭代的开始都进行风险分析,优先考虑风险最大的部分。这样做的目的显然是为了降低项目开发的风险,这也是Boehm提出螺旋模型的初衷。风险分析是螺旋模型最为典型的特征。

③Engineering:该阶段用于用户评估的原型的分析、设计、验证与实现。在不同的迭代周期,这一步骤的具体内容可能有所不同。越靠近里面的环,这部分的内容越靠近线性模型中前面的部分。越是靠近外面的环,这部分的内容越靠近线性模型中后面的部分。

④Customer Evaluation:是指客户对该迭代周期产生的产品的评价。用户对现有原型的意见又构成下一次迭代计划的依据,这样周而复始,就可以得到越来越贴近目标系统的原型,最后一次迭代的产品就是最终的产品。

1.5常见的软件工程过程模型

1.5.1CMM

软件能力成熟度模型(Capability Maturity Model For Software,SW—CMM),是由美国卡内基梅隆大学软件工程研究所(CMUSEI)研究出的一种用于评价软件承包商能力并帮助改善软件质量的方法,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。

虽然本书将CMM归为软件工程过程模型的一种,但CMM的含义却远远超出软件过程管理的内容。首先,CMM除了给出基于项目的软件过程的改进指导,更给出了对于组织整体的过程改进框架。其次,CMM是以动态的观点考察组织持续的软件过程改进,而并非只是针对某个项目。再次,CMM的实施过程不仅是过程管理技术的应用过程,更是优秀企业文化的建立过程。正是因为上述原因,在一个软件组织中实施以CMM为指导的过程改进,对该软件组织而言,可以说是一件全局的、艰巨的任务。所以很多时候又称CMM是一种重载软件过程模型(Heavy—weight Software Process Model)。

同类推荐
  • 创业在微软

    创业在微软

    身处软件巨擘微软之中,何来“创业”二字?本书详尽勾勒了微软亚洲工程院(ATC)的成长历程,披露了工程院人在“创业”过程中不为人知的种种酸甜苦辣,生动展现了工程院的独特文化,并从另一个角度展现了其领袖人物张宏江博士的心路历程和管理思想。
  • 中文版AutoCAD2005辅助设计宝典

    中文版AutoCAD2005辅助设计宝典

    本书全面、详细地介绍了中文版AutoCAD2005的特点、功能以及使用方法和技巧。全书共分11章,前九章分别介绍了利用中文版AutoCAD2005进行辅助设计的方法和技巧,最后两章讲解了若干综合实例。
  • 组态软件控制技术

    组态软件控制技术

    监控组态软件是完成数据采集与过程控制的专用软件,它以计算机为基本工具,为实施数据采集、过程监控、生产控制提供了基础平台和开发环境。本书从应用角度出发,详细介绍了组态软件应用程序的开发过程。对窗口界面编辑、动画链接、实时和历史趋势、安全机制、I/O设备连接,以及生产应用等内容都做了非常详细的介绍。MCGS是优秀的监控组态软件之一,它功能强大、使用方便,可以非常容易地实现监视、控制、管理的各项功能,并可提供软、硬件的全部接口,方便、快速地进行系统集成,构成不同需求的数据采集与监控系统。本书可作为高等学校计算机应用、自动控制、电子技术、机电技术专业的教材,同时还可作为相关专业工程技术人员的自学用书。
  • 中文版3dsMax2010实例与操作

    中文版3dsMax2010实例与操作

    本书结合3dsMax2010的实际用途,按照系统、实用、易学、易用的原则,通过大量案例介绍了3dsMax2010的各项功能,内容涵盖3dsMax入门、创建和编辑二维图形、创建基本三维模型、使用修改器、网格建模、多边形建模、面片建模、复合建模、材质和贴图、灯光和摄影机、渲染、动画制作、粒子系统、空间扭曲和动力学等。
  • 如何建设网站

    如何建设网站

    本书以问答的方式介绍了建设网站的基本知识,内容包括:网站设计的八个步骤、建设网站需要掌握的工具软件、网页中插入图像、在网页中隐藏内容等。
热门推荐
  • 全能系统之升级狂人

    全能系统之升级狂人

    小青年楚阳穿越异界,觉醒无限升级系统,修炼变成了一场游戏,打怪就能长经验,还有系统任务给的逆天奖励。这下爽爆了,瓶颈?修炼天花板?不存在!无限升级,畅通无阻,神魔又如何,不过就是我升级路上的垫脚石!
  • 美人心机

    美人心机

    美人若无心机,终究只能是一朵失去尖刺的玫瑰,只能任人采摘,若无怜惜之人,只怕是风吹雨落,花瓣泥泞中,几堪娇嗔。当幸福已经远离,当枕边人成为挚爱人的凶手,当一切都无法再回头,她该何去何从?是飘落的花瓣?还是坚强的在枝头绽开?--情节虚构,请勿模仿
  • 风拂东极

    风拂东极

    神魔大陆的中央,有一座石殿,殿前有门,门上两个铜环,一把大锁将两个铜环穿在了一起,锁上有字,写着:“打开此门者,将成天地主宰。”据说轩辕第五祖曾长久矗立门前,最终,他拔出剑,仰天高呼:“这就是钥匙,让整个世界在我剑下发抖吧!!”剑落锁断,门开,绝代英雄昂然走入石门,一去不返!……从那时起,在这片大陆上开始流行一个谶语:“当启明星落入金牛双角之间,神将降临尘世,魔亦重返人间。”有人说,这也许仅仅是一个没有根据的预言,但更多的人相信,在乱世来临之际,只有有准备的人,才会是胜利者!
  • 我的妖君梦

    我的妖君梦

    这是真实改编故事这是一个少年上初中后的悲哀故事这是从单纯的梦想一步一步变成妖君的过程
  • 我是最强欧皇

    我是最强欧皇

    欧佑非带着幸运异能穿越到平行世界的自己身上。这个世界异空间降临。无数异兽源源不断的涌入,杀死它们可以从概率提取出本源,吸收后不仅可以提升属性,甚至可以得到它们的能力。别人狩猎一天得不到一个本源,作为欧皇,欧佑非杀一只就能把它的能力爆个干净。————这是一个天选之人疯狂秀操作的故事。
  • 修真在生化危机

    修真在生化危机

    众生贪嗔,天怒降罚,灭世创世!在末世,幸存的人类觉醒了血脉。当体修碰到剑师;当法修碰到魔法师;当飞剑碰到精灵射手;当鬼修碰到亡灵法师;一定会很精彩。还有牧师、文豪、狼人、罗汉、德鲁伊、召唤师、圣骑士、圣斗士......也会一一登场。感谢腾讯文学书评团提供书评支持
  • 青梅竹马:唯宠你一人

    青梅竹马:唯宠你一人

    一个吻,倾心倾意,订下了一场誓死不渝的生死之恋。白恋樱:他,是一株迷迭香,给我下了生生世世解不开的毒。沐佐熙:她,是一朵罂粟花,总给我一种窒息的美丽,深深的诱惑着我,让我深深陷入不能自拔。支持兔兔的宝宝们,可以加Q1134566237也可加Q群93711475验证信息写作者大大的名字,谢谢
  • 仙骨

    仙骨

    一身傲骨如仙,一缕孤魂逆天!数不尽的美女欢心?那不过是附带的奖励。道不尽的不朽传奇?那也只是他随意之举!一个永不屈服的少年,一篇神秘玄奇的炼骨天卷,一步步踏上巅峰,终有一日,我要把这天也给炼了!
  • 妖妻潜入夜:军少,求休假!

    妖妻潜入夜:军少,求休假!

    【新文:名门隐婚:军少爹地,拿快递!】重生了,上司装比,闺蜜算计,渣娘巨坑,都不怕,哥哥来护驾!苏锦琛,第一军少,长得颠倒众生,手段让人痛不欲生,冷漠狂傲,只在心里圈出唯一一块柔软的城堡留给她。“哥哥,有人想打我。”“拿脚踹,别动手,疼。”“哥哥,有人想潜我。”“我苏锦琛的人谁潜得起?拿钱,砸!”“哥哥,有人跟我求婚了,我打算答……”原本军装穿得好好的男人突然露出一身肌肉闪瞎她的眼,苏伊人一脸‘懵懂天真’:“哥哥,你干吗?”男人掐着她精致的小下巴,笑容魅惑,“不让你深入了解一下,你还不知道‘哥哥’这个词在床上也是可以叫的。”
  • 昆仑密葬

    昆仑密葬

    噩梦,噩梦般的遭遇接踵而至。一副活的纹身,图案背后隐藏什么不为人知的秘密。是长生,还是险恶的人心?悬空棺椁,千年古尸。一切的一切,带来的只有未知的恐惧。