从软件自动化生产方式来研究软件架构的设计
从软件自动化生产方式来研究软件架构的设计
摘要 :在目前的软件开发理论和实践过程中, 软件生产从需求获取到代码完成都需要人
工完成。从需求分析到体系结构的对应与转换依然依赖于软件设计者的技能、经验和创造力;
大多数软件代码的生产仍然需要依靠程序员来人工完成。这种传统的软件生产方式为软件产业
带来了许多问题。随着软件工程理论和 case 工具的发展, 突破传统软件开发方式的方法论逐
步被提出。基于模式的软件自动化生产方式能够在从软件抽象模型到软件代码自动生成的过程
中节省大量人力, 提高软件开发效率, 增加软件的自适应性。通过介绍基于模式的软件自动
化生产方式来重点研究软件架构的设计。
关键词 :体系结构; 设计模式; 自动化生产; 开发效率; 自适应;
Abstract:
In the current software development theory and practice, software production needs to be done
manually from aquistion of requirement to code completion.The mapping from software requirements
analysis to software architectures still needs designer's skills, experience and creativity.Most software
code production still depends on the programmer to do it manually.This traditional way of software
production poses many problems for the software industry.With the development of software
engineering theory and case tools, the methodology of breaking through traditional way of software
development has been put forward gradually.Software automation production methods based on
pattern can save a lot of manpower in the process of the software abstract model to the automatic
generation of software code.This approach improves the efficiency of software development and
increases the adaptability of the software.This paper studied the design of model-driven software
architecture by introducing mode-based software automation production methods.
Keyword:
Architecture; Design pattern; Automated production; Development efficiency; Adaptation;
1 引言
在高需求、高投入、高竞争的环境下, 软件生产的规模和效率成为软件企业最关注的问题之
一。在传统软件开发过程中, 大多数软件代码的生产要依靠程序员人工完成, 为软件开发带
来了大量问题。首先, 软件生产的效率低下, 项目延期率高;其次, 软件质量难以保证;再
次, 技术更新换代快, 软件可移植性低;最后, 软件产品难于修改和维护。
随着软件开发理论的发展和完善, 传统软件开发方法已不能满足社会和企业的需求, 新的软
件开发方法被提出。OMG 在UML 的基础上提出了模型驱动构架 (MDA )[1], 为从软件抽象
模型到软件代码自动生成指明了一个很好的方向。在 Microsoft 发布的 VS.Net 2005 中加入了支
持软件工厂[2]的工具 Team System.以软件自动化生产为特点的软件生产方式成为新的关注点。
事实上, 各种新型 CASE 工具正在悄悄地改变着软件开发模式。然而, 自动化的软件生产时
代并不会马上到来。软件生产自动化并不仅仅是几个软件工具, 更是一种新的软件开发的方法
学。它需要管理人员、开发人员转变传统的开发观念, 使技术积累、过程管理等方面都适应新
的开发模式。
在软件开发各个阶段独立的自动化方法已经存在。在需求阶段, 为易于理解和沟通, 基于资
源、组织与业务的需求模型 (ROB )[3]用递归分解的方法分别从资源、组织与业务抽取需
求。ROB 全局统一的树形结构便于形式化定义需求对象, 以实现在计算机中存储和管理;在
规范需求变更管理组织、流程的基础上, 建立数据模型, 设计数据操纵语言, 定义操纵接
口, 通过编辑修改对象模拟需求发生的变更, 在完整性、一致性规则约束下, 自动完成由需
求变更引发的完整操作模块[14].
设计模式阶段, 检验前置条件可以被认为是一种设计模式, 因为它是对一个不断发生的问题
的可重复的解决方案。Microsoft 的代码契约就是设计模式自动化的一个完美的例子, 它基于
原生C#或Visual Basic, 提供了一组 API 以表达检验规则, 规则的具体形式包括前置条件、后
置条件和对象不变式。
像代码契约这样的编译期扩展固然很好, 但官方推出的扩展要花费数年的时间进行开发, 直
至成熟与稳定。由于存在着很多不同的领域,每个领域又有着它自身的问题, 官方的扩展是
不可能覆盖所有问题的。
2 模型驱动架构 (MDA)
2.1 MDA 概述
模型驱动架构 (Model Driven Architecture, MDA ) (见图 1 ) 的核心思想是首先抽象出与实现
技术无关、完整描述业务功能的核心平台无关模型 (Platform Independent Model, PIM );然后
针对不同实现技术制定多个转换规则, 通过这些转换规则及辅助工具将PIM 转换成与具体实
现技术相关的平台相关模型 (Platform Specific Model, PSM );最后将PSM 转换成代码。与传
统软件开发方法相比,MDA 关注模型, PIM 开发轻松, 提高了软件的生产效率;从 PIM 转
换为 PSM 的过程中, 可以一对多转换, 增加了软件开发的可移植性[1].软件工厂可被认为是
包含 MDA 并在此基础上进行了扩展, 比基于 PIM 和PSM 的MDA 的定义范围更广泛[2].
图1 模型驱动架构
2.2 基于模式的转换方法
基于模式的转换方法是由模型驱动架构产生的方法:模型使用具有精确定义形式和含义的语言
对系统做出描述, 以适合计算机自动解释。模型之间的变换需要定义一组变换规则, 用于描
述源语言中的元素如何变换为目标语言中的元素。
基于模式转化的 MDA (见图 2 ) 中, 变换由变换规则和变换操作两步构成。变换规则定义变
换之前和变换之后的条件, 当满足变换规则时, 执行变换操作;变换操作执行从模式库中查
找模式, 然后调用该模式实现模型的转换, 完成由元模型元素向对应的目标模型元素的转
换。这一过程中会出现模式库模式不足的情形, 此时需要定义转换规则, 完成模型转换, 再
将其定义为新的模式存储在模式库中[4].
图2 基于模式转换的 MDA
3 模式
后续不再关心软件转换的具体语言和使用的工具, 着重研究基于模式的软件自动化开发方法中
的模式。
将模式驱动的软件自动化生成方法中的模式分为需求阶段、设计阶段和实现阶段, 主要研究从
需求到软件架构的实现;第4节引入软件架构模式系统[5]和问题框架[6]等辅助工具到方法中,
使得从需求阶段更好地过渡到软件架构设计阶段。
3.1 模式概述
模式 (Pattern )[7]是指从生产经验和生活经验中抽象和升华提炼出来的核心知识体系。模式
其实就是解决某一类问题的方法论, 把解决某类问题的方法总结归纳到理论高度,即为模
式。模式是一种参照性指导方略, 在一个良好的指导下, 初学者能利用训练有素的软件工程
师的集体经验, 它们记录了软件开发领域已得到充分证明的既有经验, 可帮助推广良好的设
计实践。
模式一词的指涉范围甚广, 它标志了物件之间隐藏的规律关系, 而这些物件并不必然是图
像、图案,也可以是数字、抽象的关系, 甚至可以是思维的方式。只要是一再重复出现的事
物,就可能存在某种模式[7].Alexander 给出了经典定义, 即每个模式都描述了一个在我们的
环境中不断出现的问题, 然后描述了该问题的解决方案的核心[8].
一般而言, 模式=模式名称+问题+解决方案+效果。模式名称用两个词来描述模式问题、解决
方案和效果;问题描述应该在何时使用模式;解决方案描述设计的组成部分、它们之间的相互
关系及各自的职责和协作方式;效果描述了模式的使用效果及使用模式时应权衡的问题。
3.2 基于模式的 MDA 方法中的模式
在基于模式的 MDA 方法中, 需求分析师获取需求后采用需求模式来描述需求, 平台无关模型
的建立发生在传统软件开发方法中的需求分析到底层设计阶段, 这一阶段采用架构模式和设计
模式。平台相关模型的建立发生在传统软件开发方法中的底层设计到编码阶段, 这一阶段采用
成例模式。
3.2.1 需求分析阶段
除了无关紧要的系统, 所有系统的需求本质上彼此相似,例如每个系统都有很多查询功能,
每个功能都有自己特有的需求。定义一个业务系统时, 相当大比例的需求归属相对少量的类
型。因此, 以一致的方式定义同样类型的所有需求是必要的。
需求模式:描述定义一种特定类型需求的方法[9]. 需求模式应用于单个需求, 一次帮助定义一
个单一需求。需求人员编写完需求, 模式的任务就结束了, 但是开发人员和测试人员可以根
据需求获得工作提示和测试方法。
需求模式包括如下元素:基本细节、适用性、讨论、内容、模板、实例、额外需求、开发考
虑、测试考虑[9].
使用需求模式的好处:1 ) 需求模式提供指导,如建议包含哪些信息, 提出忠告, 提醒常见
缺陷, 以及指出其他应该考虑的问题;2 ) 需求模式节省时间, 不需要从头开始写一个需求,
模式给出了合适的出发点和开发的基础;3 ) 需求模式促进同种类型需求的一致性。
需求模式使开发者有机会确定一种类型的需求所依赖的基础架构, 不必为某一个需求考虑。单
个需求处于食物链下游;设计处于食物链上游, 以需求为食。Martin Fowler 的分析模式[10]处
于需求模式的另一边, 在食物链上分析模式比需求模式更高一级, 而设计模式轮流以需求模
式和分析模式为食。
3.2.2 设计阶段模式
每个模式都是由3 部分组成的规则, 诠释了特定背景、问题和解决方案之间的关系。作为现实
世界的一个元素, 模式阐述了特定背景、该背景下反复出现的一系列作用力以及消解这些作用
标签: #设计
摘要:
展开>>
收起<<
从软件自动化生产方式来研究软件架构的设计 摘要:在目前的软件开发理论和实践过程中,软件生产从需求获取到代码完成都需要人工完成。从需求分析到体系结构的对应与转换依然依赖于软件设计者的技能、经验和创造力;大多数软件代码的生产仍然需要依靠程序员来人工完成。这种传统的软件生产方式为软件产业带来了许多问题。随着软件工程理论和case工具的发展,突破传统软件开发方式的方法论逐步被提出。基于模式的软件自动化生产方式能够在从软件抽象模型到软件代码自动生成的过程中节省大量人力,提高软件开发效率,增加软件的自适应性。通过介绍基于模式的软件自动化生产方式来重点研究软件架构的设计。 关键词:体系结构;设计模式;自...
相关推荐
-
2024年党建工作要点工作计划5篇供参考
2023-12-16 999+ -
2025年专题生活会对照带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”个人对照检查发言材料4110字文稿
2024-12-21 999+ -
2025年医保局局长、科技局领导干部专题“四个带头”方面对照检查材料2篇例文(附:反面典型案例剖析情况)
2025-02-09 457 -
2025年国有企业党委书记、市总工会党组书记民主生活会“四个带头”方面对照个人检查发言材料2篇文(附:典型案例、上年度整改+个人情况)
2025-02-09 506 -
2025年市委组织部部长、教育局党委书记生活会“四个带头”个人对照检查发言材料2篇文(典型案例+个人事项)
2025-02-09 626 -
2025年市财政局党组书记、局长、市检察院党组领导班子对照“四个带头”方面生活会个人对照检视发言材料2篇文(含以案为鉴反思、以案促改促治方面)
2025-02-09 508 -
市检察院党组、市财政局领导班子2025年生活会对照“四个带头”方面检视发言材料2份文【含以违纪行为为典型案例剖析】
2025-02-09 461 -
2025年市财政局领导对照“四个带头”生活会检视发言材料2篇例文【含以违纪行为为典型案例剖析】
2025-02-09 582 -
单位领导班子2025年聚焦“四个带头”生活会对照检查材料2篇文(含:典型案例剖析反思、落实意识形态责任制)
2025-02-09 757 -
2025年镇党委副书记、市科学技术局领导班子生活会对照“四个带头”检视材料2篇文【含违纪行为典型案例分析】
2025-02-09 257
作者:闻远设计
分类:其它行业资料
价格:免费
属性:8 页
大小:72.4KB
格式:DOCX
时间:2024-03-09

