当前位置: 首页 > news >正文

建立稳定分析模式的模式语言01

Haitham Hamza 等 著,wnb 译

摘要

一般认为,软件分析模式在减少开销和缩短软件产品生命周期等方面会起到重要的作用。然而,分析模式的巨大潜能还未被充分发掘。缺乏稳定性是当前分析模式存在的主要问题。多数情况下,为特定问题建模产生的分析模式缺乏一般性,即使是为同样的问题建立的分析模型当环境发生变化时难以产生作用,这一情况使得软件开发者不得不从头开始建模工作,难以实现模式的可重用性。为此,本文提出了一种建立稳定分析模式的模式语言,目的在于提出一种在构建分析模式时能够获得稳定性的方法。

1 介绍

分析模式是一种概念模型,用于对问题的核心知识建模。因此,人们希望针对特定问题建立的模式应该能够方便、容易地重用于建模同样的问题,而无论这些问题出现在何种环境中。实际应用中,人们的这一希望还难以实现。事实上,目前对许多领域中众所周知的问题建模所产生的分析模式,当将其应用到不同的环境中时,并不像人们所希望的那样能够被重用。为此,软件开发人员通常喜欢从头开始建立他们的分析模型。

在建立分析模式时考虑稳定性将有助于建立有效的和可重用的模式。这些稳定的模式可以建模问题,无论这些问题出现在何种环境下,也就是说与问题存在的环境无关。文献[1][2]表明了在软件重用和生命周期改进方面软件稳定性具有重要的作用。软件稳定性模型应用了“EBT”(持久性业务主题)和“BO”(业务对象)的概念。本文将稳定性概念应用到分析模式中,提出了稳定分析模式(Stable Analysis Patterns)的概念。稳定分析模式隐含的思想是在进行问题分析时,根据问题的EBT及BO,从增加稳定性和扩展重用性的目标进行考虑。本文所提出的模式语言展示了建立稳定分析模式所需要的主要步骤。

本文的其它部分组织如下:第2部分对所提出的模式语言以及不同模式间的交互进行了概述。第3部分详细描述了每个模式。第4部分对全文进行总结。

2 模式语言概述

本文提出的模式语言包含8个模式。这些模式表明了建立稳定分析模式需要的步骤。8个模式分类为三个主要的层次。每个层次有其主要的目标。图1显示了模式语言的三个层次以及每个层次所对应的模式。每个模式包含两个数字。第1个数字表明了其所处的层次,第2个数字表明了模式号。
第1层称为“概念模式”(Concept Patterns)层。该层的模式提供了为理解其它模式语言所涉及的主要的概念。概念模式层包含两个模式:有效可用的分析模型(Efficient Usable Analysis Models)[1.1],该模式描述了建立有效的、可用的分析模型所需要的主要的、基本的属性;软件稳定性模型(Software Stability Model)[1.2],该模式提供了作为获得稳定性的方法所需要的软件稳定性模型的基础概念。

第2层是“问题分析模式”(Problem Analysis Patterns)层。该层中的模式表明如何分析需要建模的问题。问题的分析包含四个步骤,每个步骤为一个模式。模式1-确定问题[2.3];模式2-确定持久性问题[2.4];模式3-确定业务对象[2.5];模式4-将各个元素 放入适当的抽象层次[2.6]。

第3层是“建立过程模式”(Building-Process Patterns)层。在先前层次对问题进行分析的基础上,需要知道如何建立稳定的分析模式[3.7]以及如何使用稳定分析模式[3.8]。

图1 模式语言描述 

http://www.lryc.cn/news/538969.html

相关文章:

  • 【C++游戏开发-五子棋】
  • ubuntu20动态修改ip,springboot中yaml的内容的读取,修改,写入
  • tailwindcss学习02
  • 千峰React:脚手架准备+JSX基础
  • 【算法】快排
  • 开放签电子签章工具版 2.0 正式发布,构建全场景电子签约能力、满足复杂的签章管理场景
  • python和pycharm 和Anaconda的关系
  • DeepSeek V3和R1
  • JavaScript数组-获取数组中的元素
  • SSE:用于流式传输的协议
  • Aseprite详细使用教程(7)——切片工具
  • 航空公司客户价值分析
  • 基于开源Odoo、SKF Phoenix API与IMAX-8数采网关的圆织机设备智慧运维实施方案 ——以某纺织集团圆织机设备管理场景为例
  • LLM 架构
  • Word Embeddings
  • 相机开发调中广角和焦距有什么不一样
  • krpano学习笔记,端口修改,krpano二次开发文档,krpano三维div信息展示,krpano热点显示文字
  • Jenkins 给任务分配 节点(Node)、设置工作空间目录
  • 深入解析iOS视频录制(二):自定义UI的实现
  • 跳表的C语言实现
  • Java Web开发实战与项目——Spring Security与权限管理实现
  • 单元测试方法的使用
  • VScode内接入deepseek包过程(本地部署版包会)
  • flink写入hdfs数据如何保证幂等的?
  • newgrp docker需要每次刷新问题
  • LM_Funny-2-01 递推算法:从数学基础到跨学科应用
  • WDM_OTN_基础知识_波分站点与组网类型
  • 机器视觉--索贝尔滤波
  • 网络分析仪E5071C的回波损耗测量
  • 力扣-二叉树-98 验证二叉搜索树