요구사항 시나리오 기계 학습을 이용한 자동 소프트웨어 요구사항 패턴 추출 기법 Automatic Software Requirement Pattern Extraction Method Using Machine Learning of Requirement Scenario원문보기
소프트웨어 요구사항 분석은 성공적인 소프트웨어 프로젝트를 위해 필수적 요소이다. 특히 불완전한 요구사항은 소프트웨어 프로젝트 실패의 가장 큰 원인으로 꼽힌다. 불완전한 요구사항은 소프트웨어 개발 시 개발자에게 이해 부족을 야기할 뿐 아니라, 소프트웨어 검증 시 에도 모호한 기준을 제공함으로써, 개발 후반부에 납기일 연기 및 비용 증가의 원인이 된다. 요구사항 패턴은 이러한 문제를 극복하는데 도움을 줄 수 있다. 요구사항 패턴은 요구사항 작성과 검토 시 참조모델이 될 뿐 아니라, 검증 기준이 될 수 있으며, 작성자가 누락한 부분을 보완해 줄 수 있다. 이와 더불어 요구사항 작성의 경험이 적은 작성자는 요구사항 패턴을 통해 더 쉽고, 빠르고 정확하게 요구사항을 작성할 수 있다. 본 논문에서는 다양한 요구사항의 시나리오를 통해 공통된 요구사항 시나리오를 추출하는 기법을 제안한다. 그리고 제안한 기법의 가시성 검증을 위해 여덟 개의 프로젝트에서 추출한 83개의 소프트웨어 시나리오를 통해 54개의 시나리오 패턴을 추출하고 이 패턴을 이용하여 누락된 행위를 찾는 과정을 사례연구를 통해 보여준다.
소프트웨어 요구사항 분석은 성공적인 소프트웨어 프로젝트를 위해 필수적 요소이다. 특히 불완전한 요구사항은 소프트웨어 프로젝트 실패의 가장 큰 원인으로 꼽힌다. 불완전한 요구사항은 소프트웨어 개발 시 개발자에게 이해 부족을 야기할 뿐 아니라, 소프트웨어 검증 시 에도 모호한 기준을 제공함으로써, 개발 후반부에 납기일 연기 및 비용 증가의 원인이 된다. 요구사항 패턴은 이러한 문제를 극복하는데 도움을 줄 수 있다. 요구사항 패턴은 요구사항 작성과 검토 시 참조모델이 될 뿐 아니라, 검증 기준이 될 수 있으며, 작성자가 누락한 부분을 보완해 줄 수 있다. 이와 더불어 요구사항 작성의 경험이 적은 작성자는 요구사항 패턴을 통해 더 쉽고, 빠르고 정확하게 요구사항을 작성할 수 있다. 본 논문에서는 다양한 요구사항의 시나리오를 통해 공통된 요구사항 시나리오를 추출하는 기법을 제안한다. 그리고 제안한 기법의 가시성 검증을 위해 여덟 개의 프로젝트에서 추출한 83개의 소프트웨어 시나리오를 통해 54개의 시나리오 패턴을 추출하고 이 패턴을 이용하여 누락된 행위를 찾는 과정을 사례연구를 통해 보여준다.
Software requirement analysis is necessary for successful software development project. Specially, incomplete requirement is the most influential causes of software project failure. Incomplete requirement can bring late delay and over budget because of the misunderstanding and ambiguous criteria for...
Software requirement analysis is necessary for successful software development project. Specially, incomplete requirement is the most influential causes of software project failure. Incomplete requirement can bring late delay and over budget because of the misunderstanding and ambiguous criteria for project validation. Software requirement patterns can help writing more complete requirement. These can be a reference model and standards when author writing or validating software requirement. Furthermore, when a novice writes the software scenario, the requirement patterns can be one of the guideline. In this paper proposes an automatic approach to identifying software scenario patterns from various software scenarios. In this paper, we gathered 83 scenarios from eight industrial systems, and show how to extract 54 scenario patterns and how to find omitted action of the scenario using extracted patterns for the feasibility of the approach.
Software requirement analysis is necessary for successful software development project. Specially, incomplete requirement is the most influential causes of software project failure. Incomplete requirement can bring late delay and over budget because of the misunderstanding and ambiguous criteria for project validation. Software requirement patterns can help writing more complete requirement. These can be a reference model and standards when author writing or validating software requirement. Furthermore, when a novice writes the software scenario, the requirement patterns can be one of the guideline. In this paper proposes an automatic approach to identifying software scenario patterns from various software scenarios. In this paper, we gathered 83 scenarios from eight industrial systems, and show how to extract 54 scenario patterns and how to find omitted action of the scenario using extracted patterns for the feasibility of the approach.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
그리고 후자 연구의 경우 도메인 모델의 품질 수준에 따라 패턴의 품질도 결정되는 문제와, 추출된 패턴의 적용 도메인이 한정적인 한계점이 있다. 따라서 본 논문에서는 완전히 자동화 되고, 도메인에 제한 없이 사용할 수 있는 시나리오 기반의 요구사항 패턴 추출 기법을 제안하고자 한다.
본 논문에서는 기업체에서 작성한 시나리오를 수집하고 제안된 기법을 통해 패턴을 적용하는 방법을 보여준다. 그리고 추출된 패턴을 이용하여 시나리오 상에서 누락된 행위를 찾아주는 과정을 기술함으로써 패턴의 활용 사례를 통해 본 연구의 타당성을 검증한다.
본 논문에서는 소프트웨어 요구사항 시나리오들로부터 자동으로 패턴을 추출하는 기법을 제안한다. 그림 1은 본 논문이 제안하는 기법의 개요를 보여준다.
본 논문에서는 요구사항 시나리오 문장의 동사를 이용하여, 동사의 의미적 유사도에 의한 기계 학습(machine learning)기반의 요구사항 시나리오 패턴 추출 기법을 제안한다. 첫째, 요구사항 사나리오의 문장을 분석하여 문장으로부터 본동사를 추출한다.
본 논문은 여러 소프트웨어 시나리오로부터 시나리오 패턴을 추출하는 완전 자동화된 방법을 제안하였다. 그리고 본 논문에서 제안하는 기법은 도메인에 관계없이 학습 후 패턴추출이 가능하다.
본 절에서는 앞 사례연구에서 추출된 시나리오 패턴을 이용하여 실제 시나리오에 적용하고, 어떻게 누락된 행위를 찾아내는지 보여주고자 한다. 그림8의 시나리오는 컴퓨터공학과 학부 2학년이 작성한 쇼핑몰 웹 애플리케이션에 ‘물품 구매’에 해당하는 요구사항 시나리오이다.
본 연구의 향후 연구로는 본 논문에서 소개한 기법에 의해 추출된 패턴을 실제 시나리오의 검증에 적용하는 연구를 진행한다. 사례연구에서 개략적으로 보여준 바와 같이 초심자가 입력한 시나리오와 추출된 패턴을 비교 분석하여 누락된 행위가 없는지 확인하고, 적합한 행위를 추천하는 완전 자동화된 기법 제안을 목표로 한다. 이 연구를 통해 본 논문에서 소개된 기법의 완성도를 한 번 더 검증할 예정이다.
이 단계는 이전 단계에서 식별된 군집의 관계를 추출하고 이를 방향성 있는 그래프 형태인 행위 그래프 (action graph)로 표현하는 것을 목적으로 한다. 행위 그래프는 동사의 군집을 나타내는 노드와 해당 노드의 발생 순서를 나타내는 벡터로 구성된다.
이 단계에서는 이전 단계에서 추출된 행위 흐름 그래프와 실제 시나리오에서 사용되는 정도에 따라 적용된 실제 패턴을 추출하고 각 패턴에 패턴 점수를 산정하는 것을 목표로 한다. 먼저, 모든 학습 대상 시나리오를 동사 군집의 대표 동사로 치환한다.
이 단계에서는 입력된 여러 시나리오의 각 문장에서 본동사를 추출하는 것을 목적으로 한다. 시나리오 문장에서는 두 개 이상의 동사가 쓰일 수 있다.
Robertson[8]은 이벤트/유스케이스(event/use case) 모델들로부터 공통 요구사항을 추출하는 기법을 제안하였다. 이 연구에서는 유스케이스가 특정 이벤트로부터 시작한다고 가정하고, 여러 이벤트/유스케이스 모델로부터 유사한 이벤트/유스케이스를 추출하여 해당 도메인에 공통적으로 사용되는 이벤트/유스케이스 모델을 추출하는 방법을 소개한다. 이 연구에서는 서점 관리 소프트웨어와 컨설팅 서비스 관리 소프트웨어를 사례로 들고 있는데, 서점관리 소프트웨어의 “책 구매” 유스케이스는 컨설팅 서비스 관리 소프트웨어의 “서비스 구매”와 그룹화 되고, 이를 추상화하여 “고객은 제품을 구매한다”라는 공통 유스케이스로 추출된다.
제안 방법
본 논문은 여러 소프트웨어 시나리오로부터 시나리오 패턴을 추출하는 완전 자동화된 방법을 제안하였다. 그리고 본 논문에서 제안하는 기법은 도메인에 관계없이 학습 후 패턴추출이 가능하다. 만약 특정 도메인에 관한 시나리오 패턴을 추출하고자 할 때는 해당 도메인의 시나리오를 입력하여 추출이 가능하다.
본 논문에서는 기업체에서 작성한 시나리오를 수집하고 제안된 기법을 통해 패턴을 적용하는 방법을 보여준다. 그리고 추출된 패턴을 이용하여 시나리오 상에서 누락된 행위를 찾아주는 과정을 기술함으로써 패턴의 활용 사례를 통해 본 연구의 타당성을 검증한다.
셋째, 이들 군집화를 하나의 방향성 있는 그래프로 표현하고, 각 군집 사이의 가중치를 구한다. 넷째, 작성된 그래프를 실제 시나리오의 흐름과 비교하여 분리 추출하고, 사용빈도나 노드간의 응집도, 패턴의 길이에 유사도에 따라 패턴의 점수를 계산한다.
평균 빈도점수와 평균 상대적 상호연결성은 이 전단계의 행위 그래프에서 산정한 값을 패턴에 구성된 벡터의 점수의 평균으로 구한다. 다시 말해, 네 개의 문장으로 이루어진 패턴의 경우 세 개의 벡터를 갖게 되는데, 이 세 벡터의 빈도점수와 상대적 상호연결성을 각각 평균을 계산한다. 그리고 패턴의 길이 점수는 전체 후보 패턴의 평균 값을 기준으로 한 시그모이드 함수(Sigmoid function)를 이용한다.
시나리오 문장에서는 두 개 이상의 동사가 쓰일 수 있다. 본 논문에서 제안하는 기법은 본동사를 통해 행위를 추출하고 이를 통해 패턴을 식별하는 것을 목적으로 하므로, 시나리오 문장에서 본동사를 추출할 수 있어야 한다. 본동사 추출을 위해 자연어 처리 파서(natural language parser)를 이용한다.
그림 1은 본 논문이 제안하는 기법의 개요를 보여준다. 본 논문에서 제안하는 기법은 사용자와 시스템의 상호 대화로 이루어진 소프트웨어 시나리오 묶음을 입력으로 한다. 첫번째 단계에서는 각 시나리오의 문장에서 본동사를 추출하고, 두 번째 단계에서는 이 각 시나리오의 본동사들을 의미상 유사한 동사들로 군집화 한다.
3장에서 언급한 바와 같이, 행위 그래프의 가중치는 빈도 점수와 상대적 상호연결성을 정규화 하여 산정 한다. 본 사례 연구에서는 빈도 점수와 상대적 상호연결성을 3:7의 비율로 정규화 하였다.
Resnik은 거리를 구하고자 하는 두 단어를 워드넷 트리에서 검색하고 한 단어에서 다른 단어를 찾는데 걸리는 최소의 거쳐 가는 노드의 수를 통해 단어 간의 거리를 계산하는 방법을 제안하였다. 본연구에서는 이를 응용하여 한 단어에서 쓰이는 여러 의미(sense)와 각 의미의 사용빈도를 통해 수식 (1)의 방법으로 단어의 유사도(SIMilarity)를 측정한다. 이 수식을 통해 vx , vy 두 동사의 여러 의미 중 발생 비율과 의미적 유사도를 곱한 값 중 가장 큰 값을 둘 간의 유사도로 산정한다.
둘째, 추출된 동사를 사용 빈도에 따라 분류하고, 자주 사용되는 동사는 단어 유사도 기법을 통해 가까운 동사를 군집화(clustering)한다. 셋째, 이들 군집화를 하나의 방향성 있는 그래프로 표현하고, 각 군집 사이의 가중치를 구한다. 넷째, 작성된 그래프를 실제 시나리오의 흐름과 비교하여 분리 추출하고, 사용빈도나 노드간의 응집도, 패턴의 길이에 유사도에 따라 패턴의 점수를 계산한다.
예를 들어 배리어(Barrier) 패턴은 소프트웨어 실행 시 사전 정의된 행위를 보호해야 하는 요구사항을 의미하고, 토큰(Token) 패턴은 소프트웨어 서비스의 행위에 앞서 승인을 얻는 요구사항을 말한다. 이 논문에서는 열 한 개의 패턴 뿐 아니라 각 패턴간의 관계를 제공한다. 배리어 패턴과 토큰 패턴은 ‘구성 가능한’(may compose) 관계이다.
Mahfouz 외[4]의 연구에서는 서비스 지향 컴퓨팅(service-oriented computing) 시스템에서 발생할 수 있는 공통 요구사항을 패턴으로 제안하였다. 이 연구에서는 열 한 개의 요구사항 패턴을 정의하였다. 예를 들어 배리어(Barrier) 패턴은 소프트웨어 실행 시 사전 정의된 행위를 보호해야 하는 요구사항을 의미하고, 토큰(Token) 패턴은 소프트웨어 서비스의 행위에 앞서 승인을 얻는 요구사항을 말한다.
본 논문에서는 요구사항 시나리오 문장의 동사를 이용하여, 동사의 의미적 유사도에 의한 기계 학습(machine learning)기반의 요구사항 시나리오 패턴 추출 기법을 제안한다. 첫째, 요구사항 사나리오의 문장을 분석하여 문장으로부터 본동사를 추출한다. 둘째, 추출된 동사를 사용 빈도에 따라 분류하고, 자주 사용되는 동사는 단어 유사도 기법을 통해 가까운 동사를 군집화(clustering)한다.
168 의 패턴 점수를 획득하였다. 패턴점수는 앞에서 언급한 바와 같이 세 가지의 수를 정규화 하여 표현하는데 본 사례 연구에서는 빈도 점수, 상대적 상호연결성, 길이 점수를 각각 4:4:2의 비율로 정규화 하였다.
대상 데이터
본 사례연구를 위해 여덟 개의 프로젝트에서 83개의 시나리오를 수집하였다. 표 1은 수집된 프로젝트의 내역을 보여준다.
‘낮은 빈도의 동사’와 ‘높은 빈도의 동사’의 구분은 전체 발생 비율이 1%(615개의 문장 기준 6회) 미만인 경우는 ‘낮은 빈도의 동사’로 정한다. 본 사례연구에서는 총 32개의 군집이 추출되었으며, 표 2는 32개의 군집 중 일부를 보여준다. 예를 들면 첫 번째 줄의 "user pay", "user submit", "user send"는 하나의 군집으로 묶이며, 이 동사가 사용된 문장은 비슷한 행위를 한다고 간주한다.
전 장에서 소개된 방법에 따라 행위 그래프를 기반으로 한 입력 시나리오에서 세 개 이상의 행위로 구성된 가능한 모든 행위 조합을 추출하고 후보패턴을 추출 한다. 본 사례연구에서는 총 54개의 패턴을 추출하였고, 그림 7은 그 일부를 보여준다. 이 그림은 총 아홉 개의 패턴을 보여주는데, 예를 들면 가장 왼쪽 줄의 “user choose- system provide - system log"로 구성된 패턴은 0.
Biddle 외[5]의 연구에서는 필수 유스케이스(essential use case)에서 발생 가능한 대화 형태의 요구 사항 패턴을 제안하였다. 이 논문에서 제안한 패턴은 총 여섯 개 이고 그 내용은 아래와 같다.
이론/모형
다시 말해, 네 개의 문장으로 이루어진 패턴의 경우 세 개의 벡터를 갖게 되는데, 이 세 벡터의 빈도점수와 상대적 상호연결성을 각각 평균을 계산한다. 그리고 패턴의 길이 점수는 전체 후보 패턴의 평균 값을 기준으로 한 시그모이드 함수(Sigmoid function)를 이용한다. 시그모이드 함수를 이용하면 길이가 길수록 최대 값 1에 수렴하는 높은 값을 얻게 된다.
본 연구에서는 동사의 거리를 측정하기 위해 Resnik[9]이 제안한 워드넷(Word-net) [7] 기반의 거리 측정법을 이용한다.
성능/효과
만약 특정 도메인에 관한 시나리오 패턴을 추출하고자 할 때는 해당 도메인의 시나리오를 입력하여 추출이 가능하다. 논문에서 제안하는 기법의 가시성을 위하여 8개의 실제 프로젝트에서 83개의 시나리오를 확보하여 사례연구를 실시하였고, 그 결과 총 54개의 패턴을 추출할 수 있었다. 추출된 패턴을 통해 경험이 적은 컴퓨터공학과 학부생이 작성한 시나리오의 누락된 행위를 찾아주는 사례를 보여주었다.
적용된 두 패턴 모두에서 누락 행위가 발생하였는데, 1번 문장 이후에 ”system provide”가, 3번 문장 이후에 “system display”가 생략 되었다. 본 사례는 추출된 패턴이 시나리오를 검증하는데 유용함을 보여준다.
후속연구
앞에서 언급한 연구들은 모두 구체적은 기법 보다는 개념적 절차를 제시하고 있으며, 적용하기 위해서는 전문가의 판단을 필요로 한다. 그리고 후자 연구의 경우 도메인 모델의 품질 수준에 따라 패턴의 품질도 결정되는 문제와, 추출된 패턴의 적용 도메인이 한정적인 한계점이 있다. 따라서 본 논문에서는 완전히 자동화 되고, 도메인에 제한 없이 사용할 수 있는 시나리오 기반의 요구사항 패턴 추출 기법을 제안하고자 한다.
본 연구의 향후 연구로는 본 논문에서 소개한 기법에 의해 추출된 패턴을 실제 시나리오의 검증에 적용하는 연구를 진행한다. 사례연구에서 개략적으로 보여준 바와 같이 초심자가 입력한 시나리오와 추출된 패턴을 비교 분석하여 누락된 행위가 없는지 확인하고, 적합한 행위를 추천하는 완전 자동화된 기법 제안을 목표로 한다.
사례연구에서 개략적으로 보여준 바와 같이 초심자가 입력한 시나리오와 추출된 패턴을 비교 분석하여 누락된 행위가 없는지 확인하고, 적합한 행위를 추천하는 완전 자동화된 기법 제안을 목표로 한다. 이 연구를 통해 본 논문에서 소개된 기법의 완성도를 한 번 더 검증할 예정이다.
질의응답
핵심어
질문
논문에서 추출한 답변
불완전한 요구사항이 야기하는 문제점은?
특히 불완전한 요구사항은 소프트웨어 프로젝트 실패의 가장 큰 원인으로 꼽힌다. 불완전한 요구사항은 소프트웨어 개발 시 개발자에게 이해 부족을 야기할 뿐 아니라, 소프트웨어 검증 시 에도 모호한 기준을 제공함으로써, 개발 후반부에 납기일 연기 및 비용 증가의 원인이 된다. 요구사항 패턴은 이러한 문제를 극복하는데 도움을 줄 수 있다.
요구사항 패턴을 추출하는 기법 중 S.Ketabchi 외 가 제안한 프로세스는 어떤 것인가?
S.Ketabchi 외[6]는 도메인 모델로부터 요구사항 패턴을 추출하는 프로세스를 제안하였다. 이 프로세스는 먼저 도메인 모델로부터 문제 패턴(problem pattern)을 추출하여 저장소에 저장한다. 이 문제 패턴은 공통 도메인에서 사용하는 공통 비즈니스 규칙을 추출하는데 이 규칙은 비즈니스 규정, 상태, 제한사항들을 포함한다. 이 비즈니스 규칙은 놈(norm)의 형태로 표현되고, 이는 유사한 비즈니스 도메인에서 재사용될 수 있다. 요구사항 패턴을 식별하기 위해 도메인 분석가는 먼저 고객 모델 (stakeholder model)과 프로세스 모델(process model)을 식별한다. 고객모델은 고객을 분류하고 그들의 역할을 나타내고, 프로세스 모델은 고객 모델을 통해 시스템과 고객 사이에 상호작용을 분석한다. 분석된 결과는 각 역할별 고객들에게 해당하는 기능 요구사항과 비기능 요구 사항을 분류하여 놈(norm) 저장소에 저장한다.
요구사항 패턴의 이점은?
요구사항 패턴은 이러한 문제를 극복하는데 도움을 줄 수 있다. 요구사항 패턴은 요구사항 작성과 검토 시 참조모델이 될 뿐 아니라, 검증 기준이 될 수 있으며, 작성자가 누락한 부분을 보완해 줄 수 있다. 이와 더불어 요구사항 작성의 경험이 적은 작성자는 요구사항 패턴을 통해 더 쉽고, 빠르고 정확하게 요구사항을 작성할 수 있다. 본 논문에서는 다양한 요구사항의 시나리오를 통해 공통된 요구사항 시나리오를 추출하는 기법을 제안한다.
참고문헌 (17)
K. E. Wiegers, "Software Requirements", Microsoft press, 2013.
R. L Glass, "The standish report: does it really describe a software crisis?", Communications of the ACM, vol. 49, no. 8, pp.15-16, 2006.
S. Withall, "Software requirement patterns", Pearson Education, 2007.
A. Malfouz, L. Barroca, R. Laney and B. Nuseibeh, "Patterns for Service-oriented Information Exchange Requirements", In Proceedings of the 2006 conference on Pattern Language of Programs, 2006.
R. Biddle, J. Noble and E. Tempero, "Patterns for Essential Use Cases", Proceedings of KoalaPLoP, 2007.
S. Ketabchi, N. K. Sani and K. Liu, "A Norm-based Approach towards Requirement Patterns", In Computer Software and Applications Conference(COMPSAC), 2011.
C. Fellbaum, "WordNet", Wiley Online Library", 1998.
S. Robertson, "Requirements Patterns vis Event/ Use Cases", Proceedings Pattern Languages of Programming, 1996.
P. Resnik, "Using Information Content to Evaluate Semantic Similarity in a Taxonomy", arXiv preprint cmp-lg/9511007, 1995.
T. Pang-Ning, M. Steinbach and V. Kumar, "Introduction to Data Mining", In Library of Congress, 2006.
K. Ko, J. Lee, H. Moon and S. Lee, "Development of Data Fusion Human Identification System Based on Finger-Vein Pattern-Matching Method and photoplethysmography Identification", The International Journal of Internet, Broadcasting and Communication, vol.7, no.2, pp.149-154, 2015.
I. Alexander, "Scenario-driven search finds more exceptions", In Proceedings 11th IEEE International Workshop on Database and Expert System Application, 2000.
S. Withall, "Software Requirement Pattners", Pearson Education, 2007.
X. French, "Software Requirement Patterns". In Proceedings of the 2013 IEEE International Conference on Software Engineering, 2013.
Y. Kim, D. Ko, S. Park and J. Kim. "Requirements Alternative Flow Detection Method Using Use Case Patterns at Use Case Scenario", Journal of KISS : Software and Applications, vol. 40, no. 9, pp. 491-501, 2013.
X.Frach, C.Quer, S. Renault, C. Guerlain and C. Pal;omares, "Constructing and Using Software Requirement Patterns", In Managing Requirement Knowledge, pp. 95-116), 2013.
Y. S. Im, E. Y. Kang, "MPEG-2 Video Watermarking in Quantized DCT Domain," The Journal of The Institute of Internet, Broadcasting and Communication(JIIBC), Vol. 11, No. 1, pp. 81-86, 2011.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.