计算与软件工程作业五

作业要求 第五次作业
课程目标 了解软件工程的方法论
参考文献 https://www.cnblogs.com/xinz/p/3852390.html

1、银弹

软件是狼人和银弹的世界。掌握面向对象的方法意味着要认识到它是目的,而不是手段,是目标,而不是实现目标的技术。这意味着改变我们对软件的看法,将重点转移到构建的对象上,而不是用来构建它们的过程上。

2、Lost in CatB

随着社会的不断发展,几乎每天都会有新技术伴随着新需求不断出现,同样的开源和商用也是如此,哪里有需求,哪里就有市场。开源和商用各有利弊,但都是服务于不同的用户群体,满足不同的需求,例如,Linux从最初的几千行代码发展到现在,俨然成为了os中的中流砥柱,而这样的地位离不开它的开源,和看中这一特性并不断有IT人员对其进行更新;对于商业软件来说,开源确实会带来很多问题,给客户容易造成心理阴影,想这类商用还会无形中起到业内的一种规范。所以,开源与商用,既要结合需求,同时还结合产品定位。

3、大泥球

为什么系统变成泥泞的大球?有时,大型丑陋的系统从THROWAWAY代码。THROWAWAY CODE是一种快捷方式代码,只能使用一次,然后丢弃。但是,尽管结构随意,文档不完善或不存在,但这样的代码通常都可以独立生存。它有效,那么为什么要解决它?当出现相关问题时,解决该问题的最快方法可能是方便地修改此工作代码,而不是从头开始设计适当的通用程序。随着时间的流逝,一个简单的一次性程序就产生了“泥泞大球”。大泥浆球被认为是一种反模式,对于在软件开发中生产工作系统的问题,无疑是一种普遍的重复性解决方案。当人们面对“变量名和函数名可能没有信息意义,甚至可能引起误解。函数本身可能会广泛使用全局变量以及一长串定义不明确的参数。该函数本身冗长而复杂,并执行一些无关的任务。代码重复。”等力量时,这似乎是抵抗力最小的途径。只有了解吸引力的逻辑,我们才能引导或抵消导致大泥球的力量。

4、瀑布模型

瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。它的核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
优点:
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
缺点:
1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
4)瀑布模型的突出缺点是不适应用户需求的变化。

原文地址:https://www.cnblogs.com/lmengmeng/p/12651574.html