"约束驱动的软件分析&设计新技术"开篇

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

   举个例子,为什么有些系统划分为2层、有些是3层、有些确实4层、5层、6层...?很多人并不了解各种分层适用的约束,而仅仅生搬硬套,盲目应用。



本文转自 trufun 51CTO博客,原文链接:http://blog.51cto.com/trufun/15326,如需转载请自行联系原作者

相关文章
|
7月前
|
缓存 算法 测试技术
【软件设计师备考 专题 】如何定义软件需求:系统化的目标、配置、功能、性能和约束
【软件设计师备考 专题 】如何定义软件需求:系统化的目标、配置、功能、性能和约束
331 0
|
7月前
|
自然语言处理 监控 搜索推荐
佛萨奇2.0/3.0Metaforce原力元宇宙系统开发步骤逻辑丨方案项目丨案例设计丨成熟技术丨源码功能
佛萨奇(VoZaChi)是一个虚拟助手系统,其发展至2.0和3.0版本会有一些特定需求和逻辑
|
开发框架 运维 测试技术
ARBT(阿尔比特)智能合约系统开发稳定版/详细案例/步骤逻辑/需求方案/成熟技术/源码架构
需求分析:与客户充分沟通,了解其业务需求和期望,明确系统的功能和性能要求。
|
搜索推荐 数据库 Nacos
项目实战典型案例8——让软件的使用者成为软件的设计者
项目实战典型案例8——让软件的使用者成为软件的设计者
132 0
|
设计模式 程序员 开发者
重构·改善既有代码的设计.01之入门基础
近期在看Martin Fowler著作的《重构.改善既有代码的设计》这本书,这是一本经典著作。书本封面誉为软件开发的不朽经典。书中从一个简单的案例揭示了重构的过程以及最佳实践。同时给出了重构原则,何时重构,以及重构的手法。用来改善既有代码的设计,提升软件的可维护性。
643 1
重构·改善既有代码的设计.01之入门基础
|
安全 物联网 5G
6G之路:标准尚未制订,核心基础研究却已展开
6G之路:标准尚未制订,核心基础研究却已展开
456 0
6G之路:标准尚未制订,核心基础研究却已展开
|
项目管理
研发思维10----嵌入式智能产品工作过程启发
研发思维10----嵌入式智能产品工作过程启发
133 1
研发思维10----嵌入式智能产品工作过程启发
|
设计模式 Java 程序员
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
213 0
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
|
程序员
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
585 0
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
《实践者的研究方法》—— 第1章 软件的本质 1.1 软件的本质
本节书摘来自华章出版社《实践者的研究方法》一书中的第1章,第1.1节,作者布鲁斯 R. 马克西姆(Bruce R. Maxim)郑人杰 马素霞,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 第1章 Software Engineering: A Practitioner’s Approach, Eighth Edition 软件的本质 要 点 浏 览 概念:计算机软件是由专业人员开发并长期维护的软件产品。
2162 1