这是我的第一篇博客,请多多指教

*软工随记

      程序=数据结构+算法   

   软件=程序+软件工程 (程序 数据 文档)

           软件工程三要素(方法 过程 工具)   管理三要素 (质量 成本 工期)

传统的软件过程模型:

1、瀑布模型:

软件计划、需求分析和定义、设计、实现、测试、运行和维护6个阶段,自上而下相互衔接逐级下落。顺序展开,循环反馈,文档驱动。特点:顺序性和依赖性  推迟实现  质量保证的观点  线性模型  强调文档的作用。局限:末期才可见开发成果,风险大,错误代价大,不能很好的适应需求变化。 适用范围:产品定义稳定性和正确性高,接口能很好的用形式化方法定义验证,团队交流较少且各块技术娴熟。

示意图:

2、原型模型:

利用原型法技术快速构造实际系统的简化模型。特点:快速实现系统初步模型;便于开发人员和用户交流,明确需求;逐步求精使原型逐步完善;符合人类认知过程和思维活动;适用于不能预先确切定义需求的软件项目。

示意图:

 

3、增量模型:

软件被作为一系列的增量构件(由多个相互作用的模块组成、能够完成特定功能且可以独立配置的单元)来设计、实现、集成和测试(迭代式)。优点:开发中用户可以及早看到部分软件功能,发现问题。演化提交:在瀑布模型的基础上,所有阶段都进行增量开发,把该功能进行开发,提交用户直至所有功能全部增量开发完毕为止。

 

4、螺旋模型:

结合了瀑布模型和快速原型模型的迭代开发模型。强调了风险分析,特别适合于大型复杂的系统。每一个周期都包括需求定义、风险分析、工程实现和评审。

示意图:

 

面向对象软件过程模型:

1、构建集成模型:

构件是一段实现一系列有确定接口的程序体。该模型是演化行的,开发过程是迭代的(软件需求分析和定义  体系结构设计  构件库建立  应用软件构件  测试和发布5阶段)

示意图:

 

2、统一过程模型:

是把软件开发的各个阶段整合在一个统一的框架之中,一个二维的软件开发模型。(初始阶段:生命周期目标;  细化阶段:体系架构; 构造阶段:初始功能; 交付阶段:产品发布)

示意图:

 

 

结构化分析建模方法:

面向数据流的建模方法(自顶向下逐层分解):数据流图(DFD)-功能域 

面向数据的建模方法:实体关系图(E-R图)-信息域

面向状态的建模方法:状态转换图(STD)-行为域

 

posted @ 2019-03-14 14:31  silence_lkq  阅读(83)  评论(0)    收藏  举报