形式化软件开发 形式语言真理论
摘要:软件开发中为什么使用形式化方法 常见的软件开发方法有结构化方法、Jackson方法、维也纳开发方法(VDM)和面向对象的开发方法。1 结构化方法:指导思想:自顶向下,逐步求精;基本原则:功能的分析与抽...
发布日期:2020-08-24软件开发中为什么使用形式化方法
常见的软件开发方法有结构化方法、Jackson方法、维也纳开发方法(VDM)和面向对象的开发方法。
1.结构化方法:指导思想:自顶向下,逐步求精;基本原则:功能的分析与抽象。
优点:1、 适用于数据处理领域的问题;2、支持工具较多,发展成熟。
缺点:1、不适应规模大的项目;2、不适应特别复杂的项目;3、难于解决软件重用的问题;4、难于适应需求变化的问题;5、难于彻底解决维护问题。
2.Jackson方法:这是一种面向数据结构的方法过程:JSP—>JSDJSP方法:1、以数据结构为驱动;2、首先描述问题的输入,输出数据结构,分析其对应性,然后退出相应的程序结构,从而给出问题的软件过程描述。
JSD方法:1、以事件作为驱动;2、首先建立现实世界的模型,再确定系统的功能需求,对需求的描述特别强调了操作之间的时序性。
3.维也纳开发方法(VDM):这是一种形式化的开发方法,是一个基于模型的方法。
主要思想:将软件系统当做模型来给予描述,具体说是把软件的输入,输出看做模型对象,而这些对象在计算机中的状态可看做为该模型在对象上的操作。
借助工具:描述工具语言Meta-IV。
4.面向对象的开发方法:定义:以对象作为最基本的元素,是分析问题,解决问题的核心。
对象:具体的事物,事件,概念和规则。
基本点:尽可能按照人类认识世界的方法和思维方法来分析和解决问题。
软件开发方法?
常见的软件开发方法有结构化方法、Jackson方法、维也纳开发方法(VDM)和面向对象的开发方法。
1.结构化方法: 指导思想:自顶向下,逐步求精; 基本原则:功能的分析与抽象。
优点: 1、 适用于数据处理领域的问题; 2、支持工具较多,发展成熟。
缺点: 1、不适应规模大的项目; 2、不适应特别复杂的项目; 3、难于解决软件重用的问题; 4、难于适应需求变化的问题; 5、难于彻底解决维护问题。
2.Jackson方法:这是一种面向数据结构的方法 过程:JSP—>JSD JSP方法: 1、以数据结构为驱动; 2、首先描述问题的输入,输出数据结构,分析其对应性,然后退出相应的程序结构,从而给出问题的软件过程描述。
JSD方法: 1、以事件作为驱动; 2、首先建立现实世界的模型,再确定系统的功能需求,对需求的描述特别强调了操作之间的时序性。
3.维也纳开发方法(VDM):这是一种形式化的开发方法,是一个基于模型的方法。
主要思想:将软件系统当做模型来给予描述,具体说是把软件的输入,输出看做模型对象,而这些对象在计算机中的状态可看做为该模型在对象上的操作。
借助工具:描述工具语言Meta-IV。
4.面向对象的开发方法: 定义:以对象作为最基本的元素,是分析问题,解决问题的核心。
对象:具体的事物,事件,概念和规则。
基本点:尽可能按照人类认识世界的方法和思维方法来分析和解决问题。
...
最适用于内部开发的大型软件是什么模型
1、边做边改模型(build-and-fixmodel)这种模型一般不会使用。
是不断的修正版本不断的供用户使用,如果出现错误或是新的需求又不断的修改代码的过程。
缺点: 缺少规划和设计环节。
忽略需求环节,风险大。
周期长费用高。
2、瀑布模型(Waterfall-model)较常用。
提供了一种有效的管理视图。
每项开发活动均处于一个质量环节。
文档驱动,以项目阶段评审和文档控制为手段有效的对整个开发过程进行指导。
主要是针对客户的需求较明确。
缺点:缺乏灵活性,太过于理想化。
如果开发其中,客户难以明确需求,需求错误在后期就难以纠正。
软件的开发严格的按照线性方式进行,当前活动的工作结果,实施完成所需要的工作结果需要验证,如果验证通过,则结果作为下一项活动的输入,继续。
否则返回。
3、快速原型(rapid prototype)快速原型是运行的模型 在功能上等价产品的一个子集。
适用于 用户需求不明确。
一旦需求确定,原型将被抛弃。
原型内部结构不重要,重要的是能迅速的构建原型,并迅速修改以满足客户的需求。
适用于:小型或是交互型式的系统。
大型系统的某些部分,例如用户界面。
生命周期较短的。
特点:快速模型克服瀑布模型的特点,减少由于软件需求不明确带来的开发风险,具有显著的效果第一步:建造一个快速的模型。
第二步:是建造一个快速的模型。
4、增量模型(incremental model)是渐增演化的过程,软件被看作是一系列的增量构建来设计、实现、集成和测试,每一个构建由多种相互作用的模块所形成的提供特定功能呢的代码片段构成。
开发出一部分就向用户展示一部分,及早的发现问题。
先开发一个原型模型的软件,完成模型的主要功能。
展示给用户征求意见。
特点:缩短时间开发人员与用户可以通过原型充分的交流;有利于用户的培训和开发的同步。
加入构建必须不破坏已构造好的体系结构。
模型的灵活性可以使其适应需求的变化,但也很容易退化为边做边改模型。
5、螺旋模型(Spiral Model)特点:强调了风险分析主要是分为如下的活动:制定计划:明确软件的目标,选定实施方案,弄清项目开发的限制条件。
风险分析:分析评估所选方案,考虑如何识别和消除风险。
实施工程:实施软件开发和验证客户评估:评估开发工作,提出修正建议,指定下一步计划。
6、形式化模型方法形式化模型方法采用数学方法将系统描述转化成为可执行的程序。
适用:适用于对于那些安全性和保密性要求极高的软件系统,这些需要在投入运行前进行验证。
优点:犹如教学方法具有的严密和准确性,形式化方法开发过程中所交付的软件信息具有较少的缺陷和较高的安全性。
缺点:费时费力,开发人员需要经过特殊的训练。
难以进行形式化描述。
7、基于组建的开发模型基于组建的开发技术是使用技术是使用可重用的组建或是商业组建建立复杂的软件系统。
组建开发急速的两个重要的因素。
基于组建的软件体系。
基于组建的开发过程。
优点:充分体现软件复用的思想,实现快速的交付。