软件Software架构:质量和快速决定了软件Software架构



软件Software架构选择和设计并不是很容易做出个成功软件Software架构取决于N多原因软件Software架构这个词向来就是最为模糊个词个人认为软件Software架构实在是个很大话题业界直采用形象比喻就是建设房子时房屋结构图以软件Software角度来说软件Software架构应至少包括软件Software开发时使用什么语言、形成软件Software开发时可运行核心基础框架、软件Software应用模块设计(包括模块内聚功能、对外提供服务等)、软件Software测试思路方法、软件Software部署思路方法以及团队(Team)开发思路方法那么如何来选择和设计软件Software架构呢其衡量原因是什么呢个人认为其中质量和快速是衡量软件Software架构选择和设计是否成功两个最重要原因
为什么说质量和快速是两个最重要原因呢?首先来看看这里质量和快速分别包含了什么内容:
质量
软件Software质量是软件Software能否成功非常非常重要原因就个人看来软件Software质量应包括软件Software功能性需求实现、软件Software非功能性需求实现
软件Software功能性需求中最重要就是要确定对于客户而言商业价值最高部分是什么项对于软件Software架构而言影响是软件Software应用模块设计上而软件Software应用模块设计呢通常要取决于可运行核心基础框架设计和实现上;
软件Software非功能性需求则通常会包含很多要素像软件Software灵活性、可扩展性、高响应等在这些众多要素中同样要选择出对于目前软件Software最重要要素是什么这会影响到软件Software架构中软件Software开发语言选择、可运行核心基础框架
软件Software质量还有需要考虑要素就是软件Software测试思路方法了(这也会影响到选择什么语言来开发软件Software)这点对于软件Software质量而已无疑是非常重要
快速
软件Software能否快速开发完成也已经成为了软件Software能否成功重要原因快速开发完成意思非常容易理解但它其实很大程度影响到了软件Software架构选择和设计很明显它将影响到软件Software开发使用什么语言、软件Software开发时可运行核心基础框架、软件Software部署思路方法以及团队(Team)开发思路方法等等团队(Team)中人很大程度上决定了软件Software开发时使用什么语言(这个时候也要注意其实什么语言会影响到开发速度、开发质量等例如erLang设计目标是为了可构建容错系统、c则更适合从底层控制整个系统交互、java具备丰富基础库、业界资源和更适合复杂业务需求)至于核心基础框架、部署思路方法、团队(Team)开发思路方法设计都是为了快速这个目标
从上面两个原因我们可以看到要使得软件Software高质量且快速完成软件Software架构在选择和设计上时非常重要是寻找到种平衡所以软件Software架构要做到模式化其实并不容易
在这里多说下别其实从上面所述能看出去评论哪种语言会死是没有什么意义并不会有种语言放在任何环境下都适合就像在互联网网站WebSite建设上我想可能很多人都会选择php+c或类似语言体系但大家其实可以仔细去想想是不是网站WebSite建设上定要这样两种语言才能承担互联网高并发等需求呢或许你更应该做是从该网站WebSite最重要非功能性需求、团队(Team)等等原因来考虑就像如果你团队(Team)是java性质团队(Team)而网站WebSite最重要非功能性需求又是支持业务灵活性那么我会觉得c这样过程化语言绝对不是这种情况下最佳选择而java却是这种情况下最佳选择可能很多人会说java太慢呀什么其实并不尽然很多时候靠硬件以及优秀架构完全可以弥补掉java比c这样运行相对更慢毛病:)这也算是给java个平反吧呵呵毕竟java相对c而言还有更大好处那就是java开发无论从质量还是快速开发上肯定强于c我这样说并不是说定要选择java我只是想介绍说明应该根据什么样情况来选择和设计什么样架构那才是最合理所以架构永远都没有最好只有最合适而这也是架构师最难做原因架构师在做架构设计和选择时遵循出发点就是保证软件Software高质量且快速完成 
Tags:  软件系统架构 软件架构图 软件架构设计 软件架构

延伸阅读

最新评论

发表评论