系统架构师-基础到企业应用架构系列之--开卷有益

开篇说明

      由于是自己对这些技术的学习总结和心得体会,错误之处在所难免,怀着技术交流的心态,现在发表出来,所以希望大家能够多多指点,这样能使一部分人受益同时也能纠正我的错误观点,以便和各位共同提高!

软件架构到底是什么

      软件架构可以被简单的描述为,一系列组件之间的组合,交互,继承的关系。当然这样的解释基本上人人都可以接收。不过在我们看来,这样的说法有点过于抽象。

      软件架构有这标准的定义,就是参考ANSI/IEEE的标准,软件架构可以理解为软件密集型系统中对系统的实现和部署起决定性作用的的系统。

      软件架构中的关键点是应该符合项目干系人的目标,功能上当然细分成功能性的和非功能性的需求。

      软件架构有一定的特殊性,架构设计必须开发的初期就确定,架构设计作为关键决策必须前期确定。

      软件架构其实主要是要符合项目干系人的目标,如果无法满足项目干系人的目标,那么这个架构方案就行不通,下图是ANSI/IEEE标准中定义的系统、架构与项目干系人直接的关系。

       image

     开篇中已经介绍了系统架构的表述工具有UML和Relation Rose,UML基本上已经成为国际的标准。

     UML的类图:主要是描述类之间的关系。

     用例图:描述使用场景。

     组件图:用来描述系统中的可重用部分。并且容易看出组件与二进制文件之间的对应关系。

     通过UML工具,我们能够更深层次对系统架构进行不同角度的描述。抓住其核心。

     软件架构的验证,目前没有什么好的办法可以自动验证软件架构是否可以达到项目干系人的目标,只有通过多种方式多个级别的测试。

     例如通过单元测试,来验证单一的功能,集成测试来评估系统的兼容性,验收测试来验证用户的满意度,程序是否提供必要的功能。

     除了UML建模工具之外,还有IBM比较著名的Relation Rose,这里大概介绍下该工具具有的视图模式:

     image

系统的架构

      可以这样说,软件系统的架构过程中没有什么系统是不可拆分的,系统的开发方法越敏捷,为开发人员实现架构是预留的空间越大。

      系统架构师将系统分解的过程,其实最终形成的就是一份为开发人员提供的详细设计说明书。当然详细设计说明书的内容和格式也取决于开发方法。

架构是什么

       架构大多体现在难以改变或者改变起来代价较大的决定上。但是最终还是需要有人做决定。

       系统分析师分析系统做什么,架构师设计如何去做。

       架构师是需求与详细说明的纽带。

       架构师的职责:架构师应该参与到开发的全过程当中。包括分析需求与架构设计、实现、测试、继承与部署。

      按照ISO的定义架构师的定义如下:负责系统架构的人、团队或组织。

      微软则对系统架构是做了如下的划分:

      1、企业架构师。

      2、基础架构师。

      3、特定技术架构师。

      4、解决方案架构师。

最后总结软件开发过程中的一些法则:

      1、为了一个赶不上进度的项目增加人手,只会让项目更加落后于进度。

      2、程序的复杂性会一直的增加,直到维护人员感觉到力不从心为止。

      3、建筑师与开发人员写程序不同,如果建筑师按照开发人员的方式开建造,只会成为历史中的败笔。







本文转自何戈洲博客园博客,原文链接:http://www.cnblogs.com/hegezhou_hot/archive/2010/09/07/1821012.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/363419

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。