资源描述:
《软件体系结构在软件开发过程中的作用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、软件体系结构在软件开发过程中的作用一.为什么要用软件体系结构的思想来开发软件产品?软件从最初的程序到今天的程序加文档,看起来并没有什么变化。然而今天的软件要实现的功能已与昨天不可同日而语,对软件各方面功能和性能的要求决定了软件空前的复杂。软件的开发已不是简单的写程序,在软件开发的整个生命周期里,从需求分析到设计到编码到测试到维护,编码仅占一小部分。软件开发的侧重点从编码已经转移到需求分析和软件总体架构设计许多项目都是在回顾时,才发现问题在结构上.因结构的局限性,付出太多的代价.在体系设计上付出一天努力解决的问题,在以后阶段可能
2、要多付出几天到十几天也不一定能解决。由于当今的软件产品需求复杂、内容丰富、变更频繁。很难想像在一个没有规范,没有构造思想指导下软件开发会取得什么样的“成果”。二.软件体系结构在软件开发过程中的作用1.规范软件开发的基本架构。体系结构一般说来与需求是密切相关的.明确的需求可以制定明确的软件规格,越明确的规格设计出来的软件架构越清晰.需求的变更也是必须要考虑,有明确的变更趋势也可以更早的在设计中体现出来。在定制软件规格的阶段,要考虑一个问题,就是一些核心的技术,指的是这个项目中比较重要的关键的技术,应验证这些技术是否可行,如果稳定
3、可靠才能采用,否则只能另寻它路.一些难关也是要考虑的.这样制定的规格才能符合实际.这些工作应作为结构设计上的重要参考.今天几乎所有的软件开发都不可能从头做起,需要借鉴前人或组织中其他项目所拥有的经验。一个良好的软件体系结构可以给我们很多的帮助和参考。良好的体系结构可以规范软件开发过程,少走弯路,事半功倍。2.便于开发人员与用户的沟通。软件的高度复杂也决定了软件开发需要充分的设计,需要研究开发模式,研究体系结构,从宏观和更抽象的层次把握软件的开发,并把这整个过程付诸于文档的形式记录下来,在软件开发人员与系统设计人员、用户以及其他
4、有关人员之间进行沟通交流,以达成共同的理解。如果有明确的需求和规格,那应该进行详细的结构设计,从用例,到类图,到关键部分的序列图,活动图等,越细越好.多多的交流,尽量让更多的人了解项目的需求与现实环境,为设计提出建议.结构设计注重体系的灵活性.较多的考虑各种变更的可能性.这是最关键的阶段.但这通常是理想状态,一般来说客户不会给出太明确的需求。应用软件体系结构的思想和方法可以比较好的划分范围、确定时间、规划成本、保证质量。3.模块化、层次化设计,有利于减少返工,提高效率。整个项目一般受到多种限制,尤其明显的是计划,面对这些问题.
5、在设计架构上要注意模块的划分,模块越独立越好.尽量把有明确需求的应用划分为独立的模块,模块与模块之间减少交集,一旦某个模块出现问题也不至于牵一发而动全身。层次化设计就是一层一层分割,一目了然的处理方式。层次体系结构利用分层的处理方式来处理复杂的的功能,层次系统由于是上层子系统使用下层子系统的功能,而下层子系统不能够使用上层子系统的功能,下层每个程序接口执行当前的一个简单的功能,而上层通过调用不同的下层子程序,并按不同的顺序来执行这些下层程序,有效的杜绝了不同层次之间不该有的交集,减少了错误的发生,也便于检错。4.便于系统开发前
6、、后期的筹备与服务。现在的软件产品已经摆脱了小规模、作坊式的生产方式。对于软件公司来说,利用体系结构的思想开发产品不仅可以规范流程、节省时间而且还能留下大量的开发文档、产品类型框架、软件开发标准流程等资料。为今后的售前咨询和售后服务提供参考和依据。说到软件体系结构就不能不提及非功能性需求。非功能性需求集中了各种约束,其中“人”的因素至关重要。可以说人是整个软件产品计划中的重中之重。一个IT项目的成败固然与良好的体系结构有密接的关系,但作为体系结构中的一环,应该投入大量的时间和精力去了解客户真正想要什么样的产品,开发人员是否充分
7、与客户进行了有效的沟通,特别是一些隐性需求,其中会包含许多利益的成份。并非看上去最合理的IT架构就是最符要求的设计。人是一切项目成功的推手也是一切项目失败的导演,更是一切项目得以为继的绊脚石。作为一个有着17年工作经验的在职人员从来没有参加过任何项目,实在是一种莫大的遗憾或者说是“悲哀”。但我亲眼见识过我单位的IT项目,并且也在某种程度上是一个使用者。就我的发现来说我单位的IT项目完全处于一种“人治”的阶段。没有从IT项目管理的角度去思考过问题,更谈不上用体系结构的思想去构建项目,基本上处于想到哪儿做到哪儿的地步。前期方案的制
8、定、技术流派的选择、后期服务等相关方面均没有考虑。致使不同的功能模块使用不同的方式去开发,开发小组之间少有交流,导致后期集成困难、错误率极高、出错之后难于排查、开发人员和用户相互推诿。人的因素在其中也扮演着很重要的作用。就我国目前的软件开发环境而言,或许只有摒弃了那些沉积了2