



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
系统架构设计师 /rk/sa/index.html系统架构设计师之架构设计作用的重要性 要讨论软件架构设计在软件开发中的重要作用,首先让我们来了解一下目前国内软件的开发现状。总的来说,国内的多数企业仍然是采用“瀑布模型”作为软件开发过程的主要模型。虽然在采用瀑布模型的同时可能会引入原型法以及诸如MSF等其它软件开发方法与过程,但随着项目时间的推进,这种“瀑布模型”会慢慢演化为“边做边改模型”。从事过软件项目开发的专业人士都有这样的困惑:为什么到了项目接近尾声的时候,仍然还有那么多没有解决的问题?理论上讲,应该是先分析,后设计,再编码,那为什么项目在交货以后,我们还在不断的编写设计文档?为什么每次客户需求发生变更,我们又要投入大量的资源来应对不断变化的客户需求?为什么软件开发会碰到这么多困难,我们天天加班加点,不断地去解决开发中碰到的种种问题,可是问题越解决越多,得到的效果却那么不尽人意?项目出现这些问题,原因很多,概括起来可以分为两种:管理因素和技术因素。国内普遍重视管理因素,而忽视技术因素,所以出现层出不穷的问题也就无法避免。软件架构设计属于技术因素,它位于软件开发过程的前期阶段,架构设计的过程,是分析客户需求、挖掘非功能性需求、并将客户需求所定义的领域知识转化为软件系统模型的过程,由此可见,架构设计所涵盖的范围非常广泛。目前,国内对于软件架构的认识,还存在这样或那样的误区。难道只有当设计人员在为软件项目配备了充足的资源,然而却得不到预期的结果时,才会反思:是不是软件开发本身出现了问题?架构设计源于客户需求在进行需求分析的过程中,系统分析员将客户需求转化为计算机模型,然而在这个过程中,系统分析员本身的特性也就决定了这一角色很难把握住客户的非功能性需求。需求需要挖掘,尤其对于大型的软件系统而言,光靠系统分析员这个单一的角色,很难完成需求分析与挖掘的艰巨任务。在需求分析的过程中,架构设计师更为关注的是系统的非功能性需求,例如稳定性、可扩展性、可维护性、安全性、高效性等等,这些需求都是需要挖掘的。如何挖掘?挖掘方式取决于核心需求。举个很简单的例子,客户需要实现两个系统的数据传输,这是个核心功能性需求,而在这个需求的背后,还包括了“传输过程要求可靠”、“需要采用一种特定的数据格式进行传输”、“由于数据包含一定的机密因素,因此需要加密,并需要选择合适的加密算法”等等一系列的非功能性需求。此时,架构设计师不仅需要了解客户本身的功能需求,还需要能够发掘非功能需求。因此,优秀的架构设计师一定是一个经验丰富的需求工程师,需求分析让架构设计师知道,我需要考虑哪些因素,而深厚的软件技术功底让架构设计师知道,如何去考虑这些因素。可见,架构设计源于客户需求。架构设计源于对知识的不断积累首先应该认识到,没有对领域知识、软件系统特性与软件技术等的深刻理解,就无从谈及架构设计,而深厚的领域知识与技术经验则是源于不断的积累。目前,市场上确实很多产品在架构上已经非常成熟和稳定,但这些产品的成熟架构也是通过长期不断的实践与积累才逐步形成的。经验丰富的架构设计师可以在开发产品的同时总结出一套架构模式,这对维护产品的体系结构,以及开发同类产品都有深远的意义。从另一个角度讲,产品的架构并非一成不变,随着技术的不断创新与发展,新技术一定会被应用到现有的系统架构中。此时,软件架构可能需要进行调整,我们也不能再说,我们没有必要去关心这些产品架构了。架构设计是一种取舍过程实现某一非功能性需求,可以有很多种方法,但并不是每种方法都是最合适的,这在架构设计的过程中需要做出取舍。例如,为了使得软件系统具有易扩展、易更改的能力,我们可以采用插件体系结构或内嵌脚本系统结构,两者都可以使得软件系统具有方便扩展的能力。然而,如果客户的业务流程会经常变化,或者软件系统产品会应用到具有不同业务流程的多个客户时,采用后者可能会更加符合软件本身的特点。当今IT业技术层出不穷,在特定的应用场景中,采用何种技术何种模式最合适,这就是架构设计的取舍。JAVA和.NET孰好孰坏?讨论这样的问题也不再有意义。软件工程大师Martin Fowler曾经说过:架构师是对所有重要事情做出决定的人,这一决定也囊括了取舍。架构设计将服务于整个开发过程良好的架构设计不仅使得软件系统能够满足客户需求,它更为软件系统带来了安全性、稳定性、可扩展性等属性,而这些属性在应对客户需求变更、提高软件可测试性与可维护性、降低维护成本、提高开发效率等各方面都起着非常重要的作用。客户所需要的是可以用于生产实践的最终产品,他们自然不会去关心你的软件系统采用何种设计和架构,但作为软件系统的分析者、设计者和开发者,我们必须为软件产品寻求一种合理的架构设计,因为它不仅能够使系统满足非功能性需求,而且能够降低开发成本和维护费用。总之,架构设计是软件开发过程的重要组成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西藏疫情乙类管理办法
- 荥阳市城市管理办法
- 专案管理档案管理办法
- 西瓜害虫管理办法视频
- 三类器械仓储管理办法
- 贸易融资贷款管理办法
- 落实编制人员管理办法
- 融资考核兑现管理办法
- 订单与发货管理办法
- 业主日常经营管理办法
- 装饰装修施工应急预案措施
- 租车公司经营管理制度
- 浙江省温州市名校2025届英语八下期末教学质量检测试题含答案
- 藻类分子机制解析与调控网络构建-洞察阐释
- 柴油运输配送管理制度
- 深圳片区控制性详细规划设计导则2025
- 2025至2030中国森林防火行业现状供需分析及重点企业投资评估规划分析报告
- JG/T 336-2011混凝土结构修复用聚合物水泥砂浆
- 卫生院岗位体系与职责说明
- T/CAPA 009-2023面部埋线提升技术操作规范
- 关于工资结清协议书
评论
0/150
提交评论