个人阅读作业+总结

个人阅读作业+总结

关于银弹

关于银弹我比较认同Frederick P. Brooks, Jr.的观点,软件开发过程中没有银弹。文章中提到

But, as we look to the horizon of a decade hence, we see no silver bullet. There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity.

作者认为软件工程的发展是多元的,有其复杂性,可变性,不可见性等特性。软件工程是一门解决实际问题的工程性学科,而包含比较少的理论研究。从开发的角度,需要根据需求的差别,实现方式的差别,平台的差别以及最终效果与维护的差别实现一套特有的设计实现方案。如果真有一颗银弹能够覆盖面积如此广泛的设计,那它本身体系也将十分庞大而不能称其为银弹。如此庞大的“银弹”只会使开发过程变得繁复僵化。

软件开发过程中最好的实现途径就是从实际需求出发,设计出优秀的方案,开发人员根据设计完成开发,管理人员对开发过程和成果进行良好管理。

关于大泥球

大泥球的定义是A BIG BALL OF MUD is a casually, even haphazardly, structured system.

大泥球是指一个设计阶段没有清晰的设计就动手实现,导致实现过程随意,没有工程化结构的系统。这将导致模块间的高度耦合,部分数据高度共享,使得系统的结构复杂,维护和功能扩展困难。在一次完成,不需扩展的简单需求上,如此设计尚且可行。但若是在庞大的系统设计中未经周全设计就动手实现,则会使整个工程变成一个大泥球。

关于集市与大教堂

  • 教堂模式:软件源代码在软件发行时一并公开,但在中间过程中源代码是由独有的工程师团队维护的。
  • 集市模式:代码全程公开,即使是在开发过程中也如是。

我们团队代码在开发过程中一直在GitHub公开,但并没有受此影响。因此属于教堂模式开发流程。

我们团队没有出现迷失的现象。开发初期我们就定下了主流框架,软件包完善且稳定,没有出现重用和各种依赖交错的情况。

有关worse is better

我不认为可以为了完整性牺牲简单性和正确性。软件面向的是用户,用户评价一款软件是从体验和正确性的角度去看,而不是去用工程思想分析其完整性。实现功能完整性的同时,应当考虑花费的成本和预期的收益。因此我不认同worse is better。

关于瀑布模型与敏捷开发

瀑布模型核心思想是流水线作业,分为系统需求、软件需求、分析、程序设计、编码、测试、运行七个步骤,是一个完整的工程开发流程。

而敏捷开发的理念是迭代,每一次迭代实现功能的提升。而提升的方向是上一轮迭代成果的反馈。

两类模型对比,瀑布模型体现了软件开发的完整性,但没有考虑到开发时的市场变化。敏捷开发则注重市场的变化,在迭代的过程中满足用户需求和时代要求。但对设计和实现提出了更高的要求。

关于方法论

软件开发是一个十分复杂的问题,针对不同的开发需求又有不同的实现方案。在之前有关银弹的分析中我们就得出结论:没有银弹。此处的方法论也会是一个高度抽象的方法论,那么认为方法论有效与否还在看我们怎样将这一抽象具体化。而具体化的过程就是我们对需求的理解过程和设计过程。最终软件开发的结果也并不完全是方法论的结果,而是诸多因素的共同影响。因此单纯谈抽象的方法论是没有实际意义的。真正有意义的是在开发过程中思考与设计,而不是教条式地生搬硬套方法论。

原文地址:https://www.cnblogs.com/liusd/p/8242949.html

时间: 2024-10-07 08:41:09

个人阅读作业+总结的相关文章

软件工程M1/M2总结及阅读作业总结

一.软件工程M1/M2总结 写下这篇总结的时候,我们的软件项目尚未完工.虽然尝试申请了延期答辩,但最终未能成功.这意味着,我们的项目能否正常发布已经处于了一个微妙的状态.可能可以,也可能不可以.只能尽力而为了. 整个一学期的开发下来,我在软件工程方面体会最深的是成本问题以及技术债.以前写的项目往往没有特别严格的deadline,很多是个人的随兴而写的东西,写不动了就不写了.又或者是作业,最多也就那么一千行,怎么都是可以写完的.而软件工程这门课的团队项目,7个人,一个完整的网站,特别是对于我们这个

个人阅读作业 final

前两次阅读作业链接: http://www.cnblogs.com/SteelPillar/p/4027877.html http://www.cnblogs.com/SteelPillar/p/4096145.html 请说明哪些问题现在自己已经清楚了,请阐明一下,是如何通过看书,实践,或者讨论弄清楚的: 在实践过程中,我最终发现写成文档类的沟通是比较有效的.比如说,我和前端的负责人谈论她所需要的接口,如果少的话,在企鹅上一句两句就可以解释明白,但如果需求多的话,可能就要写一份需求的说明,我会

个人阅读作业二

http://www.cnblogs.com/Coolio/p/4027701.html  以前的个人阅读作业,提出了一些问题. 一 如何提高代码开发的效率? 通过这个学期的学习和实验,我觉得要提高代码开发的效率,必须使代码变得流畅有组织,同时,团队合作也能提高代码效率. 二 什么是过程模型? 这是软件开发过程中的一种策略,遵循一定的过程模型路线有助于及时交付高质量的产品. 三 软件神话的害处 会使很多人受到误导,从而产生错误的管理和技术行为.会使人们把软件神话当作事实,开发软件的过程中忽略实际

第二次阅读作业

一开始看到阅读作业的时候我感觉老师给的时间还是很充裕的,但是在阅读的过程中我还是感觉不是很充分,其中一个很重要的原因就是由于自己的英语水平有限,在阅读的过程中需要经常性的去查单词,造成阅读中的一些中断,以至于思维不是很连续.但是还好,由于时间较充分且我开始的较早,这一个问题还是被自己克服了,没有造成太大的影响.首先我先说一说自己对于这些文章的理解吧.第一篇文章是No Silver Bullet: Essence and Accidents of Software Engineering.在这篇文

软工个人阅读作业3

M1/M2阶段总结: 从M1阶段开始到现在已有几个月,不知不觉我参与这个高大上的团队完成app的工作已经有这么久了,从刚开始的手足无措到现在的完美结束,期间有任务压身的紧迫感,也有做出成果的激动和欣慰.下面分享一下这一段时间我的思想与感悟. 对于我自己: 1 这两次的团队作业我收获最大的就是又学会了另一种爬虫方法,相对我之前了解的另一种爬取网页的机制,这次学到的方法更加简洁易懂,学起来也很快,了解了其中的机制之后就觉得这种方法很神奇,很有趣. 2 软工课的团队作业也是我参加过的为数很少的多人合作

个人阅读作业与总结

个人阅读作业与总结 Silver Bullet I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation. Frederick P. Brooks, Jr.在

软件工程网络15个人阅读作业1

软件工程网络15个人阅读作业1 Task1:博客账号 http://www.cnblogs.com/mz201521044152/ Task2:码云账号 https://gitee.com/mxz0/events Task3:完成博客-阅读与思考 ##阅读参考材料,并回答下面几个问题: (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络工程专业的决定的? 你认为过去两年中接触到的课程是否符合你对网络工程专业的期待,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?

软工网络15个人阅读作业1

软工网络15个人阅读作业1 Task1:注册个人博客账号 博客园地址:齐畅 http://www.cnblogs.com/qichang/ Task2:注册码云账号 目的:管理你的项目,记录(源码.文档,历次版本变更,bug发现与修复)等信息. 码云地址:https://gitee.com/hudkahfk/ Task3:完成博客-阅读与思考 阅读参考材料,并回答下面几个问题: (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络工程专业的决定的? 答:听专家意见报的志愿,他

软件工程网络15个人阅读作业1(201521123045 郑子熙)

软工15 个人阅读作业1 1.个人账号信息 (1)学号姓名 201521123045 郑子熙 (2)博客地址 https://home.cnblogs.com/u/zhengizixi/https://home.cnblogs.com/u/zhengizixi/ (3)码云地址 https://gitee.com/zhengzixi/events 2.阅读与思考 阅读参考材料,并回答下面几个问题: (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络工程专业的决定的? 当初报