基于软件复用的信息系统开发模型
- 格式:pdf
- 大小:199.03 KB
- 文档页数:3
设计开发过程中拟采用的理论模型瀑布模型描述:每个软件过程顺序衔接、一次性通过,最常用。
优点:由文档和风险驱动,利于提高大型项目开发的质量和效率。
缺点:建设周期长、风险大、难以满足用户需求。
适用场合:需求明确且很少变更的项目,如二次开发或升级型项目。
螺旋模型描述:以原型为基础沿螺线旋转、每转一圈都经过计划/风险分析/实施/评估等过程且得到相应新版本、经过若干次螺旋上升得到最终版本。
优点:由文档和风险驱动,利于提高大型项目开发的质量和效率。
缺点:建设周期长、风险大、难以满足用户需求。
适用场合:需求经常变化的大型复杂系统。
增量模型:描述:采用随时间进展而交错的线性序列、每个序列产生一个可发布的增量、每个增量产生一个可操作的产品、第一个增量是核心产品。
优点:开始时不用投入大量人力资源、可以先推出核心产品以稳定用户、可以有计划的管理技术风险。
缺点:需要开放式体系结构,可能会产生设计效果差、开发效率低的情况。
适用场合:需求经常发生改变的软件开发过程。
快速原型模型描述:快速构建可运行的软件模型,以便理解和澄清问题,进一步细化需求,在新获取需求基础上进行系统开发。
优点:避免由于用户需求不明带来的开发风险。
缺点:快速建立的模型加上连续的修改可能造成产品质量低下。
适用场合:用户需求模糊不明的情况下。
迭代模型描述:一次迭代过程包括了所有软件开发流程、每一次迭代均产生一个可发布的产品、该产品为最终产品的一个子集。
适用于事先不能完整定义产品的所有需求,计划多期开发的项目。
喷泉模型描述:以用户需求为动力、以对象为驱动的模型,支持软件复用及多项开发活动的集成,主要支持面向对象的开发方法。
V模型描述:以测试为中心,为软件生命周期的每一个阶段指定了相应的测试级别:编码阶段<—>单元测试;详细设计阶段<—>集成测试;概要设计阶段<—>系统测试;需求分析阶段<—>验收测试。
敏捷方法(最著名的是极限编程:XP)一种轻量、高效、低风险、更强调团队协作和沟通的开发方式,适合于中小型开发团队,客户需求模糊或多变。
软件的复用技术及开发方法软件的复用技术及开发方法2.1软件的复用技术软件复用是指在开发新的软件系统时,对已有的软件或软件模块重新使用,该软件可以是己经存在的软件,也可以是专门的可复用组件〔8〕。
软件可复用性的高低影响到生产效率的高低、软件质量的好坏和系统可维护性的好坏。
在软件工程中面临的问题不是缺乏复用,而是缺乏广泛的、系统的复用。
软件复用包括构造可复用软件和用可复用软件进行构造。
构造可复用软件,一方面可以从现存的软件系统中抽取,另一方面通过改写或重新设计来实施。
Jones将软件复用的对象分为4种数据复用、体系结构复用、设计复用和程序复用。
这样,软件复用可在实现层、设计层和体系结构层三个层次上实现。
实现层软件复用是指对己有的程序代码进行复用,它包括源代码组件形式。
设计层软件复用是指对已有的软件系统的设计信息进行复用。
而体系结构层软件复用是最有效的软件复用,它主要是软件体系结构形式化的复用,即将软件的框架组织,全局结构设计作为复用对象。
可复用的软件体系结构则通常是显式地复用软件体系结构,并通过集成其他软件体系结构,建立新的更高层次的体系结构。
面向对象的软件复用机制主要有两种:继承和对象组合。
(1)继承继承是指子类可以从父类中直接获得某些特征和行为的能力,继承可作为代码复用和概念复用的手段。
作为代码复用的手段是指:子类通过继承父类的行为,一些代码就不必重写;作为概念复用的手段是指:子类共享父类的方法定义。
作为代码复用和概念复用手段的继承机制,在面向对象技术中,通过面向对象技术的一些主要机制来实现对“支持可维护性的可复用性”的支持。
这些面向对象的主要机制是:数据的抽象化、封装和多态性。
通过运用这些机制,继承可以在高层次上提供(相对于传统的低层次复用)可复用性:数据的抽象化和继承关系使得概念或定义可以复用;多态性使得实现和应用可以复用;而抽象化和封装可以保持和促进系统的可维护性。
这样一来,复用的焦点不再集中在函数和算法等具体实现细节上,而是集中在最重要的含有宏观商业逻辑的抽象层次上。
浅谈软件复用技术及其应用陈思[上海烟草(集团)公司计算机信息中心]_______________________________________________________________________________【摘要】随着企业信息化建设的不断深入,集团公司多个烟厂生产指挥系统建设将相继展开。
在企业中充分运用软件复用技术,不仅可以规范企业的业务流程,进而对企业的业务过程进行优化重组,而且构建可复用的软件系统本身就是企业非常重要的知识库和规则库,可以成为指导企业实施和扩展管理信息系统的模型。
在深入分析企业需求基础上建立可复用的企业业务模型可以在最大程度上提高企业实施ERP的成功率,降低信息化投资的成本,缩短建设周期。
所以大力发展并推广软件复用技术对于促进集团化规模下的多个烟厂信息化建设有重要的现实意义。
【关键词】软件复用模块化生产指挥系统_______________________________________________________________________________1 软件复用技术概述1.1 软件复用技术的概念大多数情况下所讨论的软件可复用性指软件本身的可重用性,即软件代码实现的可重用性。
而实际上,软件复用远不止这些,软件开发的全生命周期都有可重用的价值,包括项目的组织、软件需求、设计、文档、实现、测试方法和测试用例都是可以被重复利用或借鉴的有效资源。
软件较强的可复用一直是软件工程所追求的目标之一,软件工程界希望有一天能和其它工业领域一样,利用标准化的软件模块快速构建特定的应用系统。
事实上,这种努力也取得了相当大的进展,但是与人们所期望的目标还是有不少差距,软件模块还远没有机械设备的零部件那样拆卸、维修、更换方便和简单。
1.2软件复用技术对企业信息化建设的意义在企业中软件复用技术的运用,不仅可以规范企业的业务流程,发现业务流程中不合理的环节,进而对企业的业务过程进行优化重纽,而且构建可复用的软件系统本身就是企业非常重要的知识库和规则库,可以成为指导企业实施和扩展管理信息系统的模型。
软件复用技术及其在软件开发中的应用摘要:软件复用技术是指将已有软件资源和成果应用于新的软件开发中,用于节省开发成本和提升开发效率的一种技术手段。
本文结合软件开发的实践经验,从软件复用的概念、实现方法和实际应用等方面进行了深入探讨,分析了软件复用技术的优点和局限性,并对如何有效地实现软件复用提出了建议。
关键词:软件复用;技术手段;开发成本;开发效率;局限性。
正文:1. 概念软件复用是指在软件开发过程中,将已有软件资源和成果运用到新的软件开发中的技术手段。
这些已有的软件资源和成果可以为程序代码、工具、文档、数据、流程等多个方面。
利用软件复用技术,开发者可以更快速高效地完成软件开发。
2. 实现方法要实现软件复用,需要进行以下几个步骤:(1)分析资源:分析已有的软件资源和成果,找出可复用部分。
(2)设计接口:设计复用部分与新开发部分之间的接口,保证复用部分的可用性和合理性。
(3)编写封装:编写封装代码,将复用部分封装成易于调用的模块或组件。
(4)测试验证:进行测试验证,保证复用部分的正确性和可靠性。
(5)维护更新:定期维护更新复用部分,确保其与新开发部分的协同工作。
3. 实际应用软件复用技术在实际软件开发中的应用非常广泛。
它可以通过以下几种方式帮助开发者更快福地开发出高质量的软件:(1)库文件:开发者可以使用已有的库文件,将其中的代码片段复用到新的项目中。
(2)框架:利用框架,开发者可以快速构建出程序的骨架,再针对不同的业务需求进行定制。
(3)组件:组件是指一些可独立使用的软件部件,如操作系统、数据库、UI组件等。
(4)代码重构:开发者可以对已有的代码进行重构,提取其中的可复用部分作为代码库。
4. 软件复用技术的优点和局限性(1)优点:软件复用技术可以大大节省软件开发成本和提升开发效率,减少重复工作,降低出错率。
同时,软件复用还可以提高系统的灵活性和可维护性。
(2)局限性:软件复用技术的局限性主要表现在以下几个方面:- 需要额外的索引和管理开销;- 可复用性需要在软件设计时考虑,增加了开发难度;- 依赖于复用部分的软件开发需要遵循一定的规范和标准。
. 选择题1.软件工程研究的主要内容有(ABCD)2. A.软件开发方法、技术B.软件开发工具及环境3. C.软件管理技术 D.软件规范(国际规范)4.目前典型的软件开发模型有(ABCD):5. A.瀑布模型 B.增量模型C.螺旋模型D.喷泉模型6.包含风险分析的软件工程模型是(C):7. A.瀑布模型 B.增量模型C.螺旋模型D.喷泉模型&软件危机的主要表现是(BD)9. A.软件成本太高 B.软件产品的质量低劣10. C.软件开发人员明显不足D.软件生产率低下11.以下属于非功能需求的有(ABC)12. A.机构需求B.产品需求C.外部需求D.领域需求13.需求分析的作用是(ABCD)14. A.定义软件的范围及必须满足的约束15. B.确定软件的功能和性能及与其他系统成分的接I I16. C.建立数据模型、功能模型和行为模型17. D.最终提供需求规格说明,并用于作为评估软件质量的依据18.需求工程的基本活动包括(ABCD)19. A.获取需求B.需求分析与建模 C.确认需求D.进化需求20.需求获取之所以困难,其主要原因有(ABCD)21. A.缺乏领域知识 B.存在默认的知识22. C.存在多个知识源 D.客户可能的偏见23.常用的需求分析方法有(BCD)24. A.功能分析方法 B.结构化分析方法25. C.信息建模法 D.面向对彖的分析方法26.数据词典中可包含的条目有(ABCD)27. A.数据流B.数据项C.文件D.加工28•属于分布式的软件体系结构有(B)29. A.仓库模型B.客户/服务器模型C.分布式对象结构 D.中间件30.对于以下给出的几种类型的耦合,按照耦合性由高到低排列的是(A)31.(1)内容耦合(2)公共耦合(3)控制耦合(4)复合耦合(5)数据耦合32. A. 12 345 B. 1 3 4 2 5 C. 1 2 5 3 4 D. 5 4 3 2 133.对于块内部联系的类型,内聚性由弱到强的是(A)34.(1)偶然型(2)逻辑型(3)瞬时型(4)通信型(5)顺序型(6)功能型35. A. 12 345 6 B. 1 2 4 5 3 6 C. 3 2 4 1 5 6 D. 6 5 4 3 2 136.(C)是指相同的操作(或函数、过程)作用于不同的对彖上并获得不同的结果37. A.继承性 B.封装性 C.多态性 D.动态绑定38.以下UML的几种图中,属于动态模型的有(ACD)39. A.状态图 B.类图 C.合作图 D.顺序图40.以下软件复用中,抽象程度最低的是(A)41. A.代码的复用B.设计结果的复用 C.分析结果的复用 D.测试信息的复用42.以下软件复用中,抽象程度最高的是(D)43. A.代码的复用B.设计结果的复用 C.分析结果的复用 D.测试信息的复用D. 1 6 23 4 5D.因果图法 44. 可复用构件必须具备的条件有(ABD )45. A.功能上的独立性和完整性B.较高的通用性和灵活性 46.C.严格的质量保证D.较高的标准化程度47. 大多数的构件分类模式可以归纳为(ABC )48. A.枚举分类 B.刻面分类C.属性值分类 D.聚集分类49. 软件测试的基本原则有(BD )50. A.尽量由程序设计者自己进行测试 B.注重测试用例的选择51. C.尽早地和不断地进行软件测试 D.充分注意测试中的群集现象52. 以下测试方法中属于静态分析方法的有(ABD )53. A.桌前检查 B.代码会审C.白盒法 D.步行检查54. 步行检查时,常使用的分析方法有(AB )55. A.调用图 B.数据流分析图 C.数据流图 D.状态图56. 卜•面6种常用的逻辑覆盖测试方法,按发现错误能力由弱到强排列的是(A )57. (1)语句覆盖(2)判定覆盖 (3)条件覆盖 58. (4)判定-条件覆盖(5)条件组合覆盖 (6)路径覆盖 59. A. 12 345 6 B. 6 5 4 3 2 1 C. 1 4 3 2 6 5 60. 属于照盒法的测试方法有(ABCD ) 61. A.等价分类法 B.边值分析法C.错误推测法 62. 描述软件开发计划进度的主要工具有(ABCD )63. A. 一般的表格工具B.甘特图C.时标网状图 64. CMM 表示(A )65. A.软件过程成熟度模型B.软件过程工业化控制 66.C.国际软件质量认证D.软件统一性标准 67. 软件过程和产品质量有详细的度量标准,并且得到了定量的认识和控制。
收稿日期:2004206226;修返日期:2004208231基于软件复用的信息系统开发模型殷 磊,王润孝,王东勃(西北工业大学制造自动化软件与信息研究所,陕西西安710072)摘 要:在简要地介绍软件复用的概念和关键技术的基础上,结合领域工程、应用工程、组件化开发、原型开发方法以及面向对象开发方法等技术的优势,提出了一种基于软件复用的信息系统开发模型。
关键词:软件复用;信息系统;开发模型中图法分类号:TP311154 文献标识码:A 文章编号:100123695(2005)0820086203I nfor mati on Syste m Devel opment Model Based on Soft w are ReuseYI N Lei,WANG Run 2xiao,WANG Dong 2bo(Institute of M anufacturing Auto m ation Soft w are &Infor m ation,N orthw estern Polytechnical U niversity,X i ’an Shanxi 710072,China )Abstract:W ith the concep t and the key contents of s oft w are reuse t o intr oduce concisely,this paper p resents a inf or mati onsyste m devel model based on s oft w are reuse with the advantages of domain engineering,app licati on engineering,com 2ponent 2based method,p r ot otype method and oriented 2object method .Key word:Soft w are Reuse;I nfor mati on Syste m;Devel opmentModel1 软件复用随着计算机应用领域的不断扩展,以及人们对利用计算机来解决各种问题的日益依赖,软件开发所需要解决问题的复杂程度急剧膨胀,系统的规模和复杂度也随之空前地扩大。
软件的复杂性和其中包含的错误已经达到了开发人员无法控制的程度,这便是人们所说的软件危机。
为了解决这个问题,人们提出了软件复用的方法。
所谓软件复用是指在软件开发活动中,利用已有的、可复用的软件成分来构造和生成新的软件系统。
该软件成分可能是已有的软件成分,也可能是为复用而专门设计开发的可复用软件成分。
可复用软件成分范围比较广泛,包括源代码、组件、需求分析结果、软件体系结构、设计方案、测试计划以及测试案例等。
软件复用被认为是解决软件危机、提高软件生产率和软件质量、增强软件的开放性和对外部扰动的适应性的主要途径[1]。
如今,软件复用技术已经发展成为软件工程的一个重要研究领域,人们对软件复用技术和方法进行了广泛、深入的研究,在复用技术上取得了一定的成果和成功的实践经验。
2 软件复用的关键技术系统化软件复用有两个基本问题:①必须有可以复用的对象;②复用者需要知道如何去使用被复用的对象。
因此软件复用包括两个相关的过程:面向复用的开发(Devel opment for Re 2use )和使用复用进行开发(Devel opment with Reuse )[2]。
面向复用的开发生成可复用的软件资产,包括软件组件、需求规范以及开发文档,即可复用的对象。
这一生成可复用对象的过程可以是软件生产者从已经存在的应用系统中提取,也可以是由软件生产者重新进行设计开发。
使用复用进行开发是利用已存在的可复用对象进行应用系统的开发。
实现系统化软件复用的关键技术主要包括:面向对象技术(O riented Object Technol ogy )、软件组件技术(Soft w are Compo 2nent Technol ogy )、领域工程(Domain Engineering )、应用工程(App licati on Engineering )、软件体系结构(Soft w are A rchitec 2ture )、设计模式(Design Patterns )、软件再工程(Soft w are Ree 2ngineering )、开放系统(Open Syste m )、软件过程(Soft w are Pr ocess )、C ASE (Computer A ided Soft w are Engineering )技术以及各种非技术因素等[2]。
211 领域工程领域工程[3]是针对一个应用领域中的若干系统进行分析,建立基本能力和必备基础,并识别这些系统共享的领域需求,设计出能够满足这些需求的构架,并在此基础上开发和组织该领域的可复用构件的过程,它覆盖了建立可复用软件构件的所有活动。
可复用软件构件的含义比较广泛,它包括了领域内所有可复用的软件成分。
领域工程包括领域分析、领域设计以及领域实现等三个主要的步骤,其中,领域分析是实施领域工程的关键步骤,也是人们研究的重点。
领域分析输出的产品为领域模型。
领域模型用于收集、组织和表示领域中所有可复用的信息,其目的是帮助用户了解问题域,并明确领域中可以复用的软件资产。
图1显示了领域分析的输入和输出。
・68・计算机应用研究 2005年212 应用工程与领域工程相对应,应用工程的目的是使用可复用软件成分进行软件的开发(Devel opment with Reuse )。
应用工程与领域工程有很多相似之处,两者都是在同一套理论基础和工程原则支持下的系统设计与开发。
应用工程也可以划分为系统分析(需求获取)、系统设计、系统实现等阶段[4]。
ST ARS 提出的特定领域软件开发模型———双生命周期法将领域工程与应用工程结合起来[5,6],如图2所示。
总之,应用工程的重点是单个系统,而领域工程的重点则是在一个域内的多个相关系统;领域工程活动的结果可被应用工程所用,应用工程的活动又反过来影响未来的领域工程活动。
213 软件体系结构软件体系结构[8,9]是一个由程序、模块或系统等构件组成的集合体,包含了构件定义、构件之间的交互方式、构件结构及约束等。
除描述系统结构和拓扑外,软件体系结构还反映出系统需求和构件的对应关系,从而提供一些系统设计的指导原则。
在软件体系结构设计中要考虑系统级的问题,典型的有容量、吞吐量、一致性、组件兼容性等。
常见的软件体系结构风格有分层系统、数据抽象和面向对象组织、管道-过滤器、基于事件的隐式激发机制的系统以及仓库等[7]。
软件体系结构风格为大粒度的软件复用提供了可能[9]。
214 设计模式设计复用的另一个主要内容就是设计模式(Design Pat 2terns )的复用,设计模式是近十年来在软件工程领域所取得的重大成就之一,也是当前软件工程领域的研究热点。
设计模式最早由建筑师Christ opher A lexander 提出,后来逐渐被应用到软件开发领域。
设计模式在系统设计这一层次上将软件开发抽象成一种模式,模式描述了系统所面临的问题及其解决方案,从而保证最大范围的复用。
设计模式按照面向对象的概念进行组织,以抽象的方式描述和解决设计问题,是针对问题和解的抽象,是对一系列具有共性的问题的完整解决方案[10]。
正如Christ opher A lexander 所说:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。
这样,你就能一次又一次地使用该方案而不必做重复劳动。
”尽管A lexander 所指的是城市和建筑模式,但他的思想也同样适用于面向对象设计模式,两类模式的核心都在于提供了相关问题的解决方案[11]。
设计模式强调系统的复用性,它帮助人们作出有利于系统复用的选择,从而避免设计损害了系统的复用性,是可复用面向对象软件的基础。
215 组件技术关于软件组件[12]目前有狭义和广义两种定义。
狭义的软件组件是一种二进制形式的可复用软件块,它封装了一定的数据、属性和方法,遵循二进制外部接口标准,内部实现细节对用户透明,具有即插即用的特性,组件之间通过使用接口来进行交互。
广义的软件组件是指可复用的软件单元,可以被用来构造其他软件,它可以是被封装的对象类、功能模块、软件框架、软件系统模型、软件的文档,如可复用的分析件、设计件等。
组件具有平台和语言的无关性、接口和实现分离以及支持即插即用等特点,是支持软件复用的核心技术,是近几年来迅速发展并受到高度重视的一个学科分支。
目前主要的组件技术标准有三个:M icr oft 公司的C OM /DCOM (D istributed Com 2ponent ObjectModel );OMG 组织(Object Manage ment Gr oup )的C ORBA (Common Object RequestB r oker A rchitecture );S UN 公司的Java Bean /EJB (Enter p rise Java Beans )。
3 基于软件复用的信息系统开发模型311 快速原型法原型法[16]的核心是原型。
原型是系统的早期可运行版本,随着用户或开发者对系统理解的加深,原型不断地得到补充和细化。
系统的定义是在逐步发现的过程中进行的,这就是快速原型法的基本出发点。
快速原型法的开发过程体现了不断迭代的快速修改过程,是一种动态定义技术。
快速原型法的最大优点是能够大大减少软件系统的后期维护费用,使系统功能能正确反映用户的需求。
原型本身及这种方法的不足之处在于,如果原型本身功能设置不齐全、性能不好,会导致原型的设计和使用超出预期的花费和时间;另一个关键不足是原型法需要一个合适的软件开发环境,以便原型能直接转换成现实的系统。
与“自底向上”和“自顶向下”方法相比,快速原型法虽然具有很明显的优越性,但因其依赖于快速开发工具的支持,对系统开发者提出了更高的要求。
312 面向对象开发方法面向对象方法将客观世界(即问题域)看成是由一些相互联系的事物(即对象)组成。
每个对象都有自己的特征和状态,不同对象间的相互作用和相互联系构成了完整的客观世界。
问题域由对象和对象间的联系来描述,它把数据及相关的方法封装在一起构成对象,以对象和数据结构为中心来构造系统。
由于采用将数据和功能封装的原则,面向对象方法对需求变化有较强的适应能力,也使开发的系统容易复用[13,14]。
但是面向对象的程序设计方法也存在以下的局限性[15]:(1)面向对象的程序设计方法在处理大型软件系统时,它的粒度粗细难以有效控制。