六阶段六视图架构设计方法
架构设计一般分为6个阶段
预架构、概念架构、细化架构、架构微调、架构重构、架构重来
前三个阶段参见温昱老师的《一线架构师实践指南》
RUP的四个阶段为先启阶段、精化阶段、构建阶段、移交阶段。
先启阶段关注系统的需求,并进行预架构设计
精化阶段进行概念架构和细化架构设计,并验证架构的稳定性,根据需要进行架构微调。
当然构建阶段也会微调系统架构
系统构建移交后,随着需求的增加,系统频繁修改,使系统越来越复杂,越来越难于修改,就需要对系统进行架构微调,甚至架构重构。
一般产品都要有技术的延续性,就需要对产品进行架构重构。架构重构要比其他阶段都难,对已有系统的重构,需要了解熟悉已有系统,还要有大量成本投入。
随着时间的推移,技术的更新,有时重构也很难解决系统问题。这时就需要有足够的魄力,干脆推到重来;这需要BOSS认可未来的应用趋势,肯投入更多的人力财力。比如Nokia的塞班,某国外知名的网管产品。
RUP叫 4+1视图
即用例视图、逻辑视图、实现视图、进程视图、部署视图
我认为应该是4+1+1视图
即 再增加一个数据视图
基于多个并发视图的使用情况来说明描述软件密集型系统架构的模型。。
不同视图从不同角度,描述系统的不同侧面,分离不同干系人的关注点。
项目产品的主要干系人一般为系统用户、设计人员、开发人员、维护人员、实施人员等;使用6视图法从不同干系人角度分析其所关注的重点问题;但每种视图也不完全为一种用户所设计,只是更重要而已。
1. 用例视图从用户角度描述系统的边界、范围及用户要求的业务功能,关注业务场景;
2. 逻辑视图从设计者角度描述系统的高层分割,描述系统的核心构件的划分、职责及关系,关注系统的构件及交互;
3. 实现视图从开发者角度描述系统的程序单元及其依赖关系的静态结构及动态行为,关注开发期质量属性;
4. 进程视图从维护者角度描述系统的进程、线程的并发和同步关系,关注系统运行期质量;
5. 部署视图从安装实施人员角度描述系统从软件到硬件的映射,描述物理节点的分布及进程在物理节点上的分布,关注安装及部署要求;
6. 数据视图从设计者角度描述系统的核心数据模型及数据分布、数据架构,关注数据及其联系的抽象。
架构设计时6视图可以并发进行,互相质疑,互相促进,最终完成系统的整体架构。
非功能需求的用例表示法
分享到:
相关推荐
物理设计阶段,设计者会考虑如何在选定的DBMS上实现逻辑设计,包括表分区、索引设计、存储过程和触发器等,以优化查询性能和存储效率。 4.0 表汇总: 这部分列出所有的数据库表,包括表A到表N,每个表的结构、主键...
这个项目可能涉及到数据库架构设计、表结构规划、数据关系分析等多个方面,旨在提供一个高效、稳定且易于扩展的博客后台支撑。通过链接(https://blog.csdn.net/weixin_45981481/article/details/118333556)可以...
毕业设计通常包括需求分析、系统设计、编码、测试和文档编写等阶段。在这个过程中,学生可能会涉及以下关键知识点: 1. **ASP.NET基础**:理解ASP.NET的架构,包括页生命周期、服务器控件、视图状态、PostBack机制...
这个课程设计的主要目标是让学生通过实际操作理解并掌握软件程序设计的基本原理和方法,特别是C#编程语言在构建电子邮件客户端方面的应用。同时,通过实现电子邮件的发送功能,学生能够学习到网络通信协议,如SMTP...
【CRM数据库设计】是关于构建客户关系管理系统的数据存储架构的详细报告。这份14页的文档涵盖了数据库设计的关键方面,旨在确保高效、安全且适应性强的系统。以下是该报告中涉及的重要知识点: 1. **文档介绍**:这...
- 文档状态:文档状态是跟踪其生命周期的关键,草稿表示初步制定,正式发布则意味着已通过评审,可供团队参考使用,正在修改则表示文档正处于更新和完善阶段。 - 文件标识:QM-TEMP-SD-50-概要设计说明书V4.0,此...
Django是用Python编写的开源Web框架,它遵循模型-视图-控制器(MVC)架构模式,旨在简化包括内容管理系统、新闻网站、博客在内的各种Web应用程序的开发。 【描述】"我的django专栏进行到016阶段的源代码-Django开发...
【标签】中的"毕业设计"表明这个项目可能是某位学生在其毕业阶段完成的一项实践性工作,旨在展示其在软件开发领域的技能和理解。"Java"作为编程语言,是BS架构中常用的技术,它的跨平台特性使其成为企业级应用开发的...
在构建一个基于Spring MVC的个人博客系统时,E-R图(实体关系图)是一个至关重要的设计阶段,它有助于我们理解数据库的结构和实体之间的关系。E-R图是数据建模的一种方法,通过图形化的方式描绘出实体、属性以及实体...
1. "论文.doc" - 这可能是一份关于该项目的研究论文,详细介绍了系统的设计理念、架构和技术选型,可能包含了系统的需求分析、功能模块、实现细节等内容。 2. "(开题)springboot051医院管理系统.docx" - 开题报告...
5. **状态和标签**:用于跟踪文件和项目的不同阶段,如“草稿”、“完成”或特定的构建版本。 6. **分支**:用于平行开发,隔离修改,避免相互干扰。 **二、StarTeam模型** StarTeam的模型区别于传统的面向文件的...
- **设计阶段**:制定系统架构,编写类图和接口定义,设计前端页面布局。 - **编码实现**:按照设计进行编码,包括后端服务、DAO层、模型类以及前端模板。 - **测试**:进行单元测试、集成测试和系统测试,确保各...
基于Java的汽车销售系统通常采用MVC(模型-视图-控制器)架构设计,保证了代码的可维护性和扩展性。核心技术栈可能包括Spring框架进行业务逻辑处理,Hibernate或MyBatis进行数据库操作,前端可能使用JSP、Servlet或...
1、 Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和custom tag library构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发...
"研究生过程管理系统"是一款专为研究生教育阶段设计的高效管理工具,旨在优化并记录研究生的学术活动,包括课程任务、论文任务以及项目任务。这款系统不仅有助于学生更好地组织和跟踪自己的学习进度,还为导师提供了...
- **需求状态**:需求的状态包括草稿、激活、已变更和已关闭四个阶段。 - **需求阶段**:描述了需求在整个研发过程中的进展,如等待、已计划、开发中、测试完毕等。 - **添加需求**: - 进入产品-需求视图。 - ...
描述中提到的“初次提交”意味着这是一个项目初始阶段,可能包含了基础架构和基本功能的实现。在Angular中,构建这样一个电子邮件客户端通常会涉及到以下几个关键知识点: 1. **Angular CLI**:Angular的命令行工具...