An Approach to Managing Requirements as a Core Asset in Software Product-Line

소프트웨어 프로덕트 라인에서 핵심 자산으로서 요구사항을 관리하는 방법

  • 문미경 (부산대학교 컴퓨터 및 정보통신연구소) ;
  • 염근혁 (부산대학교 컴퓨터공학과)
  • Published : 2004.08.01

Abstract

The goal of product line engineering is to support the systematic development of a set of similar software systems by understanding and controlling their common and distinguishing characteristics. The product line engineering is a process that develops reusable core assets and develops a set of software-intensive systems from a common set of core assets in a prescribed way. Currently, many software development technologies are accomplished in context of product line. However, much of the product line engineering research have focused on the reuse of work products relating to the software's architecture, detail design, and code. The product lines fulfill the promise of tailor-made systems built specifically for the needs of particular customers or customer groups. In particular, commonality and variability play central roles in the all product line development processes. These must be treated already during the requirement analysis phase. Requirements in product line engineering are basis of software development just like as traditional system development engineering, and basis of deciding other core assets' property - commonalities and variabilities. However, it is difficult to elicit, analyze and manage correct requirements. Therefore, it is necessary to develop systematic methods which can develop and manage requirement as core asset, which can be stable in anticipative change and can be well adapted to unpredictable change. In this paper, we suggest a method of managing requirements as core asset in product line. Through this method, the reuse of domain requirements can be enhanced. As a result, the cost and time of software development can be reduced and the productivity can be increased.

소프트웨어 프로덕트 라인 공학의 목표는 일련의 유사한 소프트웨어 시스템의 공통성과 구별되는 특성을 이해하고 제어함으로써 시스템의 체계적인 개발을 지원하는 것이다[1]. 이것은 소프트웨어 개발 시 나오는 산출물들을 핵심 자산으로 만들어 놓고 이를 체계적으로 재사용 할 수 있도록 지원하기 위한 프레임웍 역할을 한다. 현재 많은 기술들이 프로덕트 라인 공학 관련하여 연구되고 있지만, 그 초점이 소프트웨어 아키텍쳐나 상세 설계 또는 코드에 맞추어져 있다[2]. 소프트웨어 프로덕트 라인 공학에서는 컴포넌트의 공급, 조립뿐만 아니라 조립공정까지 특정 요구나 변화에 신속히 적응할 수 있도록 관리하는 것이 중요한데, 이는 요구사항 분석 단계에서부터 이루어져야 한다. 소프트웨어 프로덕트 라인 공학에서 요구사항은 전통적인 시스템 개발에서와 마찬가지로 모든 개발의 기초가 되는 부분이며, 다른 핵심 자산의 공통성과 가변성의 성질을 결정짓게 만들 수 있는 기준이 된다. 그러나 요구사항들을 다 반영하기도 전에 변경이 발생하는 수많은 경험을 해 온 것처럼, 올바른 요구사항을 획득하고 이를 분석, 관리한다는 것은 결코 쉬운 일이 아니다. 특히, 여러 개의 시스템을 개발할 때 사용할 요구사항은 공통성과 가변성의 속성을 가지게 된다. 그러므로 계획할 수 있는 변화에는 충분히 안정적이면서, 반면에 예측하지 못하는 변화에 잘 적응하고 개조될 수 있도록 유연성을 지닌 핵심 요구사항을 개발, 관리하기 위한 체계적인 방법이 필요하다. 본 논문에서는 소프트웨어 프로덕트 라인에서 핵심 자산의 하나인 도메인 요구사항을 관리하는 방법에 대하여 제안한다. 이를 통해 도메인 요구사항에 대한 재사용성을 중대시키고 시스템의 목표를 정확히 세우는 데 투자되는 많은 시간과 노력을 감소시켜 준다. 이는 결과적으로 소프트웨어 개발 시간과 비용을 줄이고, 생산성을 향상시키는 등의 장점을 가져다준다.

Keywords

References

  1. Muthig, D.,Atkinson, C., 'Model-Driven Product Line Architecture,' Software Product Lines: In Proceedings of the Second Software Product Line Conference (SPLC2);Springer Lecture Notes in Computer Science Vol. 2379, 2002, pp. 110-129
  2. Faulk, S. R. , 'Product-line requirements specification (PRS): an approach and case study', In Proceeding Fifth IEEE International Symposium on Requirements Engineering, 2001, pp. 48-55 https://doi.org/10.1109/ISRE.2001.948543
  3. Kang, K. C., 'Feature-Oriented Domain Analysis for Software Reuse,' Joint Conference on Software Engineering, 1993, pp. 389-395
  4. SEI in Carnegie Mellon University, 'Feature-Oriented Domain Analysis,' URL:http://www.sei.cmu.edu/str/descriptions/foda_body.html
  5. Griss, M. L.,Favaro, J., and d'Alessandro, M., 'Integrating Feature Modeling with the RSEB,' In Proceedings of 5th International Conference on Software Reuse, Victoria Canada, June, IEEE, 1988, pp. 76-85 https://doi.org/10.1109/ICSR.1998.685732
  6. van Gurp, J.,Bosch, J., and Svahnberg, M., 'On the notion of variability in software product lines,' Proceedings on Working IEEE/IFIP Conference on Software Architecture, 2001, pp. 45-54 https://doi.org/10.1109/WICSA.2001.948406
  7. van Deursen, A.,de Jonge, M., and Kuipers, T., Feature-Based Product Line Instantiation Using Source-Level Packages,' the Proceedings of Second Product Line Conference (SPLC2), 2002, pp. 217-234
  8. Frakes, W., Prieto-Diaz, R., and Fox, C., 'DARE-COTS: A Domain Analysis Support Tool,' Proceedings on ⅩⅤII International Conference of the Chilean Computer Science Society (Valparaiso, Nov, 1997), pp. 73-77, 1997 https://doi.org/10.1109/SCCC.1997.636929
  9. Mannion, M., 'Using First-Order Logic for Product Line Model Validation,' In Proceedings of Second Product Line Conference (SPLC2), 2002, pp. 176-187
  10. Keepence, B. Mannion, M., 'Using patterns to model variability in product families,' IEEE Software, Vol:16 Issue: 4, 1999, pp. 102-108 https://doi.org/10.1109/52.776957
  11. ClauB, M., 'Generic Modeling using UML extensions for variability,' OOPSLA 2001 Workshop on Domain Specific Visual Languages, 2001
  12. Webber, D., Gomaa, H., 'Modeling Variability with the Variation Point Model,' In Proceedings of the Seventh International Conference on Software Reuse (ICSR 7), 2002, pp. 109-122
  13. I. Sommerville and G. Kotonya, Requirements Engineering: Processes and Techniques, John Wiley & Son Ltd. 1998
  14. McPhee, C., Eberlein, A., 'Requirements Engineering for Time-to-Market Projects,' In Proceedings of the Ninth Annual IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, April 2000, pp. 17-24 https://doi.org/10.1109/ECBS.2002.999818
  15. Clements, P., Northrop, L. Software Product Lines: Practices and Patterns, Addison Wesley, 2001
  16. Thompson, J.M., Heimdahl, M.P.E., 'Structuring product family requirements for n-dimensional and hierarchical product lines,' Requirements Engineering, 8:42-54, April 2003 https://doi.org/10.1007/s00766-003-0166-0
  17. Kuusela, J., Savolainen, J., 'Requirements Engineering for Product Families,' In Proceedings of the Twenty-Second International Conference on Software Engineering (ICSE'00), Limeric, Ireland, June 2000, pp. 60-68
  18. Leffingwell, D., Widrig, D., Managing Software Requirements, A Unified Approach, Addison Wesley, 2000
  19. Bass, L.,Clements, P., Donohoe, P., McGregor, J., Northrop, L., 'Fourth Product Line Practice Workshop Report,' Software Engineering Institute, USA, Nov, 1999
  20. Berard, E., Essays in Object-Oriented Software Engineering, Prentice Hall, 1992
  21. Streifferdt, D., 'Traceability for System Families,' Software Engineering, In Proceedings of the 23rd International Conference on ICSE, May 2001, pp. 803-804 https://doi.org/10.1109/ICSE.2001.919186
  22. Davis, A., Software Requirements : Objects, Functions and States, Englewood Cliffs, N.J.:Prentice Hall, 1993
  23. Kotonya, G., Sommerville, I., 'Requirements Engineering with Viewpoints,' Software Engineering Journal, Volume: 11 Issue: 1, Jan. 1996, pp.5-18 https://doi.org/10.1049/sej.1996.0002
  24. Digre T., 'Business Object Component Architecture,' IEEE software Vol.15, No.5, September/October, 1998, pp.60-69 https://doi.org/10.1109/52.714818
  25. Larman, C., Applying UML and Patterns 2/E: An Introduction to Object-Oriented Analysis and Design and the Unified Process, Prentice Hall. 2002
  26. Firesmith, D. G., 'Use Case Modeling Guidelines,' In Proceedings of Technology of Object-Oriented Languages and Systems, TOOLS 30., Aug. 1999, pp.184-193
  27. Gotel, O., Finkelstein, A., 'An Analysis of the Requirements Traceability Problem,' 1st IEEE International Conference on Requirements Engineering (ICRE'94), Springs, April, 1994, pp.94-101 https://doi.org/10.1109/ICRE.1994.292398