要给一个名词下定义,是一件很严肃和严谨的事情,因此,要给出需求工程准确的定义是不太现实的。本书从方法论推进和实施的角度出发,提出了本书对需求工程的理解和定义。需求工程是面向业务全局、系统顶层的一种着眼于软件过程全过程的工程,是将客户业务作为内部研究对象、将软件工程实施作为外部研究对象的工程。之后,书中提到的需求工程即以此定义为准。......
2023-11-17
要讨论UML,那么我们就不能不提RUP(Rational Unified Process,统一过程)。立交桥再宏伟,再漂亮,都是基于建筑学理论来建设的,RUP与UML的关系正类似于建筑学与立交桥的关系。但是相信很多读者都会觉得RUP和UML是一样的,其实RUP和UML是不同的两个领域。简单的说,UML是一种语言,用来描述软件生产过程中产生的文档,RUP则是指导如何产生这些文档以及这些文档讲述什么的方法。从本质上讲RUP不是专门针对UML,它是一个采用面向对象思想,在软件工程领域指导建模的最佳实践,但是UML仍然是对RUP的承载或落实最为全面,同时也是最为复杂的体现。
RUP是一个庞大且复杂的知识体系,RUP 归纳和总结了软件工程领域的很多实践方法,主要采用UML作为软件分析的设计语言,并且结合了项目管理、质量保证等许多软件工程知识,综合而成的一个非常完整和庞大的软件方法。如图2-6所示,统一过程定义了软件开发过程中最重要的阶段和工作(四个阶段和九个核心工作流),定义了参与软件开发过程的各种角色和他们的职责,还定义了软件生产过程中产生的成果物,并提供了模板。并且,演进式的软件生命周期(迭代)将工作、角色和成果物串在一起,形成了统一过程。
图2-6 统一过程概述
从图2-6可以看到,统一过程将软件生产分为四个阶段和九个核心工作流,每个工作流在不同的阶段有不同的工作量比重,这些权值比重的安排都来自实际项目的统计数据。每个阶段会涉及到哪几个工作流?我们可以在迭代计划中清楚地看到。一个软件从初始到产品推出要经历多次演进,每一个演进会有一个迭代计划来描述本次演进的阶段性小目标、经历的主要工作流等。统一过程对每个工作流都规定了标准的流程、参与角色和对应的模板,而在迭代计划里可以依据项目实际情况对这些流程、角色和模板等进行剪裁使用,不必全盘接受。
RUP几乎囊括了软件开发生产过程所需要知识的各个方面,也是当前最为重量级的软件方法。RUP是一种追求稳定的软件方法,它追求开发稳定架构,控制变更,立足于长期战略,更加适用于大中型软件产品的开发,也是一种需要投入较大成本的选择。那么,为何大家要投入那么多成本来实施统一过程呢?
首先是出于提高软件成熟度的需求。在CMM(能力成熟度模型)中其实只规定了每个成熟度等级的评估标准,但是并未提出达到标准的具体可量化的指标。因此,更多的企业在权衡符合自身的软件过程和采用统一过程标准之间就更加偏向于RUP了。(www.chuimin.cn)
其次,出于提高软件技术水平和质量的需要。大家清楚地知道,一个好的软件产品,必须保证需求、分析、设计、质量等工作。RUP集成了面向对象、UML语言、核心工作流、工件模板和过程指导等内容,使得软件生产过程能够利用这些成熟的指导来提高组织内整体软件认识和开发人员的软件素养,从而也为企业提高软件生产的技术水平和质量打下良好的基础。
再次,RUP适合稳定架构的开发工作。它能够通过演进来逐步推进软件产品,这一特点使它特别适合长期战略的软件产品研发。例如,某家公司一直深耕于某个行业,不断地对行业经验进行积累,不断地对项目进行总结,不断地深入行业内部,从而实现对整个行业的业务能够提出一整套的解决方案。
总之,RUP的复杂性和当前软件项目的复杂性促使人们一直期望软件开发能够像工业产品的生产一样能够有标准化的零部件,然后按照规则组装成需要的产品,希望能够用较少的投入完成软件项目的推进。随着当前面向对象的发展,以及方法论的标准化,基于架构、构件化的软件开发模式逐步得到承认并流行起来,这也表明软件的“流水线加工中心化”发展正在取得重大进步。但是,构件一方面不像工业零件有着较为明确的定义标准,另一方面构件间的通信和组装也缺乏公认、权威和统一的规则。因此,要真正达到构件化、组件化的软件开发还有较长的征程需要继续探索……而RUP的过程类实践,为这个方向的推进和发展提供了一些最佳实践,包括用例驱动、架构导向和构件化等。而且,RUP不仅在软件过程的技术方面进行了有益的探索,在项目管理、质量管理、配置管理以及人员角色等方面也有所涉及。所以,了解RUP可以更加清楚地理解软件本质,对于软件人员提升软件“智商”似乎也有着意外之功。图2-7展示了RUP体系的主要组成。
图2-7 RUP主要知识体系
RUP有着一堆专业词汇,繁多的模板等,我们就不对它做过多介绍,但是RUP指导本书方法论的调研过程,本书中所讲述的用UML来分析和设计的方法都源于统一过程。因此,大家阅读本书的过程就是一次统一过程经历,大家认真阅读完本书后就应该可以掌握最基本的统一过程方法,尤其是在方法论的理解和应用方面。那么,在我们了解了RUP之后,方法论中用到的UML核心元素就是需要大家关注的重点。
有关软件需求工程的文章
要给一个名词下定义,是一件很严肃和严谨的事情,因此,要给出需求工程准确的定义是不太现实的。本书从方法论推进和实施的角度出发,提出了本书对需求工程的理解和定义。需求工程是面向业务全局、系统顶层的一种着眼于软件过程全过程的工程,是将客户业务作为内部研究对象、将软件工程实施作为外部研究对象的工程。之后,书中提到的需求工程即以此定义为准。......
2023-11-17
需求工程的过程分为需求准备、需求获取、业务建模、系统建模等阶段,中间各环节通过关联规则体系串接起来以达到跟踪监控整体需求工程进度的目的。......
2023-11-17
在方法论中原型界面就是原型,并不代表系统的最终实现,可以使用草图来表示。图3-18审核薪资原型界面同时配合原型界面的使用以及为设计人员提供关键元素,每个原型界面都有对应的用例脚本展示,主要以边界类、业务类及实体类的划分为依据,按照MVC的主要思想将设计的关键要素表达出来。......
2023-11-17
业务目标又称为业务前景,是对要建设的系统的展望。业务目标非常重要,在定义边界一章中会看到,边界正是基于业务目标来定义的。投资构建系统的原因,以及这样做利益相关者会从业务中得到什么,这些都可帮助确定业务目标。业务目标不仅仅是要解决问题,还要提供业务上的效益。业务目标大部分情况下是由客户提出,当然也可以由开发方整理得出。在初步了解业务目标以后,接下来的工作就是找出项目范围内的利益相关者。......
2023-11-17
快速而不完美的建模在我们的方法论中作为一种贯彻思想,通过快速为过程建模来理解当前的工作,并与客户达成一致意见。图2-4白板建模使用白板对业务过程建模,一个明显的优势就是方便擦除,便于讨论和修改调整,方便RA人员和客户共同参与建模过程。其实当RA和客户在进行业务碰撞的时候,发现有些业务是可以简化的,或者发现有些业务之间改条连线会更加高效。......
2023-11-17
UML核心元素讲述了方法论中需要用到的一些关键概念,在业务建模以及系统建模阶段都有所涉及。接下来讨论这两种UML图形的组成以及在方法论中的应用情况。在UML中一般使用带圆端的矩形框表示。在UML一般使用带箭头的直线表示,线上可以添加条件。在UML中使用菱形表示分支。分叉和汇合在图形上都使用同步条来表达,在UML中一般使用一条粗水平线表示。在UML中泳道一般用垂直实线来表示,垂直线分割出的区域就是泳道。......
2023-11-17
为了真正理解客户的需求并给出满足这些需求的解决方案,必须理解真实世界中的问题。这些工作包括业务背景调查、业务前景分析、业务可行性分析、技术可行性分析等。在统一过程中,以上内容汇集到被称为《前景》的文档中。业务前景和客户期望所描述的内容与UML分析技术关系密切,严格来说,这些正是UML分析的开始。这几部分基本囊括了薪酬管理系统的主要业务范围,读者可稍作了解。......
2023-11-17
相关推荐