软件开发模型

软件工程——三次软件危机的表现及起因

被刻印的时光 ゝ 提交于 2019-11-26 23:57:23
软件危机 :落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 第一次软件危机 (60年代~70年代) 20 世纪60年代以前,计算机刚刚投入实际使用,这个时期主要的软件开发方式是使用机器语言或者汇编语言在特定的机器上进行软件的设计与编写。此时的软件规模较小,文档资料通常也不存在,也不需要使用系统化的软件开发方法,基本上是个人设计编码、个人操作使用的的私人化的软件生产模式。这个时代的程序一个典型特征就是依赖特定的机器,程序员必须根据所使用的计算机的硬件特性编写特定的程序。 然而从60年代中期开始,大容量、高速度计算机问世,使计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出,程序设计的复杂度也随之增长。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发 。 1968 年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,第一次讨论软件危机问题,并正式提出“软件工程”一词,从此一门新兴的工程学科——软件工程学——为研究和克服软件危机应运而生,“软件危机”的概念也是在那次会议上由F. L. Bauer提出的。

软件工程——瀑布模型、快速原型模型、增量模型、螺旋模型

為{幸葍}努か 提交于 2019-11-26 23:47:19
一、瀑布模型 1.1 什么是瀑布模型 1970年温斯顿.罗伊斯提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型 瀑布模型将 软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动 ,并且规定了它们 自上而下、相互衔接 的固定次序,如同瀑布流水,逐级下落 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动 从本质来讲,它是一个软件开发架构 ,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生 循环反馈 ,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来 对于经常变化的项目而言,瀑布模型毫无价值 1.2 特点 1、阶段间具有顺序性和依赖性 该阶段具有两重含义 必须等前一阶段的工作完成后,才能开始后一阶段的工作 前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果 2、推迟实现的观点 对于规模较大的软件项目来说,往往编码开始的越早,最终完成开发所需时间越长

软件开发中,这些文档你用到了吗

南笙酒味 提交于 2019-11-26 11:47:36
众所周知,做软件的目的就是要满足客户的需求,这个需求包括功能、外观、操作、时间及性能等各方面。那么,在软件开发过程中那部分最重要呢,程序员说“毋庸置疑,我编写的程序实现了客户提出的功能以及业务流程,肯定我是最重要的”,美工说“你开发的功能如果没有我的页面美化,是无法呈现给客户的,要知道,很多客户并不很了解内部复杂的功能,首先映入眼帘的就是界面的效果,就像人一样,如果你不是美女,那么他看了你一眼之后,就没有想和你再继续沟通和发展的积极性了”,测试听了不高兴了,说“漏洞百出的产品,哪怕你外观再漂亮,实现的功能再多,也是不成熟的产品,客户是不会使用的。”众说纷纭,各执一词。 以上所说都很有道理,每个角色都是软件成功必不可少的,每个人都好比是一块积木,只有组合起来才能搭成既美观又稳固的造型。 另一方面,他们却又都不是最重要的。举个例子,现在我家在进行装修,木工、瓦工、油漆工都是南方的工人,有很好的手艺,干活也很细致,可是他们在施工的时候都要参考两份文件,一是房屋结构图,二是装修效果图。没有此文件,他们就无从下手,就是拥有再好的手艺,做出来的再漂亮,到时候也会与房屋的实际效果存在偏差。 孙悟空三大白骨精,相信谁都耳熟能详。里面有这样一个场景,孙悟空去化斋前,划了一个圈,将唐僧他们包在里面,只要他们在圈里面,就不会有事,如果出了圈就很危险。这个圈,就是一个范围、一个标准。在这个圈里,你随便折腾

软件开发模式:瀑布与敏捷对比

半世苍凉 提交于 2019-11-26 03:03:24
在软件开发时,经常面对的第一个项目实现决策是“我们应该使用哪种开发方法?”这是一个引起很多讨论(和激烈辩论)的话题。如果您以前没有使用过这种方法,那么适当了解开发方法和理论是必要的;简单地说,这是一种组织软件开发工作的方法。这与项目管理的风格或特定的技术方法无关,尽管您经常会听到这些术语混在一起或互换使用。最流行的两种基本方法是:瀑布开发和敏捷开发。这两种方法都是可用的、成熟的方法。 现在,说起敏捷开发(Agile Model)和瀑布开发(Waterfall Model)模式,很多人认为敏捷开发是未来的项目实施的趋势,瀑布实施太老土已经过时了。另外确实一些跨国企业如索尼,联想也在使用敏捷的方式实施一些项目。但实际上我们看到绝大多数公司还是依然在采用瀑布的方式实施项目。本文主要简单介绍敏捷和瀑布的区别和优劣。 敏捷开发和瀑布开发 1、瀑布模型 瀑布模型是一种项目分解为有限的阶段来开发软件的方法。只有在审查并验证其前一阶段时,开发才会应进入下一阶段。在瀑布模型中,阶段不重叠。在这种方法中,事件的顺序是这样的: 收集和记录需求 设计 代码和单元测试 执行系统测试 执行用户验收测试(UAT) 解决任何问题 交付成品 对于瀑布的开发模型来看,似乎依然具备很可靠的工作逻辑,一个工程或项目分为多个阶段,每一个阶段都投入相应的资源,来完成本阶段的工作。每一个阶段到下一个阶段,都有明确的输入输出产物