首页 > 编程知识 正文

统一软件过程的基本概念是,统一软件过程的基本概念包括

时间:2023-05-05 10:59:12 阅读:269566 作者:3967

        原来在学习软件工程中了解到软件生命周期阶段是可行性分析、需求、概要设计、详细设计、编码实现、测试、运行于维护等阶段,在软件工程中,把软件生命周期中指导软件开发的模型称为软件开发模型或软件生命周期模型,软件开发典型的模型有:瀑布模型、快速原型模型、螺旋模型、迭代模型等。在软件开发的过程中可以运用结构化的设计和分析方法以数据流为驱动并结合以上软件开发模型开进行软件开发;也可以运用面向对象的设计和分析方法以事件为驱动并结合以上软件开发模型来进行软件开发。但是后来学习了一门名为《面向对象的方法与设计》的课后,接触到RUP统一软件过程和UML建模语言后,脑子里就糊糊的,弄不清楚原来学习软件工程中生命周期、生命周期模型、结构化设计方法、面向对象设计方法的关联。

        于是在网上查阅了许多资料后,脑子里的概念清晰了许多,其实软件的生命周期就好比人的生命周期——从婴儿时期,幼儿时期,少年时期,青年时期,中年时期到老年时期以及最后死亡的过程一样,软件也有从生产期消亡期的过程。而统一软件过程就是在软件生命周期过程中以用例为驱动、构架为中心来进行一次一次的增量式的迭代,每次迭代都是以上一次迭代为基础并生成包括构件的源代码体、需求说明、测试用例等的制品。每次的迭代又具体分为四个阶段:初始、细化、提交和转移,而在每个阶段又分为五个工作流:需求、分析、设计、实现和测试。统一软件开发过程是基于面向对象方法和UML统一建模语言的,用这种方法论来指导软件开发主要可以解决两个问题:1.软件复用问题;2.需求变化问题。下面就是我整合资料和学习的过程!在这个过程中我认为,做任何事情要有目标性,因此要带着问题去研究,只有这样自己才会有收获!

1.软件过程将用户需求转化为软件系统所需要的活动的集合。

2.统一软件过程不仅仅是一个简单的软件过程,而是一个通用的过程框架,可用于不同类型的应用系统、各种不同的应用领域、各种不同类型的组织、各种不同功能和规模的项目。它是基于构件(Component-based)的,即所构造的软件系统是由软件构件通过明确定义的接口相互链接所建造起来的。并且它使用统一建模语言(Unified Modeling Language,UML)来制定系统的所有蓝图。

(1)统一软件过程的特点:用例驱动、以构架为中心、迭代和增量的软件过程框架。

1)统一过程是用例驱动的

用户(User):软件系统是为了解决用户的需求的,因此对于一个系统必须首先确定它的用户(User),即参与者。这个User不仅仅指人,也可以是其他系统。即用户是与系统进行交互的事物。

用例(User Case)是用户对系统的业务需求,即用例是能够像用户提供有价值结果的系统中的一种功能。

所有的用户和用例组合在一起就是用例模型,它描述了系统的全部功能。用例图促使我们从系统对用户的价值方面来考虑问题,是站在用户的角度出发,以人为本。并且用例图不仅能确定用户的需求,还可以驱动系统设计、实现和测试的进行,也就是说用例可以驱动开发过程。用例驱动表明开发过程是沿着一个流——一系列从用例得到的工作流前进的:用例被确定、用例被设计、最后用例又称为测试人员构造测试用例的基础

2)统一过程是以构架为中心的

什么是软件构架?

        软件构架的作用与建筑构架所起的作用类似。软件系统的构架是从不同的角度描述即将构造的系统。

注意:软件架构(software architecture),是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。它描述的对象是直接构成系统的抽象组件,各个组件之间的连接明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,在面向对象领域中,组件之间的连接通常用接口来实现。 

        软件构架包含了系统中最重要的静态和动态特征。构架刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特性,然而“究竟什么是重要的”部分依赖于判断,而判断由来自于经验,所以构架的价值也就依赖于执行该任务的人的素质,在构架的过程中可以帮助构架师确定正确的目标。

用例和架构之间是什么关系?

        每一种产品都具有功能和表现形式两个方面,其中功能与用例相对应,表现形式与构架相对应。因此用例在实现时必须适应于构架,然而随着系统的发展,用例也在不断的进化,所以构架必须设计得使系统能够进化不仅要考虑系统的初始开发,而且要考虑将来的发展。为了能够找到这样的一种表现形式(构架),构架师必须从全面了解系统的主要功能(即主要用例)入手,这些主要的用例构成了系统的核心功能。

构架应该遵循什么步骤?

        首先,从不是专门针对用例的那部分架构开始,如平台,创建一个粗略的构架轮廓。

        其次,着手处理已经确定重要的用例子集,这些用例代表着即将开发系统的主要功能,详细描述每一个用例,并通过子系统、类和构件来实现。随着用例的描述趋于完善,构架的更多部分便会显现出来,从而也使更多的用例趋于完善。

        最后,迭代这个工程直到确信得到一个稳定的构架为止。

3)统一过程是迭代和增量的过程

软降开发是一项复杂的过程,因此可以将这些项目划分为切实可行并能够产生一个增量的迭代过程。

什么是迭代和增量?

        迭代:工作流中的步骤;

        增量:产品中增加的部分。

迭代的原则是什么?

        为了获得最佳的效果,迭代过程必须是受控的(Controlled),也就是说他们必须按照计划好的步骤有选择地执行。

如何确定迭代过程中要实现的目标呢?

        首先迭代过程就是用来处理一组用例的,这些用例组合起来就能够扩展所开发产品的可用性。其次迭代过程要解决最突出的风险问题只有这样后续的迭代过程才能建立在前一次迭代过程的基础上。

迭代的过程是什么?

        以选定的构架为向导,用构件来实现设计前期已经标识并详细描述好的有关用例。如果一次迭代达到了目的,就可以进入下一次迭代,如果一次迭代没有带到预期的目标,那么必须重新审核前面的方法,并尝试一种新的方法

增量的理解:一个增量不一定是对原有制品的增加,在生命周期初始期,增量是对最初简单设计的完善和改进;而在以后的阶段增量通常是对原有制品的增加。

 

3.统一过程的软件生命周期

统一过程的软件生命周期就是从软件的产生到消亡期间进行的一次次迭代,每次迭代都会产生一个产品版本,并且本次迭代是基于上次迭代的。

1)什么是产品?

产品是包括由能够编译和运行的构件的源代码体、各种手册和交付品。它不仅能够运行还需要满足客户和产品相关人员的需求。

2)统一开发过程中的产品所依赖的模型有哪些?

产品就是软件系统的一个构件,但是只有这些是仅仅不够的,因为环境(操作系统、数据库系统)在变化,此外随着更好的理解任务,需求本身也在变化。因此统一开发过程中每次迭代要依据一些模型来产生产品。如下图:

       用例模型:包含用例与用户之间的关系

       分析模型:更详细的提炼用例,将系统的行为初步分配给提供行为的一组对象

       设计模型:将系统静态结构定义为子系统、类和接口,并定义由子系统、类和接口之间的协作所实现的用例。

       实现模型:包括构件(表现为源代码)和类到构件的映射。

       实施模型:定义计算机的物理节点和构件到这些节点的映射。

       测试模型:描述用于验证用例的测试用例。

       业务模型:描述系统业务预警的领域模型。

所有的这些模型都是相关的,它们合起来表示整个系统。由上图从上往下看,下面的模型对上面的模型有跟踪依赖关系。这有利于系统的理解和修改。

3)统一开发过程每次迭代都包含哪些阶段?

       每次迭代分为四个阶段:初始、细化、构造和移交。

       每次迭代都要经历一定的时间,这个迭代的时间又可以分为四个阶段:初始、细化、构造和移交。而在每个阶段,管理人员或开发人员又可以将本阶段的工作进一步划分为多次迭代过程以及每次迭代过程所产生的增量。每个阶段都以一个里程碑作为结束标记,并可以获得一组可用的制品来定义每个里程碑。

里程碑有什么作用?

        里程碑的关键用途是能够帮助管理人员在进入下一个阶段之前据此作出某些意义重大的决定。还可以跟踪每个阶段所投入的时间和其他开销。这些对项目的控制和发展都是很有用的。

4)每次迭代的阶段都要进行哪些工作?

        迭代的每个阶段通常又进一步细分为多次迭代过程,一次典型的迭代阶段(初始、细化、构造、移交)都要经历五种工作流:需求、分析、设计、实现和测试。

5)每个阶段的主要任务是什么?

初始阶段(inception phase)

        主要回答下列问题:系统向它夫人每个主要用户提供什么基本功能?(确定参与者和用例)

                                          该系统的基本粗略构架是什么?(包括主要子系统的大致轮廓)

                                          开发该产品的计划是什么?开销多大?(可行性分析)

        这个阶段最主要的是确定项目的风险及其优先次序,并对细化阶段进行详细规划和对整个项目进行粗略计算。

细化阶段(elaborattion phase)

        根据主要的用例描述设计出详细的系统构架。构架包括了用例模型、分析模型、设计模型、实现模型(包含一些构件)和实施模型的视图。

        这个阶段主要是解决用例、构架和计划是否足够稳定可靠,风险释放得到充分控制,以便能够按照合同的规定完成整个开发任务。

构造阶段(construction phase)

        将构造出最终产品。

移交阶段(transition phase)

        包括产品进入beta版后的整个阶段。开发人员改正用户报告产品的缺陷和不足。

4.总结

        统一过程是基于构件的,它采用新的可视化建模标准,即统一建模语言(UML),它依赖三个关键概念——用例驱动、以构架为中心及迭代和增量式的开发。为了使这些概念能够发挥作用,需要一个包括多个方面的过程,而统一过程就是一个考虑到生命周期、阶段、工作流、风险缓解、质量监控、项目管理和配置管理的软件开发过程。在这个过程中以用例驱动,以构架为中心以及迭代和增量开发的概念是同等重要的。构架提供了一种结构来指导迭代过程中的工作,而用例则去顶了目标并驱动每次迭代的工作去掉三个主要概念中的任何一个,都会严重降低统一过程的价值。

参考网址:http://www.cnblogs.com/xiaruyan/archive/2011/04/24/2026344.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。