Modeling and Reasoning about Software Systems Containing Uncertainty and Variability

M. Chechik
{"title":"Modeling and Reasoning about Software Systems Containing Uncertainty and Variability","authors":"M. Chechik","doi":"10.1109/TASE.2015.26","DOIUrl":null,"url":null,"abstract":"Summary form only given. When building large software-intensive systems, engineers need to express and reason about at least two different types of choices. One type concerns uncertainty - choosing between different design alternatives, resolving inconsistencies, or resolving conflicting stakeholder requirements. Another type deals with variability - supporting different variants of software that serve multiple customers or market segments. Partial modeling has been proposed as a technique for managing uncertainty within a software model. A partial model explicates points of uncertainty and represents the set of possible models that could be obtained by making decisions and resolving the uncertainty. Methods for reasoning about the entire set of possibilities, transforming the entire set and uncertainty-reducing refinements have recently been developed. Software product line engineering approaches propose techniques for managing the variability within sets of related software product variants. Such approaches explicate points of variability (a.k.a.features) and relationships between them in an artifact usually referred to as a feature model. A selection of features from this model guides the derivation of a specific product of a software product line (SPL). Techniques for reasoning about sets of SPL products, transforming the entire SPL and supporting their partial configuration have recently been developed. Partial models and SPL representations are naturally quite similar - both provide ways of encoding and managing sets of artifacts. The techniques for representing, reasoning with and manipulating these sets, naturally, have much in common. Yet, the goals for creating these product sets are quite different, and thus the two techniques lead to distinct methodological considerations. Uncertainty is an aspect of the development process itself; it is transient and must be reduced and eventually eliminated as knowledge is gathered and decisions are made. Thus, the ultimate goal of resolving uncertainty is to produce only one desired artifact. On the other hand, variability is an aspect of the artifacts simultaneously managed through the entire development process; it is to be preserved and carefully engineered to represent the desired range of product variants required. Thus, product lines aim to produce and simultaneously manage multiple artifacts. In this talk, I will survey approaches to representing, reasoning with and transforming models with uncertainty and variability, separately, as well as discuss current work on trying to combine the two approaches.","PeriodicalId":257414,"journal":{"name":"2015 International Symposium on Theoretical Aspects of Software Engineering","volume":"37 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2015 International Symposium on Theoretical Aspects of Software Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/TASE.2015.26","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

Summary form only given. When building large software-intensive systems, engineers need to express and reason about at least two different types of choices. One type concerns uncertainty - choosing between different design alternatives, resolving inconsistencies, or resolving conflicting stakeholder requirements. Another type deals with variability - supporting different variants of software that serve multiple customers or market segments. Partial modeling has been proposed as a technique for managing uncertainty within a software model. A partial model explicates points of uncertainty and represents the set of possible models that could be obtained by making decisions and resolving the uncertainty. Methods for reasoning about the entire set of possibilities, transforming the entire set and uncertainty-reducing refinements have recently been developed. Software product line engineering approaches propose techniques for managing the variability within sets of related software product variants. Such approaches explicate points of variability (a.k.a.features) and relationships between them in an artifact usually referred to as a feature model. A selection of features from this model guides the derivation of a specific product of a software product line (SPL). Techniques for reasoning about sets of SPL products, transforming the entire SPL and supporting their partial configuration have recently been developed. Partial models and SPL representations are naturally quite similar - both provide ways of encoding and managing sets of artifacts. The techniques for representing, reasoning with and manipulating these sets, naturally, have much in common. Yet, the goals for creating these product sets are quite different, and thus the two techniques lead to distinct methodological considerations. Uncertainty is an aspect of the development process itself; it is transient and must be reduced and eventually eliminated as knowledge is gathered and decisions are made. Thus, the ultimate goal of resolving uncertainty is to produce only one desired artifact. On the other hand, variability is an aspect of the artifacts simultaneously managed through the entire development process; it is to be preserved and carefully engineered to represent the desired range of product variants required. Thus, product lines aim to produce and simultaneously manage multiple artifacts. In this talk, I will survey approaches to representing, reasoning with and transforming models with uncertainty and variability, separately, as well as discuss current work on trying to combine the two approaches.
包含不确定性和可变性的软件系统建模与推理
只提供摘要形式。当构建大型软件密集型系统时,工程师需要表达和推理至少两种不同类型的选择。一种类型涉及不确定性——在不同的设计方案之间进行选择,解决不一致性,或者解决冲突的涉众需求。另一种类型处理可变性——支持服务于多个客户或细分市场的软件的不同变体。部分建模已经被提出作为一种管理软件模型中的不确定性的技术。部分模型阐明了不确定点,并表示通过决策和解决不确定性可以获得的可能模型集。关于整个可能性集的推理方法,转换整个集合和减少不确定性的改进最近已经开发出来。软件产品线工程方法提出了管理相关软件产品变体集合内的可变性的技术。这样的方法在通常称为特征模型的工件中阐明了可变性点(又称特征)以及它们之间的关系。从该模型中选择的特性指导了软件产品线(SPL)的特定产品的派生。关于SPL产品集的推理、转换整个SPL和支持其部分配置的技术最近得到了开发。部分模型和SPL表示自然是非常相似的——它们都提供了编码和管理工件集的方法。自然,表示、推理和操作这些集合的技术有很多共同之处。然而,创建这些产品集的目标是完全不同的,因此这两种技术导致了不同的方法考虑。不确定性是开发过程本身的一个方面;它是短暂的,必须随着知识的积累和决策的制定而减少并最终消除。因此,解决不确定性的最终目标是只产生一个期望的工件。另一方面,可变性是在整个开发过程中同时管理的工件的一个方面;它将被保存和精心设计,以表示所需的产品变体的期望范围。因此,产品线旨在生产并同时管理多个工件。在这次演讲中,我将分别调查不确定性和可变性模型的表示、推理和转换方法,并讨论试图结合这两种方法的当前工作。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信