2011年软件水平考试软件设计师辅导资料(3)
创始人
2024-07-18 18:51:21
0

第三节 软件生存周期模型,方法和工具

生存周期模型:描述软件开发过程中各种活动如何执行的模型。对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心。

生存周期模型作用:确立了软件开发中各阶段的次序限制,活动准则,所要遵守的规定和限制,便于各种活动的协调,人员之间的有效通信,有利于活动重用和活动管理。

生存周期模型准则:模型能表示各种活动的实际工作方式,能随情况变化而演化能表示各种活动间同步和制约关系,能表示活动的动态特性。容易为开发人员理解,能适应不同软件项目,具有较强灵活性,能支持软件开发环境的建立。

目前有:

1 瀑布模型:将软件生存周期中各活动规定为依线性顺序连接的若干阶段。包括可行性分析,项目开发计划,需求分析,概要设计,详细设计,编码,测试和维护。它是一种理想的线性开发模式,缺乏灵活,特别是无法解决软件需求不明确的问题。适合于需求不明确,设计方案有一定风险的软件项目。

2 增量模型:软件在模型中是"逐渐"开发出来的,开发一部分,展示一部分,能及早发现问题。或者先开发一"原型"软件,完成主要功能,然后逐步完善,最终获得满意的软件产品。

3 螺旋模型:将瀑布模型与增量模型结合起来,加入风险分析,弥补了这两种模型的不足。开发分四步:制定计划,风险分析,开发实施,用户评估。

4 喷泉模型:以用户需求为动力,以对象为驱运动模型,适合于面向对象开发方法,使开发过程具有迭代性和无间隙性。

迭代性:系统有些部分常常重复工作多次,相关功能在每次迭代中随之加入演化的系统。

无间隙:在分析,设计,实现等开发活动之间不存在明显边界。

5 基于知识的模型:瀑布模型与专家模型的结合。开发各阶段都有利用相应专家系统来辅助设计,使维护在系统需求一级进行。

6 变换模型:适合于形式化开发方法的模型。

软件开发方法:使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。

软件开发开发的目标:通过使用成功的软件开发方法,在规定的投资和时间内,开发出符合用户需求的高质量的软件。

软件开发方法是克服软件危机的重要方面之一,对软件工程及软件包产业的发展起了不可估量的作用。

已使用的成功方法有:

1、结构化方法:一种面向数据流的开发方法,适合数据处理领域。指导指导思想是自顶向下,逐步求精。用数据流图建立系统功能模型,完成需求分析工作。用软件结构图建立系统物理模型,实现概要设计。最后将每个模块的功能用相应标准控制结构表示出来,从而实现详细设计。

2、JACKSON方法:一种面向数据结构的开发方法,适合小规模项目。首先描述问题的输入,输出数据结构,分析其对应性,然后推出相应程序结构,从而给出问题的软件过程描述。当输入与输出数据结构无对应关系时,难于应用此方法,JSD(一完整的系统开发方法)对JSP进行了扩充

3、维也纳开发方法(VDM):一种形式化开发方法,软件的需求用严格的形式语言描述,然后把模型逐步变换成目标系统。

4、面向对象的开发方法:基本出发点是尽可能按人类认识世界的方法和思维方式来分析和解决问题。以对象作为最基本的元素,客观世界中具体的事物,事件,概念和规则都有可看成对象,它也是分析问题,解决问题的核心。开发方法包括面向对象分析,面向对象设计,面向对象实现。主要有BOOCH方法,Coad方法和OMT方法。为统一这些方法的术语,概念和模型,(1997年)推出统一建模型语言UML。

结构化方法可用:瀑布模型,增量模型,螺旋模型进行开发。

JACKSON方法可用:瀑布模型,增量模型进行开发。

面向对象的开发方法可用:喷泉模型,瀑布模型,增量模型进行开发。

形式化的维也纳方法只能用变换模型进行开发 。

软件工具:为支持软件人员开发和维护活动而使用的软件。使用软件工具后,可提高软件生产率。目前软件工具发生了很大变化,目的是生成软件周期各个环节的自动化。主要用于软件的分析和设计,使用这些工具软件开发人员就能在微机或工作站上以对话方式建立各种软件系统。

工具箱:最初的软件工具是以工具箱形式出现的。但界面不统一,工具内部无联系,工具切换由人工操作。它们对大型软件的开发和维护的支持能力有限。

软件开发环境:目的是使软件工具支持整个生存周期。而且做到不仅支持各阶段的技术工作,还要支持管理和操作工作,保持项目开发的高度可见性,可控制性和可追踪性。

计算机辅助软件工程:可简单定义为软件开发的自动化,简称为CASE。实质是为软件开发提供一组优化集成的,大量节省人力的软件开发工具。是软件工具和软件开发方法的结合。目的是实现软件生存周期各环节的自动化,并使之成为一个整体。

CASE工具与以往软件工具不同体现在:

1 支持专用的个人计算环境;

2 使用图形功能对软件系统进行说明并建立文档;

3 将生存周期各阶段的工作连接在一起;

4 收集和连接软件系统从最初的软件需求到软件维护各个环节的所有信息;

5 用人工智能实现软件开发和维护工作的自动化。

【编辑推荐】

  1. 2011年软件水平考试软件设计师辅导资料(2)
  2. 2011年软件水平考试软件设计师辅导资料(1)
  3. 51CTO独家:2010年下半年软考软件设计师上午试题答案

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...