看啥推荐读物
专栏名称: 北斗之光
我是来自高空的光,发光自己,完满自我,光亮万物。 我已加入“维权骑士”(rightknights.com)的版权保护计划。
今天看啥  ›  专栏  ›  北斗之光

框架思维05什么是构架过程?

北斗之光  · 简书  · 架构  · 2017-12-19 16:27

26

什么叫架构?

Fore metaphors forarchitecture——Architecture asblueprint. / Architecture as literature. / Architecture as language. / Architectureas decision.

架构的前喻——架构作为蓝图。/架构作为文献。/架构作为语言。/架构作为决定。

还是先做一些比喻。不要去纠正它的细节,说有四种隐喻。第一个,作为一种蓝图。架构的一个是作为一种蓝图。第二个,是一种文献。呈现架构,是沟通的语言。架构包含所有的决策,架构体现的是做的决策。软件架构啊,在以前还没有一个统一的定义。不同的人从不同的角度定义了这个概念。那当然是,哪些人定的架构是比较牛气,我们就用哪个人的定义了。

这是我们的四种比喻了,我们的对架构找到了一个比喻,找到这个不太准确。但是我们的后续可能要修正的。找到一个架构的比喻,我们一般来说,你用三个比喻就行了。概括为三句话。

它的作用是什么,我们说架构,他是需求和设计之间的一座桥梁桥,它连接了我们的需求与设计,从而架构本身也成为了一门学科。那我们说我们架构已经是一门学科了,公认的学科已经无疑了,软件架构学科,架构,就位于这个抽象的中心点。通过抽象和关注点的分割,从而,来简化复杂性思想的。

我们要通过抽象,人们的关注点分割。来简化软件开发的复杂性,这是我们的一个中心思想。

27

视图在某种意义上是等价的,但是透视的,更多的是横切的,很多往往是垂直切割的。我们需要一个横切的视图,最典型的例子,就是安全锁,这个软件基本上和硬件细节配合起来,才能实现一个安全。

这些都是需要,功能。就是我们说的那个功能性啊,然后我们内部结构,硬件结构是配合在一起工作的,我们的对应点应该是放到涉众,然后,从自己的perspective视角,看到的问题的不同方面。

就正如那个大象的故事,然后我们需要的是,把他们不同的视角都融合在一起,把刚才的那个大象的图像,经过一个组装成一个完美的架构,从而形成真实的架构,这就是我们的整个软件构架的过程,从而获得一个架构设计的成果。

所以现在你明白了,如果我不从这样的一个方式去讲,你觉得我会想着什么样子的描述来源。我们这个软件架构的目的,就是我们满足需求的情况下,一定要满足系统的质量,并将过程和结果记录下来。

软件工程四要素,最终做出来是一个具体的东西,一定是有些质量指标的。而架构是在这个系统里面的,然后我们要靠这个架构,体现我们那些质量指标,从而达到我们的目的。目的和手段有机地统一在一起,我们的目的当然是要满足用户的那个需求了。

这个软件最终是一堆具体的软件质量属性,要让我们用刚才的那种手段方法去,实现与满足不同的受众的需要。

28

Role of Software

Architecture/软件架构的作用——A crucial bridgebetween requirements and design.

它是,需求与设计之间的重要桥梁。因此,软件架构的本质动机就是如下几点:

The software architecture discipline is centered on the idea of reducing complexity through abstraction and separation of concerns.

软件体系结构学科的核心是通过抽象和关注的分离来降低复杂性的思想。

解决在系统高层交互上的麻烦,处理关于设计和实施的决策,改善涉众之间的交流,以及增强架构的复用。

Softwarearchitecture is really the amalgamation of the multiple perspectives a systemalways embodies.

软件体系结构实际上是一个系统始终体现的多重视角的融合。

软件架构的目的是什么呢?

the purpose of the software architecture is to ensure that the system meets thegoals of the stakeholders with respect to various software qualities such asmaintainability, scalability, testability, etc.

软件架构的目的是确保系统能够满足利益干系人(涉众)对各种软件质量的目标,如可维护性、可伸缩性、可测试等。

架构,是说架构师,他要为这个应用软件,确定一个参考架构,是什么意思呢?

他一定要追寻一种开发方法,然后能有一个参考模型,再然后记录下他的一些关键性的架构。参考模型,是对这个应用程序连在一起的。不同的衣服,你的参考模型是不一样的。

29

不同的参考模型,就构成了不同的模式。架构模式又分成了三类。架构风格,是一种架构模式,风格是模式的一种,但模式不一定是风格,所以风格的力度会更大一些。

其实是我们这次的核心概念,是应用框架,但不是一个参考模型,应用框架里面还有一个架构的基本。最终的架构,整个的构架是在模型之后。首先要确定的是风格,然后呢,是架构的机制。当一个系统做完了这个之后随着需求的变化,改变。你最先想到的首先是改变什么。你就一种架构的风格,让一个系统呢,他会有很多。风格组合在一起形成一个异构的风格。

每个企业都要去解决一个社会问题。然后呢他要有一个架构这个架构首先体现的价值。他会选根据这个具体的业务形式,一定是在一个行业里面,解决它的这个问题的时候,还形成了一套自己的固定的风格。他们的风格是一样的。那就形成了依赖性,那最简单的就是电子商务。电子商务,构成的一类系统然后这个系统。所有的使用电子商务应用系统,他们都有自己的架构的风格,选了一些固定的bs结构的。

选择了一些次要的架构,构成了这一个行业的,这个行业的软件系统的以后,给我们出了这个模式对这些依靠广义的模式。现在就理解了我们整个课程的思路了。他是一个怎么样的风栗格。使得我们能满足各种需求,这个架构使得我们能够从需求到设计上的,我们首先要解决的是什么呢,就是架构处于的上下文环境。

学习我们这个行业软件,然后他们说一定的风格是什么。风格,是经验的一个总结,因为风格是某些系统共有的。形成了一个架构的风格,一个架构的模式。下句是经验的一种体验,是从实践中来的。

这个行业里这些应用的这些规则,engineering,但是你又要有一些creative,那就是艺术。任何一个行业里面的应用软件系统,都在一定的约束规则下,再去发挥你有限的创新性,这需要找到一个平衡,这是架构的风格。

30

核心图,实际上就演绎了这个approach。

当我们讲架构的,我们用的是统一建模语言,这是我们的架构描述语言,最核心的呢,就是要识别涉众,找到每个涉众的关注点,然后管理分割这些关注点,形成一个具体的架构的模型。

别忘了,我这一系列文章的目的是什么?

高度决定视野。

角度改变观念。

尺度把握人生。

《软件架构》通过一个完全真实的案例介绍了没着模型驱动开发(MDD)的软件工程过程的方法,有效运用由用例捕获的系统需求(用例模型)去驱动一个强壮的模型驱动的架构(MDA)的开发必须的理念和技巧。

在这紧凑一系列的文章学习中,学员将学会如何进行架构的构思、定义、描述、记录、分析、设计、实施和评估等关键活动,通过在整个软件项目生命周期中用UML去捕获和交流软件架构决策,我们在一个用例驱动的、以架构为中心的以及迭代的和增量的软件工程过程中,学会如何架构符合软件架构目标和系统质量特性的软件架构。

31

达到目标时,一个学员将具备以下能力:

熟练掌握软件架构的定义、范围、目标、风格、框架、描述,验证和评估等。

熟练掌握软件架构师的定义、定位、职责、评估、培养以及与系统分析师、软件设计师和项目管理等角色的重要区别和内在联系等。

熟练掌握软件构架的过程。

通过呈现一组架构视点和架构透视图,为软件架构师改善个人和组织的软件系统架构的途径提供具体的方向。

掌握设计反映和平衡不同的涉众需要的架构的方法。

掌握和涉众一起交流架构并且论证架构满足他们的需求的方法。

聚集架构设计的重要方面,包括常被忽略的诸如性能、弹性和位置等架构重要的方面。

使用场景和模式去驱动架构的创建和验证。/使用一组相关的视图文档化架构。/使用透视图确保满足系统的性能、伸缩性和案例等重要质量属性。/熟练掌握不同层级的架构机制,例如:分析机制、设计机制和实施机制。/熟练掌握分析模型、设计模型、实施模型、部署模型的开发。

内容包括:

1,软件架构设计思路  2软件架构导论 3,方法基础4可重用的架构资产 4可重用的架构资产 5,架构文档化 6关键求决定架构 7,架构风格和架构模式 8架构分析 9,用例分析和分析机制10用例设计和设计机制,10 用例设计和设计机制 11面向对旬设计的原理 12架构实施和实施机制 13架构集成开发环境 14架构评估

32

此系列适合于已经积累了面向对象的软件系统开发经验的项目经理、架构师和设计师。以及其它想了解此类内容的人士。

前置知识,统一建模语言(UML)和建模工具,软件开发过程,软件需求工程,面向对象的设计模式。要了解软件工程过程和软件项目的生命周期。

架构集成开发环境(IDE),使用Rational Software Architect(RSA)。

结合自己日常工作及参考文献如下:

Nick Rozanske and Eoin Woods,Software System Architecture-Working with

Stakeholders using Viewpoints and Perspectives,Addison Wesley

Len Bass, PaulClements and Rick Kazman,Software Architecture in Practice,AddisonWesley

软件体系结构,清华大学出版社,覃征等著

Grady Booch, JamesRumbaugh, and Ivar Jacobson,The Unified Moding Language User Guide

Martin Flower,Pattern of Enterprise Application Architecture

Frank Buschmann,Regine Menunier, Hans Rohner, Peter Sommerlad, Michael Stal,Pattern-Oriented

Software Architecture, Volumen 1A System of Patterns.

Mary Shaw and DavidGarlan,Software Architecture –Perspectives on an Emerging Disciplone,Prentice Hall

Scott Pressman,Software Engineering: A Practitioner’s Approach,McGraw-Hill Education




原文地址:访问原文地址
快照地址: 访问文章快照