自动软件设计

来源:互联网 发布:安东尼 知乎 编辑:程序博客网 时间:2024/04/27 22:29

 

 


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

从用户角度看,自动软件设计将软件采购分为两个步骤:提供需求和接收软件产品。从软件开发商的角度看,自动软件设计将软件的提供分为两个步骤:获取需求和提交软件产品。

基于自动软件设计的假设,将软件开发商比作打印机,用户的需求比作一篇文档。文档的内容可能是一篇演讲稿,也可能是一个工作汇报,也可能是一幅精美的图画。打印机根据文档的排版、样式和颜色的要求,将内容无偏差的打印出来。用户得到预期的结果。

因此,用户的需求作为软件开发商开发软件产品的输入信息对软件产品能否满足用户的需要起到决定性的作用和影响。

用户业务描述的清晰程度、及时性、准确性、全面细致与否、有没有二意性等,这些都是直接对产品带来影响的因素。用户的业务是用户和软件开发商共同关注的焦点。

由于人的认识的有限性和持续性,再加上客户业务环境变化带来的需求的变更,无法一次性完成设计和软件的交付。为了最终满足客户的业务需要,需求要持续的改进。

为了达到持续改进的目的,减少需求变化带来的影响,通常采用建模的方法。用较为抽象的、独立的模型描述业务以及用户和系统的交互。

UML、MDA和SOA等都是建立以用户业务为目标的语言、工具、标准、方法和过程。

在模型实现过程中,可以采用封装变化的策略,将变化较多的业务功能分解封装起来。当业务的需求发生变化,只需要修改或者替换发生变化的部分,来适应业务的需要。

 

原创粉丝点击