版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件架构之建模与需求蒋海昌ppt资料整理自网络 2013年12月1找讲师,就上中华讲师网 中国最大的培训讲师选聘平台2目录目录软件架构导引软件架构导引业务建模业务建模 & UML需求分析需求分析找讲师,就上中华讲师网 中国最大的培训讲师选聘平台软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构。主流的标准观点有:ANSI/IEEE 610.12-1990软件工程标准词汇对于体系结构定义是:“体系架构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一系统的基本组织结构以及知道上述内容设计与演化的原理(principle)”。Mary Shaw和David Garlan认
2、为软件体系结构是软件设计过程中,超越计算中的算法设计和数据结构设计的一个层次。体系结构问题包括各个方面的组织和全局控制结构,通信协议、同步,数据存储,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案之间进行选择。 Garlan & Shaw模型1的基本思想是:软件体系结构=构件(component)、连接件(connector)和约束(constrain)。其中构件可以是一组代码,如程序的模块;也可以是一个独立的程序,如数据库服务器。连接件可以是过程调用、管道、远程过程调用(RPC)等,用于表示构件之间的相互作用。约束一般为对象连接时的规则,或指明构件连接的形式和条件,
3、例如,上层构件可要求下层构件的服务,反之不行;两对象不得递规地发送消息;代码复制迁移的一致性约束;什么条件下此种连接无效等。Bass定义、Booch & Rumbaugh &Jacobson定义、Perry & Wolf模型7、Boehm模型等,虽然各种定义关键架构的角度不同,研究对象也略有侧重,但其核心的内容都是软件系统的结构,其中以Garlan & Shaw模型为代表,强调了体系结构的基本要素是构件、连接件及其约束(或者连接语义),这些定义大部分是从构造的角度来甚至软件体系结构,而IEEE的定义不仅强调了系统的基本组成,同时强调了体系结构的环境即和外界的交互
4、。什么是架构?3找讲师,就上中华讲师网 中国最大的培训讲师选聘平台框架,即framework。是某种应用的半成品,是一组组件,供用户选用完成自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一
5、般都经过很多人使用,所以结构很好,扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。架构与框架的区别与联系如下: 1 呈现形式不同架构的呈现形式是一个设计规约,而框架则是程序代码。2目的不同体系结构的目的是指导一个软件系统的实施与开发;而框架的目的是为复用。因此,一个框架可有其架构,用于指导该框架的开发,反之不然。3有种特殊的架构,DSSA(领域特定体系结构)其目的也是为了复用。4.架构风格在其用程序代码实现后就成了Corba、COM架构框架,也叫中间件集成框架,或对象中间件。架构与框架4找讲师,就上中华讲师网 中国最大的培训讲师选聘平台 软件架构这次培训的主关注点。 硬
6、件架构包括CPU, 内存,硬盘,周 边设备例如打印机,与连接这些元素的 部分。 组织架构是一些关于商业进程,组 织结构,规则和职责,与组织核心能力 的部分。 信息架构包含组织好的信息结构。 软件架构、硬件架构、组织架构和信 息架构是全部系统架构的子结构。 企业架构与系统架构很相似,包括硬件,软件,人员等。但是,企业架构与商业有很强的联系,因为它专注于商业对象的联系,专注于商业敏捷性和组织效率。企业架构可能穿插于公司间。架构的范围5找讲师,就上中华讲师网 中国最大的培训讲师选聘平台 企业架构师EA (Enterprise Architect) EA的职责是决定整个公司的技术路线和技术发展方向。盖
7、茨给自己的Title是首席软件 架构师,实际上就是EA角色。 基础结构架构师IA (Infrastructure Architect) IA的工作是提炼和优化技术方面积累和沉淀形成的基础性的、公共的、可复用的框架 和组件,这些是技术型公司传承下来的最宝贵的财富。 特定技术架构师TSA (Technology-Specific Architect) TSA主要从事类似安全架构、存储架构等专项技术的规划和设计工作。 解决方案架构师SA (Solution Architect) SA的工作则专于解决方案的规划和设计,所谓解决方案,就是把产品、技术或理论, 不断地进行组合,来创造出满足用户需求的选择。
8、软件架构师基本上是EA+TSA+IA,是程序员向上发展的道路,比如JAVA架构师、DotNet架构师、LAPM架构师等等,系统架构师实际上是SA+TSA,更着力于综合运用已有的产品和技术,来实现客户期望的需求。架构师分类6找讲师,就上中华讲师网 中国最大的培训讲师选聘平台1、确认需求确认需求 在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求。2、系统分解系统分解 依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。随后,架构师会确定各层的接口,层与层相互之
9、间的关系。架构师不仅要对整个系统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解。这体现了软件架构师的功力。3、技术选型技术选型 架构师通过对系统的一系列的分解,最终形成了软件的整体架构。技术选择主要取决于软件架构。例如:Web Server运行在Windows上还是Linux上?数据库采用MSSql、Oracle还是Mysql?是否需要采用MVC或者Spring等轻量级的框架?前端采用富客户端还是瘦客户端方式?架构师对产品和技术的选型只限于评估,没有决定权,最终的决定权归项目经理。架构师提出的技术方案为项目经理提供了重要的参考信息,项目经理会从项目预算、人力资源、时间进度等实际
10、情况进行权衡,最终进行确认。4、制定技术规格说明制定技术规格说明 架构师在项目开发过程中,是技术权威。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证开发者依照它的架构意图去实现各项功能。架构师通过它制定的技术规格说明书(UML视图、Word文档,Visio文件)与开发者沟通,保证开发者可以从不同角度去观察、理解各自承担的子系统或者模块。架构师还需要与项目经理、需求分析员,甚至与最终用户保持沟通。架构师的主要职责7找讲师,就上中华讲师网 中国最大的培训讲师选聘平台架构师的全面职责架构师需要参与项目开发的全部过程,包括需求分析、架构设计、系统实现、集成、测试和部署各个阶段,负责在整个项
11、目中对技术活动和技术说明进行指导和协调。 领导与协调整个项目中的技术活动(分析、设计和实施等) 推动主要的技术决策,并最终表达为软件构架 确定和文档化系统的相对构架而言意义重大的方面,包括系统的需求、 设计、实施和部署等“视图” 确定设计元素的分组以及这些主要分组之间的接口 为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并 保证相关决定被有效的传达和贯彻 理解、评价并接收系统需求 评价和确认软件架构的实现 8找讲师,就上中华讲师网 中国最大的培训讲师选聘平台从普通程序员到高级程序员,再到架构师,是一个经验积累和思想升华的过程,必须要有经验积累和素质培养。架构师要具备的素质有:1、
12、发挥团队作用的沟通能力、发挥团队作用的沟通能力 为了提高效率,架构师必须赢得团队成员、项目经理、客户或用户认同,这就需要架构师具有较强的沟通能力。2、基于技术和知识的领导能力、基于技术和知识的领导能力 架构师能够推动整个团队的技术进展,能在压力下作出关键性的决策,并将其贯彻到底。架构师要保证这种执行力就需要具有领导能力。但架构师在项目里面可能更多地使用非正式的领导力,即影响力,包括个人魅力、技术能力、知识传递等等。3、抽象思维和逻辑分析能力、抽象思维和逻辑分析能力架构师必须具备抽象思维和逻辑分析的能力,才能看清系统的整体,掌控全局,形成大局观。架构师不仅要有在问题领域上的经验,也需要有在软件工
13、程领域内的经验,这样才能准确的理解需求,用软件工程的思想,把需求转化和分解成可用计算机语言实现的程序。4、拥有深度和广度的技术和知识、拥有深度和广度的技术和知识 架构师必须精通面向过程和面向对象的基本概念和实施途径,具备这种技术能力才可以更加深入的理解有关架构的工作原理,也可以拉近和开发人员的距离,并形成团队中的影响力。架构师的技术知识广度也很重要,这样才可能综合各种技术,选择更加适合项目的解决方案。架构师应是项目团队中的技术权威。架构师应是项目团队中的技术权威。架构师的素质要求9找讲师,就上中华讲师网 中国最大的培训讲师选聘平台它是一个软件系统从整体到部分的最高层次的划分。一个系统通常是由组
14、件组成的,而这些组件如何形成、相互之间如何发生作 用,则是关于这个系统本身结构的重要信息。系统包括架构组件( Architecture Component)、连接器(Connector)、任务流(Task-flow)。 架构组件是组成系统的核心“砖瓦”,而连接器则描述这些 组件之间通讯的路 径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些组件和 连接器完成某一项需求。它是建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的 决定。这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎 重的研究和考察。在决定时,要考虑独特的架构风格和恰当的架构模式。软件系统架构要素1
15、0找讲师,就上中华讲师网 中国最大的培训讲师选聘平台软件软件架构的目标架构的目标 可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因 此软件系统必须非常可靠。 安全性(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非 常重要。 可扩展性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快 的情况下,保持合理的性能,才能适应用户的市场扩展得可能性。 可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场 需求的变化进行调整。 可延伸性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入 新技术
16、,从而对现有系统进行功能和性能的扩展 可维护性(Maintainable)。软件系统的维护包括两方面:1。排除现有的错 误,2。将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效 地降低技术支持的花费 客户体验(Customer Experience)。软件系统必须易于使用。 市场时机(Time to Market)。软件用户要面临同业竞争,软件提供商也要面 临同业竞争。以最快的速度争夺市场先机非常重要。11找讲师,就上中华讲师网 中国最大的培训讲师选聘平台软件软件架构的种类架构的种类软件系统的逻辑架构图逻辑架构:软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑
17、元件,等等12找讲师,就上中华讲师网 中国最大的培训讲师选聘平台软件软件架构的种类架构的种类物理架构:软件元件是怎样放到硬件上的软件系统的物理架构图13找讲师,就上中华讲师网 中国最大的培训讲师选聘平台软件软件架构的种类架构的种类系统架构系统架构:系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、 性能等。系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,是架 构设计工作中最为困难的工作。架构的两要素:元件划分和设计决定。 元件划分元件划分 一个软件系统中的元件首先是逻辑元件。这些逻辑元件如何放到硬件上,以 及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等
18、做出贡献,是非常重要的信息。设计决定设计决定 进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它 们如何影响到系统的所有非功能性特征。这些决定中会有很多是一旦作出, 就很难更改的。14找讲师,就上中华讲师网 中国最大的培训讲师选聘平台元件划分元件划分一个软件系统中的元件首先是逻辑元件。这些逻辑元件如何放到硬件上,以及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等做出贡献,是非常重要的信息。 设计决定设计决定进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它们如何影响到系统的所有非功能性特征。这些决定中会有很多是一旦作出,就很难更改的。 架构设计
19、的要素15找讲师,就上中华讲师网 中国最大的培训讲师选聘平台视图可以表示系统的整体设计,但构架与以下几个具体方面相关:模型的结构,即组织模式,例如分层。 基本元素,即关键用例、主类、常用机制等,它们与模型中的各元素相对。几个关键场景,它们表示了整个系统的主要控制流程。 记录模块度、可选特征、产品线状况的服务。 构架视图在本质上是整体设计的抽象或简化,它们通过舍弃具体细节来突出重要的特征。在考虑以下方面时,这些特征非常重要: 系统演进,即进入下一个开发周期。 在产品线环境下复用构架或构架的一部分。 评估补充质量,例如性能、可用性、可移植性和安全性。 向团队或分包商分配开发工作。 决定是否包括市售
20、构件。 插入范围更广的系统。 构架重点 16找讲师,就上中华讲师网 中国最大的培训讲师选聘平台17目录目录软件架构导引软件架构导引业务建模业务建模 & UML需求分析需求分析找讲师,就上中华讲师网 中国最大的培训讲师选聘平台监控监控监控监控配置与变更管理项目管理环 境现监控监控监控监控配置与变更管理项目管理环 境监控监控监控监控配置与变更管理项目管理环 境现RUP 统一开发过程18找讲师,就上中华讲师网 中国最大的培训讲师选聘平台 业务建模流程19找讲师,就上中华讲师网 中国最大的培训讲师选聘平台评估业务状态评估业务状态关键工件关键工件获取常用业务词汇业务前景维护业务规则目标组织评估评
21、估目标组织业务建模指南设定和调整目标业务词汇表制定业务建模指南业务规则说明当前业务说明当前业务关键工件关键工件评估目标组织目标组织评估找出业务主角和用例业务用例模型设定和调整目标业务用例找出业务角色和实体补充业务说明业务前景业务对象模型业务用例实现确定业务流程确定业务流程关键工件关键工件维护业务规则业务规则设定和调整目标业务前景定义业务构架业务构架文档获取常用业务词汇业务词汇表找出业务主角和用例业务用例模型业务用例补充业务说明业务建模过程过程20找讲师,就上中华讲师网 中国最大的培训讲师选聘平台完善业务流程完善业务流程关键工件关键工件详细说明业务用例业务用例模型审核业务用例模型业务用例调整业务
22、用例模型的结构补充业务说明审核记录设计业务流程的实现设计业务流程的实现关键工件关键工件获取常用业务词汇业务词汇表找出业务角色和实体业务对象模型维护业务规则业务用例实现定义业务构架业务规则业务构架文档完善角色和职责完善角色和职责关键工件关键工件详细说明业务实体业务角色详细说明业务角色业务实体审核业务对象模型组织单元审核记录业务建模过程过程21找讲师,就上中华讲师网 中国最大的培训讲师选聘平台研究流程自动化研究流程自动化关键工件关键工件设定和调整目标业务前景定义自动化需求用例模型分析模型补充说明开发领域模型开发领域模型关键工件关键工件维护业务规则业务规则获取常用业务词汇业务词汇表详细说明业务实体业
23、务对象模型找出业务角色和实体业务实体审核业务对象模型审核记录业务前景业务规则业务前景审核记录用例模型目标组织评估业务用例模型业务对象模型业务角色分析模型业务建模指南业务用例业务用例实现业务实体补充说明业务词汇表补充业务说明业务构架文档组织单元业务建模关键工件业务建模过程过程22找讲师,就上中华讲师网 中国最大的培训讲师选聘平台1。从涉众中找出用户。从涉众中找出用户。并定义这些用户之间的关系。在ROSE中,应该使用business actor 类型。2。找出每个用户要做的事,即业务用例,找出每个用户要做的事,即业务用例,在ROSE中应使用Business use case类型。请参考用例的类型与
24、粒度有关文章以帮助确定用例的粒度。建议为每一个business actor绘制一个业务用例图,这能很好的体现以人为中心的分析模式,并且不容易漏掉business actor需要做的事。而且在以参与者为中心的视图不要漏掉某个业务用例的参与者。3。利用业务场景图帮助分析业务流程,利用业务场景图帮助分析业务流程,在ROSE中,这个阶段最好使用活动图使用活动图Activity diagram。在这个阶段,业务场景图非常重要,在绘制过程中,系统分析员必须采用第一步中定义的用户名字作为泳道名用户名字作为泳道名,使用第二步中定义的业务用例名作业务用例名作 为活动名为活动名来绘制。必须这么做的原因是,如果你无
25、法把利用已经定义出来的 business actor 和 business use case完备的描绘业务流程,那么一定是前面的定义出问题了,你需要回头审视是否 business actor 和 business use case定义不完善或错误。如果不是所有的business actor 和 business use case 都被用到,要么应该检查业务流程调研时漏了什么,要么应该检查是否定义了一些无用的business actor 和 business use case 。同时,绘制业务场景图绘制业务场景图也非常有助于选择合适的用例粒度并保持所有的用例都是同一粒度。4。绘制用例场景图。绘制
26、用例场景图。与业务场景图不同的是,用例场景图只针对一个用例绘制该用例的执行过程。使用的是activity diagram。在用例场景图用例场景图的绘制中,必须使用使用第一步中定义的业务业务用户作为泳道用户作为泳道。必须这么做的原因是,它能帮助你发现发现在定义业务用例图时的错误,比如是是 否漏掉了某个业务用例的潜在使用者否漏掉了某个业务用例的潜在使用者。不是每个业务用例都需要绘制场景图,只有两三个步骤的业务用例是不必一定绘制业务用例图的,但仍然需要在业务用例规约文档中写明。业务建模一般步骤和方法23找讲师,就上中华讲师网 中国最大的培训讲师选聘平台业务建模一般步骤和方法5。从从3 或或 4 中绘
27、制的活动图中找到每一步活动将使用到的或产生的结果中绘制的活动图中找到每一步活动将使用到的或产生的结果。这是找到物的过程。找到后,应当建立这些物之间的关系。在ROSE中,这称为业务实体模型业务实体模型。应该使用business entity 类型。6。在上述过程中,随时补充词汇表在上述过程中,随时补充词汇表Glossary。将此过程中的所有业务词汇,专业词汇等一切在建模过程中使用到的需要解释的名词。这份文档将成为模型建立人与读者就模型达成一致理解的重要保证。7。根据业主,老板等涉众的期望审视建立好的模型,确定业务范围,决定哪些业务用例在根据业主,老板等涉众的期望审视建立好的模型,确定业务范围,决
28、定哪些业务用例在系统建设范围内系统建设范围内。那些不打算纳入建设范 围内的业务用例有两种情况,一种是该业务用例是被调用一方被调用一方,那么应该把它改为 boundary 类型,意味着将来它是一个外部接口外部接口。另一种是该业务用例主动调用主动调用系统内业务用例,那么应该将它改为business actor类型。与普通business actor不同的是,由业务用例转换而成的业务用例转换而成的business actor不是人不是人,而通常是一个外外部系统进程部系统进程,因此应该在被调用的系统内业务用例与它之间增加一个boundary元素,意味着我们的系统将为这样一个外部进程提供一个接口。严格来
29、说,那些需要纳入建设范围的business use case 应当对应的生成一个 business use case realization, 以后的设计工作将归纳到这些实现用例中。这一步并非很关键的,可将协作图,象活动图,类交互图等直接在协作图,象活动图,类交互图等直接在 business usecase下说明下说明。24找讲师,就上中华讲师网 中国最大的培训讲师选聘平台工作工作发现和定义涉众画定业务边界获取用例绘制用例场景图绘制业务实体模型(领域模型)编制词汇表业务建模要作的工作和涉众涉众涉众业主业主 业主是系统建设的出资方,投资者,它不一定是业务方。 业务提出者业务提出者 业务提出者是业
30、务规则的制定者,一般是指业务方的高层人物,比如CEO,高级经理等。业务管理者业务管理者 业务管理者是指实际管理和监督业务执行的人员,一般是指中层干部,起到将业务提出者的意志付诸实施,并监督底层员工工作的作用。业务执行者业务执行者 业务执行者是指底层的操作人员,是与将来的计算机直接交互最多的人员。第三方第三方第三方是指与这项业务而关联的,但并非业务方的其他人或事。承建方承建方是老板。老板的期望也是非常重要的。相关的法律法规相关的法律法规相关的法律法规是一个很重要的,但也最容易被忽视的涉众。用户用户用户是一个抽象的概念,是指预期的系统使用者。25找讲师,就上中华讲师网 中国最大的培训讲师选聘平台2
31、61997年,OMG组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML)。UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套IT专业人员期待多年的统 一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划。UML的主要创始人是Jim Rumbaugh、Ivar Jacobson和Grady Booch,他们最初都有自己的建模方法(OMT、OOSE和Booch),彼此之间存在着竞争。最终,他们联合起来创造了一种开放的标准。UML成为“标准”建
32、模语言是它与程序设计语言无关,UML符号集只是一种语言而不是一种方法学。它可以在不做任何更改的情况下很容易地适应任何公司的业务运作方式。UML不是一种方法学,它就不需要任何正式的工作产品,它提供了多种类型的模型描述图(diagram),使得开发中的应用程序更易理解。最常用的UML图包括:用例图、类图、序列图、状态图、活动图、组 件图和部署图。UML简介找讲师,就上中华讲师网 中国最大的培训讲师选聘平台27用例图描述了系统提供的一个功能单元功能单元。它的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的角色角色 (actors,也就是与系统交互的其他实体)关系,以及系
33、统内用例之间的关系。用例图一般表示出用例的组织关系-要么是整个系统的全部用例,要么是完 成具有功能(例如,所有安全管理相关的用例)的一组用例。要在用例图上显示某个用例,可绘制一个椭圆椭圆,然后将用例的名称放在椭圆的中心或椭圆下面的中间位 置。要在用例图上绘制一个角色(表示一个系统用户),可绘制一个人形符号人形符号。角色和用例之间的关系使用简单的线段线段来描述,如上图所示。用例图找讲师,就上中华讲师网 中国最大的培训讲师选聘平台28类 图表示不同的实体(人、事物和数据)如何彼此相关;它显示了系统的静态结构系统的静态结构。类图可用于表示逻辑类逻辑类,逻辑类通常就是业务人员所谈及的事物种类事物种类
34、。类图还可用于表示实现类实现类,实现类就是程序员处理的实体处理的实体。实现类图或许会与逻辑类图显示一些相同的类。然而,实现类图不会使用相同的属性来描述,因为它很可能具有对诸如Vector和HashMap这种事物的引用。 类在类图上使用包含三个部分的矩形来描述,如右上图所示。最上面的部分显示类类的名称的名称,中间部分包含类的类的属性属性,最下面的部分包含类类的操作的操作(或者说方法)。在右下图这样的类图中使用带有三角形顶点三角形顶点指向父类的箭头的线段来绘制继承继承关系关系。如果两个类都彼此知道对方,则使用实线实线来表示关联关系;如果只有其中一个类知道该关联关系,则使用开箭头开箭头表示。在上 图
35、中,可看到继承关系和两个关联关系。CDSalesReport类继承自Report类。一个CDSalesReport类与一个CD类关联,但是CD类并不知道关于CDSalesReport类的任何信息。CD类和Band类都彼此知道对方,两个类彼此都可以与一个或者多个对方类相关联。 一个类图可以整合其他许多概念。类图找讲师,就上中华讲师网 中国最大的培训讲师选聘平台29序列图显示具体用例(或者是用例的一部分)的详细流程流程。它几乎是自描述的,并且显示了流程中不同对象之间的调用关系,同时还可以很详细地显示对不同对对不同对象的不同调用象的不同调用。 序列图有两个维度:垂直维度以发生的时间顺序时间顺序显示消
36、息/调用的序列;水平维度显示消息被发送消息被发送到的对象实例到的对象实例。 序列图的绘制非常简单。横跨图的顶部,每个框(见右图)表示每个类的实例(对象)。在框中,类实例名称和类名称之间用空格/冒号/空格来分隔,例如,myReportGenerator : ReportGenerator。如果某个类实例向另一个类实例发送一条消息,则绘制一条具有指向接收类实例的开箭头的连线,并把消息/方法的名称放在连 线上面。对于某些特别重要的消息,您可以绘制一条具有指向发起类实例的开箭头的虚线,将返回值标注在虚线上。绘制出包括返回值的虚线, 可以使得序列图更易于阅读。 阅读序列图是从左上角启动序列的“驱动”类实
37、例开始,然后顺着每条消息往下阅读。序列图找讲师,就上中华讲师网 中国最大的培训讲师选聘平台30状态图表示某个类所处的不同状态和该类的状态转换信息。每个类都有状态,但不是每个类都应该有一个状态图。只对“感兴趣的”状态的类(在系统活动期间具有三个或更多潜在状态的类)才进行状态图描述。 状态图的符号集包括5个基本个基本元素元素:初始起点使用实心圆实心圆来绘制;状态之间的转换使用具有开箭头的线段开箭头的线段来绘制;状态使用圆角矩形圆角矩形来绘 制;判断点使用空心圆空心圆来绘制;一个或者多个终止点使用内部包含实心圆的圆包含实心圆的圆来绘制。要绘制状态图,首先绘制起点和一条指向该类的初始状态的转换线段。状
38、态本身可以在图上的任意位置绘制,然后只需使用状态转换线条将它们连接起来。从上图中可以看出贷款处理系统最初处于Loan Application状态。当批准前(pre-approval)过程完成时,根据该过程的结果,或者转到Loan Pre-approved状态,或者转到Loan Rejected状态。这个判断(它是在转换过程期间做出的)使用一个判断点来表示-即转换线条间的空心圆。通过该状态图可知,如果没有经过Loan Closing状态,贷款不可能从Loan Pre-Approved状态进入Loan in Maintenance状态。而且,所有贷款都将结束于Loan Rejected或者Loan
39、 in Maintenance状态。状态图找讲师,就上中华讲师网 中国最大的培训讲师选聘平台31活动图表示在处理某个活动时,两个或者更多类对象之间的过程控制流过程控制流。活动图可用于在业务单元的级别上对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。活动图最适合用于对较高级别的过程建模,比如公司当前在如何运作业务,或者业务如何运作等。这是因为与序列图相比,活动图在表 示上“不够技术性的”。 活动图的符号集与状态图中使用的符号集类似。像状态图一样,活动图也从一个连接到初始活动的实心圆实心圆开始。活动是通过一个圆角矩形圆角矩形(活动的名称包含在其内)来表示的。活动可以通过转换转换线段
40、线段连接到其他活动,或者连接到判断判断点点,这些判断点连接到由判断点的条件所保护的不同活动。结束过程的活动连接到一个终止点终止点(就像在状态图中一样)。作为一种选择,活动可以分组为泳道(swimlane),泳道用于表示实际执行活动的对象。活动图找讲师,就上中华讲师网 中国最大的培训讲师选聘平台32组件图提供系统的物理视图物理视图。它的用途是显示系统中的软件对其他软件软件对其他软件组件(例如,库函数)的依赖关系组件(例如,库函数)的依赖关系。组件图可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组件包层次2上显示。 组件图的建模最适合通过例子来描述。下图显示了4个组件:Report
41、ing Tool、Billboard Service、Servlet 2.2 API和JDBC API。从Reporting Tool组件指向Billboard Service、Servlet 2.2 API和JDBC API组件的带箭头的线段,表示Reporting Tool依赖于那三个组件。 组件图找讲师,就上中华讲师网 中国最大的培训讲师选聘平台33部署图表示该软件系统如何部署到硬件环境中软件系统如何部署到硬件环境中。它的用途是显示该系统不同的组件将在何处物理地运行,以及它们将如何彼此通信。因为部署图是对物理运行情况进行建模,系统的生产人员就系统的生产人员就可以很好地利用这种图可以很好地
42、利用这种图。 部署图中的符号包括组件图中所使用的符号元素,另外还增加节点节点的概念。一个节点可以代表一台物理机器,或代表一个虚拟机器节点(例如,一个 大型机节点)。要对节点进行建模,只需绘制一个三维立方体三维立方体,节点的名称位于立方体的顶部。所使用的命名约定与序列图中相同:实例名称 : 实例类型(例如, : Application Server)。部署图用户使用运行在本地机器上的浏览器访问 Reporting Tool,并通过公司intranet上运行在名为的Application Server上的HTTP协议连接到Reporting Tool组件。Reporting Tool组件绘制在IB
43、M WebSphere内部,后者又绘制在节点内部。 Reporting Tool使用Java语言通过IBM DB2数据库的JDBC接口连接到它的报告数据库上,然后该接口又使用本地DB2通信方式,与运行在名为的服务器上实际的DB2 数据库通信。Report Tool组件还通过HTTPS上的SOAP与Billboard Service进行通信。找讲师,就上中华讲师网 中国最大的培训讲师选聘平台1。从涉众中找出用户。2。找出每个用户要做的事,即业务用例业务建模实例34找讲师,就上中华讲师网 中国最大的培训讲师选聘平台业务视图3。针对每项业务视图绘制业务场景图业务建模实例35找讲师,就上中华讲师网 中
44、国最大的培训讲师选聘平台嵌入GRC的业务建模实例36找讲师,就上中华讲师网 中国最大的培训讲师选聘平台37目录目录软件架构导引软件架构导引业务建模业务建模 & UML需求分析需求分析找讲师,就上中华讲师网 中国最大的培训讲师选聘平台38需求流程找讲师,就上中华讲师网 中国最大的培训讲师选聘平台分析问题分析问题关键工件关键工件获取常用词汇词汇表确定前景前景找出主角和用例用例模型制定需求管理计划管理需求计划理解涉众需要理解涉众需要关键工件关键工件获取常用词汇词汇表确定前景前景获取涉众请求涉众请求找出主角和用例用例模型管理需求依赖关系补充说明审核变更请求定义系统定义系统关键工件关键工件确定前
45、景词汇表获取常用词汇用例模型找出主角和用例补充说明管理需求依赖关系39找讲师,就上中华讲师网 中国最大的培训讲师选聘平台40限定系统范围限定系统范围关键工件关键工件确定前景软件构架文档管理需求依赖关系确定用例的优先级审核变更请求完善系统定义完善系统定义关键工件关键工件详细说明用例补充说明详细说明软件需求用例用户界面建模软件需求说明设计用户界面原型用例场景示意用户界面原型管理需求变更管理需求变更关键工件关键工件管理需求依赖关系需求管理计划审核变更请求软件需求说明审核需求补充说明调整用例模型的结构用例模型词汇表涉众请求用例需求管理计划前景用例模型软件需求说明用例模型补充说明用例场景示意管理需求计划
46、软件构架文档用户界面原型需求关键工件需求关键工件:找讲师,就上中华讲师网 中国最大的培训讲师选聘平台41分析设计流程找讲师,就上中华讲师网 中国最大的培训讲师选聘平台定义备选构架定义备选构架关键工件关键工件制定设计指南软件构架文档确定用例的优先级用例实现构架分析分析模型用例分析参考构架提交变更请求部署模型完善构架完善构架关键工件关键工件确定用例的优先级软件构架文档说明运行时构架设计类说明分布设计模型确定设计机制设计包确定设计元素设计子系统整合现有设计元素接口审核构架建立实施模型分析行为分析行为关键工件关键工件用例分析设计类确定设计元素设计模型制定系统集成计划设计包审核设计设计子系统接口工作版本
47、整合计划分析模型用例实现42找讲师,就上中华讲师网 中国最大的培训讲师选聘平台设计构件设计构件关键工件关键工件类的设计构件子系统设计设计子系统用例设计接口审核上述设计用例实现实施构件测试构件单元测试设计实时构件设计实时构件关键工件关键工件类的设计设计类封装体设计封装体子系统设计协议用例设计构件审核上述设计设计子系统实施构件接口单元测试用例实现测试构件设计数据库设计数据库关键工件关键工件类的设计设计类数据库设计数据模型审核上述设计构件实施构件43找讲师,就上中华讲师网 中国最大的培训讲师选聘平台I E E E软件工程标准词汇表( 1 9 9 7年)中定义需求为:(1)用户解决问题或达到目标用户解
48、决问题或达到目标所需的条件或权能条件或权能( C a p a b i l i t y)。(2)系统或系统部件要满足系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的 条件或权能条件或权能。(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明文档说明。软件需求包括三个不同的层次:业务需求业务需求( business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例( use case)文档或方案脚本( s c
49、 e n a r i o)说明中予以说明。功能需求功能需求(functional requirement)定义了开发人员必须实现的软件功能也包括非功能需求,使得用户能完成他们的任务,从而满足了业务需求。所谓特性( f e a t u r e )是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。软件需求的定义和层次44找讲师,就上中华讲师网 中国最大的培训讲师选聘平台方法方法1、 会谈、询问:围绕软件目标提出具体问题;2、 调查表:经过仔细考虑的书面回答可能比会谈中的回答更加准确;3、 收集分析客户使用的各种表格、有关工作责任、工作流程、工作规范、相关数据标准、 业务标准的各种文
50、字资料;4、 收集同类相关产品的宣传资料、技术资料、演示程序或软件程序;5、 情景分析:利用情景分析诱导用户能够把它们的需求告知分析员(可以描述当前一项 业务怎么做、也可以描述设想的系统中此项业务怎么做);6、 可视化方法:结和情景分析,利用画用户界面图、业务流程图、功能结构图、时序图 等图形与客户进行讨论。策略策略1、 首先确定用户的软件开发目标,确定系统基本范围确定系统基本范围,然后围绕这一目标,确定要访问 的部门和人员,要了解的业务,在基本范围内展开调研;2、 以部门职责为基础搞清各种现有业务、要填写的表簿册文档报表等,其数据来源及去数据来源及去 向向;3、 以业务为主线以业务为主线,搞
51、清每个业务的每个环节的流程关系、涉及部门、输入输出项;4、 以数据为主线以数据为主线,搞清数据采集方式、数据流向、数据之间的内在联系;5、 搞清哪些业务或数据是已建系统的,它们和新系统的关系是衔接还是替换是衔接还是替换;6、 应思考是否有新技术可以改进现有工作,用户提出的需求用现有技术能否实现现有技术能否实现。需求调研方法和策略45找讲师,就上中华讲师网 中国最大的培训讲师选聘平台需求工程和需求分析46找讲师,就上中华讲师网 中国最大的培训讲师选聘平台软件需求各个部分之间的关系47找讲师,就上中华讲师网 中国最大的培训讲师选聘平台(1) 获得当前系统的物理模型获得当前系统的物理模型:首先分析、
52、理解当前系统是如何运行的,了解当前系统的组织机构、输入输出、资源利用情况和日常数据处理过程,并用一个具体的模型来反映自己对当前系统的理解。此步骤也可以称为“业务建模业务建模”,其主要任务是对用户的组织机构或企业进行评估评估理解他们的需要及未来系统要解决的问题,然后建立一个业务USECASE模型和业务对象模型。当然如果系统相对简单,也没必要大动干戈区进行业务建模,只要做一些简单的业务分析业务分析即可。(2) 抽象出当前系统的逻辑模型抽象出当前系统的逻辑模型:在理解理解当前系统“怎样做怎样做”的基础上,取出非本质因素,抽取抽取 出“做什么做什么”的本质。(3) 建立目标系统的逻辑模型建立目标系统的
53、逻辑模型:明确目标系统要“做什么做什么”(4) 对逻辑模型的补充对逻辑模型的补充,如用户界面、启动和结束、出错处理、系统输入输出、系统性能、其他 限制等等。需求分析的任务48找讲师,就上中华讲师网 中国最大的培训讲师选聘平台1、 必须能够表达和理解问题的数据域和功能域必须能够表达和理解问题的数据域和功能域:系统的目的都是为了解决数据处 理问题,就是将一种形式的数据转换(输入、处理、输出)为另一种形式的数 据。数据域应包括数据流数据流、数据内容数据内容和数据结构数据结构。数据流是数据通过系统时的 变化方式变化方式。对数据进行转换就是程序的功能或子功能,两个转换之间的数据传 递确定了功能间的接口。
54、数据内容就是数据项数据项,如人的数据项包括姓名、性别、 出生日期等等。数据结构即各种数据项的逻辑组织逻辑组织,如是表格结构还是树形结 构、数据项间的相互关系。2、 必须按自顶向下、逐层分解的方式对问题进行分解和不断细化必须按自顶向下、逐层分解的方式对问题进行分解和不断细化:软件的功能域 和信息与都能做进一步的分解,可以是同一层次上的横向分解,也可以是多层 次上的纵向分解。3、 给出系统的逻辑模型和物理模型给出系统的逻辑模型和物理模型:逻辑模型给出软件要达到的功能达到的功能和要处理的 数据数据之间的关系关系;物理模型给出处理功能处理功能和数据结构数据结构的实际表示形式实际表示形式。需求分析的要求
55、49找讲师,就上中华讲师网 中国最大的培训讲师选聘平台1提取出核心、主要、急迫的业务,明晰业务流程提取出核心、主要、急迫的业务,明晰业务流程 从用户繁杂的业务中提取出用户核心的、主要的、急需的业务,根据需要制定业务/管理流程。2运用先进的管理思想,优化业务运用先进的管理思想,优化业务/管理流程管理流程采用了网络计算机等新的技术手段和方式,必将改变原有的业务/管理流程。根据对用户业务的理解,考虑是否可以运用先进的管理思想,比如在基于基于GRC的的ERP、SCM、CRM、JIT、EIA、E-Business等等管理模型,进行现有业务/管理流程的重组或优化,当然这需要得到客户的认同并且在软件实施时需
56、要相应的管理制度配套执行相应的管理制度配套执行。3进行业务分类,规划系统蓝图进行业务分类,规划系统蓝图描绘系统蓝图包括描述系统、子系统、模块,各子系统模块之间的数据接口关系,基础数据流等等。这个过程需要整理、抽象用户业务,规划软件实现,规划软件系统模块间的逻辑关系。系统的页面实现是按照系统模块的规划,应尽量采用用户易理解、熟悉的方式用户易理解、熟悉的方式、词语进行模块的描述。4详细描述软件功能点详细描述软件功能点这包含功能点的说明、优先级、业务规则、详细功能描述和操作等等。这些也是软件需求规格必须描述的内容。需求分析的表现方式,采用需求规格文档,UML语言描述的用例图、类图、活动图,还有实体关
57、系图、界面原型等等,从不同角度、不同需求不同角度、不同需求描述规划出的软件全貌。5需求分析的质量控制需求分析的质量控制质量控制是通过内部评审和同行评审的方式,然后是客户方的评审。项目组内部评审或同行评审主要是根据公司规范和评审人员本身的经验对需求分析中不明确、不合理、不符合逻辑、不不明确、不合理、不符合逻辑、不符合规范符合规范的地方予以指正。而客户的评审客户的评审主要是对描述的软件实现是否真正符合他们的需求符合他们的需求,能否帮助他们解决问题等方面作出评定。 需求分析的工作50找讲师,就上中华讲师网 中国最大的培训讲师选聘平台(1) 问题识别问题识别:解决目标系统做什么,做到什么程度。需求包括
58、:功能、性能、环境、可靠 性、安全性、保密性、用户界面、资源使用、成本、进度。同时建立需求调查分析所需 的通信途径。(2) 分析与综合分析与综合:从数据流和数据结构出发,逐步细化所有的软件功能,找出各元素之间的 联系、接口特性和设计上的限制,分析它们是否满足功能要求并剔除不合理部分,综合 成系统解决方案,给出目标系统的详细逻辑模型。常用的分析方法有面向数据流的结构 化分析方法SA(数据流图DFD、数据词典DD、加工逻辑说明)、描绘系统数据关系的 实体关系图ERD、面向数据结构的Jackson方法JSD、面向对象分析方法OOA(主要用 UML)、对于有动态时序问题的软件可以用形式化技术,包括有穷
59、状态机FSM的状态 迁移(转换)图STD、时序图、Petri网或Z。每一种分析建模方法都有其优势和局限性, 可以兼而有之以不同角度分析,应该避免陷入在软件需求方法和模型中发生教条的思维 模式和派系斗争,一般来说结构化方法用于中小规模软件、面向对象方法用于大型软件。需求分析的过程51找讲师,就上中华讲师网 中国最大的培训讲师选聘平台(3) 编制需求分析文档编制需求分析文档 描述需求的文档称为软件需求软件需求规格说明书规格说明书,需求分析阶段的成果是 向下一阶段提交的需求规格说明书。(4) 需求评审需求评审 对功能的正确性,完整性和清晰性,以及其它需求给予评价.评审通过评审通过才 可进行下一阶段的工作,否则重新进行需求分析。需求分析的过程52找讲师,就上中华讲师网 中国最大的培训讲师选聘平台原型化方法原型化方法就是尽可能快地建造一个粗糙的系统,实现目标系统的某些或全部功能。但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷。建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性、技术的可行性、或考察是否满足用户的需求等。这个系统只是一个界面,然后听取用户的意见,改进这个原型,以后的目标系统就在原型系统的基础上开发。原型主要有三种类型:探索型、实验型、进化型.探索型探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省苏州市新草桥中学2025届中考联考生物试题含解析
- 江苏省南通市通州区十总中学2025届中考生物四模试卷含解析
- 宁夏吴忠三中学2025届中考生物对点突破模拟试卷含解析
- 2025届河南省洛阳市偃师市重点名校中考生物考前最后一卷含解析
- 广西壮族自治区桂平市市级名校2025届中考冲刺卷生物试题含解析
- 人教版八年级物理下册《第七章力》单元检测卷带答案
- 人教版小学数学一年级上册全册教案
- 三年级下册数学表格式教案
- 学校校长事迹及现实表现材料
- 充电桩短路、故障自燃应急预案
- DB11T 356-2017 公共厕所运行管理规范
- 信息安全意识培训课件
- 中学食堂食品安全保障机制舆情管理方案
- 企业供应链管理软件使用合同
- 中考化学酸碱盐知识点性质归纳
- 新教科版四上科学3.5《运动与摩擦力》教案(新课标)
- 四川省绵阳市2023-2024学年高一上学期期末检测英语试题(解析版)
- 2024年中国电科集团春季招聘公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 绿化养护服务整体养护方案
- 医院护理培训课件:《压力性损伤(压疮)的分期及预防》
- 小说训练-景物描写的作用-高考语文二轮复习训练
评论
0/150
提交评论