【人月神话】深入了解软件工程和项目管理

news2024/11/18 21:51:24

在这里插入图片描述

文章目录

    • 👨‍⚖️《人月神话》的主要观点
    • 👨‍🏫《人月神话》的主要内容
    • 👨‍💻作者介绍

🌸🌸🌸🌷🌷🌷💐💐💐🌷🌷🌷🌸🌸🌸

👨‍⚖️《人月神话》的主要观点


《人月神话》是一本关于软件工程和项目管理的经典著作,由美国计算机科学家弗雷德里克·布鲁克斯(Frederick P. Brooks, Jr.)于1975年出版,后来又增加了新的章节和内容,形成了1995年的修订版。本书的中文版由清华大学出版社出版,分别于2002年和2015年出版了32周年和40周年纪念版,由UML China翻译组和汪颖译者负责翻译。

本书的主要观点是:
软件开发项目的复杂性和不确定性导致了很多管理上的困难和挑战,例如进度延误、成本超支、质量低下等。作者根据自己在IBM公司参与SYSTEM/360家族和OS/360操作系统开发的经验,提出了一些有关软件工程的原则和方法,例如:

  • “人月神话”(指认为增加人力就能缩短开发时间的错误观念)
  • “外科手术队伍”(指由一个主导者带领一支小型高效团队进行软件开发的模式)
  • “概念完整性”(指软件设计应该有一个清晰一致的核心思想)

作者还探讨了一些软件开发中的常见问题和挑战,例如需求变更、文档编写、测试方法、错误修正、工具选择、团队协作等,并给出了自己的见解和建议。

🌻🌻🌻🌼🌼🌼🌺🌺🌺🌼🌼🌼🌻🌻🌻

👨‍🏫《人月神话》的主要内容


本书被誉为软件工程领域的经典之作,对后来的软件开发理论和实践产生了深远的影响。本书不仅适合软件开发人员、软件项目经理、系统分析师等IT从业者阅读,也适合对软件工程感兴趣的普通读者阅读。

以下是对本书内容的详细描述:

第一部分:人月神话

第一部分包括了本书最著名的两个章节:《人月神话》和《外科手术队伍》。在这两个章节中,作者揭示了软件开发中最常见也最致命的两个误区:认为增加人力就能缩短开发时间,以及认为所有程序员都是相同或相近的资源。作者通过实例和数据说明了这两个误区的错误性和危害性,并提出了自己的解决方案:建立一个由一个主导者带领一支小型高效团队进行软件开发的模式,即“外科手术队伍”。作者认为,这种模式可以保证软件产品的概念完整性,提高软件产品的质量和可靠性。

第二部分:怎样做

第二部分包括了本书中最实用也最具体的六个章节:《尾大不掉》、《计划为什么会失败》、《怎样估算程序员工作量》、《怎样划分任务》、《怎样管理进度》和《怎样做系统测试》。在这六个章节中,作者针对软件开发过程中最关键也最困难的几个方面给出了自己的建议和方法。作者强调了需求分析、设计评审、测试计划等阶段在软件开发中的重要性,并提倡采用迭代式的开发模式,以适应需求变更和技术进步。作者还介绍了一些有用的工具和技术,例如PERT图、关键路径法、正交缺陷分类法等,以帮助软件开发人员进行有效的计划、组织、协调和控制。

第三部分:怎样不做

第三部分包括了本书中最有趣也最具启发性的四个章节:《没有银弹》、《为什么没有银弹》、《怎样成为一个优秀的程序员》和《怎样成为一个优秀的项目经理》。在这四个章节中,作者分析了软件开发中存在的一些根本性的困难和限制,并指出了一些常见的误区和陷阱。作者认为,软件开发是一种复杂而艰难的创造性活动,没有任何一种工具或技术可以轻易地解决所有的问题,也没有任何一种方法或标准可以适用于所有的情况。作者建议软件开发人员要有清醒的认识和批判的思维,并不断地学习和改进自己的技能和素质。

第四部分:怎样做得更好

第四部分是本书修订版中新增加的部分,包括了本书中最新也最前沿的四个章节:《怎样做得更好》、《无形资产》、《大型系统设计》和《大型系统开发》。在这四个章节中,作者结合了自己在过去二十年间的新的经验和观察,对本书中提出的一些观点和方法进行了修正和补充,并对软件工程领域的一些新的发展和趋势进行了评述和展望。作者认为,软件工程是一个不断变化和进步的领域,需要软件开发人员不断地适应和创新,并与其他领域进行交流和合作。

🌻🌻🌻🌼🌼🌼🌺🌺🌺🌼🌼🌼🌻🌻🌻

👨‍💻作者介绍


👨‍💻小弗雷德里克·P.布鲁克斯
小弗雷德里克·P.布鲁克斯(Frederick P.Brooks,Jr.1931-2022),图灵奖得主、美国国家科学院院士,对计算机体系结构、操作系统和软件工程做出里程碑式贡献的计算机科学家。
布鲁克斯博士于20世纪60年代初主持与领导了被称为人类从原子能时代进入信息时代的标志的IBM/360系列计算机的开发工作,取得辉煌成功,被认为是“IBM360系统之父”。布鲁克斯博士创立了北卡罗来纳大学的计算机科学系,并于1965-1985年担任系主任。他还曾任职于美国国家科技局和国防科学技术委员会。

在这里插入图片描述

👉点击查看书籍更多详情👈

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/971999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytest笔记2: fixture

1. fixture 通常是对测试方法和测试函数,测试类整个测试文件进行初始化或是还原测试环境 # 功能函数 def multiply(a, b):return a * b # ------------ fixture---------------def setup_module(module):print("setup_module 在当前文件中所有测试用例之前&q…

Redis的数据类型到底有什么奥秘

这里我们先只介绍五种常用的数据类型~ 目录 1、string 2、hash 3、list 4、set 5、zset 6、示例 1、string 数据类型:string内部编码:raw、int、embstr 说明: raw是最基本的字符串--底层是一个char数组(此处的char是一个字…

UNIX网络编程卷一 学习笔记 第三十章 客户/服务器程序设计范式

开发一个Unix服务器程序时,我们本书做过的进程控制: 1.迭代服务器(iterative server),它的适用情形极为有限,因为这样的服务器在完成对当前客户的服务前无法处理已等待服务的新客户。 2.并发服务器&#x…

肖sir__设计测试用例方法之边界值03_(黑盒测试)

设计测试用例方法之边界值 边界点定义 上点:边界上的点 离点:离上点最近的点(即上点左右两边最邻近的点) 内点:在域范围内的点 案例:qq号:5-12位 闭区间: 离点:5 位 &…

go语言基本操作---三

变量的内存和变量的地址 指针是一个代表着某个内存地址的值。这个内存地址往往是在内存中存储的另一个变量的值的起始位置。Go语言对指针的支持介于java语言和C/C语言之间,它即没有想Java语言那样取消了代码对指针的直接操作的能力,也避免了C/C语言中由…

[Rust GUI]0.10.0版本iced代码示例 - progress_bar

-1 字体支持 iced0.10.0 仅支持指定系统内置字体(用iced的默认字体是乱码) iced0.10.0 手动加载字体的功能已经砍了,想手动加载就用0.9.0版本,文档0.9.0版本 想显示中文则需要运行在一个自带字体的Windows系统上。而且这个字体最好不要钱。 (Windows闲着…

《计算机算法设计与分析》第一章:算法概述

第一章 算法概述 1.1 算法复杂性分析 公共标准:渐进时间复杂度 (1)大O表示法: 例如: 大O表示法和前面的最坏时间复杂度的区别在于:大O表示法表示的更为简洁, 而最坏时间复杂度相对就比较繁琐&am…

【Android Framework系列】第14章 Fragment核心原理(AndroidX版本)

1 简介 Fragment是一个历史悠久的组件,从API 11引入至今,已经成为Android开发中最常用的组件之一。 Fragment表示应用界面中可重复使用的一部分。Fragment定义和管理自己的布局,具有自己的生命周期,并且可以处理自己的输入事件。…

processflow流程图多人协作预热

前言 在线上办公如火如荼的今天,多人协作功能是每个应用绕不开的门槛。processflow在线流程图(前身基于drawio二次开发)沉寂两年之久,经过长时间设计开发,调整,最终完成了多人协作的核心模块设计。废话不多…

SeaTunnel扩展Transform插件,自定义转换插件

代码结构 在seatunnel-transforms-v2中新建数据包名,新建XXXTransform,XXXTransformConfig,XXXTransformFactory三个类 自定义转换插件功能说明 这是个适配KafkaSource的转换插件,接收到的原文格式为: {"path&…

使用Akka的Actor模拟Spark的Master和Worker工作机制

使用Akka的Actor模拟Spark的Master和Worker工作机制 Spark的Master和Worker协调工作原理 在 Apache Spark 中,Master 和 Worker 之间通过心跳机制进行通信和保持活动状态。下面是 Master 和 Worker 之间心跳机制的工作流程: Worker 启动后&#xff0c…

【Unity】VS Code 没有自动补全 MonoBehaviour 的方法

正常来说,在VS Code 输入类似 OnTriggerEnter2D等方法名时,VS Code会根据已经输入的前缀自动提示相关方法。 在不正常的情况下,根据StackOverFlow上面的回答,依次试过了 安装 .NET SDK安装 .NET Framework Dev PackVS Code安装 …

【ES6】js中的__proto__和prototype

在JavaScript中,__proto__和prototype都是用于实现对象继承的关键概念。 1、proto __proto__是一个非标准的属性,用于设置或获取一个对象的原型。这个属性提供了直接访问对象内部原型对象的途径。对于浏览器中的宿主对象和大多数对象来说,可…

【STM32】学习笔记-PWR(Power Control)电源控制

PWR(Power Control)电源控制 PWR(Power Control)电源控制是一种技术或设备,用于控制电源的开关和输出。它通常用于电源管理和节能,可以通过控制电源的工作状态来延长电子设备的使用寿命,减少能…

SQL注入-盲注 Burp盲注方法

文章目录 判断库名位数Burp 抓取数据包设置payload位置设置payload 1设置payload 2点击开始攻击 判断库名下表名的位数Burp 抓取数据包点击开始攻击 判断库名下第二张表名判断表名下的字段名判断表中具体数据 什么是盲注? 有时目标存在注入,但在页面上没…

Unity中Shader的UV扭曲效果的实现

文章目录 前言一、实现的思路1、在属性面板暴露一个 扭曲贴图的属性2、在片元结构体中,新增一个float2类型的变量,用于独立存储将用于扭曲的纹理的信息3、在顶点着色器中,根据需要使用TRANSFORM_TEX对Tilling 和 Offset 插值;以及…

使用QT操作Excel 表格的常用方法

VBA 简介 Microsoft Office软件通常使用VBA来扩展Windows的应用程序功能,Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言。 在VBA的参考手册中就可以看到具体函数、属性的用法,Qt操作Excel主要通过 QAxObj…

Redis 缓存预热+缓存雪崩+缓存击穿+缓存穿透

面试题: 缓存预热、雪萌、穿透、击穿分别是什么?你遇到过那几个情况?缓存预热你是怎么做的?如何造免或者减少缓存雪崩?穿透和击穿有什么区别?他两是一个意思还是载然不同?穿适和击穿你有什么解…

【每日一题】1041. 困于环中的机器人

1041. 困于环中的机器人 - 力扣(LeetCode) 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意: 北方向 是y轴的正方向。南方向 是y轴的负方向。东方向 是x轴的正方向。西方向 是x轴的负方向。 机器人可以接受下列三条指令之…

入门力扣自学笔记277 C++ (题目编号:42)(动态规划)

42. 接雨水 题目: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组…