阅读《构建之法现代软件工程第二版》的思考——滕飞

author author     2022-08-04     152

关键词:

问题1:第一章的第1.2节中提出软件工程包括软件需求分析、软件设计、软件构建、软件测试和软件维护。我读到此处联系之前开发项目的经历发现自己也并没有严格的进行分析设计等,所以是不是可以为了快速完成项目而省略其中一个过程?

  在每次开始一个项目开发的时候,需求分析是必须的也是最容易被忽视的,记得当时做毕设的时候为了赶时间并没有详细进行需求分析,以至于做到后期的时候才发现有一个功能并不能满足题目的要求而且还理解错误了其中一个功能,从而使项目无法进行下去,不得不再次找到老师详细了解该项目的功能。所以最开始的需求分析是十分必要的。软件的设计,软件的构建是开发项目的基础,如果没有这几步项目肯定是杂乱无章的且功能也是混乱的。至于软件测试和维护的重要性不言而喻,没有这两步程序是会存在很大隐患的,甚至会出现无法正常运行的情况。因此,在今后的开发中要认真的做好每一阶段的工作,这样才能顺利高效的完成一个软件的开发。

问题2:第二章的第2.3节中提出卡内基梅隆大学的能力成熟度模型,是用来衡量一个团队能力的一套模型,什么是能力成熟度模型?

  能力成熟度模型是一套帮助软体业者,改善软体流程的流程成熟度的架构,它明确地定义了5个不同的“成熟度”等级,一个组织可按一系列小的改良性步骤向更高的成熟度等级前进。分别有成熟度等级1-5,分别为:初始级、可重复级、已定义级、已管理级和优化级。能力成熟度模型为软件的过程能力提供了一个阶梯式的改进框架,它基于以往软件工程的经验教训,提供了一个基于过程改进的框架图,它指出一个软件组织在软件开发方面需要哪些主要工作,这些工作之间的关系,以及开展工作的先后顺序,一步一步的做好这些工作而使软件组织走向成熟。

问题3:第五章的5.3.2节中提出温斯顿并不推崇严格意义上的瀑布模型,相反的指出了此模型的各种缺陷和改进办法。那么瀑布模型的缺点是什么?

  1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

  2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。

  3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。

  4)瀑布模型的突出缺点是不适应用户需求的变化。

问题4:第五章第5.3.4节提出分析和设计工作流将需求转化成系统的设计。那么怎样进行系统设计?

  系统的设计就是在需求分析成果的基础之上,运用软件设计的原则、模式、惯例和经验,提出问题的解决方案,并明确界定待建系统的结构、接口和界面。这个阶段的任务是设计软件系统的模块层次结构,设计数据库的结构以及设计模块的控制流程,其目的是明确软件系统"如何做"。这个阶段又分两个步骤:概要设计详细设计概要设计解决软件系统的模块划分和模块的层次机构以及数据库设计;详细设计解决每个模块的控制流程,内部算法和数据结构的设计。这个阶段结束,要交付概要设计说明书和设计说明,也可以合并在一起,称为设计说明书。

问题5:第六章第6.1.2节提出在“敏捷”的大旗下面,我们可以看到好几种软件开发的方法论。那么除了该节介绍的Scrum方法论还有哪几个方法论?

  1)FDD(Feature-Driven Development)-特征驱动开发

  通过特征和特征集将传统的瀑布方法进行了横切,一切软件开发活动包括项目计划都是以特征为单位和特征驱动。

  2)DSDM-动态系统开发方法,也称业务中心框架开发方法

  DSDM 的基本观点是,任何事情都不可能一次性的圆满完成,应该用20%的时间完成80%的有用功能,以适合商业目的为准。

  3)Crystal Methods-水晶方法族

  水晶方法把开发看作是一系列的协作游戏,而写文档的目标就是只要能帮助团队在下一个游戏中取得胜利就行了。

  4)XP(极限编程)

  XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。

  5)ASD(Adaptive Software Development)-自适应软件开发
  ASD强调的是速度和灵活性。它最适合这种场合: 公司需要应用软件能够迅速见效,还能随客户使用需求的增长而灵活变化。

(参考:http://blog.sina.com.cn/s/blog_493a84550100civ0.html)

构建之法:现代软件工程阅读笔记

人类文明要向前发展,离不开思考、发现、构建。做一个有商业价值的项目,或者在团队里工作,代码规范相当重要。“代码规范”可以分成两个部分:代码风格规范。主要是文字上的规定,看似表面文章,实际上非常重要。代... 查看详情

20171201-构建之法:现代软件工程-阅读笔记》

...个人发现团队编程模拟真实的场景时,会想到要实践一下软件工程中的理论,但是发现的bug让人纠结时才会感到软件工程之重要。2、“人的认知模型改变得非常缓慢,搞那些速成的、疯狂的、喊口号的培训未必能改变人的认知... 查看详情

《20170914-构建之法:现代软件工程-阅读笔记》

第一章:  1.软件=程序+软件工程。  2.程序=数据结构+算法。  3.软件企业=软件+商业模式。  4.复杂的软件有合理的软件架构、软件设计、实现,以及程序文件之间的依赖关系、编译参数、链接参数,都属于软件构建过... 查看详情

20150914-构建之法:现代软件工程-阅读笔记

我阅读了本书的第一章和第二章。第一章开篇引导了软件工程的概念,又通过一则故事引导出了一个程序员编写一个程序到需求变成一个软件的过程。通过生动的举例让读者生动的认识到了,什么是程序,什么是用户,后面有了... 查看详情

20170915-构建之法:现代软件工程-阅读笔记

、第一章软件=程序+软件工程软件企业=软件企业+软件+商业模式软件开发的不同阶段1.玩具阶段2。业余爱好阶段3.探索阶段4.成熟的产业阶段软件的特殊性:复杂性,不可见性,易变性,服从性,非连续性第二章单元测试应该在最... 查看详情

20171130-构建之法:现代软件工程-阅读笔记

我阅读了第二章:个人技术和流程 1)个人编写模块时要有单元测试,毕竟最后的软件是由多人合作完成的。我们要确保我们所写的模块能被他人调用,并且代码清晰易懂,不影响其他模块。用vsts写单元测试我们没有接触过,... 查看详情

《20170926-构建之法:现代软件工程-阅读笔记》

第二章理论和知识点:单元测试 回归测试 效能分析 个人软件开发流程1.单元测试创建单元测试函数的主要步骤是:1设置数据2使用被测试数据类型的功能3比较实际结果和预期的结果单元测试应该在最基本的功能/参数... 查看详情

《20170913-构建之法:现代软件工程-阅读笔记》

第一章概论1.软件等于程序加软件工程2.程序等于数据结构加算法3.构建管理、源代码管理、软件设计、软件测试、项目管理是软件工程核心部分4.软件的特殊性有复杂性、不可见性、易变性、服从性、非连续性5.软件工程的目标... 查看详情

20170913-构建之法:现代软件工程-阅读笔记

 第一章1.程序+软件工程2.软件的特殊性:1)复杂性,2)不可见性,3)易变性,4)服从性,5)非连续性第二章单元测试好的单元测试标准:1.单元测试应该在最基本的功能/参数上验证程序的正确性2.单元测试必须由最熟悉代码的人... 查看详情

快速阅读《构建之法——现代软件工程》

  2017年4月1日,我借阅了《构建之法——现代软件工程》一书,2017年4月13日上午终于快速读完了一遍。书中包含的内容丰富,其中大量的网上链接没有阅读。在我看来,读这本书应该先通览全篇,不能被大量的链接在第一次... 查看详情

20171005-构建之法:现代软件工程-阅读笔记

第二章讲的是个人技术和流程,最吸引我的一句话是:“你的RP是由你的程序质量决定的。”这让我发现好的单元测试才能准确、快速地保证程序基本模块的正确性。好的程序总是要在最低的功能上验证程序的正确性,正如很多... 查看详情

2017-09-10-构建之法:现代软件工程-阅读笔记

第一章软件=程序+软件工程程序=数据结构+算法软件企业=软件+商业模式软件的特殊性:复杂性、不可见性、易变性、服从性、非连续性。第二章 2.1单元测试:2.1.1用VSTS写单元测试2.1.2好的单元测试标准单元测试应该在最基本... 查看详情

《20171030-构建之法:现代软件工程-阅读笔记》

《20171030-构建之法:现代软件工程-阅读笔记》创建单元测试函数的主要步骤:1.设置数据2.使用被测试类型的功能3.比较实际结果和预期的结果 个人开发流程的任务清单:1.估计这个项目需要多少的时间2.需求分析3.生成设计... 查看详情

《20171005-构建之法:现代软件工程-阅读笔记》

《20171005-构建之法:现代软件工程-阅读笔记》1、软件团队的模式:主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式和官僚模式2、代码重构(coderefactoring)... 查看详情

《构建之法:现代软件工程-阅读笔记》

构建之法:现代软件工程软件=程序+软件工程程序=数据结构+算法软件团队要从需求分析开始把合适的需求梳理出来然后逐步展开后续工作 构建管理源代码管理软件设计软件测试项目管理是软件工程的核心部分软件开发的不... 查看详情

构建之法现代软件工程(第二次)

...                   构建之法现代软件工程(第二次)单元测试是什么?  单元测试是为了让各个模块的质量能得到稳定的,量化的保证的一种有效解决方案。(VSTS) 好的单元测试的标准是什么?... 查看详情

《20170907-构建之法:现代软件工程-阅读笔记》

...者,我还是遇到比较多的问题,下面就是我的阅读笔记:1:软件工程同其他工程项目一样存在风险。2:客户的需求是难以捕捉的。3:项目经理是软件团队的一个重要角色。他可以领导大家把问题“分而治之”,当然公司不同PM职能略... 查看详情

《20170906-构建之法:现代软件工程-阅读笔记》

...用软件和病毒软件。           软件=程序+软件工程          2.软件的特点:复杂性,抽象性,不可见性,易变性,服从性,非连续性,可移植,昂贵的。          3.软件工程是系统的,有... 查看详情