882 resultados para Product Line Engineering
Resumo:
We model monopolistic competition in product lines, assuming that consumer heterogeneity is the result rather than the cause of product variety. Our results contradict some well-known policy implications yielded by the standard monopolistic competition framework.
Resumo:
Dynamic software product lines extend the concept of conventional SPLs by enabling software-variant generation at runtime. Recent studies yield insights into the current state of the DSPL field, research trends, and major gaps to address.
Resumo:
近年来,随着Internet规模的增长,分布式组件技术快速发展,新的组件模型不断涌现,现有的组件模型也持续更新。组件容器为组件及组件应用提供部署和运行环境,是基于组件分布式应用开发的核心。组件模型的多样化和快速演化要求组件容器的开发方法将研究范围扩大到整个领域。产品线工程是基于软件核心资产构建软件产品系列的工程方法,将产品线工程方法应用于组件容器领域可以促进组件容器的系统化复用,获得更高的生产效率和产品质量。 由于组件容器领域的特点,应用过程中现有的产品线工程方法体现出一些不足。产品线工程包括领域工程和应用工程,其中领域工程又由领域分析、领域设计和领域实现构成。组件模型是组件容器需求的主要来源,但目前缺乏对组件模型的统一认识和详细分析;领域分析建模要求领域模型有效地刻画领域需求的组织结构、相互关系和变化性,并提供具体的建模过程指导,现有的面向特征、基于用例等领域建模方法存在语义模糊、粒度不当、缺乏具体流程指导等不足。 针对上述问题,论文按照软件开发流程顺序,从需求分析、领域建模、领域设计等方面,对组件容器设计和开发的若干关键问题进行了重点研究,包括组件模型分析、基于原子需求的领域建模方法、组件容器产品线体系结构等。 首先,由于组件模型是组件容器需求的主要来源,针对现有的组件模型分析方法粒度较大的问题,通过分析相关软件实体可能具有的各种约束,选择从语法、部署和交互三个方面,得到构成组件模型的模型元素,提出了一个细粒度的组件模型分析框架。将该分析框架应用于目前有代表性的分布式组件模型,基于分析结果提炼了分布式组件模型的主要公共特征,并与其他分析方法做了对比。 另一方面给出了基于原子需求的领域建模方法。以原子需求概念为基础,提出了一个多层次的领域需求描述模型,从用例、原子需求等多个层次刻画领域需求,并基于变化点建立独立的变化性描述机制。介绍了相应的领域建模过程,包括其建模步骤、建模原则和描述规范,为领域分析人员提供具体指导。并结合领域实例探讨了领域建模的过程。 基于以上工作,本文设计了组件容器产品线体系结构PLACE。首先将基于软件实体的组件模型分析框架与基于原子需求的领域建模方法相结合,建立组件容器领域模型,进而提出了组件容器产品线体系结构PLACE,从体系结构、模块功能、变化性设计和变化性管理等方面介绍了其设计。具体组件容器的设计实例表明,PLACE通过在组件模型和体系结构间建立直接的对应关系,有效促进了组件容器领域内的系统化复用。 最后,我们将上述方法应用于网驰平台中组件容器产品系列包括Web容器、EJB容器、BPEL容器和Portlet容器等的设计。实验结果证实了基于PLACE的开发方法在保证产品功能正确性的同时,提高了组件容器领域内的结构复用性,获得了更高的生产效率和产品质量。
Resumo:
Software Product-Line Engineering has emerged in recent years, as an important strategy for maximising reuse within the context of a family of related products. In current approaches to software product-lines, there is general agreement that the definition of a reference-architecture for the product-line is an important step in the software engineering process. In this paper we introduce ADLARS, a new form of architecture Description language that places emphasis on the capture of architectural relationships. ADLARS is designed for use within a product-line engineering process. The language supports both the definition of architectural structure, and of important architectural relationships. In particular it supports capture of the relationships between product features, component and task architectures, interfaces and parameter requirements.
Resumo:
Variability management is one of the main activities in the Software Product Line Engineering process. Common and varied features of related products are modelled along with the dependencies and relationships among them. With the increase in size and complexity of product lines and the more holistic systems approach to the design process, managing the ever- growing variability models has become a challenge. In this paper, we present MUSA, a tool for managing variability and features in large-scale models. MUSA adopts the Separation of Concerns design principle by providing multiple perspectives to the model, each conveying different set of information. The demonstration is conducted using a real-life model (comprising of 1000+ features) particularly showing the Structural View, which is displayed using a mind-mapping visualisation technique (hyperbolic trees), and the Dependency View, which is displayed graphically using logic gates.
Resumo:
Nowadays, the importance of using software processes is already consolidated and is considered fundamental to the success of software development projects. Large and medium software projects demand the definition and continuous improvement of software processes in order to promote the productive development of high-quality software. Customizing and evolving existing software processes to address the variety of scenarios, technologies, culture and scale is a recurrent challenge required by the software industry. It involves the adaptation of software process models for the reality of their projects. Besides, it must also promote the reuse of past experiences in the definition and development of software processes for the new projects. The adequate management and execution of software processes can bring a better quality and productivity to the produced software systems. This work aimed to explore the use and adaptation of consolidated software product lines techniques to promote the management of the variabilities of software process families. In order to achieve this aim: (i) a systematic literature review is conducted to identify and characterize variability management approaches for software processes; (ii) an annotative approach for the variability management of software process lines is proposed and developed; and finally (iii) empirical studies and a controlled experiment assess and compare the proposed annotative approach against a compositional one. One study a comparative qualitative study analyzed the annotative and compositional approaches from different perspectives, such as: modularity, traceability, error detection, granularity, uniformity, adoption, and systematic variability management. Another study a comparative quantitative study has considered internal attributes of the specification of software process lines, such as modularity, size and complexity. Finally, the last study a controlled experiment evaluated the effort to use and the understandability of the investigated approaches when modeling and evolving specifications of software process lines. The studies bring evidences of several benefits of the annotative approach, and the potential of integration with the compositional approach, to assist the variability management of software process lines
Resumo:
The software systems development with domain-specific languages has become increasingly common. Domain-specific languages (DSLs) provide increased of the domain expressiveness, raising the abstraction level by facilitating the generation of models or low-level source code, thus increasing the productivity of systems development. Consequently, methods for the development of software product lines and software system families have also proposed the adoption of domain-specific languages. Recent studies have investigated the limitations of feature model expressiveness and proposing the use of DSLs as a complement or substitute for feature model. However, in complex projects, a single DSL is often insufficient to represent the different views and perspectives of development, being necessary to work with multiple DSLs. In order to address new challenges in this context, such as the management of consistency between DSLs, and the need to methods and tools that support the development with multiple DSLs, over the past years, several approaches have been proposed for the development of generative approaches. However, none of them considers matters relating to the composition of DSLs. Thus, with the aim to address this problem, the main objectives of this dissertation are: (i) to investigate the adoption of the integrated use of feature models and DSLs during the domain and application engineering of the development of generative approaches; (ii) to propose a method for the development of generative approaches with composition DSLs; and (iii) to investigate and evaluate the usage of modern technology based on models driven engineering to implement strategies of integration between feature models and composition of DSLs
Resumo:
Software product line engineering promotes large software reuse by developing a system family that shares a set of developed core features, and enables the selection and customization of a set of variabilities that distinguish each software product family from the others. In order to address the time-to-market, the software industry has been using the clone-and-own technique to create and manage new software products or product lines. Despite its advantages, the clone-and-own approach brings several difficulties for the evolution and reconciliation of the software product lines, especially because of the code conflicts generated by the simultaneous evolution of the original software product line, called Source, and its cloned products, called Target. This thesis proposes an approach to evolve and reconcile cloned products based on mining software repositories and code conflict analysis techniques. The approach provides support to the identification of different kinds of code conflicts – lexical, structural and semantics – that can occur during development task integration – bug correction, enhancements and new use cases – from the original evolved software product line to the cloned product line. We have also conducted an empirical study of characterization of the code conflicts produced during the evolution and merging of two large-scale web information system product lines. The results of our study demonstrate the approach potential to automatically or semi-automatically solve several existing code conflicts thus contributing to reduce the complexity and costs of the reconciliation of cloned software product lines.
Resumo:
The software product line engineering brings advantages when compared with the traditional software development regarding the mass customization of the system components. However, there are scenarios that to maintain separated clones of a software system seems to be an easier and more flexible approach to manage their variabilities of a software product line. This dissertation evaluates qualitatively an approach that aims to support the reconciliation of functionalities between cloned systems. The analyzed approach is based on mining data about the issues and source code of evolved cloned web systems. The next step is to process the merge conflicts collected by the approach and not indicated by traditional control version systems to identify potential integration problems from the cloned software systems. The results of the study show the feasibility of the approach to perform a systematic characterization and analysis of merge conflicts for large-scale web-based systems.
Resumo:
This research is concerned with the experimental software engineering area, specifically experiment replication. Replication has traditionally been viewed as a complex task in software engineering. This is possibly due to the present immaturity of the experimental paradigm applied to software development. Researchers usually use replication packages to replicate an experiment. However, replication packages are not the solution to all the information management problems that crop up when successive replications of an experiment accumulate. This research borrows ideas from the software configuration management and software product line paradigms to support the replication process. We believe that configuration management can help to manage and administer information from one replication to another: hypotheses, designs, data analysis, etc. The software product line paradigm can help to organize and manage any changes introduced into the experiment by each replication. We expect the union of the two paradigms in replication to improve the planning, design and execution of further replications and their alignment with existing replications. Additionally, this research work will contribute a web support environment for archiving information related to different experiment replications. Additionally, it will provide flexible enough information management support for running replications with different numbers and types of changes. Finally, it will afford massive storage of data from different replications. Experimenters working collaboratively on the same experiment must all have access to the different experiments.
Resumo:
Software product line (SPL) engineering offers several advantages in the development of families of software products such as reduced costs, high quality and a short time to market. A software product line is a set of software intensive systems, each of which shares a common core set of functionalities, but also differs from the other products through customization tailored to fit the needs of individual groups of customers. The differences between products within the family are well-understood and organized into a feature model that represents the variability of the SPL. Products can then be built by generating and composing features described in the feature model. Testing of software product lines has become a bottleneck in the SPL development lifecycle, since many of the techniques used in their testing have been borrowed from traditional software testing and do not directly take advantage of the similarities between products. This limits the overall gains that can be achieved in SPL engineering. Recent work proposed by both industry and the research community for improving SPL testing has begun to consider this problem, but there is still a need for better testing techniques that are tailored to SPL development. In this thesis, I make two primary contributions to software product line testing. First I propose a new definition for testability of SPLs that is based on the ability to re-use test cases between products without a loss of fault detection effectiveness. I build on this idea to identify elements of the feature model that contribute positively and/or negatively towards SPL testability. Second, I provide a graph based testing approach called the FIG Basis Path method that selects products and features for testing based on a feature dependency graph. This method should increase our ability to re-use results of test cases across successive products in the family and reduce testing effort. I report the results of a case study involving several non-trivial SPLs and show that for these objects, the FIG Basis Path method is as effective as testing all products, but requires us to test no more than 24% of the products in the SPL.
Resumo:
During product development, engineering designers raise several information requests that make them search through human and documentary sources. This paper reports research to characterise, in detail, these requests for designers working in a major aerospace engineering company. The research found that at a high level, a distinction can be made between requests to acquire information and to process information. The former are raised to access design and domain information. The latter, instead, are formed to define designs. For researchers, this study extends existing knowledge of information requests by characterising key differences in their nature and explaining how they are used in the design process. For practitioners, these findings can be used as a basis to understand the diverseness of information requests and how to channel efforts to support designers in information seeking. In particular, the research indicates that a strategy to support designers should enable the development of engineering communities that share information effectively and the introduction of techniques that facilitate the documentation of information. © 2012 Springer-Verlag London Limited.
Resumo:
Product Line software Engineering depends on capturing the commonality and variability within a family of products, typically using feature modeling, and using this information to evolve a generic reference architecture for the family. For embedded systems, possible variability in hardware and operating system platforms is an added complication. The design process can be facilitated by first exploring the behavior associated with features. In this paper we outline a bidirectional feature modeling scheme that supports the capture of commonality and variability in the platform environment as well as within the required software. Additionally, 'behavior' associated with features can be included in the overall model. This is achieved by integrating the UCM path notation in a way that exploits UCM's static and dynamic stubs to capture behavioral variability and link it to the feature model structure. The resulting model is a richer source of information to support the architecture development process.
Resumo:
Food industry is critical to any nation’s health and well-being; it is also critical to the economic health of a nation, since it can typically constitute over a fifth of the nation’s manufacturing GDP. Food Engineering is a discipline that ought to be at the heart of the food industry. Unfortunately, this discipline is not playing its rightful role today: engineering has been relegated to play the role of a service provider to the food industry, instead of it being a strategic driver for the very growth of the industry. This paper hypothesises that food engineering discipline, today, seems to be continuing the way it was in the last century, and has not risen to the challenges that it really faces. This paper therefore categorises the challenges as those being posed by: 1. Business dynamics, 2. Market forces, 3. Manufacturing environment and 4. Environmental Considerations, and finds the current scope and subject-knowledge competencies of food engineering to be inadequate in meeting these challenges. The paper identifies: a) health, b) environment and c) security as the three key drivers of the discipline, and proposes a new definition of food engineering. This definition requires food engineering to have a broader science base which includes biophysical, biochemical and health sciences, in addition to engineering sciences. This definition, in turn, leads to the discipline acquiring a new set of subject-knowledge competencies that is fit-for-purpose for this day and age, and hopefully for the foreseeable future. The possibility of this approach leading to the development of a higher education program in food engineering is demonstrated by adopting a theme based curriculum development with five core themes, supplemented by appropriate enabling and knowledge integrating courses. At the heart of this theme based approach is an attempt to combine engineering of process and product in a purposeful way, termed here as Food Product Realisation Engineering. Finally, the paper also recommends future development of two possible niche specialisation programs in Nutrition and Functional Food Engineering and Gastronomic Engineering. It is hoped that this reconceptualization of the discipline will not only make it more purposeful for the food industry, but it will also make the subject more intellectually challenging and attract bright young minds to the discipline.