`
haofeng82
  • 浏览: 144418 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

从需求向架构过渡的系统方法

阅读更多

前几年写的一篇文章,今天翻出来了,看样子是个笔记。希望对大家有用:

 

1 如何成为一名架构师?

  成为一名架构师需要如下的要求

  1)全面系统的技术知识(但不一定要求掌握很深入)。

  2)系统思维能力

  3)丰富的项目经验

  4)参与过大型项目

2 需求的种类:

  需求可以分为:功能需求、质量需求、约束需求三种。

3 功能需求:

   功能需求是不可能单独存在的,不同的功能之间存在一定的联系。我们可以称之为职责协作链。

我们在进行功能需求分析时,可以按照下面4个步骤:

(1)       确定实现功能需要的职责。

(2)       将职责转化成子系统模块

(3)       明确接口

(4)       确定交互机制的实现

  理念:架构不只由功能驱动(不是全部)

如何确定功能需求呢:

假定我们有200项需要实现的功能,我们不可能逐个对他们进行分析。我们可以按照下面的方式去做:找出关键功能的子集。

 

那么,应该如何去确定核心功能呢?

核心功能应该包括下面几个部分:

(1)       业务层的接口

(2)       必须实现的功能

(3)       功能单元之间的互操作及非功能的考虑(例如性能和人性化)

(4)       高风险设计(技术难点等)

Ps:在一个比较正规的项目中,架构设计的比例应该占到 10%左右

4 质量需求:

4.1质量需求是什么?

  质量需求就是对一个系统的“质量”上的一些要求,比如一个系统的查询模块操作时间不能大于10秒钟。这就是一个质量需求。

质量需求调整了理想的设计,统一了功能和实际要求,会导致设计方案在理想化的基础之上进行修改。

 4.2实现要领:

       软件架构有如下的决策方面:

(1)    系统的组织

(2)    接口行为的选择

(3)    组合机制的力度

(4)    架构的风格:元素及他们的接口,协作、组合。

这里需要注意的是“接口”,在实际的架构设计中接口设计是必须存在的;而在概念架构设计中就不一定需要了

(5)    注意其他特性

质量需求对架构的影响只限于“调整”,并不会产生新的功能产生

   4.3质量分类方式:

      可以分为3种:

(1)       McCall: 已过时

(2)       FURPS:即功能性、易用性、可靠性、性能,可支持(可维护)

这种方式适合于企业应用类型的项目,平台开发一般不适用

(3)       运行期质量+ 开发期质量

运行期质量包括: 性能,安全、易用、可用、互操作(与原有系统)、可靠等因素

开发期质量包括:易理解、易测试、可复用等因素

5 约束需求和架构----最危险的需求

  约束需求之所以被称为最危险的需求,主要是因为其会产生出新的需求要求。要尽早的进行约束需求的分析。

  约束需求可以分为:

(1)       技术性约束:如OS 的选择、技术选择、与遗留系统的互操作等

(2)       标准性约束:行业标准和企业标准

(3)       法律性约束:法律、法规约束

6 总结

需求转向架构的分析流程:

(1)       我们需要汇总所有的功能需求、质量需求、约束需求三种需求。

(2)       进行全面的需求整理

(3)       进行分析约束性需求(因为可能产生新的需求)

(4)       确定关键功能需求和质量需求

(5)       设计出关键功能和质量功能

 

0
0
分享到:
评论

相关推荐

    SD大会精品讲座:架构设计六技——从需求向架构过渡的系统方法

    请听资深咨询顾问、软件架构专家温昱为您深入探讨:如何运用系统化的方法指导架构决策过程,如何更好地完成从需求向架构设计过渡这一关键工作。温昱是架构设计专著《软件架构设计》的作者,松耦合空间...

    软考系统架构师案例分析知识点整理

    - 理解如何根据系统的需求选择合适的架构方法。 - **架构评估**: - 使用各种技术和工具来评估架构的优劣。 - **软件产品线**: - 了解如何利用公共平台和可重用组件来快速开发相似的应用程序。 - **系统演化*...

    系统架构师考试相关资料

    7. **架构演进**:讲述系统从初期设计到后期演进的过程,如何通过迭代改进架构以适应业务发展。 《系统架构师论文范文50篇》则可能包含实际案例分析,提供真实世界的解决方案,帮助读者理解理论在实际项目中的应用...

    系统架构设计师教程系统架构设计师教程

    此外,软件架构还必须考虑未来可能出现的技术升级或业务扩展,使得系统架构可以平滑过渡到新的技术体系。 信息安全和系统安全是当前软件行业极为关注的问题。系统架构设计师需要掌握信息安全的基本概念,包括数据...

    最新“系统架构设计师”论文范文——论微服务架构及其应用.docx

    这篇论文对于系统架构设计师来说是一份宝贵的参考资料,它展示了如何从实际项目中成功过渡到微服务架构,并揭示了微服务在解决大型系统复杂性、提高敏捷性和可扩展性方面的作用。通过深入理解和实践微服务架构,架构...

    打通软件需求到架构设计之墙

    通过合理的需求分类、有效的类比思维以及全面的质量属性考虑,结合具体的架构视图设计方法,可以有效地构建起一座坚实的桥梁,实现从需求到设计的顺畅过渡。希望本文能够为读者提供有价值的参考和启示。

    新考纲-系统架构设计师(软考高级) 一站式通关课程(2024版)

    软件架构指从需求分析到软件设计之间的过渡过程。只要软件架构设计好了,整个软件就不会出现坍塌性的错误,即不会崩溃。架构设计就是需求分配,将满足需求的职责分配到组件上。 软件架构为软件系统提供了一个结构、...

    美团外卖系统架构演进与系统稳定性经验

    - 3.0架构:在系统级容错、服务化重构、中间件使用、分库分表方面取得进展,涵盖了从用户层到存储层的各个层面,逐渐建立起完备的系统架构。 3. 外卖业务稳定性的挑战: - 业务特点:用户高峰集中在中午和晚上饭...

    系统架构师论文范文50篇

    5. **大数据处理架构**:面对海量数据,系统架构需要适应大数据处理的需求。Hadoop、Spark等框架可能在论文中被提及,讨论如何构建适合大数据的分布式系统。 6. **安全性设计**:系统架构的安全性是不容忽视的一环...

    行业分类-设备装置-一种需求特征建模到体系结构建模的平滑过渡方法.zip

    标题提到的"一种需求特征建模到体系结构建模的平滑过渡方法",是这个领域内一个关键的议题,它涉及到从项目需求分析到系统架构设计的转换过程。这种平滑过渡方法旨在优化开发流程,确保需求的准确理解和有效传递,...

    人人都是架构师+分布式系统架构落地与瓶颈突破.pdf

    书中详细阐述了如何从传统的单体架构过渡到分布式架构,并解决在这一过程中可能出现的各种挑战和瓶颈。 在PHP和Java等编程语言的开发环境中,分布式系统架构已经成为大型互联网应用的基石。该书首先介绍了分布式...

    软件架构设计 ppt

    重构是为了改善现有架构,而演进则关注如何平滑地从一个架构过渡到另一个。 10. **团队协作与沟通**:架构设计不仅仅是技术问题,也是团队协作的艺术。有效的沟通能确保所有团队成员对架构的理解一致。 以上知识点...

    向低成本及高可用性IT架构过渡.pptx

    总的来说,向低成本及高可用性IT架构过渡是一个涉及多方面因素的过程,包括技术创新、商业策略、市场动态以及企业内部管理的优化。企业必须全面评估自身的需求,制定适应性战略,以确保在降低成本的同时提高服务质量...

    UML系统分析与架构设计实战

    UML系统分析与架构设计实战是一门实践性很强的课程,它主要通过统一建模语言(UML)作为工具,系统地阐述了软件开发过程中系统分析与架构设计的各种方法和技巧。在软件开发领域,UML是一种标准的建模语言,被广泛...

    DONET架构设计六技

    《.NET架构设计六技》是资深IT专家温昱分享的一套系统性的架构设计方法论,旨在帮助开发者从需求分析阶段过渡到架构设计阶段。该方法论强调了架构设计的重要性,并指出传统的认为只需了解系统需求就能构建架构的观点...

    架构人员——架构规划方法.rar

    4. **转型路径规划**:制定从当前状态到目标状态的过渡计划,包括项目排序、资源分配和风险管理。 5. **实施与监控**:执行规划,同时设立监控机制,确保规划目标得以实现。 三、信息规划 信息规划是企业架构规划的...

    阿里巴巴中文站架构实践

    第一代网站架构主要采用Perl和CGI技术搭建,使用Oracle数据库,随着业务的增长,很快就过渡到第二代,即2000年的Java时代,当时关键字包括Servlet等技术。随后,在2001-2004年期间,阿里巴巴中文站进入了EJB时代,...

    美团外卖系统架构演进及系统稳定性经验谈-美团外卖.pdf

    在MVP(最小可行产品)阶段,美团外卖通过电话点餐过渡到网络点餐,实现了需求的验证和产品与需求的切合点寻找。随着业务的扩展,美团外卖推出了自己的APP和WEB平台,实现了在线支付和日交易额过亿的重大突破。2016...

Global site tag (gtag.js) - Google Analytics