软件设计方式以及软件架构的选定对于一个软件项目来说非常重要,合适的开发设计方案可以参考软件组织模式的比较分析进行选定。
2。2开发模式的综述
2。2。1瀑布模式
规划,需求分析,设计,代码设计,测试,运行是瀑布法软件开发流程。[1]顺序不可更改,前一个活动的输出是后一个活动的输入,可以说当前的活动和成果,验证完成后把它转到下一个事件,或者让成果重新回去修正。即上一个阶段完成后才能进入下一个阶段,整个过程链接起来就像瀑布一样逐级下落。瀑布模型适合于功能和性能明确、完整、无重大变化的软件开发活动。
瀑布法优势是在生命周期思想基础上,提供检查点阶段,以保证用户需要,并且满足预期费用和进度的控制。它强调每个阶段的严肃性,这样,能解决在开发后期修正不完善的需求描述而浪费项目费用。瀑布模型局限性在于软件产品的整体发展,它不支持开发过程的演进,所以是很难发现在最终产品可能的一些错误。缺乏制度的灵活性,最终产品会难以进行维护。瀑布模式流程图如图2-1瀑布模式。
图2-1 瀑布模式
2。2。2原型模式
原型是在实际体系之前建立的,第一步迅速建立一个原型来模拟终端用户系统的相互作用,其目的是为了使我们的客户尽快了解做出来的制品是什么,清楚系统的未来的结构,而且还要根据客户的评论进行开发以及提高系统功能,就是客户在原型开发过程中不断的提出建议,开发团队根据用户的建议进行修改。反反复复的进行用户建议和开发人员的修改过程,当用户满意了系统的原型,然后再开始进行真正的软件开发。原型化模式并不是所有的需求在系统开发前都可以准确地阐明和进行定义。因此,它不寻求也不可能要求对需求的严格定义,而是采用了动态的需求界定方法。
原型模式的优势在于组织模式能够有效地识别用户需求。原型法开发方法方便与用户交流并且和用户的交流无阻碍,有助于在软件开发活动中占有领先地位,因为具体要求和需求在用户这可以得到有价值的详细的信息。经常利用被描述的用户需求,可以减少整个项目的时间,同时降低开发风险。论文网
原型模式的局限性在于没有瀑布法成熟和方便管理,需要原型自动化的工具来支持它。大量的用户参与将出现新的问题,原型变化的过程之中,容易把原型法的宗旨偏离。用户知道了原型的全部功能,会忽视原型体系的适用性和安全性,以及没有达到在线应用的标准和可靠性等方面的物理环境,没有经验的提出把原型交付立刻当做完整产品使用。这个没有完成的产品体系后面的问题会越来越多,维护成本不断增加,失去了原型模式本来的主旨。
图2-2 原型模式
2。2。3MDA开发模式
对象管理组织(OMG)在2001年7月公布了新的软件开发模式——MDA(Model Driven Architecture)模型驱动架构。MDA是一种基于UML的软件开发模式,支撑软件设计和模型的可视化。MDA模式中,模型是软件设计的核心,把体系的功能和详细的实现技术相分离并且通过模型来表示。软件开发活动中的辅助工具不只是模型,在对比以前的软件开发组织模式时,模型在软件开发活动中占有核心地位,模型是基于MDA的软件开发组织活动的根基。
依赖MDA的软件开发活动的特征:依赖MDA的软件开发组织模式中有两个重要模式分别为PIM(Platform Independent Model)以及另一个PSM(Platform specific Model),中文解释分别是平台无关模型,平台相关模型。整个开发组织活动中,PIM居于MDA的核心地位。MDA的软件开发进程中,首先是建立和详细技术无关的PIM,第二步把模型转换得到平台具体信息的PSM,最后是转换成可执行的代码。简单的描述是“PIM ->PSM ->Code ”进程[11]。图2-3MDA开发具体流程。