Requirements Engineering for Software Product Lines

Size: px
Start display at page:

Download "Requirements Engineering for Software Product Lines"

Transcription

1 Requirements Engineering for Software Product Lines Julio Cesar Sampaio do Prado Leite Departamento de Informática Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) Support from:

2 Goal Overview of the role of RE in the context of Software Product Line jcspl 2

3 Viewpoint RE as a Concurrent Engineering Activity that may be seen as composed of the following parts: Elicitation, Modeling, Analysis, and Management. jcspl 3

4 Out There jcspl 4

5 Software Product Line Reduce time to market Increase Software Quality Extensive Planned Reuse jcspl 5

6 A photo taken from Thüm, T., Apel, S., Kästner, C., Schaefer, I., & Saake, G. (2014). A classification and survey of analysis strategies for software product lines. ACM Computing Surveys (CSUR), 47(1), 6. jcspl 6

7 A-0 Objective: Model the process for giving a talk on RE for SPL Viewpoint: A researcher in RE, who needed an update on the topic. jcspl 7

8 A0 jcspl 8

9 A1 jcspl 9

10 Process for this Talk Eliciting Introspection (on my own previous knowledge) Eliciting Information Sources (recent literature) Stand on the shoulders of giants Seed (Product Line Book 3305 citations) Snowballing Hand selecting over last 2 years Some other specific queries Document reading Modeling as general concepts Analyzing by you Managing by time jcspl 10

11 Information Sources Alves, V., Niu, N., Alves, C., & Valença, G. (2010). Requirements engineering for software product lines: A systematic literature review. Information and Software Technology, 52(8), Liaskos, S., Yu, Y., Yu, E., & Mylopoulos, J. (2006, September). On goal-based variability acquisition and analysis. In Requirements Engineering, 14th IEEE International Conference (pp ). IEEE. Bashroush, R., Garba, M., Rabiser, R., Groher, I., & Botterweck, G. (2017). CASE Tool Support for Variability Management in Software Product Lines. ACM Computing Surveys (CSUR), 50(1), 14. Reinhartz-Berger, I., Figl, K., & Haugen, Ø. (2017). Investigating styles in variability modeling: Hierarchical vs. constrained styles. Information and Software Technology. Yu, Y., Lapouchnian, A., Liaskos, S., Mylopoulos, J., & Leite, J. C. (2008, May). From goals to high-variability software design. In International Symposium on Methodologies for Intelligent Systems (pp. 1-16). Springer Berlin Heidelberg. jcspl 11

12 Information Sources Lee, J., Kang, K. C., Sawyer, P., & Lee, H. (2014). A holistic approach to feature modeling for product line requirements engineering. Requirements Engineering, 19(4), Itzik, N., Reinhartz-Berger, I., & Wand, Y. (2016). Variability Analysis of Requirements: Considering Behavioral Differences and Reflecting Stakeholders Perspectives. IEEE Transactions on Software Engineering, 42(7), van Heesch, U., Jansen, A., Pei-Breivold, H., Avgeriou, P., & Manteuffel, C. (2017). Platform design space exploration using architecture decision viewpoints A longitudinal study. Journal of Systems and Software, 124, Fogdal, T., Scherrebeck, H., Kuusela, J., Becker, M., & Zhang, B. (2016, September). Ten years of product line engineering at Danfoss: lessons learned and way ahead. In Proceedings of the 20th International Systems and Software Product Line Conference (pp ). ACM. Riehle, D., Capraro, M., Kips, D., & Horn, L. (2016). Inner source in platform-based product engineering. IEEE Transactions on Software Engineering, 42(12), jcspl 12

13 Information Sources Wnuk, K., Gorschek, T., Callele, D., Karlsson, E. A., Åhlin, E., & Regnell, B. (2016). Supporting scope tracking and visualization for very large-scale requirements engineeringutilizing FSC+, decision patterns, and atomic decision visualizations. IEEE Transactions on Software Engineering, 42(1), Benbassat, F., Borba, P., & Teixeira, L. (2016, September). Safe Evolution of Software Product Lines: Feature Extraction Scenarios. In Software Components, Architectures and Reuse (SBCARS), 2016 X Brazilian Symposium on (pp ). IEEE Sepúlveda, S., Cravero, A., & Cachero, C. (2016). Requirements modeling languages for software product lines: A systematic literature review. Information and Software Technology, 69, Thüm, T., Apel, S., Kästner, C., Schaefer, I., & Saake, G. (2014). A classification and survey of analysis strategies for software product lines. ACM Computing Surveys (CSUR), 47(1), 6. Heradio, R., Perez-Morago, H., Fernandez-Amoros, D., Cabrerizo, F. J., & Herrera-Viedma, E. (2016). A bibliometric analysis of 20 years of research on software product lines. Information and Software Technology, 72, jcspl 13

14 Elicitation Market- Driven Scoping (Negotiation, Conflicts, Cost) Domain versus Context Functional versus Non-Functional Domain Engineering vs Application Engineering Evolution (Reactive, Extractive ) jcspl 14

15 Modeling Problem Space x Solution Space Feature-Oriented (tree based, constrained based) Goal Oriented Viewpoint Oriented Variation points (case; #ifdef; files; components; OR, XOR, ) Evolution (reactive, extractive, tracing) jcspl 15

16 Analysis Feature Interaction Consistency Analysis Well formed Patterns Configuration (Verification, Rules) Testing (Requirements/Feature Based) Thum et al. on Verification ( jcspl 16

17 Management Value Investment Requirements Management vs Managing by Requirements Strategy (proactive, reactive, extractive) Configuration (Concurrent Management) Commitment Tools jcspl 17

18 Solid Gains Industry Acceptance Success Cases Industry Dependent ROI Tools Other opinions (lack of empirical work, failure on dealing with rapid change) jcspl 18

19 Future Challenges Inner Source (Reusing Open Source Experience) NFR driven Elicitation (QFD, Catalogs) Mining Software Repositories for Features Awareness Requirements Based Product Line Tools jcspl 19