首页 > 其他分享 >《构建之法》读书阅读笔记一

《构建之法》读书阅读笔记一

时间:2024-01-29 20:01:11浏览次数:22  
标签:需求 程序 笔记 软件工程 构建 读书 软件 银弹 工程化

 

第一章 概论:

1.“软件=程序+软件工程”

问题:程序与软件的区别是什么?

回答:以前我总是分不清何为程序,何为软件,一直以为比较完善的程序就是一个软件。于是,我上网查了资料,更加明确两者的区别:

程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为进行某活动或活动所规定的途径。

一个程序应该包括以下两方面的内容: (1)对数据的描述。即数据结构。 (2)对操作的描述。即操作步骤,也就是算法。

这也就是我们常说的:程序=算法+数据结构

软件:软件是一系列按照特定顺序组织的计算机数据和指令的集合。(与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。)

另外,该书给出软件工程的定义是:把系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护上的过程,也就是说将工程化应用于软件。但根据我对“软件=程序+软件工程” 这个等式的理解,软件工程是不是也可以理解为将工程化应用于程序?

 

2.“没有银弹“理论

不管是上课还是看书 都对“没有银弹”这句话印象比较深刻,文中说“软件的这些非本质、临时的特性并不能解决软件工程的本质问题。例如,有人发明了一种新的程序设计语言等并不能改变软件工程的根 本难度,也就是著名的“没有银弹“论断所阐述的问题”。看完这段话,我想我对‘‘没有银弹”中 “银弹”“所指的改变的程度究竟是什么产生了好奇。于是,我上网搜了一下:《没有银弹》是Fred Brooks在1987年所 发表的一篇关于软件工程的经典论文。该论述中强调真正的银弹并不存在,而所谓的没有银弹则是指没有任何一项技术或方法可以能让软件工程的生产力在十年内提高十倍。

 

3.“如果一架民用飞机上有需求,用户使用它的概率是百万分之一,你还要做这个功能么?文中给出的这个需求是飞机的安全功能,面对这个需求,我们当然选4.做了,而且不厌其烦的告诉用户如何使用。”

问题:在企业去做一个软件时,如果一个需求用户使用它的概率是百分之一,我们需不需要去做,如果使用率是五十分之一,十分之一呢?(当然这个需求不是涉及安全方面的)

回答:我的个人想法是要看企业对这个软件所投入的精力、时间、金钱以及这部分需求未来的发展空间。如果,公司有足够的精力以及通过对市场的调查发现该需求将来会有很大的发展空间,我们可以做。但如果这部门需求可能在未来不会有很好的发展或者企业没有足够的精力去做,那我们可以集中精力将软件的主要功能完成,其他次要的以后再说。(根据实际情况具体分析)

 

标签:需求,程序,笔记,软件工程,构建,读书,软件,银弹,工程化
From: https://www.cnblogs.com/wangxinyuan1108/p/17995224

相关文章

  • 《构建之法》读书笔记二
    第二章个人技术与流程1.2.1.1用VSTS写单元测试在该部分,举的例子是用c#写的,因为之前并没有了解这部分的内容,所以,看起书来不是很懂。希望老师在上课时能用同学们学过的Java或者c语言举例给同学们讲解一下。2.“最好在设计的时候就写好单元测试,这样单元测试就能体现API的语义如......
  • DHCN论文阅读笔记
    Abstract基于会话的推荐(SBR)侧重于在某个时间点的下一项项目预测。近年来,基于图神经网络的SBR方法将项目转换为成对的关系,忽略了项目之间复杂的高阶关系。超图提供了一种捕获非成对关系的自然方法。在本文中,我们通过将基于绘画控制的数据建模为一个超图。提出了一个超图卷积网络来......
  • Imdeploy笔记
    Smiling&Weeping----天气不好的时候,我会小心地把自己心上的裂缝补起来。为什么?... LMDeploy的量化和部署1环境配置2服务部署2.1模型转换2.1.1在线转换2.1.2离线转换2.2TurboMind推理+命令行本地对话2.3TurboMind推理......
  • 构建之法的读书笔记与读后感2
    软件工程师的成长个人能力的衡量与发展,IC在团队中的流程,初级软件工程师的成长以及工作量和质量的衡量(PSP认为的4个因素),TSP对团队成员的要求(交流、说到做到、接受团队赋予的角色并按角色要求工作、全力投人团队的活动、按照团队流程的要求工作、准备、理性地工作)。软件工程师的......
  • 使用 AI 构建面向未来的 DevOps
    从去年底开始,生成式AI(AIGC) 作为热门话题,深入影响到了IT行业的各个领域和所有从业者。DevOps 是通过持续集成、持续部署、持续交付的方式,将开发和运营更好地整合在一起的流程,它的发展与架构的演进是紧密相连的。当前的架构逐渐在向微服务化的方向发展,出现了许多新的技术,如容......
  • 构建高效外卖系统:利用Spring Boot框架实现
    在当今快节奏的生活中,外卖系统已经成为人们生活中不可或缺的一部分。为了构建一个高效、可靠的外卖系统,我们可以利用SpringBoot框架来实现。本文将介绍如何利用SpringBoot框架构建一个简单但功能完善的外卖系统,并提供相关的技术代码示例。1.准备工作首先,确保你已经安装了Java开......
  • 软件测试学习笔记丨Charles_Mock实战
    Charles_Mock实战1.电脑端抓包抓取雪球Web端搜索接口数据查看接口响应状态码与使用的协议版本查看请求参数与json格式的响应内容快速过滤雪球域名的接口进行弱网测试,选择弱网模式为256kbpsProxy→ThrottleSetting,然后选择EnableThrottling弱网前弱网后2.App抓包抓取......
  • 既可以通过从层次结构更高层组件(如 FilterableProductTable)开始“自上而下”构建,也可
    既可以通过从层次结构更高层组件(如FilterableProductTable)开始“自上而下”构建,也可以通过从更低层级组件(如ProductRow)“自下而上”进行构建。在简单的例子中,自上而下构建通常更简单;而在大型项目中,自下而上构建更简单。为什么这么说呢?合理吗?在构建React应用时,"自上而下"(Top-Do......
  • Jenkins + Gitlab 前后端项目自动化构建部署
    Jenkins+Gitlab前后端项目自动化构建部署:https://blog.csdn.net/IT_ZRS/article/details/115032509?spm=1001.2014.3001.5501Docker+Jenkins+Gitlab自动化构建部署:https://blog.csdn.net/IT_ZRS/article/details/117533847?spm=1001.2101.3001.6650.1&utm_medium=distrib......
  • 1/29 学习进度笔记
    SparkSQL数据清洗API前面我们处理的数据实际上都是已经被处理好的规整数据,但是在大数据整个生产过程中,需要先对数据进行数据清洗,将杂乱无章的数据整理为符合后面处理要求的规整数据。去重方法dropDuplicates功能:对DF的数据进行去重,如果重复数据有多条,取第一条缺失值处理drop......