首页> 外文OA文献 >Software product lines using FODA: a formal approach
【2h】

Software product lines using FODA: a formal approach

机译:使用FODA的软件产品线:一种正式方法

摘要

El término línea de producción en inglés product line evoca a menudo la imagen de una fábrica de coches con un conjunto de brazos mecánicos especializados en colocar piezas, oudtareas específicas como atornillar, soldar o ensamblar para conseguir, como producto final, un coche de manera rápida, invirtiendo la menor cantidad de recursos posibles, entre ellos, tiempo y dinero. Esta metodología se ha aplicado en contextos totalmente diferentes a la fabricación de coches, como por ejemplo en el entorno de la alimentación o el textil, entre otros. En los últimos años, en el campo del desarrollo de software se está investigando cómo aplicar los principios de esta metodología para el desarrollo de aplicaciones de software de alta calidad optimizando los recursos asignados para su implementación. La metodología de las líneas de producción, también conocida como producción en masa dentro del contexto informático, es sustancialmente distinta a la metodología anterior. Siudtomamos literalmente el significado clásico, alguien podría pensar que el problema al que se enfrenta el mundo informático es obtener n copias distintas de un determinado programa. Éste no es el principal problema de la informática, ya que copiando n veces el programa en diferentes archivos (ya sean medios físicos, internet, entre otros) podemos obtener un conjunto de copias fieles, rápidas y a bajo coste sobre el programa original. El problema al que nos enfrentamos es el siguiente. Supongamos que tenemos una empresa E que está desarrollando un software de gestión para dos empresas distintas X e Y . Ambos desarrollos tienen partes comunes y no comunes entre si. La empresa E quiere reducir costes y aprovechar parte del desarrollo de X en Y y viceversa. Una posible alternativa para E sería implementar en primer lugar el producto para la empresa X y luego para Y . La alternativa que propone la aplicación de una metodología de línea de producción para este caso se basaría en los siguientes puntos. Primero definir todas aquellas características comunes y no comunes de los productos a desarrollar para las empresas X e Y . De esa manera determinar los puntos de variación y las variantes que puedan existir entre los componentes que conformarían el conjunto de productos finales, entre ellos X e Y . Seguidamente, implementar y probar de manera exhaustiva una plataforma que implementeudel conjunto de funcionalidades requeridas por ambos clientes. Finalmente, desarrollar módulos que personalicen cada aplicación con las necesidades de cada una de las empresas. Un ejemplo muy gráfico de este tipo de desarrollo lo podemos encontrar en la construcción de aplicaciones para teléfonos móviles. Pensemos en dos modelos diferentes de móviles de la misma compañía. Seguramente la plataforma para ejecutar todas las aplicaciones (llamadas, mensajes, IM, entre otras) es la misma en los dos sistemas. Sin embargo la posibilidad de utilizar WIFI o Bluetooth podría corresponder a cada teléfono en particular. La unidad básica de una línea de producción es llamada característica o en inglés feature. Una característica puede ser un módulo, la utilización de una tecnología, o en un conceptoudmás general, cualquier componente funcional reutilizable. Las relaciones entre las distintas características que componen una línea de producción de software, establecen las posibles configuraciones de los productos. Al conjunto de relaciones y características se le es llamado modelo de características, también conocido como feature models. Anteriormente mencionamos que el desarrollo de una plataforma común, además de tener que representar todas aquellas características comunes y no comunes entre los productos, debe ser un entorno altamente testeado. Determinar la existencia de fallos en dicha plataforma es una tarea no trivial. La utilización de métodos formales nos ayudan a automatizar este proceso; de aquí surge la necesidad de definir modelos formales relacionados con la producción masiva de software. La principal contribución de este Trabajo de Fin de Máster se centra en definir un marco formal para un modelo de características que actualmente se está utilizando en el desarrollo de software(1). Proponemos no solo la sintaxis de las características y sus relaciones, sino también proveemos tres diferentes semánticas, operacional, denotacional y axiomática, equivalentes entre sí, que permitirán deducir propiedades interesantes de los sistemas. A continuación presentamos la estructura de este trabajo.ud1. En el Capítulo 1 se realizará una reseña sobre las Líneas de producción de software y Modelos de características. Se hará una introducción sobre el proceso de desarrollo sistematizado de software y las distintas maneras de modelar las partes funcionales de un producto de software. De tal manera que el lector pueda entrar en contexto con el tema central de este proyecto. Entre las metodologías estudiadas estánud- Feature Oriented Domain Analysis (FODA).ud- Product Line Use case modeling for Systems and Software engineering (PLUSS)ud- Reuse-Driven Software Engineering Business (RSEB)ud2. A continuación, en el Capítulo 2 se presentará un estado del arte sobre distintas técnicas que permiten la especificación de Modelos de características utilizando métodos formales; entre ellos los Sistemas de Etiquetado de Transiciones, Álgebras de Procesos, Sistemas de Transiciones Modales y Lógica Proposicional.ud3. En el Capítulo 3 se especificará una nueva forma de representar los Modelos de características utilizados en FODA. Este capítulo contiene nuestras principales aportaciones al área. Primero se desarrollará un álgebra que traduzca los diagramas presentados por FODA (fodaA). Luego se definirán tres semánticas para fodaA y se demostrará que las semánticas definidas anteriormente son equivalentes.ud4. Y por último en el Capítulo 4, se mostrará una herramienta, para el análisis automatizado de Modelos de características llamada AT. Adicionalmente se mostrará un caso de estudio no trivial para el modelado de software. En este caso se modelará una herramienta que permite hacer streaming de una señal de vídeo y se ilustrará el marcouddescrito en el capítulo anterior. udPara concluir el Trabajo de Fin de Máster, en el Capítulo 5 se mostrarán las conclusiones y posibles trabajos futuros en esta área de investigación.ud(1) Feature Oriented Domain Analysis (FODA)udud[Abstract]udProduct line term often evokes a car factory image with a specialized set of mechanical arms to individually assembly pieces, or do some specic tasks such as screwing, welding,udetc. to be able to get as a nal product, a car as soon as possible, spending the minimum amount of resources, among them time and money. This methodology has been applied inudentirely dierent contexts, from cars manufacture to textile fabrics among others [32]. In recent years, inside the software development eld it has been investigated how to apply the principles of this methodology, for high quality software development, optimizing the implementation time as well as the amount of money required to fulll clients requirements. Product line methodology in the context of computer science, signicantly diers from the other examples mentioned. If we use this approach, people might think that the problem may be solved easily by getting n dierent copies from some particular software. The main problem is not the creation of multiple copies of the same software into dierent locations. The problem that we face is this. Suppose that we have a company E which is developinguda management software for two dierent companies X and Y . Both developments have common and uncommon parts between each other. Company E wants to reduce costs and take advantage of reusing resources to build software products for X and Y . A possible alternative would be the implementation of a product for company X, and then build the product for Y separately. The proposed alternative by the application of a production line methodology for this case, should be based on the following points. First, dene all the common and uncommon features between X and Y . In this way, determine the variation points and variants that may exist between the components that will compose the set of nal products among the products for companies X and Y . Next, implement and test exhaustively a platform that represents the set of functionalities required by both companies. A common platform design, for a diverse set of components is not a trivial task. It involves preparation for mass customization, focusing rst on what is common to all products, and then in what is dierent [28]. Components must be created for being reused by all, or most of the possible congurations (functional variant of a software product). These components can be developed from scratch or derived from other platforms. This exible design allows to reuse these components with dierent congurations for a particular solution; in this way, mass customization of a set of well dened products is provided. This customization requires eort, but exibility is the key for mass customization success and it is a must for it. A reorganization process for the mass customization initiative may require additional organizational units to guide towards standardization of procedures and work-ows. It may also require to adopt new technologies within the company. Software is flexible and easily customizable, but wrong decisions in terms of dening the production engineering process can be expensive, therefore, it is required to have a perfect knowledge of the businessudlogic within the organization and of the solution to be implemented. On one hand, a lot of software products are derived from a common base, and they represent essentially the same context, because they are variations or successive variations of a single product. For instance, if we strip down a car we can see that the main parts are the same (engine, transmission, chassis, among others), between the luxury and standard version. On the other hand, SPL(2) engineering aims to support a wide range of products. These products may be for the same client, for dierent clients or even for entirely dierent markets. As a result, variability management is a very important concept in SPL approach. Variability design is about incorporating components that represents the range of possible congurations for audproduct in the SPL. This variability, is dened during the domain engineering process [18]. When we use the term variability, we are referencing to the ability that something has to change in time. This variability is dened in purpose. udA graphic example of this type of development can be found in software developments for mobile phones. Consider two dierent models of phones from the same company. Surely the platform to run all applications (calls, messages, IM) is the same in both models. However, the possibility of using WIFI or Bluetooth for each phone may vary. udThe basic unit of a production line is called feature. A feature can be a particular module, the use of a specic technology, and, in general, any reusable functional component. The relationships between features in a SPL builds products congurations, the relationships andudfeatures set is called feature model. udSince in the SPL frameworks software is made of reusable components it is very important to have tools that allow the correct development. Not only within any component, but also in the whole framework. The use of formal methods aims to automate this task. This raises the need to dene formal models related to massive software production. The main contribution of this Master Thesis work focuses on dening a formal framework for a widely used feature model in software development(3). It has been done under(4) the Facultad de Informatica of Universidad Complutense de Madrid. We have dened a formal syntax to express the features and their relationships. And also we have dened three different formal semantics: an operational semantics, a denotational semantics and an axiomatic semantic. We have proved that all three semantics are equivalent. Here is the structure of this work. ud. First, in Chapter 1, we give an introduction to Software Product Lines and Feature Modeling. We describe the systematic software development process, and we showudsome dierent approaches to model the functional parts of software products. In this way, the reader can get into the context of the central line of this research project. Weudoverview a state of art over SPLs, detailing several methodologies to specify software systems. Among them are:ud- Feature Oriented Domain Analysis (FODA).ud- Product Line Use case modeling for Systems and Software engineering (PLUSS)ud- Reuse-Driven Software Engineering Business (RSEB)ud. Next, in Chapter 2 will overview the state of art over dierent formalisms that allow the specication of Feature Models using Formal Methods, including Labelled TransitionudSystems, Process Algebras, Modal Transition Systems and Propositional Logic. ud. In Chapter 3 we present our formalism to represent Feature Models using FODA. ud. In Chapter 4, we describe a tool, called AT, for the automated analysis of feature models. Additionally, we show a non-trivial case study for modeling video streaming software products.ud. To conclude this Master Thesis Project, Chapter 5 shows some conclusions and some possible lines of future work.udud(2)Software Product Line (SPL)ud(3)Feature Oriented Domain Analysis (FODA)ud(4)The Spanish MEC project TESIS (TIN 2009-14312-C02-01)ud
机译:英文产品线中的生产线一词通常会唤起汽车制造厂的形象,其机械臂专门用于放置零件或执行诸如拧紧,焊接或组装之类的特定任务,以最终实现量产汽车的生产。快速,尽可能少地投资资源,包括时间和金钱。在完全不同的情况下,该方法已应用于汽车的制造,例如在食品或纺织品的环境中。近年来,软件开发领域一直在研究如何将这种方法论的原理应用于高质量软件应用程序的开发,从而优化分配给其实现的资源。生产线方法论(在计算环境中也称为批量生产)与先前的方法有很大不同。如果从字面上理解经典含义,那么有人可能会认为计算世界面临的问题是获取某个程序的n个不同副本。这不是计算的主要问题,因为将程序在不同文件中复制了n次不同的时间(例如物理媒体,Internet等),我们可以获得原始程序的一组可靠,快速且低成本的副本。我们面临的问题如下。假设我们有一家公司E,该公司正在为两个不同的公司X和Y开发管理软件。两种发展都有共同点和不共同点。公司E希望降低成本并利用Y中X开发的一部分,反之亦然。 E的一种可能替代方法是先为X公司实施产品,然后为Y实施产品。针对这种情况,应用生产线方法提出的替代方案将基于以下几点。首先定义要为X公司和Y公司开发的产品的所有那些共有和罕见的特征。以这种方式确定变化点和组成最终产品集合(包括X和Y)的组件之间可能存在的变体。接下来,全面实施和测试一个平台,该平台将实现两个客户端所需的 udel功能集。最后,开发模块以根据每个公司的需求个性化每个应用程序。这种类型的开发的非常生动的示例可以在手机应用程序的构建中找到。让我们考虑同一家公司的两种不同的移动型号。当然,在两个系统上运行所有应用程序(呼叫,消息,IM等)的平台是相同的。但是,使用WIFI或蓝牙的可能性可能与每个单独的电话相对应。生产线的基本单元称为功能。功能可以是模块,技术的使用,或者更笼统的概念是任何可重用的功能组件。组成软件生产线的不同特征之间的关系建立了产品的可能配置。关系和特征的集合称为特征模型,也称为特征模型。前面我们提到,除了必须代表产品之间所有那些共同的和不寻常的特征之外,一个通用平台的开发必须是一个经过高度测试的环境。确定所述平台中故障的存在是不平凡的任务。形式化方法的使用有助于我们使这一过程自动化。因此,需要定义与软件的大量生产有关的形式模型。该硕士学位论文的主要贡献在于为软件开发中目前使用的特征模型定义正式框架(1)。我们不仅提出了特征及其关系的语法,而且还提供了三种彼此等效的语义,即操作性,指称性和公理性,这将有助于推断出系统的有趣特性。下面我们介绍这项工作的结构。第1章将回顾软件生产线和功能模型。将对系统化的软件开发过程以及对软件产品功能部分进行建模的不同方法进行介绍。通过这种方式,读者可以进入以该项目的中心主题为背景的情境。研究的方法包括 ud-面向特征的域分析(SWOT) Ud-系统和软件工程的用例建模(PLUSS) ud-重用驱动的软件工程业务(RSEB) ud2。接下来,第2章将介绍允许使用形式化方法指定特征模型的不同技术的最新发展;包括过渡标记系统,过程代数,模态过渡系统和命题逻辑。第3章将指定一种新的方式来表示SWOT中使用的功能模型。本章包含我们对该领域的主要贡献。首先,将开发一个代数,该代数将转换SWOT(fodaA)呈现的图。然后将为fodaA定义三种语义,并且将证明上面定义的语义是等效的。最后,在第4章中,将显示一个用于自动分析特征模型的工具,称为AT。此外,还将显示用于软件建模的重要案例研究。在这种情况下,将对允许流视频信号的工具进行建模,并说明上一章中介绍的帧。 ud要结束硕士的最终项目,第5章将展示该研究领域的结论和可能的未来工作 ud(1)面向特征的领域分析(SWOT) ud ud [摘要] ud产品线术语通常会唤起汽车工厂形象,并带有一组专门的机械臂来单独组装零件,或执行某些特定的任务,例如拧紧,焊接, udud等。为了尽可能快地获得最终产品,汽车,并花费最少的资源,其中包括时间和金钱。从汽车制造到纺织面料,该方法已广泛应用于各种场合[32]。近年来,在软件开发领域内,已经研究了如何应用这种方法的原理进行高质量的软件开发,优化实施时间以及满足客户要求所需的资金。在计算机科学领域中,产品线方法论与上述其他例子大不相同。如果使用这种方法,人们可能会认为,通过从某些特定软件中获得n个不同的副本可以轻松解决该问题。主要问题不是在不同位置创建同一软件的多个副本。我们面临的问题是这样。假设我们有一家公司E,该公司正在为两个不同的公司X和Y开发uda管理软件。两者之间都有共同点和不共同点。公司E希望降低成本并利用重用资源来为X和Y构建软件产品。可能的替代方法是为X公司实施产品,然后为Y分别构建产品。对于这种情况,通过应用生产线方法的建议替代方案应基于以下几点。首先,定义X和Y之间所有常见和不常见的功能。以这种方式,确定组成公司X和Y的产品中的最终产品集合的组件之间可能存在的变异点和变体。接下来,全面实施和测试一个代表两家公司所需功能集的平台。针对各种组件的通用平台设计并不是一件容易的事。它涉及大规模定制的准备工作,首先关注所有产品共有的东西,然后关注不同的东西[28]。必须创建组件以供所有或大多数可能的配置(软件产品的功能变体)重用。这些组件可以从头开发,也可以从其他平台派生。这种灵活的设计允许针对特定解决方案重用具有不同设置的这些组件。以这种方式,提供了一组良好定义的产品的大规模定制。此自定义要求安装,但灵活性是批量定制成功的关键,这是必须的。大规模定制计划的重组过程可能需要其他组织单位来指导程序和工作流程的标准化。它还可能需要在公司内部采用新技术。软件具有灵活性并且易于定制,但是就拒绝生产工程流程而言,错误的决定可能会非常昂贵,因此,需要对组织内的业务逻辑和要实施的解决方案有全面的了解。一方面,许多软件产品是从一个共同的基础衍生而来的,它们代表了实质上相同的上下文,因为它们是单个产品的变体或相继变体。例如,如果我们把一辆汽车拆下来,我们可以看到主要部件在豪华版和标准版之间是相同的(发动机,变速箱,底盘等)。另一方面,SPL(2)工程旨在支持多种产品。这些产品可能是针对同一客户,不同客户甚至是完全不同市场的。因此,变异性管理是SPL方法中非常重要的概念。可变性设计是关于合并表示SPL中 udproduct可能配置范围的组件。这种可变性是在领域工程过程中确定的[18]。当我们使用术语可变性时,我们指的是某些事物必须随时间变化的能力。这种可变性是有目的的。 ud可以在手机的软件开发中找到此类开发的图形示例。考虑同一公司的两种不同型号的手机。在两个模型中,运行所有应用程序(呼叫,消息,IM)的平台肯定是相同的。但是,每部电话使用WIFI或蓝牙的可能性可能会有所不同。 ud生产线的基本单位称为功能。功能可以是特定的模块,特定技术的使用,以及通常是任何可重用的功能组件。 SPL中功能之间的关系会构建产品配置,这些关系和功能集称为功能模型。 ud因为在SPL框架中软件是由可重复使用的组件组成的,所以拥有允许正确开发的工具非常重要。不仅在任何组件中,而且在整个框架中。形式化方法的使用旨在使此任务自动化。这就需要定义与大规模软件生产相关的正式模型。该硕士论文的主要贡献在于为软件开发中广泛使用的特征模型确定正式的框架(3)。它是在马德里Complutense大学信息学系(4)下完成的。我们已经定义了一种正式语法来表达功能及其关系。而且我们还定义了三种不同的形式语义:操作语义,指称语义和公理语义。我们已经证明这三个语义是等效的。这是这项工作的结构。 ud。首先,在第1章中,我们对软件产品线和功能建模进行了介绍。我们描述了系统的软件开发过程,并展示了一些复杂的方法来对软件产品的功能部件进行建模。这样,读者就可以进入本研究项目中心线的背景。我们概述了SPL的最新技术,详细介绍了指定软件系统的几种方法。其中包括: ud-面向功能的域分析(FODA)。 ud-系统和软件工程(PLUSS)的产品线用例建模 ud-重用驱动的软件工程业务(RSEB) ud。接下来,在第二章中,将概述不同形式主义的最新技术,这些形式主义允许使用形式化方法来规范特征模型,包括标记化的过渡 udSystems,过程代数,模态过渡系统和命题逻辑。 ud。在第3章中,我们介绍了使用FODA表示特征模型的形式主义。 ud。在第4章中,我们描述了一种称为AT的工具,用于自动分析特征模型。此外,我们展示了一个对视频流软件产品建模的重要案例。结束本硕士论文项目,第5章显示了一些结论和未来工作的一些思路。 ud ud(2)软件产品线(SPL) ud(3)面向功能域分析(FODA) ud(4)西班牙的MEC项目TESIS(TIN 2009-14312-C02-01) ud

著录项

  • 作者

    Camacho González Carlos;

  • 作者单位
  • 年度 2012
  • 总页数
  • 原文格式 PDF
  • 正文语种 en
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号