基于模型的软件开发方法研究

来源 :中外企业文化 | 被引量 : 0次 | 上传用户:bluelink
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【文章摘要】
  随着计算机科学技术的迅速发展,软件系统越来越复杂,若还采用原来旧的方法开发软件,则无法满足软件系统的要求,这就需要有一种更新,更符合系統工程要求的方法来指导软件系统的开发。
  【关键词】
  软件系统;模型;软件开发方法
  1 软件系统的开发过程
  1.1 软件过程领域的基本概念
  软件可划分为智能软件、系统软件和应用软件三个领域。由于不同的软件采用的开发知识不同,从而构成各自相应的方法。尽管,智能软件和应用软件分属不同的领域,但智能软件和应用软件都是计算机软件。建造软件系统的解决方案由三个关键的相互关联的基本要素组成:(1)软件工程过程(SEP)。(2)软件工程过程支持环境(SEPSE,如开发工具和建模语言等)。(3)培训、指导和咨询服务。
  1.2 软件过程的特点
  软件过程中的所谓“过程”是创建一个产品或完成某些任务的一种系统化的方法和工作过程,它异于通常计算机领域所特指的可运行的软件的过程,其执行者不再仅仅是计算机,而经常是由具体承担任务的软件开发人员使用给定的开发工具来执行,其意义更为广泛,描述了以某种有条理的方法进行工作或实现一个目标的任何一种机制,它甚至可以是一个无法在计算机上运行的过程,完全由人工或人工借助计算机领域以外的其它工具来完成。
  软件过程是关系错综复杂的各种活动的集合,各活动之间有时有严格的时序关系,有时是异步并行的,有时互为条件,有时互为反馈,因此实际的软件过程中的活动存在一种复杂的网状关系。软件开发是一个高度动态的过程,动态变化渗透到了软件过程的各个方面:需求说明、任务分配、调试、开发策略、工具集、支持环境等,这些变化的出现通常不可预料,造成的影响也无法确定。
  2 建立过程模型的基本过程
  开发过程模型首先要对外部过程模型进行提取和抽象,产生一个非正式的过程模型,包括执行过程所接收到的反馈。随后对过程的活动顺序以及所涉及的产品进行抽象描述,它可用于许多相似的项目和组织之中,共享某些信息。这样的模型意味着是一个非常高层的过程体系结构,可以满足一般的原则和需求,可以将其视为一个通用的原模型。在此基础上,用户可以根据具体情况详细而又严格地描述过程中的各种任务类型,这时可以从管理人员的角度来精细化所有的子模型,如对特定领域内的任务和角色进行分类和施加约束。在将软件模块交付集成测试组时,可以说明这是某个特定过程模型所产生的结果。同时这个过程模型还需要进一步实例化以适应项目的各种约束和条件,因而实例化的过程模型是一个可执行的过程描述,它将实例化的活动与具体的产品和项目资源联系起来,并遵循一定的调度时间表。一旦过程模型为相应的项目进行了实例化,该模型就可以进行模拟和运作。在模拟之后就可以对过程模型进行实际运作,生产有关的产品。
  3 当前主流的软件开发方法
  3.1 结构化方法
  所谓软件构件化,就是要让软件开发像机械制造工业一样,可以用各种标准和非标准的零件来进行组装。软件的构件化和集成技术的目标是:软件系统可以由不同厂商提供的,用不同语言开发的,在不同硬件平台上实现的软件构件,方便地、动态地集成。这些构件要求能互操作,它们可以放在本地的计算机上,也可以分布式地放置在网上异构环境下的不同结点上。
  3.1.1结构化程序设计方法
  20世纪60年代,围绕是否应取消goto语句,人们展开了一场激烈的争论。围绕goto语句争论的结果使人们形成了新的思维观念:编写程序时,在正确地实现了软件功能的前提下,必须考虑到程序的可维护性,重视程序的可读性、清晰性和可理解性,而不能随心所欲地去过分追求程序编写技巧。
  由于使用三种基本程序结构(顺序、选择、循环)组成的程序具有良好的可读性、清晰性和可理解性,容易维护,所以逐渐成为主流的程序结构标准。按照这样的新思维观念,形成了一个新的程序设计方法——结构化程序设计方法,结构化程序设计是根据结构程序设计原理,将每个模块的功能用相应的标准控制结构表示出来,从而实现详细设计。
  3.1.2结构化分析方法和结构化设计方法
  结构化程序设计方法的巨大成功推动了结构化分析方法和结构化设计方法的发展。1974年,Stevens、Myers 和Constantine发表文章《Structured Analysis》,提出了结构化分析和结构化设计的概念。
  结构化分析方法根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模块,从而完成需求分析工作。结构化设计方法使用模块化和自顶向下逐步细化技术,将数据流图等结构化分析的结果转化为软件系统总体结构,用软件结构图来建立系统的物理模型,实现系统的概要设计。
  3.2 面向对象方法
  面向对象软件开发方法包括面向对象分析方法(Object-Oriented Analysis,简称OOA)、面向对象设计方法(Object-Oriented Design,简称OOD)和面向对象程序设计(Object-Oriented Programming,简称OOP),其核心是面向对象程序设计方法。
  一般认为软件由程序和文档组成,而程序又由数据结构和算法组成,在传统的程序设计方法中,数据(数据结构)和施加在数据上的操作(算法)被分离成两个独立的部分,而程序被看作是工作在数据上的一系列过程或函数的集合,然而客观世界的实体既有静态的属性(即数据),又有动态的行为(即对数据的操作),因此这两方面内容密切相关,由于传统的程序设计方法将这两方面内容分离,无形中加深了问题空间与解空间之间的裂痕,增加了软件开发的难度。相反,面向对象方法有下列要点:客观世界是由各种对象(Object)组成的,复杂对象可以由简单对象组成。有共同属性和方法的一组对象抽象为一个类(Class)。一个类(子类)可以继承另外一个类(父类)的方法和属性,这一特性称为继承。对象之间通过传递消息进行通信。
  以上特点可以归结为如下的公式:Object-Ori-ented=Object+Classification+Inheritance+ Communication with Messages。在面向对象程序设计方法中,数据和施加在数据上的操作被封装在一起,形成类和对象的概念,用对象分解取代了传统方法的功能分解。这一思维观念创新使得问题空间与解空间的结构基本一致,有利于软件复用,也与人们通常认识世界的思维方式相符,更利于加强代码的易懂性。
  3.3 形式化方法
  软件工程中的形式化方法就是依靠数学模型和计算来描述和验证一个目标软件系统的行为和特性,包括需求规格、设计和实现等,形式化方法最根本的特征就是建立在严格的数学基础上,如果一个方法有良好的数学基础,那么它就是形式化的,典型的以形式化规约语言给出。形式化方法能很好地解决在软件开发中经常出现的二义性问题,因为形式化方法主要是符号系统,这种符号系统具有一定的数学性质。
  4 结束语
  总之,我们要不断坚持和谐软件过程,根据软件、行业、人文等各类因素,不断地落实和深化和谐软件过程的理念,不断反思总结吸收借鉴改善创新,如并行工程,敏捷制造和全球制造。
  【参考文献】
  禾盈.软件研发向质量管理要效益[N].金融时报,2001
  【作者简介】
  钱秋实,(1990—),男,辽宁沈阳市人,同济大学软件学院硕士研究生。
其他文献
【文章摘要】  计算机模拟技术是读图时代绿色建筑设计的一个有效的媒介工具,它在建筑集成设计中的应用必将使建筑集成设计大受裨益。本文将对计算机模拟在建筑集成设计中的应用进行探讨分析,望以此引起各位学者的共鸣。  【关键词】  建筑设计;集成设计;应用  0 引言  随着我国经济的发展,社会的进步,计算机技术在我国的各行各业得到了广泛应用,并给社会带来了利好。这场以计算机技术为代表的新技术革命产生了很
期刊
【文章摘要】  全信息化与全数字化,全数字化网络化应是21新世纪人类社会的重要特征,计算机软件在内是企业知名网站开发如:百度新浪等,都需要大量的引用,或者在更多用途上。在当今还是不久以后软件作为主打领域,在经济发展中各种企业国际竞争,它都是必不可少的重要引擎。  【关键词】  JAVA;Struts;Oracle数据库  1 Eclipse连接数据库的util程序  对于Eclipse与Tomca
期刊
【文章摘要】  计算机网络的安全问题越来越受到人们的重视,本文简要的分析了计算机网络存在的安全隐患,并探讨了计算机网络的几种安全防范措施。总的来说,网络安全不仅仅是技术问题,同时也是一个安全管理问题。  【关键词】  计算机;网络安全;策略  In-ternet的飞速发展给人类社会的科学与技术带来了巨大的推动与冲击,同时也产生了网络信息与安全的问题。而作为计算机网络安全的具体含义会随着使用者的变化
期刊
【文章摘要】  本文针对网络安全的三种技术方式进行说明,比较各种方式的特色以及可能带来的安全风险或效能损失,并就信息交换加密技术的分类作以分析,针对PKI技术这一信息安全核心技术,论述了其安全体系的构成。  【关键词】  网络安全;防火墙;加密技术;PKI技术  随着计算机网络技术的飞速发展,尤其是互联网的应用变得越来越广泛,在带来了前所未有的海量信息的同时,网络的开放性和自由性也产生了私有信息和
期刊
【文章摘要】  云计算作为一项迅速发展的信息技术目前已应用在国内外诸多领域,对于中小型图书馆而言,云计算的到来对中小型图书馆的影响和机遇也值得我们重视和深思。本文在介绍云计算基本原理及发展概述的基础上,探讨了云计算技术对中小型图书馆数字化建设的影响,以及云计算技术应用于中小型图书馆时需要重点关注的问题。  【关键词】  云计算;图书馆;云计算技术应用  0 引言  云计算作为一个相對新兴的名词,出
期刊
【文章摘要】  文章阐述我国发展民族信息安全体系的重要性及建立有中国特色的网络安全体系的必要性。论述了网络防火墙安全技术的分类及其主要技术特征,并且介绍了网络安全的相关知识。  【关键词】  网络安全;策略体系;防护  0 引言  随着计算机的发展,人们越来越意识到网络的重要性,通过网络,分散在各处的计算机被网络联系在一起。做为网络的组成部分,把众多的计算机联系在一起,组成一个局域网,在这个局域网
期刊
【文章摘要】  OSKit可以用来构建操作系统内核、外层服务和其他核心OS功能模块。OSKit提供了各种功能模块,诸如简单自举,一个可用于内核的最小化POSIX环境、和物理内存和其约束一致的内存管理、广泛的调试支持,以及高层子系统如协议栈和文件系统。  【关键词】  OSKit;操作系统;C语言  0 引言  当前,操作系统的功能不断扩展,操作系统的类型呈现出多样化的趋向。一个小规模的开发小组已经
期刊
【文章摘要】  通过网络提供或传播信息的人很多,它所形成的大文化圈有可能把千千万万的网民纳入同一思想轨道,使他们的思维丧失自我而趋向单一,成为一个彻头彻尾的“单面人。”所以在网络社会化的过程中不能全盘“拿来”,一定要批判地接收,这样才是真正的有益的个人社会化过程。  【关键词】  网络;个人;社会  1 个人社会化及网络技术  个人社会化是指社会将一个自然人转化成为一个能够适应一定社会文化,参与社
期刊
【文章摘要】  本文研究Hopfield神经网络的特点,并结合进化算法或启发式算法,设计出一个基于Hopfield神经网络的混合分类算法,并在实际数据集进行验证,以期提出的算法既具有一定鲁棒性,又要具有较高的分类精度,并且能够充分发挥Hopfield神经网络的自联想特性,具有较好的容错性和普适性。  【关键词】  Hopfield神经网络;粒子群优化算法;自联想特性  随着信息产业的普及,数据存储
期刊
【文章摘要】  随着信息技术的发展,网络的迅速普及,搜索引擎在网络用户的生活中扮演着越来越重要的地位,本文就爬虫式的搜索引擎、目录搜索引擎和元搜索引擎做了详尽的分析比较,并对目前的搜索引擎的特点进行了描述。  【关键词】  搜索引擎;分类;爬虫;元搜索引擎  目前Internet上的搜索引擎按其工作方式主要可分为三种,分别是爬虫式的搜索引擎(Spider Based Search Engine),
期刊