首页 > 其他分享 >读书笔记——《软件需求》其一

读书笔记——《软件需求》其一

时间:2023-09-25 18:11:58浏览次数:28  
标签:其一 读书笔记 程序 Dijkstra 程序验证 软件 方法 程序正确性

《软件方法》是计算机科学领域的经典之作,由Edsger W. Dijkstra于1975年出版。这本书对软件工程和程序设计方面的思想和方法进行了深入的研究和探讨,对于软件开发人员来说具有重要的启发和指导意义。

在书中,Dijkstra强调了程序设计的正确性和可读性的重要性。他认为程序应该被认为是数学论证的一部分,良好的程序设计需要严谨的逻辑思维和清晰的表达能力。他提倡使用形式化的方法来描述程序行为,并强调了程序错误的严重后果。通过使用数学符号和推理规则,他指出了一种确保程序正确性的方法。

另一个重要的主题是结构化程序设计。Dijkstra提出了一种将程序分解为小而可复用组件的方法。他建议使用模块化的概念,将程序分解为独立的功能单元,并提供了一些准则来帮助程序员设计高内聚、低耦合的模块。这种结构化的方法使得程序更易于理解、测试和维护。

此外,《软件方法》还涉及了软件测试、软件可靠性和程序验证等主题。Dijkstra强调了软件测试的重要性,认为系统的可靠性依赖于对各个组件的充分测试。他还提出了一种基于断言的程序验证方法,通过在程序中插入断言来确保程序的正确性。

这本书不仅提供了许多有关软件开发的技术性内容,还包含了许多关于程序员职业道德和责任的思考。Dijkstra认为程序员应该对自己编写的代码负责,并以专业的态度对待自己的工作。

总体而言,《软件方法》是一本深入探讨计算机科学和软件工程基本原则的重要著作。它强调了程序设计的严谨性、模块化以及程序正确性的重要性。这些思想和方法至今仍然具有指导意义,对于希望提高软件开发技能和质量的读者来说,这本书是一本不可或缺的参考书籍。

《软件方法》这本书中有一些值得注意的细节,下面列举其中几个:

  1. 程序正确性的重要性:Dijkstra在书中强调了程序正确性的重要性。他认为编写一个正确的程序不仅仅是技术问题,更是一种职业责任和道德要求。他倡导使用形式化的方法来描述程序行为,并指出了程序错误会带来的严重后果。

  2. 结构化程序设计的原则:Dijkstra提出了结构化程序设计的概念,将程序分解为小而可复用的模块。他强调了模块化的重要性,建议程序员设计高内聚、低耦合的模块,以提高程序的可读性和可维护性。

  3. 断言和程序验证:书中介绍了使用断言来进行程序验证的方法。通过在程序中插入断言(即一些预期的条件),可以确保程序在运行时满足这些条件。这种基于断言的程序验证方法有助于提高程序的可靠性和正确性。

  4. 系统测试的重要性:Dijkstra强调了系统测试对软件质量的关键影响。他认为充分的测试是确保软件可靠性的重要手段,需要对各个组件进行充分的测试,并考虑不同的边界条件和异常情况。

  5. 编程作为一种艺术:尽管Dijkstra注重程序正确性和严谨性,但他也将编程看作是一种艺术。他鼓励程序员发挥创造力,在编写清晰、简洁和高效的代码的同时,保持对编程的热情和审美追求。

这些细节体现了Dijkstra在《软件方法》中对软件开发的深入思考和独特见解。这些观点和原则对于提高软件质量、加强程序正确性以及推动软件工程领域的发展具有重要意义。

标签:其一,读书笔记,程序,Dijkstra,程序验证,软件,方法,程序正确性
From: https://www.cnblogs.com/zhanshuang/p/17728527.html

相关文章

  • 探索Navicat Premium 16:卓越的数据库管理软件解决方案 mac+win版
    在当今的数据驱动时代,一款高效、便捷的数据库管理软件对于企业、机构以及个人用户来说至关重要。NavicatPremium16,作为一款备受赞誉的数据库管理软件,正在满足这一需求,以其独特的功能和优势吸引着广大用户。→→↓↓载NavicatPremium16mac/win版一、NavicatPremium16的核......
  • Qt 5.12.9 + VS 2019配置并实现与三菱Q系列PLC通讯(1)软件的安装
    本人最近配置了QT5.12.9+VS2019,并实现了与三菱Q系列PLC通讯并实现数据交互的基本功能,在这个对中间遇到的一些问题和过程进行文字说明,以后大家有用到相关功能的话可以避免一些不必要的问题~需要安装的软件有三个:QT5.12.9、VS2019、MXComponetS4.19QT安装首先是对......
  • 《软件工程:一种实践方法》读后感一
    《软件工程:一种实践方法》是由RogerS.Pressman所著的一本著名的软件工程教科书。该书系统地介绍了软件工程的理论、方法和实践,是软件工程领域的经典之作。阅读完这本书后,你可能会对软件工程的以下方面有了更深的理解和认识:1.软件开发过程模型:书中介绍了各种软件开发过程模型,如......
  • 《软件需求十步走》阅读笔记
    软件需求是什么?是客户最基本的要求,是开发人员如何针对开发的基准,若软件开发没有了这一步,也就失去了此次开发的必要性,也就如同做了无用功。有需求的存在,对客户、开发团队双方来言是互利的存在,所以我们作为软件工程的学生,自当做好对需求的正确、准确分析。软件需求是软件项目和产品......
  • 直播软件开发,随机密码生成器
    直播软件开发,随机密码生成器方法调用 publicstaticvoidmain(String[]args){    //排除字符0OoB81lI,包含大写字母,包含小写字母,包含数字,包含特殊字符,长度8,生成10000个,特殊字符集    generatePassword("0OoB81lI",true,true,true,true,8,10000,"~!@^*%");......
  • 软件工程测试--hive数据分析,步骤
    下面这里的语句在上一个博客里有需要的伙伴可以去找......
  • 数据恢复软件免费下载-数据恢复神器免费下载-硬盘数据恢复神器软件- U盘数据恢复神器
    EaseUSData数据恢复软件是非常强大的数据恢复软件,支持电脑、硬盘、移动硬盘、U盘、SD卡、存储卡、相机等各类存储设备数据恢复,支持1000多种文件格式恢复,包括文档、照片、视频、音频等各种文件。作为一款功能强大的数据恢复软件,可轻松恢复意外删除的文档,并支持从损坏或格式化的硬盘......
  • 第三方测评机构做软件测试的对企业有哪些收益?专业第三方测评机构收费?
    ​ 权威第三方软件测试报告第三方测评机构做软件测试的对企业有很多收益。主要有以下几点:节约人力成本:对于很多软件企业而言,由于软件的开发上线需要聘请专业的软件测试人员,但是一旦项目不饱和或者结束,这样会提高人力成本。选择第三方软件测评机构进行软件测评的话,就能完美......
  • 华为云ROMA Connect行业生态联盟成立,携手共建行业软件合作新生态
    9月22日,在上海举办的华为全联接大会2023大会上,华为云ROMAConnect联合多家生态伙伴,成立华为云ROMAConnect行业生态联盟,携手共建企业应用集成平台和行业软件合作新生态,致力于为客户数字化转型提供更专业的联合解决方案,打破时间、空间、开放鸿沟,联接企业现在与未来。华为云ROMAConn......
  • 5款良心办公软件,功能强大到离谱,可免费使用
    今天给大家分享5款良心办公软件,功能强大到离谱,还可免费使用。 1.截图软件——Snipaste Snipaste是一款免费、轻巧且功能强大的截图工具,可以帮助用户快速截取屏幕上的任意区域,并提供了丰富的编辑和标注功能,如文字、箭头、马赛克等,让你可以轻松地进行截图的个性化处理。此外,Sn......