Vai al contenuto principale della pagina

UML-Based Software Product Line Engineering with SMarty [[electronic resource] /] / edited by Edson OliveiraJr



(Visualizza in formato marc)    (Visualizza in BIBFRAME)

Titolo: UML-Based Software Product Line Engineering with SMarty [[electronic resource] /] / edited by Edson OliveiraJr Visualizza cluster
Pubblicazione: Cham : , : Springer International Publishing : , : Imprint : Springer, , 2023
Edizione: 1st ed. 2023.
Descrizione fisica: 1 online resource (517 pages)
Disciplina: 657.72
Soggetto topico: Software engineering
Software Engineering
Persona (resp. second.): OliveiraEdson
Note generali: Includes index.
Nota di contenuto: Intro -- Foreword -- Introduction -- Product Lines and ``Value'' -- Modern Product Lines with Data-Driven Capabilities -- Product Line Research Versus Product Line Practice -- Concluding Remarks -- Preface -- What Is This Book About? -- Who Should Read This Book? -- How Is This Book Structured? -- How Did This Book Start? -- Acknowledgments -- Contents -- Contributors -- Part I Fundamentals of Software Product Lines and the SMarty Approach -- 1 Principles of Software Product Lines -- 1.1 Characterizing Software Product Lines -- 1.2 SPL Terminology -- 1.3 SPL Engineering Methodologies and Reference Model -- 1.3.1 First-Generation Methodologies -- 1.3.1.1 FODA: Feature-Oriented Domain Analysis (1990) -- 1.3.1.2 RSEB: Reuse-Driven Software Engineering Business (1997) -- 1.3.1.3 FORM: Feature-Oriented Reuse Method for Product Line Software Engineering (1998) -- 1.3.1.4 FAST: Family-Oriented Abstraction, Specification, and Translation (1999) -- 1.3.1.5 PuLSE: Fraunhofer Product Line Software Engineering (1999) -- 1.3.1.6 KobrA: Komponenten basierte Anwendungsentwicklung (2000) -- 1.3.1.7 SEI Framework for Software Product Line Practice (2002) -- 1.3.1.8 PLUS: Product Line UML-Based Software Engineering (2004) -- 1.3.1.9 SMarty: Stereotype-Based Management of Variability (2005) -- 1.3.1.10 Pohl et al.'s SPL Framework (2005) -- 1.3.2 Second-Generation Software Product Line Engineering (2GPLE) -- 1.3.3 ISO/IEC Standards for SPL Engineering, Management, and Tools -- 1.4 SPL Development Approaches -- 1.4.1 The Proactive Approach -- 1.4.2 The Extractive Approach -- 1.4.3 The Reactive Approach -- 1.4.4 Feature-Oriented SPL Development -- 1.5 Final Remarks -- References -- 2 Variability Implementation and UML-Based Software Product Lines -- 2.1 Introduction -- 2.2 Implementing Variability -- 2.2.1 Variability in the Problem Space.
2.2.2 Variability in the Solution Space -- 2.2.3 SPL Variability Tools -- 2.3 Overview of UML-Based SPL -- 2.4 Discussion -- 2.5 Final Remarks -- References -- 3 Software Product Line Architectures -- 3.1 Software Architecture Foundations -- 3.1.1 What Is Software Architecture -- 3.1.2 Quality Attributes and Software Architecture -- 3.1.3 Software Architecture Descriptions -- 3.1.3.1 Module Dependency Graph -- 3.1.3.2 Design Structure Matrix -- 3.1.4 Variability in Software Architecture -- 3.2 Software Product Line Architectures Foundations -- 3.2.1 Product Lines and Product Line Architectures -- 3.2.2 Product Line Design -- 3.2.3 Product Line Architecture Description -- 3.3 Product Line Architectures Versus Reference Architectures -- 3.4 A Product Line Architecture Example -- 3.5 Final Remarks -- References -- 4 The SMarty Approach for UML-Based Software Product Lines -- 4.1 Overview of the SMarty Family -- 4.2 The SMartyProfile -- 4.3 The SMartyProcess and Guidelines -- 4.3.1 Guidelines for Use Case Diagrams -- 4.3.2 Guidelines for Class Diagrams -- 4.3.3 Guidelines for Component Diagrams -- 4.3.4 Guidelines for Sequence Diagrams -- 4.3.5 Guidelines for Activity Diagrams -- 4.4 Final Remarks -- References -- Part II SMarty-Based Software Product Lines: Design, Verification and Validation -- 5 Designing, Tracing, and Configuring Software Product Lines with SMarty -- 5.1 Quick Start to SMartyModeling -- 5.2 Designing SMarty Diagrams -- 5.2.1 Use Case Diagrams -- 5.2.2 Class Diagrams -- 5.2.3 Component Diagrams -- 5.2.4 Activity Diagrams -- 5.2.5 Sequence Diagrams -- 5.3 Traceability Among Designed Elements -- 5.4 Configuring Specific Products -- 5.5 Exporting and Importing SPLs -- 5.6 Final Remarks -- References -- 6 Product-Line Architecture Designing with SMartyComponents -- 6.1 The Role of SMarty in This Work -- 6.2 SMartyComponents.
6.3 Requirements Workflow -- 6.3.1 Activity: Requirements Definition -- 6.3.1.1 Task: Describe Business Processes -- 6.3.1.2 Task: Develop Business Concept Model -- 6.3.1.3 Task: Identify Use Cases -- 6.4 Specification Workflow -- 6.4.1 Activity: Component Identification -- 6.4.1.1 Task: Develop Business Type Model -- 6.4.1.2 Task: Identify Business Interfaces -- 6.4.1.3 Task: Identify System Interfaces and Operations -- 6.4.1.4 Task: Create Initial Components and Architecture Specification -- 6.4.2 Activity: Component Interaction -- 6.4.2.1 Task: Find Business Operations -- 6.4.2.2 Task: Refine Interfaces and Operations -- 6.4.2.3 Task: Refine Component and Architecture Specification -- 6.4.3 Activity: Specify Components -- 6.4.3.1 Task: Define Interface Information Model -- 6.4.3.2 Task: Specify Operations Pre-and Post-Conditions -- 6.4.3.3 Specify Component-Interface Constraints -- 6.5 Final Remarks -- References -- 7 Model-Based Inspections of Software Product Lines -- 7.1 The Role of SMarty in This Work -- 7.2 Software Inspection Foundations -- 7.2.1 Checklist-Based Reading -- 7.2.2 Scenario-Based Reading -- 7.2.3 Perspective-Based Reading -- 7.3 SMartyCheck -- 7.3.1 SMartyCheck: Defect Types Taxonomy -- 7.3.2 SMartyCheck: Inspection of SMarty SPLs -- 7.3.3 SMartyCheck: Application Examples -- 7.4 SMartyPerspective -- 7.4.1 SMartyPerspective: Defect Types Taxonomy -- 7.4.2 SMartyPerspective Scenarios -- 7.4.3 The Product Manager Perspective -- 7.4.4 The Domain Requirements Engineer Perspective -- 7.4.5 The Domain Architect Perspective -- 7.4.6 The Domain Developer Perspective -- 7.4.7 The Domain Asset Manager Perspective -- 7.4.8 SMartyPerspective: Application Examples -- 7.4.8.1 Domain Architect Example -- 7.4.8.2 Domain Developer Example -- 7.4.8.3 Domain Asset Manager Example -- 7.5 Final Remarks -- References.
8 Model-Based Testing of Software Product Lines -- 8.1 The Role of SMarty in This Work -- 8.2 SPLiT-MBt: A Model-Based Testing Method for Software Product Lines -- 8.2.1 SPLiT-MBt Characterization -- 8.2.2 SPLiT-MBt Phases -- 8.2.3 SPLiT-MBt Application Example -- 8.2.3.1 Add Test Information to SPL Models -- 8.2.3.2 Generate Test Sequences with Variability -- 8.2.3.3 Resolving Variability -- 8.2.3.4 Abstract Test Case Generation -- 8.2.3.5 Test Script Generation and Test Execution -- 8.3 SMartyTesting: MBT on Use Case and Sequence Diagrams -- 8.3.1 SMartyTesting Characterization -- 8.3.2 Used Models -- 8.3.3 Converting Sequence Diagrams to Activity Diagrams -- 8.3.4 Used Tool -- 8.3.5 SMartyTesting Phases -- 8.3.6 Step 1: Mapping Sequence Diagrams to Activity Diagrams -- 8.3.7 Step 2: Generating Test Sequences -- 8.3.8 Variability Resolution -- 8.3.9 Limitations on the Use of SPLiT-MBt -- 8.3.10 SMartyTesting Application Example -- 8.4 Final Remarks -- References -- Part III Product-Line Architecture Evolution -- 9 Maintainability Metrics for PLA Evaluation Based on ISO/IEC 25010 -- 9.1 The Role of SMarty in This Work -- 9.2 SMartyMetrics Characterization -- 9.3 SMartyMetrics: Quality Attributes -- 9.4 SMartyMetrics: Metrics -- 9.4.1 Modularity -- 9.4.2 Reusability -- 9.4.3 Modifiability -- 9.4.4 Testability -- 9.5 SMartyMetrics Guidelines -- 9.6 Applying Metrics in SMartyModeling -- 9.7 Application Example -- 9.8 Final Remarks -- References -- 10 The SystEM-PLA Evaluation Method -- 10.1 The Role of SMarty in This Work -- 10.2 Characterization of SystEM-PLA -- 10.3 Evaluation Metaprocess (EMP) -- 10.4 Evaluation Guidelines -- 10.5 Application Example -- 10.5.1 Product Line Architecture -- 10.5.2 Planning -- 10.5.2.1 Business Drivers -- 10.5.2.2 Scenarios -- 10.5.2.3 Classified Scenarios -- 10.5.2.4 Selected Quality Attributes.
10.5.2.5 Management and Technical Questions -- 10.5.2.6 Quality Attribute Metrics -- 10.5.3 Data Collection -- 10.5.4 Data Analysis and Documentation -- 10.5.4.1 Graphical Representation of Data -- 10.5.4.2 Analysis of Collected Data -- 10.5.4.3 Scenarios That Satisfy Quality Attributes -- 10.5.4.4 Quality Attributes That Satisfy the PLA -- 10.5.4.5 Trade-Off Analysis -- 10.5.4.6 Evaluation Report -- 10.5.4.7 Storage of Artifacts -- 10.6 Final Remarks -- References -- 11 Optimizing Product-Line Architectures with MOA4PLA -- 11.1 Introduction -- 11.2 Introduction to Multi-Objective Optimization -- 11.3 Search-Based SPL Optimization -- 11.4 The Role of SMarty in This Work -- 11.5 MOA4PLA -- 11.5.1 Product-Line Architecture Representation -- 11.5.2 Evaluation Model -- 11.5.3 Search Operators -- 11.5.4 Implementation Aspects -- 11.6 Application Example -- 11.7 Final Remarks -- References -- 12 Preventing Feature Interaction with Optimization Algorithms -- 12.1 Introduction -- 12.2 Background -- 12.2.1 Approaches to Detect and Resolve Feature Interaction -- 12.2.2 PLA Design Optimization -- 12.2.3 The Role of SMarty in This Work -- 12.3 A Search-Based Approach to Prevent Feature Interaction -- 12.3.1 Potential Feature Interaction Detection Patterns -- 12.3.2 Feature Interaction Preventive Actions -- 12.3.3 Implementation Aspects -- 12.4 Application Example -- 12.5 Limitations -- 12.6 Final Remarks -- References -- Part IV SMarty-Related Research -- 13 M-SPLearning: A Software Product Line for Mobile Learning Applications -- 13.1 M-Learning Domain and the Role of SMarty in This Work -- 13.2 M-SPLearning Domain Engineering -- 13.2.1 Domain Analysis -- 13.2.2 Architecture Definition -- 13.2.3 Component Design -- 13.2.4 Production Plan -- 13.3 M-SPLearning Application Engineering -- 13.3.1 Product Generation -- 13.3.2 Product Evaluation -- 13.3.3 Related Work.
13.4 Final Remarks.
Sommario/riassunto: This book is about software product lines (SPLs) designed and developed taking UML diagrams as the primary basis, modeled according to a rigorous approach composed of an UML profile and a systematic process for variability management activities, forming the Stereotype-based Management of Variability (SMarty) approach. The book consists of five parts. Part I provides essential concepts on SPL in terms of the first development methodologies. It also introduces variability concepts and discusses SPL architectures finishing with the SMarty approach. Part II is focused on the design, verification and validation of SMarty SPLs, and Part III concentrates on the SPL architecture evolution based on ISO/IEC metrics, the SystEM-PLA method, optimization with the MOA4PLA method, and feature interaction prevention. Next, Part IV presents SMarty as a basis for SPL development, such as, the M-SPLearning SPL for mobile learning applications, the PLeTs SPL for testing tools, the PlugSPL plugin environment for supporting the SPL life cycle, the SyMPLES approach for designing embedded systems with SysML, the SMartySPEM approach for software process lines (SPrL), and re-engineering of class diagrams into an SPL. Eventually, Part V promotes controlled experimentation in UML-based SPLs, presenting essential concepts on how to plan, conduct, and document experiments, as well as showing several experiments carried out with SMarty. This book aims at lecturers, graduate students and experienced practitioners. Lecturers might use the book for graduate level courses about SPL fundamentals and tools; students will learn about the SPL engineering process, variability management, and mass customization; and practitioners will see how to plan the transition from single-product development to an SPL-based process, how to document inherent variability in a given domain, or how to apply controlled experiments to SPLs.
Titolo autorizzato: UML-Based Software Product Line Engineering with SMarty  Visualizza cluster
ISBN: 9783031185564
9783031185557
Formato: Materiale a stampa
Livello bibliografico Monografia
Lingua di pubblicazione: Inglese
Record Nr.: 996546822103316
Lo trovi qui: Univ. di Salerno
Opac: Controlla la disponibilità qui