登陆注册
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)。

同类推荐
  • 中文版AutoCAD2005辅助设计宝典

    中文版AutoCAD2005辅助设计宝典

    本书全面、详细地介绍了中文版AutoCAD2005的特点、功能以及使用方法和技巧。全书共分11章,前九章分别介绍了利用中文版AutoCAD2005进行辅助设计的方法和技巧,最后两章讲解了若干综合实例。
  • 计算机与人工智能(科学新知丛书)

    计算机与人工智能(科学新知丛书)

    本书是专门为中小学生编写的科普读物。全书共分八个部分,分别就计算机诞生的历程,计算机的种类、构造、作用及其发展趋势等方面进行了详尽的论述,全书论述深入浅出,行文活泼流畅。为本书的主要读者——广大的中小学生朋友认识计算机、了解计算机和掌握计算机提供了一把钥匙,是新时期中小学生开展素质教育不可多得的科普读物,中小学生家长及教师阅读此书也能从中获得有益的启示和感悟。
  • 公开时刻

    公开时刻

    本书从传播者分析,内容分析,媒介分析受众与效果分析,传播环境与传播控制分析等几大方面把汶川地震作为重大传播案例,阐释汶川地震的传播学遗产。对政府部门和新闻媒体在危机公关方面做出正面评价。
  • 云计算和现代远程教育

    云计算和现代远程教育

    本书介绍了云计算知识、云计算的特性、云计算技术、云计算中的访问云、云计算中的云存储、云计算在远程教育中的应用等内容。
热门推荐
  • 杂粮祛病事典:做自己的杂粮医生

    杂粮祛病事典:做自己的杂粮医生

    本书从生理学和心理学出发帮助大家认识压力,了解压力过大对人身心的影响,接着阐述了如饮食、运动、兴趣爱好、作息调整、认识转变以及催眠之类的专业放松法等调适压力的一些办法。
  • 赛尔号创世纪

    赛尔号创世纪

    冬凰传人,白洞灵体!彩虹流光,诸元混沌!海王现,哈迪出!星火燃,泣血落!阳元限界天!这里是精灵的世界,是最激烈的精灵战争!三大始祖精灵开辟宇宙,留下十二颗神邸精华,后有两位“大能”将之收集并创立了“神宫”。数百年后第十八代霓虹神遭到暗算后陨落,由此引出了一个巨大的阴谋。十大仙灵出世,预言的十大灵体开始逐渐浮出水面,而一场注定的终极圣战,也开始进入了倒计时。混沌一战!双元宇宙!
  • 穿越嫡女不好惹

    穿越嫡女不好惹

    21世纪中医世家的家主乔白露穿越成丞相府不得宠的嫡女,新婚之夜被庶妹害死,自己还在棺材里躺着,庶妹却和自己的未婚夫吹吹打打拜起了天地!下定决心不会让这两个人好过,乔白露决定凭借出神入化的一手医术,这辈子虐渣男,斗白莲,一定要把这两个人踩在脚下!却不料惹上了有第一病美男之称的安王,明明说好的病弱美男,却实际上是个腹黑的武功高手?“王妃,我又生病了。”乔白露冷冷一笑:“王爷,除了这招,你还会别的吗?”--情节虚构,请勿模仿
  • 冒牌光明神

    冒牌光明神

    “可怜的猪脚在寻宝中得到了不该得到的东西,被大佬们打入时空洞窟,掉入另一个世界,本来想以过客的身份走完这一生,谁可知,从进入这个世界的时候,命运的齿轮就已经开始转动。
  • 落花,如此美

    落花,如此美

    15岁他们这一群不知天高地厚的少年相遇了,陪伴彼此走过那些布满荆棘的路。他们都是心思通透的人,可惜,他们都无法得到最好的爱,但他们都懂,无论结果如何,曾经相伴,就不负落花。
  • 师父你需要治疗

    师父你需要治疗

    网游文。全服攻击力最高的大神,居然是个治疗职业,还能不能让人好好人玩了。更新慢,别跳。
  • 佛说圣庄严陀罗尼经

    佛说圣庄严陀罗尼经

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 来自次元交错点

    来自次元交错点

    当无数次元交错的那一刹那,你将会获得超越所有次元的力量。
  • 转生在魔法世界修真

    转生在魔法世界修真

    亿万转生者一齐转生后,作为平凡的转生者,是否也能大展宏图?!轻松地活在异世界,或许也是一种享受吧。在魔物的世界里,没有神的指引,也能自由发挥吧。
  • 就是奶爸没错啦

    就是奶爸没错啦

    【心情好日更,心情不好最晚周更,科幻向奶爸文。】刷不到系统也就算了,洛杨怎么也没有想到,他又穷又没出息的混沌日子里,还会多出一个从天而降的崽。这个崽吃的多,哭的多,有什么功能还没有发现。这个崽把家里的猫塞进纸箱子,把家里的水管和煤气管相连,还把玻璃吊灯炸飞了。他这是要逆天,是要在家里研究核武器吗?洛杨心力交瘁,这个崽却越长越帅。一个崽改变一生的故事,就从这里开始。永远想念【格子里的夜晚】,愿来世逍遥自在。