《基于模型的软件开发》——第2章 对象技术

简介:

本节书摘来自华章计算机《基于模型的软件开发》一书中的第2章,作者:[美]H. S.莱曼(H. S. Lahman)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第2章 对象技术

真正危险的不是机器开始像人类一样去思考,而是人类的思维如同机器。
——Sydney J.Harris
结构化开发彻底改变了软件开发的方式,为软件构造提供了一种系统的开发方法,并且与更加成熟的工程科学过去经常使用的技术一致。结构化开发大大加快了大型应用开发的速度。尽管结构化开发是生产力的福音,但是20世纪70年代后期其弱点也明显暴露出来。这些弱点在第1章中已经讨论过了。
与此同时,OO方法论者注意到OO范式有一个有趣的副作用,那就是OO范式的应用更易于维护。因此1980年左右OOA/D的重点发生了微妙的转向。在此之前的方法将重点主要放在与新的OO程序设计语言(OOPL)兼容地表达设计上。人们发明了OOPL构造的图形表示法,方法学转而表达这些表示法中的基本设计理念。但是到了1980年左右,方法论者开始着重研究如何使用OOA/D去解决结构化开发的具体问题。
本章其余部分在执行摘要层面对OO范式的发展进行概述。首先,我们选择一些OO范式构造理念中的基本元素进行介绍,然后讨论针对结构化开发问题的具体机制和技术,最终目标是为OO范式解决SD和黑客时代出现的问题奠定基础。OO范式的主要特性将在后面的章节中详细讨论。

相关文章
探索自动化测试在软件开发生命周期中的关键作用
在当今快节奏的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市时间的重要工具。本文深入探讨了自动化测试在软件开发生命周期(SDLC)各个阶段的应用和效益,包括需求分析、设计、编码、测试和维护等环节。通过具体案例分析,展示了自动化测试如何帮助团队提高测试效率、减少人为错误并缩短产品迭代周期。文章还讨论了实施自动化测试时面临的挑战,如选择合适的工具、编写可维护的测试脚本和处理动态变化的需求,以及如何克服这些挑战的策略。最后,提出了自动化测试的未来趋势,强调了持续集成/持续部署(CI/CD)流程中自动化测试的重要性,以及人工智能和机器学习技术在自动化测试领域的潜力。
138 14
移动应用开发是一个涉及多个方面的综合性过程
移动应用开发是一个涉及多个方面的综合性过程
64 9
深度解析Unity游戏开发:从零构建可扩展与可维护的游戏架构,让你的游戏项目在模块化设计、脚本对象运用及状态模式处理中焕发新生,实现高效迭代与团队协作的完美平衡之路
【9月更文挑战第1天】游戏开发中的架构设计是项目成功的关键。良好的架构能提升开发效率并确保项目的长期可维护性和可扩展性。在使用Unity引擎时,合理的架构尤为重要。本文探讨了如何在Unity中实现可扩展且易维护的游戏架构,包括模块化设计、使用脚本对象管理数据、应用设计模式(如状态模式)及采用MVC/MVVM架构模式。通过这些方法,可以显著提高开发效率和游戏质量。例如,模块化设计将游戏拆分为独立模块。
432 3
C++设计哲学:构建高效和灵活代码的艺术
C++设计哲学:构建高效和灵活代码的艺术
178 1
代码世界的构建有一个不可或缺的支柱(如何让代码更加稳健)
代码世界的构建有一个不可或缺的支柱(如何让代码更加稳健)
软件开发者的时间都去哪儿了?后端开发核心技能——抽象建模
服务端开发工程师在大部分工作时间里并不是在写代码,而是在抽象建模。工程师需将业务需求抽象成领域模型、模块、服务和系统,面向对象开发时需抽象出类和对象,面向过程开发时抽象出方法和函数。某种意义上,软件的本质就是抽象,建模则是系统地实施抽象的过程。作为一种将事物形象化的有效手段,建模可将现实世界中的事物及事物之间的关系准确地表达出来。本文通过一个实际案例,详细解读业务抽象建模的好处。
178 1
软件开发者的时间都去哪儿了?后端开发核心技能——抽象建模
软件工程概念——是什么?软件工程的过程PDCA?生命周期模型有哪些?
在刚结束完的机房,它就是一个软件,我们如何使这个软件能够供更多人去使用,软件如何更加规范化,就需要使用软件工程的思想啦!

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等