关于这个话题,我似乎说过好多次了。软件系统其实就是现实系统的抽象,就是现实系统的模型。最近,看到一个论点,是这样说的:软件建模(架构)的过程其实就是一个定理证明的过程。我得说,在我看来,这有一定的真理性。但是事实有一定的差异。基本原因是:我们碰到问题的时候,并不总是对问题的解决方案一无所知的,或者更确切的说,对问题的解决方案几乎总是有一定的了解得。这时候,证明的过程其实并不是很明显,反而是表达的过程成了重头戏。
这儿,我在阐述一遍我的观点,软件就是模型,就是抽象。基于上面的描述,软件开发过程也就是构思模型和表达模型的过程。由于表达和构思互相影响,密不可分(大家可以参照语言和思维的关系来理解这一点),所以我只说表达这个方面。我们的模型如何表达现实?
必须解释一下数据的概念了。数据就是表达关系的,关系紧密到一定程度就叫做属性了。一个客体,或者常常被称作对象,物件,就是用其属性描述的。我们描述了客体,也就反映了现实。而客体是数据的集合,所以我们操作数据也就是反映了现实的行为了。对于数据的操作我们有CRUD(Create Read Update Destory)四个,对应于数据库系统的INSERT、SELECT、UPDATE、DELETE四个基本的数据操纵原语。所有的客体的行为,最终都是用CRUD来表达的。所以,只要我们正确地表达了数据,我们就能够正确地表达软件系统。
分享到:
相关推荐
软件开发的本质论英文版epub
总之,《软件开发的哲学思考》这篇文章通过对软件开发本质的深刻剖析,为我们提供了一种全新的视角来审视这一领域。它不仅强调了技术的重要性,更突显了人性因素在软件开发中的核心地位。对于每一位从事软件开发的人...
Python 简介、计算机核心架构、软件开发本质论、Python程序运行原理、Python IDE
1. **心智活动**:文章开篇便指出,软件开发本质上是一种基于人类心智活动的过程。这一观点强调了软件开发不仅仅是技术层面的问题,更是心理学、认知科学等领域交叉的结果。 2. **人性的反映**:软件开发不仅反映了...
软件开发本质上是将用户需求转化为软件产品的过程。这个过程需要经过目标设定、需求分析、设计、编码、测试、部署等步骤。在实际开发中,由于各种不确定因素的存在,使得项目管理变得复杂。因此,为了满足低成本、高...
1. **理论基础**:软件开发本质上是一种逻辑构建过程,而数学证明则是基于严格的逻辑推理。因此,数学证明为软件开发提供了一种强大的工具,用于确保程序逻辑的正确性和完整性。 2. **形式化方法**:在软件开发中...
此外,对软件开发本质的误解,以及过分依赖过程而忽视人的因素,也是导致项目失败的深层次原因。 为了应对这些挑战,业界发展了一系列方法和标准,如统一建模语言(UML)、能力成熟度模型集成(CMMI)、ISO标准等,...
软件应当包括程序和文档两部分知识的提炼、表达、固化作用,正是软件和软件开发过程的实质所在。 软件开发的四阶段是需求分析、总体设计、实现阶段、测试阶段。软件开发工具有对信息进行管理的功能,管理的主要内容...
本书被誉为安全技术领域的“黄帝内经”... 综合论述如何在软件开发整个生命周期内建立安全屏障,对于设计安全的软件给出了高屋建瓴的指导,全面翔实,深入浅出。对于任何关注安全软件开发的人来说,都是一本必备之书。
本书被誉为安全技术领域的“黄帝...综合论述如何在软件开发整个生命周期内建立安全屏障,对千如何设计安全的软件给出了高屋建领的指导,全面翔实,深入浅出。 对千任何关注安全软件开发的人来说,都是—本必备之书。
《敏捷软件开发》这本书不仅提供了一套新的软件开发方法论,更重要的是它改变了许多人对软件开发本质的看法。通过强调团队合作、快速反馈循环、用户参与等原则,敏捷方法论已经成为了现代软件开发领域不可或缺的一...
此外,文档还提及了对软件开发本质的理解,即满足用户需求、易用性、稳定性和成本效益是评判项目成功的关键。作者批评了单纯追求新技术或编程语言的行为,认为应根据项目需求选择合适的工具。 整体来看,这份工作...
软件开发本质上是一种高度创造性的活动,它要求开发者具备独特的思维和创新精神。然而,随着技术的发展和市场需求的变化,团队管理者面临着既要提高开发效率又要保证项目质量的双重挑战。如果忽视任何一方,都可能...
西安交通大学提供的《软件开发技术基础》课程PPT课件合集详细地介绍了软件开发的核心技术和基础知识,这部分资料对于学习和理解软件开发过程有着极其重要的作用。课程内容涵盖了软件开发方法、数据结构、操作系统...
- **第1章:一个创造与沟通的合作游戏**:这一章节将软件开发比作诗歌创作和游戏设计,强调了软件开发的本质在于发明与沟通的过程。通过对合作游戏的再审视,阐述了软件开发过程中团队合作的重要性。 - **第2章:...
在20世纪60年代,大型机...随着技术的进步和对软件开发本质理解的深化,设计方法论将继续进化,以更好地应对日益复杂的软件挑战。对于本科毕业生来说,理解和掌握这些设计原则和技术将为他们的职业生涯打下坚实的基础。