• 系统架构师


    什么是系统架构

    软件架构的起源

          软件中的系统架构,其实是从建筑行业中的架构设计参考过来的,但是软件中的系统架构又有很大的特殊性。特殊性表现在,软件的架构可以在设计完毕后,项目进行的过程中进行相应的变化,或者可以推到重来,但是建筑行业中却不能这么做。软件行业有着很大的变化性。

    什么是架构

    架构总体来说就是实现需求功能的较复杂组件的设计与不能精简的较复杂组件。ISO与IEEE对系统架构的定义:一致认为软件密集型系统的架构分为主要模块,组织模块与支撑模块3部分。

    系统架构的目标

    功能:功能上必须满足需求。

    可靠性:系统系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。

    可用性:系统必须可用。

    可维护性:系统的维护包括两方面,一是排除现有的错误,二是将新的需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费

    安全性:系统所承担的交易的商业价值极高,系统的安全性非常重要。

    可扩展性:必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。

    系统架构师的职责

          系统分析员通过与项目干系人的沟通或者是与客户的沟通整理出来功能需求,形成需求文档,然后将文档交付给系统架构师,系统架构师负责将分析员整理的需求转换为详细设计说明书。这个详细设计书作为与开发人员沟通的主要工具。

          系统架构师可以通过使用UML建模工具,在详细设计说明书中书写每个组件的设计用力图或者流程图,或者是通过IBM的relations Rose工具来实现相应的建模。

          系统架构师在设计时遵循的原则是:

          1、低耦合:就是要求不同的组建之间的耦合度最低。每个组建的功能应尽量的分离,他们直接的调用关系进行把对象的引用转换为接口的引用。

          2、高内聚:功能相像的功能放在一个组件中,对外提供接口调用的方式来整理。

          系统架构师作为需求分析师与软件开发工程师之间的核心关键。好的系统架构不但可以满足软件的功能需求有更好的扩展性,可维护性,安全性,可靠性的等等。

          系统架构师必须参与到开发的全过程。

    系统的需求

          一般来说。系统的需求分为:功能性需求与非功能性需求。

    系统架构设计影响的原因

          系统架构师在进行系统设计的时候一般采用的方式是通过逻辑分层将功能相像的模块放在单独的层中,然后通过分层来实现系统的功能分离与低耦合、高内聚的原则。

          系统架构的设计与系统采用的开发方式有关,软件的开发方式可简单分为:传统方式与敏捷开发。

          传统方式:大家熟知的瀑布型模式,软件的过程严格的按照上级步骤执行完毕后开始下一步骤。

          敏捷开发:则是递增需求的迭代开发。每个阶段都会新增一个需求,完成这个需求之后变发布软件,虽然软件的功能不全,但是至少是可以使用的。

          系统架构师的设计方案,最后由项目干系人进行确定,确定采用哪个设计方案,当然最后也可能不采用,造成这样的结果,可能的原因是非功能性需求的原因。非功能性的需求:例如与之前系统的继承,硬件设备,网络环境等等。

    系统架构的设计方案

          系统架构可以简单的分为隐式架构与显示架构,例如:盖一个小狗的棚子,有经验的架构师在自己的脑海中就已经有了如何去架构。这就是隐式架构。有些情况下:系统的功能比较复杂和细化,我们不可能在脑海中就能想出来如何架构,需要通过做demo或者模块化的划分来设计,这就是显示架构。

          系统的架构设计,必须考虑设计的可行性,可扩展性,健壮性,可用性,高效性,安全性等方面,还要考虑软件所处的环境等等,各方面的因素都要考虑,否则等软件开发的过程中发现系统架构设计中的不足再去修改,代价是很昂贵的。

    系统架构说明

    因为本人初次写博。部分描述不清楚的部分在所难免,错字方面还请见谅,还请大家多多提出交流意见,大家共同提高。

    下一篇将对系统架构的具体实践展开讲解

    最后CallHot 会尽心尽力写好这个系列,同时由于是自己对这些知识的使用总结和心得体会,错误之处在所难免,所以希望大家能够多多指点,这样在使一部分人受益的同时也能纠正我的错误观点,以便和各位共同提高,后续文章敬请关注!


    作者:CallHot-何戈洲 
    出处:http://www.cnblogs.com/hegezhou_hot/ 
    关于作者:专注于微软平台项目架构、管理和企业解决方案。熟悉设计模式、极限编程、架构设计、敏捷开发和项目管理。现主要从事WinForm、ASP.NET、等方面的项目开发、架构、管理工作。目前,主要负责一些系统架构,项目管理,技术培训等方面的工作。如有问题或建议,请多多赐教! 
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过hegezhou_hot@163.com  联系我,非常感谢。 
    其他联系方式: 
    电话:18691480181
    联系人:何戈洲
    系统架构:185074255(普通) -新建 AgileEAS.NET平台交流群:172060626(高级群)[空90人]

     
    摘要: 上篇,我们介绍了,单机软件的架构,其实不管什么软件系统,都是为了解决实际中的一些问题,软件上为了更好的解决实际的问题才会产生,那么对于单机软 件的架构则也是在不断的变化和发展,当然好的软件架构会对软件的生命周期起到决定的作用。好的软件架构,无疑会延长单机软件的生命周期,同时适应后期的不断的衍生的需求变化,.NET FrameWork的架构设计和体系结构设计,我相信是非常优秀的阅读全文
    posted @ 2011-11-07 10:52 何戈洲 阅读(1994) | 评论 (41) 编辑
    摘要: 系统架构的文章系列,也是搁浅的太久了,最近也是整理了下思路,将目前未完成的内容,写完吧,也不能拖太久,就不太好了。所以就趁周末写一下,今天我 们要说的是单机应用,单击应用软件可以很复杂,也可以很简单。有些单机软件可以没有数据库,也可以有数据库,比如我们平时的一些工具类的软件,写字板,V S开发工具等阅读全文
    posted @ 2011-11-07 09:45 何戈洲 阅读(3078) | 评论 (28) 编辑
    摘要: 系统架构的文章,准备在这段时间好好的梳理和整理一下,然后发布基于AgileEAS.NET平台之上的企业级应用架构实践,结合具体的案例来说明AgileEAS.NET平 台之上如何进行系统的逻辑架构设计与物理架构设计,包括一些数据架构和运行架构,开发架构也是我们也会讲述 阅读全文
    posted @ 2011-11-05 13:28 何戈洲 阅读(2146) | 评论 (18) 编辑
    摘要: AgileEAS.NET基于Microsoft .Net构件技术而构建,Microsoft .Net最吸引人的莫过于分布式应用技术,基已经提供了XML WebService、 .Net Remoting、WCF等技 术。AgileEAS.NET平台所实现的分布式包含两层一次,一次是广义的分成式应用,其意义是应用服务定位器提供本地服务组件及不同分布式服务的发现、定位与集 成 阅读全文
    posted @ 2011-08-26 10:15 何戈洲 阅读(3081) | 评论 (50) 编辑
    摘要: 一、上篇回顾 我们先来回顾下上篇讲解的内容,我们前面的几节分别讲述了,业务逻辑层、数据访问层、服务层、表现层,我们了解了这些分层的职责和分层之间的大概的关联关系,本篇可能主要是简单的介绍下企业应用的几类模式,结合这几个分层直接的交互来完成系统功能的构建。我们还是先对我们学习的四个分层的职责和功能做个大概的回顾,我们先来看看下图来回顾下我们讲述的内容。 我想通过上图,大家能回忆起我们讲述的相关内容,然后整理好自己的思路,我们本文将会针对这几个分层进行相应的模式的讲解,并且会结合实例来说明企业应用架构的简单应用。我想这也是大家关心的内容,我也希望大家能多提出宝贵意见,大家共同提高。 之前说是提供P阅读全文
    posted @ 2010-10-17 23:39 何戈洲 阅读(4297) | 评论 (53) 编辑
    摘要: 一、前言 最近也许是由于假期的原因,我发布的文章的速度变慢了,对大家说下抱歉,这个系列的确我很难写,感谢大家对我的支持和关注,的确我在发布后得到大家的支持和认可,让我有了更多的动力,之前发布的有些内容,可能对各层讲解的内容的广度还不够,当然这和我个人的水平面有关,还请各位多多提出宝贵意见和建议。 从本篇开始,我将会采用更加规范的格式,更严谨的求知态度,更加准确的表达,去将接下来的系列文章写完,并且与群中的很多朋友交流后,他们希望出一个总的PDF电子书,这样可以方便阅读,的确谢谢各位的支持,我目前将以后每篇写的内容,放一份PDF格式的在群共享中,有需要的朋友可以进行相应的下载,由于本人的写作水平阅读全文
    posted @ 2010-10-12 23:39 何戈洲 阅读(5053) | 评论 (65) 编辑
    摘要: 一、上章回顾 上篇我们简单讲述了服务层架构模式中的几种,并且讲解了服务层的作用及相关的设计规范,其实我们应该知道,在业务逻辑层中使用领域模型中使用服务层才能发挥出最大的优势,如果说我们在业务逻辑层还是使用非领域模型的模式话,服务层的作用仅体现在解耦作用。其实在业务逻辑层采用领域模型时,我们前面说的持久化透明的技术,其实我们可以通过服务层来做,我们在服务层中处理领域对象信息的持久化操作。当然本篇可能不会深入讨论持久化透明的具体实现,后面会单独开篇来讲述,我们先来回顾下上篇讲解的内容: 上图大概描述了上篇我们讲解的内容,如果您想要详细的了解服务层的相关内容,请参考:系统架构师-基础到企业应用架构-阅读全文
    posted @ 2010-10-08 23:18 何戈洲 阅读(4990) | 评论 (47) 编辑
    摘要: 一、上章回顾 上篇我们主要讲解了系统架构中的四种架构模式,并且分析了四种架构模式的实现及应用场景,那么先来回顾下架构中的业务逻辑层的使用及总结。 如果大家对图中讲述的内容不明白或者说是不深入那么可以参考上篇讲解的内容:系统架构师-基础到企业应用架构-业务逻辑层。二、摘要 本文将已架构的方式去分析分层结构中的服务层的设计,如何设计出来满足我们说的业务需求及设计规范的服务层将是我们的目标,可能我想大家在项目架构的过程中可能有些同仁,没有用到该层,或者说是采用的是常用的分层结构的设计,而没有把服务层单独的抽出来,当然我们必须首先知道服务层是干什么用的?为什么要单独写一个服务层呢?还有就是设计服务层我阅读全文
    posted @ 2010-10-03 22:22 何戈洲 阅读(3902) | 评论 (42) 编辑
    摘要: 一、上章回顾 上章我们主要讲述了系统设计规范与原则中的具体原则与规范及如何实现满足规范的设计,我们也讲述了通过分离功能点的方式来实现,而在软件开发过程中的具体实现方式简单的分为面向过程与面向对象的开发方式,而目前更多的是面向对象的开发设计方式。并且我们也讲述了该如何通过设计手段去分析功能点及设计分离点,应该如何在设计的过程中分析的角度及如何去满足设计规范与原则。首先我们通过下图来回顾下上章要点: 二、摘要 本文将已架构的方式去分析分层结构中的业务层的设计,如何写出来内聚度,高耦合的业务逻辑层,并且如何根据我们的项目中的个功能需要去设计业务层。我们本章将会通过几种可能的业务层的设计模式去分析,并阅读全文
    posted @ 2010-10-01 21:06 何戈洲 阅读(5276) | 评论 (56) 编辑
    摘要: 一、上章回顾 上章我们主要讲述了系统设计规范与原则中的具体原则与规范。如何实现满足规范的设计,我们也讲述了通过分离功能点的方式来实现,而在软件开发过程中的具体实现方式简单的分为面向过程与面向对象的开发方式,而目前更多的是面向对象的开发设计方式。具体的内容请看下图: 上图描述了软件设计的原则:低耦合,高内聚,并且简单说明了,如何实现这2个原则,通过分离关注点的方式。我们把功能称之为关注点。二、摘要 本文将通过实例来讲解如何通过分离功能点,并且讲解分离关注点实现相应功能点时应该注意的问题。比如说一些相关的重要部分的内容。分离功能点是实现软件功能的一项重要基础,随着软件复杂度的不断提高,传统分离关注阅读全文
    posted @ 2010-09-23 15:51 何戈洲 阅读(3490) | 评论 (37) 编辑
    摘要: 本章将主要的简单介绍在系统架构中的设计模式及相应规范准则。并结合相应的代码来说明如何遵循系统架构中的一些基本的设计规范及准则。而我们将在本文介 绍几类常用的设计规范,我们先来看看结构化设计的二个基本原则:阅读全文
    posted @ 2010-09-18 17:57 何戈洲 阅读(4123) | 评论 (50) 编辑
    摘要: 上一篇:系统架构师-基础到企业应用架构-系统建模[中篇](下) 中我们主要讲解了部署图、活动图,我们在这里也是参考上篇的形式,这里不再详细介绍。上篇主 要讲解了下面2类建模图:阅读全文
    posted @ 2010-09-16 15:43 何戈洲 阅读(2996) | 评论 (29) 编辑
    摘要: 首先、我们先来回顾下,上篇讲解的内容,加深下印象。上篇我们主要讲解了3个建模图形分别是:顺序图(序列图)、组件图、状态图。 具体功能描述如下图:这里不详细解释,如果不清楚请看:系统架构师-基础到企业应用架构-系统建模[中篇](上)阅读全文
    posted @ 2010-09-14 22:22 何戈洲 阅读(3445) | 评论 (29) 编辑
    摘要: 系统架构师-基础到企业应用架构系列会从,系统架构的起源、发展、架构师必备的基础知识与技能、如何把架构应用到企业应用中去。整个系列计划30篇左右,每 一篇都是自己在系统架构过程中的总结和经验,每一篇我都会抱着认真的态度去完成,宁缺毋滥的原则。阅读全文
    posted @ 2010-09-12 11:58 何戈洲 阅读(6744) | 评论 (72) 编辑
    摘要: 上篇文章主要简单的介绍了建模中使用的标准建模语言UML的相关内容,包括用例图与类图的使用方法及如何建模。相信大家对UML建模语言已经有了初步的认 识,还请大家谨记UML不同的建模图形的用处。比如,用例图主要用来描述系统的功能需求。类图主要用来描述实体间的关系。谨记这些就可以帮助我们在系统架构的 过程中深入的分析。阅读全文
    posted @ 2010-09-11 19:00 何戈洲 阅读(4058) | 评论 (26) 编辑
    摘要: 本文主要从系统架构中的建模开始讲解,本文讲述的内容主要是我在工作和学习过程中的总结和经验,不足之处还请大家多多批评指出,有更好的建议也可以留言 说明。本意主旨是为不熟悉系统架构建模过程和不知道如何使用建模工具,或者不熟悉如何根据需求去建立模型的角度出发阅读全文
    posted @ 2010-09-10 00:22 何戈洲 阅读(6573) | 评论 (83) 编辑
    摘要: 开篇说明 由于是自己对这些技术的学习总结和心得体会,错误之处在所难免,怀着技术交流的心态,现在发表出来,所以希望大家能够多多指点,这样能使一部分人受益同时也能纠正我的错误观点,以便和各位共同提高!软件架构到底是什么 软件架构可以被简单的描述为,一系列组件之间的组合,交互,继承的关系。当然这样的解释基本上人人都可以接收。不过在我们看来,这样的说法有点过于抽象。 软件架构有这标准的定义,就是参考ANSI/IEEE的标准,软件架构可以理解为软件密集型系统中对系统的实现和部署起决定性作用的的系统。 软件架构中的关键点是应该符合项目干系人的目标,功能上当然细分成功能性的和非功能性的需求。 软件架构有一定阅读全文
    posted @ 2010-09-07 23:01 何戈洲 阅读(7760) | 评论 (90) 编辑
    摘要: 什么是系统架构软件架构的起源 软件中的系统架构,其实是从建筑行业中的架构设计参考过来的,但是软件中的系统架构又有很大的特殊性。特殊性表现在,软件的架构可以在设计完毕后,项目进行的过程中进行相应的变化,或者可以推到重来,但是建筑行业中却不能这么做。软件行业有着很大的变化性。什么是架构架构总体来说就是实现需求功能的较复杂组件的设计与不能精简的较复杂组件。ISO与IEEE对系统架构的定义:一致认为软件密...阅读全文
  • 相关阅读:
    改变字符串里面多个颜色
    悬浮按钮
    改变一串字体的多个颜色
    iOS上如何让按钮文本左对齐问题
    Swift中的willSet与didSet
    Swift语法之 ---- ?和!区别
    UIButton文字的显示位置,字体的大小
    javaweb要点复习 jsp和servlet
    常量指针和指针常量
    判断括号序列的合法性
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2662033.html
Copyright © 2020-2023  润新知