软件危机:
软件工程:
软件生命周期模型:
瀑布模型:
最早提出的软件开发的过程模型。
缺点:
(1)、各个阶段的划分完全固定,阶段中间产生大量的文档,极大的增加了工作量。
(2)、线性开发、用户等到整个过程的末期才见到开发成果,从而增加了开发风险。
(3)、瀑布模型不适应用户需求的变化。
(2)、将测试放在了编码之后,没有体现出测试贯穿软件生命周期的原则,可以避免需求的问题一直延续到代码完成才暴露或者被发现。
优点:
(1)、为项目提供了按阶段划分的检查点。
(2)、当前一阶段完成后,只需要去关注后续阶段。
螺旋模型:
螺旋模型是一种演化软件开发过程模型,它兼顾了快速模型的迭代的特征以及瀑布模型的系统化与严格监控。
引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
螺旋模型更适合大型的昂贵的系统级的软件应用。
迭代模型:
迭代包括产生产品分布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必须的所有其他元素,强调开发的深入。
在某种程度上,开发迭代时一次完整的经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。
优点:
(1)、降低了在一个增量上的开支风险。
(2)、降低了产品无法按照既定进度进入市场的风险。
(3)、加快了整个开发工作的进度。
(4)、迭代过程这种模式使适应需求的变化会更容易些。
敏捷模型:
增量模型:
把软件分割成独立的模块,分批次的完成和交付。
缺点:打破原有的软件结构和框架,可能会带来一定的风险。
增量模型一般会和迭代模型一起运用。
快速原型模型:(应用领域越来越多)
原型:就是一个模型。可以模拟操作、简单运行。(一般是产品经理制作出一个大概的产品模型,与客户商量好后,在交与开发人员进行开发。)
典型的应用和工具:Axure。用处:制作原型。