什么是软件?
软件就是程序,是一个过程,是实现一个从现实问题(输入)到结果(输出)的过程,在此过程中的包括程序、数据、文档以及它们之间的关系。
1.软件是逻辑实体而非物理实体;
2.软件是智力产品,生产的过程主要集中在开发上;
3.软件永不磨损,但是会退化;
4.软件会越来越复杂,以后会更复杂。
软件一般分为以下几个阶段:
1.项目可行性和计划阶段;
2.需求分析阶段;
3.设计阶段:分为概要设计和详细设计。概要设计主要是:设计软件结构、数据结构、数据库结构和接口;详细设计给出各个模块之间的关系和具体的实现。
4.实现阶段;
5.测试阶段;
6.运行和维护阶段。
软甲过程模型:
一、瀑布模型:瀑布模型是一个典型的线性模型,有可行性分析和计划开始,依次进行需求分析、概要设计、详细设计、编码实现、单元测试、集成测试、系统测试、确认测试,直到用户确认之后得到最终的用户产品,并且由此进入到运行维护阶段。
整个过程自顶向下,想瀑布的水向下倾泻一样。
瀑布模型的各个阶段既相互分离有相互依赖,每一个阶段都是上一个阶段的结果,瀑布模型是一个单向过程,如当前节点发现错误,则回溯到上一个阶段。
瀑布模型强调了各个阶段完成时所提交的规格说明。
瀑布模型是一次性的单向开发,难以适应软件需求不明确或出现变动的情况。
二、原型模型:原型是软件开发过程中一个用于实验、测试或者早起能运行的简单系统。
由于软件开发的需求分析阶段难以确定用户需求,因而软件人员根据用户初步的、不明确的需求快速开发出系统的原型。用户在根据原型进一步到底要做什么,最终达到用户需要的软件产品。
原型模式是一个压缩的瀑布模型,由于需求不明确,它仅仅实现了系统中的部分内容。最初的原型可能离用户的最终系统差别很大。
三、增量模型:增量模型是对软件项目的需求已一系列增量方式来开发,增量模型是一种非整体开发模型,对于系统整体需求,增量模型先将需求分解为若干部分,每部分按照瀑布式模型进行开发。
四、敏捷开发:敏捷过程的价值主要有以下几个方面:
1.个体和交互胜过过程和工具;
2.可以工作的软件胜过面面俱到的文档;
3.客户合作胜过合同谈判;
4.响应变化胜过遵循计划。
敏捷开发:需求在不断的变化,用户对需求的理解也是在不断的变化。敏捷开发强调不同人员之间的交流,开发人员之间的交流,与客户之间的交流和合作。
aaa