基于“约束驱动的进化理论”的“约束驱动的软件分析&设计新技术”消除了软件分析、设计、开发中的任意性、神秘性、不确定性和经验性,而重新赋予软件分析、设计、开发过程必然性、内在逻辑推演性、确定性、可控性。
软件开发过程的每一步都是约束驱动的,输入+约束=输出。
对于软件系统而言,输入是用户需求,输出是可执行代码。不同层次的开发人员因为有不同的约束,导致最后开发出来的软件系统的质量不同。但是最基本的输出就是可执行,并能实现目前的功能。
开发人员的进化过程就是不断的提高约束等级、加码的过程,这个过程可能是经验的、可能是有意识的、可能是客观必须的。
开发人员针对约束的认识不同、对约束的解决方案的不同,而产生不同层次的开发人员,如架构师、分析员、设计师、高级程序员、程序员...
“约束驱动的软件分析&设计新技术”将提炼出软件分析和设计中的内在驱动力,即约束,并消除软件开发过程中的任意性和不确定性。
软件开发过程中表面的任意性和不确定性来自于施加于软件系统的约束各不相同。而由于编译器对约束的低要求,导致五花八门的软件实现出现。
约束的多少决定软件系统的品质,而编译器只负责可执行,不负责品质。
有聊胜于无,但有不等于好,现在好不等于将来好。
浅显点说,吃饱不等于吃好,吃好不等于吃健康。而编译器只检查是否吃饱。
最低层次的程序员还处于“有聊胜于无”的初级阶段。
另外,一个程序员如何可以晋级为高级程序员、甚至设计师、系统分析员、架构设计师?不同角色之间的内在区别和联系是什么?有没有捷径或者可控的路径来持续进阶?可能大多数都是个糊涂账。“约束驱动的软件分析&设计新技术”会明白的告诉你,不同角色的区别在于各自对软件系统施加的约束不同。当然,这也不排除知识积累、技术积累的局限,对于某种约束的解决方案也有高下之分。
软件开发过程的每一步都是约束驱动的,输入+约束=输出。
对于软件系统而言,输入是用户需求,输出是可执行代码。不同层次的开发人员因为有不同的约束,导致最后开发出来的软件系统的质量不同。但是最基本的输出就是可执行,并能实现目前的功能。
开发人员的进化过程就是不断的提高约束等级、加码的过程,这个过程可能是经验的、可能是有意识的、可能是客观必须的。
开发人员针对约束的认识不同、对约束的解决方案的不同,而产生不同层次的开发人员,如架构师、分析员、设计师、高级程序员、程序员...
“约束驱动的软件分析&设计新技术”将提炼出软件分析和设计中的内在驱动力,即约束,并消除软件开发过程中的任意性和不确定性。
软件开发过程中表面的任意性和不确定性来自于施加于软件系统的约束各不相同。而由于编译器对约束的低要求,导致五花八门的软件实现出现。
约束的多少决定软件系统的品质,而编译器只负责可执行,不负责品质。
有聊胜于无,但有不等于好,现在好不等于将来好。
浅显点说,吃饱不等于吃好,吃好不等于吃健康。而编译器只检查是否吃饱。
最低层次的程序员还处于“有聊胜于无”的初级阶段。
另外,一个程序员如何可以晋级为高级程序员、甚至设计师、系统分析员、架构设计师?不同角色之间的内在区别和联系是什么?有没有捷径或者可控的路径来持续进阶?可能大多数都是个糊涂账。“约束驱动的软件分析&设计新技术”会明白的告诉你,不同角色的区别在于各自对软件系统施加的约束不同。当然,这也不排除知识积累、技术积累的局限,对于某种约束的解决方案也有高下之分。
举个例子,为什么有些系统划分为2层、有些是3层、有些确实4层、5层、6层...?很多人并不了解各种分层适用的约束,而仅仅生搬硬套,盲目应用。
本文转自 trufun 51CTO博客,原文链接:http://blog.51cto.com/trufun/15326,如需转载请自行联系原作者