自动软件设计

来源:互联网 发布:江西博微配网设计软件 编辑:程序博客网 时间:2024/04/28 14:50

 

 

在1973年,美国人Peter Freeman在他的文章《自动软件设计(Automating software design)》中有这样的假设:如果有这样一台机器 ,当我们告诉它我们需要什么软件的时候,它立刻就会满足我们的要求,自动生成我们需要的程序。这台机器我称之为万能机。

当我们提出需求的时候,需要关注的仅仅是如何描述清楚我们的需求。如何实现是万能机内部的事情,和我们没有关系也不需要了解。我们关心的只有一件事情:如何将我们的需求描述得足够清晰、准确、全面、细致、没有二意性。只有这样万能机才能最大限度的生成满足我们需要的程序来。

如果将提出需求的我们比作客户,将万能机比作软件提供商。软件提供商可以开发出高质量的任意的软件产品,只要客户能说清楚有什么要求。这样两者关注的焦点只有一个,那就是客户的需求!客户的业务!

UML(统一建模语言,Unified Modeling Language)是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它的出发点就是建模,从用户如何使用系统的角度建立模型。也就是用户对系统提出的需求。用例建模是UML建模的一部分,它也是UML里最基础的部分。

MDA也是以商业模型为驱动的架构。MDA核心的思路是希望通过对商业模型(比如企业信息化或建筑领域的解决方案)的领域研究,进而提炼出一个相对核心的领域模型,同时抽象出一个PIM(平台无关模型)。根据不同的开发平台,应用平台形成相应的 PSM(平台相关模型)。最后依照相应的工具,可以完整地生成相应的代码和软件系统。MDA注重的是建立与实现平台无关的模型,以模型为驱动,利用工具自动实现代码。

SOA提出的是面向服务的架构。从服务的角度讲,SOA也是面向业务(需求)的。因为无论是万能机还是软件供应商都是为客户提供服务的。这些服务必须能满足客户提出的需求。而服务如何提供、用什么方法实现则是提供者需要考虑的事情。