已阅第14小时和教程。涉及单选题。
本章在RM-ODP(参考模型-开发分布式进程)多视点架构模型上,探讨应用于分布式信息系统的软件架构方法,对软件生命手气其它阶段的影响,特别是架构师在开发过程中的任务与作用。
开放分布进程的参考模型(RM-ODP)是一个ISO标准,它为分布式计算进程提供了一个框架。其定义了5个视点(企业视点、信息视点、计算视点、工程视点、技术视点)和整个系统及架构开发的10个过程,如下图所示:
不同视图解决不同方面的内容,这是应对复杂问题的基本研究方法(分治)。
1. 定义
系统构想是指系统开发人员与用户之间的共同协议。按照该协议,系统开发人员需要在特定的时间内完成用户的需求。
构想描述了从需求分析开始的所有项目活动的语境,它高度概括了企业业务架构的核心内容。
2. 架构师的作用
系统构想阶段,架构师合理的介入,有以下好处:
1. 架构师的工作
架构师对需求分析通常考察6个方面的内容:
架构师的一个有效的捕捉行为需求的方法是分析用例。
2. 需求分析的任务
目的:完整、准确地描述用户对系统的需求,跟踪用户需求的变化。
特点:追求系统需求的完整、一致性和验证性
1. ODP视点
开发分布式处理(Open Distributed Processing,ODP)从5个标准的视点组织分析了系统的架构,描述了同一系统的重要方面。
2. 企业业务架构(企业视点)
企业业务架构从IT的角度,对企业的业务结构、企业结构与业务的关系、企业内部的关系以及企业与外部起购的关系进行整理定义。
企业业务架构包含的内容:
3. 逻辑信息架构(信息视点)
逻辑信息架构表示出系统必须知道什么。这种架构通过一个对象模型来表达,强调定义系统状态的属性。
软件架构对象并不是编程的对象,它表示对系统的约束和依赖。这些约束能够消除在把需求翻译成软件过程中的许多猜测性工作。
4. 计算接口架构
它定义了顶层的应用程序接口,这些是完全工程化的子系统边界的接口。
ODP架构的一个ISO标准采用的是CORBA接口定义语言(IDL)。IDL是一种基本记法,它完全独立于编程语言和操作系统。IDL可以被编译器自动翻译成Java、C++、C#等大多数流行的编程语言。
5. 分布式工程架构
分布式工程架构定义了底层结构的需求,而独立于所选择的技术。其很好的解决了一些最复杂的系统策略,其中包括物理位置、系统规模可变性和通信服务质量。
在进行分布式工程架构建模时,必须考虑系统的各个方面,如对象复制、多线程和系统拓扑等。
6. 技术选择架构(技术视点)
技术选择架构确定了实际的技术选择,所有其它视点都独立于这些决定。
架构师选择的原因是非常重要的,因为这些观点可以作为以后架构约束的理由。
最终用户和架构师应在一起审核并贯穿于用例(业务场景、质量场景、易变场景)始终来证实需求的有效。
通过模型,管理层能够看到可视化的进展。
多数系统可以采用快速原型技术生成模型。
在完成上述任务之后,从构建的草图进而发展成产品原型。架构原型是很好的需求验证工具,它能够帮助利益相关人检测系统契合用户操作的程度。可以使用各种各样的方法(比如故事板)构建架构原型,而非编码一种。
架构框架是对系统架构的一种可运行验证工具,通过对系统的API定义的编译以及编写小程序来模拟运行的系统。架构框架用于正式计算和工程体系架构,包括穿越分布式边界的控制和定时。
为了构建实际的系统,初始的架构原型需要进行演化,一般会进过2到3次迭代后,架构变得稳定。主要的抽象对象已经被找到;子系统和过程都已经完成;所有的接口都已经明确定义。
在系统架构开发过程中,利用架构原型,至少有如下好处:
项目规划是一份已经通过批准的正式文档,它根据项目的目标,对项目实施进行的各项活动作出规定,以它为基准跟进和控制项目,确定未来的行动方案和资源分配,引导项目的实施。其主要作用是将制定规划的假设和决定以及批准的范围、成本、进度的基线等用正式的文档记录保存。
项目规划是基于当前已有的信息,包括过去的经验,当前的目标、范围、组织结构、资源等,工作活动、里程碑、质量目标和风险管理等,其中估算是项目规划的核心。
项目规划包含的内容:
1. 意义
提高软件生产率和改善软件质量。
2. 主要研究内容
3. 什么是开发子过程?
把软件系统的开发过程划分为若干个可以并行的部分,这个部分称之为子开发过程。子开发过程 = 开发小组 + 软件对象 + 对软件对象的开发活动。
4. 并行开发系统及其生命周期
把整个并行开发活动看作是一个并行系统,称为并行开发系统。子开发过程是对并行开发系统的一种动态描述,此系统中的实体是开发小组,实体属性是被开发的软件对象,行为是开发软件对象的活动。每个子开发过程完成一个子系统或一个模块的开发任务,当各个子开发过程都完成后,进行系统集成和测试,最终完成整个系统的开发。
5. 并行模块划分
并行模块的划分是并行开发中的核心问题,模块独立性是衡量软件设计质量的关键。有两种划分方法:基于Petri网系统模型的动态划分方法、基于脚本的系统划分方法。
6. 并行控制
并行控制是要用正确的方式调度并行操作,避免造成不一致性,使一个操作的执行不受其它操作的干扰。为保证开发出的系统内部各成分间的一致性、相容性,保证系统的正确性和可靠性,就要进行并行控制。常用的并行控制手段有加锁、时间戳、管程、Petri网和PV操作等。
1. 定义
系统转换是指运用某种方式由新的系统代替旧的系统的过程,也就是系统设备、系统数据和人员等方面的转换。
2. 准备工作
系统转换的准备工作:系统设备、数据、人员、有关文件(比如操作手册)的准备、系统试运行。
3. 转换方式
系统转换方式:
4. 注意事项
软件交付后,进入正常的运行操作与维护时期。
1. 系统操作与维护的内容
2. 系统的可维护性(是判定系统架构好坏的一个重要方面)
定义为:维护人员理解、改正、改动和改进这个软件的难易程度,提高可维护性是开发管理系统所有步骤的关键目的。
系统可维护性的评价指标:可理解性、可测试性、可修改性。
系统维护的分类:
系统维护的步骤:
1. 系统移植方法
2. 移植工作的阶段划分