首页 > 其他分享 >软件工程之美 读后感

软件工程之美 读后感

时间:2025-01-04 17:33:09浏览次数:3  
标签:需求 读后感 版本 模型 软件工程 之美 开发 测试 代码

软件工程之美 读后感

项目生命周期

  1. 规划
  2. 需求分析
  3. 设计
  4. 编码
  5. 测试
  6. 运行和维护

软件项目管理金三角

image-20211226123325165

  1. 时间
  2. 范围
  3. 成本

全面提升软件工程能力与实践,打造可信的高质量产品

软件工程的核心

image-20211226124704613

软件工程 =   工具 + 方法 + 过程

image-20211226125023032

做中学 和 教中学

推荐配套书单

  1. 构建法

    作者邹欣是微软的研发总监,同时在多所高校进行了软件工程的教学实践,在此基础上对软 件工程的各个知识点和技能要求进行了系统性整理,形成教材。也是本专栏很多很好的补 充。

  2. 人月神话

    这是软件工程历史上的经典著作,内容发人深省,40 年来一直畅销不衰,里面的观点即使 到现在也不过时。这本书即使你以前看过,隔一段时间再翻看一遍,可能都会有新的感悟。

  3. 人件

    如果说《人月神话》关注“软件开发”本身,《人件》则关注软件开发中的“人”。作者指 出知识型企业的核心是人,而不是技术。

  4. 知行合一: 实现价值驱动的敏捷和精益开发

    作者丛斌有二十多年从事软件工程教学、咨询和研究的经验,所以书写的特别接地气,文章 有很多真实案例,对敏捷开发和 CMMI 都有很深入描述。

  5. 软件工程——实践者的研究方法》

    这是大部分高校采用的软件工程标准教材,可以作为一个参考。

  6. 持续交付

    讲述如何实现更快、更可靠、低成本的自动化软件交付,描述了如何通过增加反馈,并改进 开发人员、测试人员、运维人员和项目经理之间的协作来达到这个目标

  7. 走出软件作坊

    这本书生动的描述了国内小型 IT 企业在发展过程中遇到的一系列项目管理问题,以及作者 是如何去解决这些问题的。

瀑布模型和敏捷开发如何平衡时间成本范围的关系?

瀑布模型

瀑布模型有严格的阶段划分,有需求分析、系统设计、开发和测试等阶段,通常在开发过程 中不接受需求变更,也就是说,我们可以认为瀑布模型的范围是固定的,其他两条边时间和 成本是变量。

所以使用瀑布模型开发,如果中间发现不能如期完成进度,通常选择的方案就是延期(加 班),或者往项目中加人。

image-20211226130502028

image-20211226154452997

然而瀑布的特性决定了它只能从上往下流,而且从上到下走完整个周期很长,所以一旦出现了需求的变更,将会非常痛苦,很多事情需要重头再来。

于是基于瀑布模型,又衍生出 V 模型、原型设计、增量模型、螺旋模型等模型,试图改善瀑布模型存在的一些缺陷。这些改进模型的发展趋势上就是缩短项目周期,快速迭代

敏捷开发

我们再来看敏捷开发,敏捷开发中,是采用固定时间周期的开发模式,例如每两周一个 Sprint,团队人数也比较少。所以,在敏捷开发中,时间和成本两条边是固定,就只有范围 这条边是变量。

这就是为什么在敏捷开发中,每个 Sprint(迭代) 开始前都要开 Sprint 计划会,大家一起选择下个 Sprint 能做完的任务,甚至于在 Sprint 结束时,没能完成的任务会放到下个 Sprint 再 做。

image-20211226130822455

image-20211226154613986

极限编程

如果某个实践好,就将某个实践做到极致

  1. 如果做测试好,就让每个开发人员都做测试 ;
  2. 如果集成测试重要,就每天都做几次测试和集成 ;
  3. 如果简单的就是好,那么我们就尽可能的选择简单的方法实现系统功能 ;

工程方法

**有目的、有计划、有步骤地解决问题的方法就是工程方法。**工程方法不是软件工程独有的,几乎所有工程类别都可能会应用,例如建筑工程、电子工程等,只不过步骤可能略有不同

image-20211226155517702

瀑布模型 (6 个阶段)

image-20211226160616517

一、问题的定义及规划

这个阶段是需求方和开发方共同确定软件开发目标,同时还要做可行性研究,以确定项目可行。这个阶段会产生需求文档和可行性研究报告

二、需求分析

对需求方提出的所有需求,进行详细的分析。这个阶段一般需要和客户反复确认,以保证能充分理解客户需求。最终会形成需求分析文档。

三、软件设计

根据需求分析的结果,对整个软件系统进行抽象和设计,如系统框架设计,数据库设计等等。最后会形成架构设计文档。

四、程序编码

将架构设计和界面设计的结果转换成计算机能运行的程序代码。

五、软件测试

在编码完成后,对可运行的结果对照需求分析文档进行严密的测试。如果测试发现问题,需要修复。最终测试完成后,形成测试报告

六、运行维护

在软件开发完成,正式运行投入使用。后续需要继续维护,修复错误和增加功能。交付时需要提供使用说明文档。

瀑布模型在提出后,因为其简单可行,切实有效,马上就在很多软件项目中应用起来,一直到 2000 年前后,都是最主流的软件开发模型,即使到现在,你也能在很多软件项目中看到它的影子

也是从那时开始,有了“软件生命周期”(Software Life Cycle,SLC) 的概念。

软件生命周期是软件的产生直到报废或停止使用的生命周期。而像瀑布模型这样,通过把整个软件生命周期划分为若干阶段来管理软件开发过程的方法,叫软件生命周期模型。

优缺点

image-20211226181156519

Code And Fix 边写边改 模型

标签:需求,读后感,版本,模型,软件工程,之美,开发,测试,代码
From: https://blog.csdn.net/u013176440/article/details/144839339

相关文章

  • 复盘---我的第一次嵌入式软件工程师笔试_25/1/4
    复盘---我的第一次嵌入式软件工程师笔试_25/1/4总结​ 结果上来说,笔试的结果很差。自己三天准备的方向与实际笔试的题目偏差很大。通过网络上获取的笔试信息以及同学的经验,对比实际笔试还是有很大差异的。但根本原因还是自身的硬实力不够。有以下几个改善方向:通信协议方面,不能......
  • 中国海洋大学-软件工程理论基础coq实验2
    软件工程理论基础实验2:Coq中的命题和证明实验目的学习Coq中命题和证明的表示方法以及证明方法。实验内容根据课件及给定Coq文件(CoqCode2.v)学习Coq中命题和证明的表示方法及证明方法。掌握intros,apply等证明策略的使用方法。学会在Coq中对命题进行定义和声明及证明命题......
  • 哈希算法篇——散落的秘密与精准的归宿,混沌中的秩序之美(上)
    文章目录引言:混沌中的秩序之美第一章:哈希的本质——化繁为简的魔法第二章:经典哈希函数——一座算法的博物馆第三章:哈希表的奇迹——从无序到有序的转变3.1哈希函数的基本实现3.2基本的哈希表实现3.3哈希算法的实际应用小结引言:混沌中的秩序之美在信息科学的星......
  • 软件工程个人总结
    一、学期回顾1.1回顾你对于软件工程课程的想象根据你对课程目标和期待,回顾目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?达成的目标与期待理论与实践结合:课程的最大目标之一是将软件工程的理论知识应用到实践中。在这一点上,我收获颇丰。......
  • AI是否会取代程序员和软件工程师?
    一、自动化与效率提升        AI能够自动化许多编程任务,如代码生成、测试和调试,这可能会减少程序员在某些重复性工作上的负担。然而,AI目前还不能完全替代人类程序员在创新性、复杂决策制定和问题解决方面的能力。二、技能转变        随着AI的发展,程序员和......
  • 软件工程萨默维尔版的期末总结
    第一章软件工程概述什么是软件?(了解)狭义来讲是数据和指令的集合,广义来说是程序和相关文档好的软件有哪些重要属性?(重点)可接受性、可依赖性和信息安全性、效率、可维护性什么是工程?(了解)狭义上应用科学知识和技术手段,广义来说一群人为达到某种目的,在一个较长时间的周期......
  • 软件工程课程项目“物品复活“软件开发最终版本
    软件工程项目总结:基于JSON的物品管理与用户审批系统摘要:本项目通过使用Python、PyQt5等技术栈,开发了一个基于JSON文件进行数据持久化的物品管理与用户审批系统。系统包含了用户注册与登录、管理员审批、物品添加与删除、物品查看以及物品分类管理的完整功能。本文将从软件工......
  • 【软件工程】期末复习-第1章 软件工程学概述
    【软件工程】期末复习第1章软件工程学概述第2章可行性研究第3章需求分析第5章总体设计第6章详细设计第7章实现文章目录【软件工程】期末复习前言一、软件危机1.软件危机的定义2.软件危机的表现形式3.产生软件危机的原因4.消除软件危机的途径二、软件工程1.软件......
  • 【软件工程】期末复习-第2章 可行性研究
    【软件工程】期末复习第1章软件工程学概述第2章可行性研究第3章需求分析第5章总体设计第6章详细设计第7章实现教材目录期末速成,主要针对考点总结,可能缺少部分章节内容,持续更新。督促自己快快复习。一、可行性研究的任务1.可行性研究的目的用最小的代价在......
  • 【软件工程】期末复习-第3章 需求分析
    【软件工程】期末复习第1章软件工程学概述第2章可行性研究第3章需求分析第5章总体设计第6章详细设计第7章实现文章目录【软件工程】期末复习前言一、需求分析的任务1.需求分析的结构化分析方法遵守准则2.需求分析的任务二、与用户沟通获取需求的方法1.访......