软件体系结构文档 修订历史记录
软件体系结构文档 简介![]() 1.1 目的本文档使用许多不同的体系结构视图来描述系统的多个方面,对系统进行了全面的体系结构概述。其目的是捕获和传达对系统作出的重要体系结构决策。 1.2 范围本软件体系结构文档概述了课程注册系统的体系结构。课程注册系统是由 Wylie College 开发的,用来支持在线课程注册。 根据在 Rose 中实施的课程注册分析与设计模型,直接生成本文档。已经从使用 SoDA 的 Rose 模型和软件体系结构文档模板抽取出大多章节。 1.3 定义、首字母缩写词和缩写请参阅词汇表 [4]。 1.4 参考资料
![]()
![]()
![]() 4.1 对体系结构重要的用例 图名称:对体系结构重要的用例
4.1.1 结束注册 简短描述:此用例允许登记员结束注册过程。报名学生不够的课程将被取消。提供课程中必须至少有三名学生。 会通知记帐系统未取消的每门课程安排中的每名学生,这样学生可支付课程费用。此用例的主要参与者是登记员。 记帐系统是此用例中涉及到的参与者。 4.1.2 登录 简短描述:此用例描述了用户如何登录到课程注册系统中。启动此用例的参与者是学生、教授和登记员。 4.1.3 维护教授信息 简短描述:此用例允许登记员维护注册系统中的教授信息。包括添加和修改教授,以及从系统删除教授。此用例的参与者是注册员。 4.1.4 选择要教授的课程 简短描述:此用例允许教授针对有资格教授并想在下个学期教授的课程,根据课程目录选择要教授的课程(将给出特定于日期和时间的课程)。 启动此用例的参与者是教授。 课程目录系统是用例中的参与者。 4.1.5 注册课程 简短描述:此用例允许学生注册当前学期要学习的课程。如果是在学期开始时的添加/删除阶段,学生还可修改或删除选择的课程。 会向记帐系统通知所有的注册更新。 课程目录提供当前学期所有课程安排的列表。此用例的主要参与者是学生。课程目录系统是用例中的参与者。 4.1.6 查看报告卡 简短描述:此用例允许学生查看之前结束的学期的报告卡。学生是此用例的参与者。 4.1.7 提交学生评分 简短描述:此用例允许教授提交学生在前一学期完成的一门或多门课程的分数。此用例的参与者是教授。 4.1.8 维护学生信息
![]() 描述体系结构的逻辑视图。描述最重要的类、服务包和子系统中的类组织,以及各层中这些子系统的组织。 还描述最重要的用例实现,例如,体系结构的动态方面。必须包含类图以阐明对体系结构重要的类、子系统、包和层之间的关系。 课程注册系统的逻辑视图由三个主要包组成:用户界面、业务服务和业务对象。 用户界面包包含参与者用来与系统通信的所有表单的类。边界类用于支持登录、维护进度安排、维护教授信息、选择课程、提交评分、维护学生信息、结束注册和查看报告卡。 业务服务包包含用于连接财务系统、控制学生注册和管理学生评估的控制类。 业务对象包包含用于大学工件(即课程安排和进度安排)的实体类和用于连接课程目录系统的边界类。
5.1.1 应用程序 层 此应用层包含表示用户看得到的应用程序屏幕的所有边界类。该层依赖于“进程对象”层,它连接中间层到客户端。 5.1.2 业务服务 层 “业务服务”流程层包含表示驱动应用程序行为的用例管理器的所有控制器类。该层表示客户端到中间层的边界。 “业务服务”层依赖于“进程对象”层,它连接中间层到客户端。
层 “中间件”层支持访问 Relational DBMS 和 OODBMS。
![]() 描述体系结构的流程视图。描述系统执行中涉及的任务(进程和线程)以及任务的交互和配置。 还描述向任务分配的对象和类。 “流程模式”说明按可执行流程组织的课程注册类。流程可支持学生注册、教授功能、结束注册以及访问外部财务系统和课程目录系统。
图名称:流程 6.1.1 CourseCatalogSystemAccess 此流程管理对旧课程目录系统的访问。多个用户在注册课程时可共享该流程。 可以高速缓存最近检索到的课程和安排情况以提高性能。 CourseCatalog 流程、CourseCache 和 OfferingCache 中的独立线程用于从旧系统异步检索项。 分析机制: - 旧接口 需求可跟踪性: - 设计约束:系统应该与现有旧系统(课程目录数据库)集成。
6.1.2 CourseCatalog 包含大学提供的所有课程和课程安排的完整目录(包含以前学期提供的课程)。 此类充当适配器(请参阅 Gamma 模式)。它的作用是确保可以通过子系统的 ICourseCatalog 接口访问 CourseCatalogSystem。
6.1.3 CourseRegistrationProcess 对于每个当前正在注册课程的学生,提供一个此流程的实例。
6.1.4 RegistrationController 它支持允许学生注册当前学期课程的用例。如果是在学期开始时的添加/删除阶段,学生还可修改或删除选择的课程。 分析机制: - 分发
6.1.5 StudentApplication 管理学生功能,包括用户界面处理和与业务流程协调。 对于每个当前正在注册课程的学生,提供一个此流程的实例。
6.1.6 MainStudentForm 控制学生应用程序的接口。控制学生使用的系列表单。
6.1.7 BillingSystemAccess 此流程与外部财务(记帐)系统通信,从而启动学生记帐。
6.1.8 CloseRegistrationProcess “结束注册”流程是在注册阶段结束时启动的。此流程与控制财务系统访问的流程通信。
6.1.9 BillingSystem 财务系统支持针对学生在当前学期注册的课程,提交学生帐单。 分析机制: - 旧接口
6.1.10 CloseRegistrationController “结束注册控制器”控制对财务系统的访问。 分析机制: - 分发
图名称:设计元素的流程 6.2.1 CourseCache
6.2.3 Course 课程的特定安排,包括一周的天数和次数。 分析机制: - 持久性 - 旧接口
6.4 实施的流程 图名称:实施的流程
* “远程”接口用于识别所有远程对象。远程对象都必须直接或间接的实施此接口。 只有在远程接口中指定的方法才可以远程使用。 * 实施类可以实施任意个远程接口,并且可以扩展其他远程实施类。 6.4.2 可运行 * 可运行接口应该由通过线程执行实例的任何类来实施。类定义的方法中不能有名为 run 参数。 * 此接口旨在为要执行代码的活动对象提供公用协议。例如,可运行是由类线程实施的。 * 处于活动状态仅表示线程已启动且还未停止。
* thread 是程序中执行的线程。Java 虚拟机允许应用程序同时执行多个线程。 * 每个线程都有优先级。优先级较高的线程比优先级较低的线程先执行。也可以将每个线程标记或不标记为守护程序。当在某个线程中运行的代码新建线程对象时,新线程的初始优先级与创建线程的优先级相同,并且仅当创建线程是守护程序时新线程才为守护程序线程。
7. 部署视图 体系结构的部署视图描述大多数典型平台配置的各种物理节点。还描述(从流程视图)为实际节点分配的任务。 这部分是由物理网络配置组织的,每个此类配置都是由一个部署图说明,后跟每个处理器的流程映射。 图名称:部署视图 学生使用外部台式 PC(通过因特网拨号连接到 College 服务器)注册课程。 学生通过本地台式 PC(通过 LAN 直接连接到 College 服务器)注册课程。教授还会使用这些本地 PC 选择课程并提交学生评分。登记员使用这些本地 PC 维护学生信息和教授信息。 注册服务器是主要的校园 UNIX 服务器。所有教员和学生都可以通过校园 LAN 访问服务器。 课程目录系统是一个旧系统,它包含完整的课程目录。可以通过 College 服务器和 LAN 访问该系统。 记帐系统(也称为“财务系统”)是一个旧系统,生成学生在每个学期的帐单。
![]()
![]()
|
|