چکیده
در سیستم های نرم افزاری کنونی با الزمات به شدت بی ثبات، قابلیت ردیابی، نقش کلیدی را در حفظ انسجام بین الزامات و کُد ایفا می کند. قابلیت ردیابی بین مصنوعات درگیر در توسعه خط تولید نرم افزار (SPL) هنوز هم بسیار حیاتی است چرا که این قابلیت امری ضروری برای تضمین برآوردن الزامات با انتخاب گونه هایی است که محصولات مختلف SPL را محقق می نمایند. مکانیزم های کنونی قابلیت ردیابی SPL از تنوع پذیری در ویژگی ها تا تنوع پیکربندی در معماری خط تولید (PLA) را بر حسب اضافه و حذف نمودن اجزاء ردیابی می کنند.. با این حال، تحقق ویژگی های متغیر یک SPL از طریق اضافه و یا حذف اجزاء همواره امکان پذیر نیست چرا که گاهی اوقات آن ها در داخل اجزاء یعنی در بخشی از کارکردپذیری های خود: یک کلاس، یک سرویس، و یا رابط محقق می گردند. افزون بر این، تنوعی که در اجزاء رخ می دهد، ممکن است اجزاء مختلف معماری را جدا نماید. این اقسام تنوع هنوز هم چالش برانگیز بوده و قابلیت ردیابی آن ها در حال حاضر به خوبی پشتیبانی نمی شود. بنابراین، تضمین برآوردن الزامات توسط محصولات SPL با این اقسام تنوع امکان پذیر نمی باشد. در مقاله حاضر راه حلی برای ردیابی تنوع پذیری از ویژگی ها به PLA با در نظر گرفتن این اقسام تنوع ارائه می گردد. این راه حل مبتنی بر مدل ها و قابلیت ردیابی بین مدل ها به منظور خودکارسازی پیکربندی SPL با انتخاب گونه های مختلف و تحقق برنامه های کاربردی محصول است. چارچوب مدلسازی FPLA از این راه حل که در یک کارخانه نرم افزاری مستقر شده پشتیبانی می نماید. اعتبارسنجی به منزله قرار دادن راه حل در عمل برای توسعه خط تولید برنامه های مدیریت سنجش قدرت برای شبکه های هوشمند می باشد.
1. مقدمه
قابلیت ردیابی روابط بین مصنوعات موجود در چرخه حیات نرم افزار را [2، 20] در هر دو جهت پیش رو و عقب به عنوان مثال به ترتیب از الزامات به کُد و از کُد به الزامات تعریف و حفظ می کند. در حال حاضر، سیستم های نرم افزاری با توجه به رقابت پذیری بازار نرم افزار و فناوری های متغیر آن ها به صورت مدام دستخوش تغییرات قرار دارد. در سیستم های نرم افزاری با الزامات به شدت بی ثبات، قابلیت ردیابی به یک مساله حیاتی تبدیل شده است. محققان مختلف تمرکز کار خود را در طی سالیان گذشته بر روی قابلیت ردیابی از فضای مساله به فضای راه حل در توسعه و تکامل نرم افزار سنتی قرار داده اند [13، 43، 45، 46]. در این راستا، امروزه هنوز هم مواجهه با چالش های متعدد وجود دارد. به طور خاص مرکز عالی قابلیت ردیابی نرم افزار هشت چالش مرتبط با هدف، هزینه، پیکربندی، اطمینان، مقیاس پذیری، انتقال پذیری، ارزش، و همه جایی قابلیت ردیابی را شناسایی نموده است [19].این قابلیت ردیابی حتی در پارادایم های توسعه نرم افزاری اخیر مانند مهندسی خط تولید نرم افزار (SPLE) چالش برانگیزتر می باشد [14، 44]. در حقیقت، قابلیت ردیابی تنوع پذیری در یک خانواده از محصولات هنوز هم یک چالش [35]، و نیز امری مهم به شمار می رود: '' کار قابلیت ردیابی یعنی ظهور از زمینه های مهندسی خط تولید ممکن است کاربردپذیری گسترده تری برای استفاده مجدد از قابلیت ردیابی وسیع تر داشته باشد'' [19].
Abstract
In current software systems with highly volatile requirements, traceability plays a key role to maintain the consistency between requirements and code. Traceability between artifacts involved in the development of software product line (SPL) is still more critical because it is necessary to guarantee that the selection of variants that realize the different SPL products meet the requirements. Current SPL traceability mechanisms trace from variability in features to variations in the configuration of product-line architecture (PLA) in terms of adding and removing components. However, it is not always possible to materialize the variable features of a SPL through adding or removing components, since sometimes they are materialized inside components, i.e., in part of their functionality: a class, a service, and/or an interface. Additionally, variations that happen inside components may crosscut several components of architecture. These kinds of variations are still challenging and their traceability is not currently well supported. Therefore, it is not possible to guarantee that those SPL products with these kinds of variations meet the requirements. This paper presents a solution for tracing variability from features to PLA by taking these kinds of variations into account. This solution is based on models and traceability between models in order to automate SPL configuration by selecting the variants and realizing the product application. The FPLA modeling framework supports this solution which has been deployed in a software factory. Validation has consisted in putting the solution into practice to develop a product line of power metering management applications for smart grids.
1 Introduction
Traceability defines and maintains relationships between artifacts involved in the software life cycle [2, 20] in both forward and backward directions, e.g., from requirements to code and from code to requirements, respectively. Currently, software systems are continuously undergoing changes due to the competitiveness of the software market and their changing technologies. In software systems with highly volatile requirements, traceability has become a critical issue. Numerous researchers have put their work over past years on traceability from problem space to solution space in traditional software development and evolution [13, 43, 45, 46]. In this regard, today there are still several challenges to be dealt with. Specifically the Center of Excellence for Software Traceability identified eight challenges related to the purpose, cost, configuration, confidence, scalability, portability, value, and ubiquity of traceability [19]. This traceability is even more challenging in recent software development paradigms such as software product line engineering (SPLE [14, 44]). In fact, the capability of tracing variability in a family of the products is still a challenge [35], as well as important: ‘‘the traceability work that is emerging from product line engineering contexts may have wider applicability to broader traceability reuse’’ [19].
چکیده
1. مقدمه
2. سابقه
2.1. مدل ویژگی
2.2. مدل PLA انعطاف پذیر
3. مدل قابلیت ردیابی ویژگی – PLA
3.1. نحو انتزاعی: توصیف متامدل
3.2. نحو واقعی: توصیف زبان گرافیکی
3.3. مدل قابلیت ردیابی ویژگی - PLA در عمل
4. مطالعه موردی
4.1. طراحی مطالعه موردی
4.2. نتایج
4.3. نتیجه گیری های مطالعه موردی
5. کار مرتبط
6. نتیجه گیری ها و کارهای آتی
Abstract
1 Introduction
2 Background
2.1 The feature model
2.2 The Flexible-PLA model
3 Feature-PLA traceability model
3.1 Abstract syntax: metamodel description
3.2 Concrete syntax: graphical language description
3.3 Feature-PLA traceability model in practice
4 Case study
4.1 Case study design
4.2 Results
4.3 Case study conclusions
5 Related work
6 Conclusions and further work