MACE's life blog

요구공학(Requirement Engineering) 본문

비즈니스&IT

요구공학(Requirement Engineering)

mace-lifelog 2011. 4. 2. 16:04
반응형
3일간, TTA의 SW 테스트 전문가 양성교육을 듣고 왔다.
기획자가 무슨 테스트냐 라고 할 수도 있겠지만, 최초 프로젝트의 사이징을 PM이나, 기획자가 중심이 되어 한다는 것에 비추어 보았을 때, 어느정도 감을 잡고 하는 것이 중요하다고 생각한다.

여하튼, SW 테스트 자동화 방안을 알려주시던 분께서 하신 부분이다.
테스트를 하는 행위는 품질을 높이는 것이 아닌, '측정'을 할 수 있도록 하는 부분이라는 것과, 궁극적인 SW 품질을 높이기 위한 방안으로 '요구공학'이 대두되고 있다는 것이다.

요구사항.
고객의 니즈. 혹은 회사 내부의 필요성 등은 모두 요구사항으로 정리되어, 실현 혹은 구현을 하게 된다.
비단, SW 뿐만 아니라, 마케팅 활동이나, 기타 모든 것들은 요구사항이 있고, 목적과 목표가 있게된다. 중요한 것은 SW의 경우 최초 요구사항이 정해진 이후에 해당 요구사항에 '맞도록' 제작되기에, 프로젝트 마지막 이나 완료단계에서 요구사항이 변경되된 다는 것은 큰 이슈가 아닐 수 없다.
 이를 테면, 수공예 원목가구를 요구하였는데, 납품 몇 일전 펄이 들어간 검정색으로 변경해달라고 하거나, 구조(설계) 자체를 변경해달라고 하는 행위 정도로 볼 수 있겠다. 
 
 건축이나 기타 눈에 보이는 현물에 관련된 산업군의 경우에는, 이런 부분들이 상대적으로 덜 할 수 있겠으나, SW의 비가시성과 추상성으로 인하여, 요구사항의 변경이 설계 및 구조 자체를 뒤집어 놓는 다는 걸 인지하지 못하는 데에도 문제가 있으니, 어찌 통탄할 일이 아니겠는가. 이런 현실 세계(?)의 상황에 따라 보다 효과적으로 SW 의 품질을 높이기 위하여, 최적의 요구사항을 추출하고, 커뮤니케이션/관리하는 요구공학이 대두되었다.

아래는 요구공학의 정의와 관련 자료들을 모아둔 것들이다. 시간이 되면, 다시 한번 정리하는 것이 좋을 듯하다.

요구공학(Requirement Engineering)은 시스템 요구사항 문서를 생성, 검증, 관리하기 위하여 수행되는 구조화된 활동의 집합이다.



정의

  • 요구사항의 획득, 분석, 명세, 검증 및 변경관리등에 대한 제반 활동과 원칙에 대한 체계적이고 총괄적인 접근하여 일관성있는 요구사항 생성 및 관리를 위하 체계적, 반복적으로 수행한다.
  • 요구사항 관리에 포함되는 모든 생명주기(SDLC)활동과 이를 지원하는 프로세스를 포함한다.
  • 시스템 요구사항 문서를 생성,검증,관리하기 위하여 수행되는 구조화된 활동의 집합이다.
  • 요구사항 명세를 최종 산출물로 생성한다.
     

목적

  • 이해관계자 사이에 효과적인 통신수단을 제공 및 요구사항에 대한 공통 이해 설정
  • 요구사항 손실 방지 및 에러 감지로 불필요한 비용 절감
  • 구조화된 요구사항으로 요구사항 변경 추적을 가능하게 함
  • CMM level 2 달성 또는 business 수행 방법 개선
  • PM에 필수적 : 프로젝트 비용 초과와 기간 지연 방지
     

프로세스 구성

요구공학의 프로세스는 요구사항 개발요구사항 관리로 구성된다.
 

요구사항 개발: CMM Level 2 프로세스 영역(PA)

  1. 요구사항 추출 : 이해관계자와 개발자가 함께 이해관계자의 Needs와 시스템 개발시 제약사항을 발견하여 검토하고 명확화하는 이해과정이다.
  2. 요구사항 분석 : 추출된 요구사항을 분석하고 요구사항을 구조화고 각종 대안들을 결정하는 피드백역할 수행을 포함한다.
  3. 요구사항 명세화 : 분석 과정에서 선별된 기능을 기반으로 구축된 시스템의 외부
  4. 요구사항 확인(검증) : 요구사항의 승인기준 = 문서화, 명확성, 간결성, 이해성, 시험성, 사용성, 추적성, 검증성
     

요구사항 관리 : CMMI Level 3 프로세스 영역(PA)

  • 요구사항 협상, 요구사항 기준선(BaseLine), 요구사항 변경관리, 요구사항 확인을 수행한다.
     

요구공학 관리 기법

  1. 시나리오/Goal 기반 요구사항 획득
    • 기능적 요구사항과 비기능적 요구사항을 명확하게 추출
    • 요구사항의 품질속성(Quality Attribute)을 명확화
  2. Use Case를 이용한 요구사항 모델링
    • 시스템 기능적 측면과 관련된 요구사항들의 유스케이스를 이용하여 구조화
    • 유스케이스 다이어그램, 유스케이스 명세서로 구성됨
  3. 품질 요구사항을 위한 자동 분류
    • 분류언어와 유사도를 이용한 2단계 분류 기법 사용
  4. 유사도 측정을 이용한 요구사항 변경관리
    • 공기 정보(co-occurrence information)를 이용하여 문서간 유사도를 측정(슬라이딩 윈도우 기법, Salton의 코사인 계수 이용)
    • 문서내 일관성 결여 문장과 불명확성을 가진 문장을 찾아 주는 통합 기법
       

참고 자료

  • Karl E. Wiegers. Software Requirements, 2nd Ed.
  • Karl E. Wiegers. More About Software Requirements: Thorny Issues and Practical Advice
  • 박수용, 황만수, 박수진, 서성숙, 나호영 “실무적 요구공학 공정”.



[관련 논문자료]

매트릭스 기반의 요구사항 분류방법 = Matrix Based Requirements Classification
정찬일; 학위논문(석사)-- 고려대학교 컴퓨터정보통신대학원 : 디지털정보공학과, 2009.2 

http://www.riss.kr/link?id=T11679938 
 
  

요구사항관리가 중소 벤처기업의 성과에 미치는 영향에 관한 연구 = (A)Study on the Effect of Requirements Management on Corporate Performance of Small and Medium Business and Venture Corporate
김열호;  학위논문(석사)-- 건국대학교 대학원 : 벤처전문기술학과, 2008. 8
http://www.riss.kr/link?id=T11436669 
 
  

소프트웨어 요구사항 추출 프로세스와 기법 = A Process and a Technique for Software Requirements Elicitation
김지혁; 학위논문(박사)-- 숭실대학교 대학원 : 컴퓨터학과(일원), 2010. 2
http://www.riss.kr/link?id=T11921857
  
  

요건공학을 통한 TRIZ 문제정의 = Requirements engineering approach to the problem formulation in TRIZ
정진하;  학위논문(박사)-- 아주대학교 : 시스템공학과, 2011. 2
http://www.riss.kr/link?id=T12302746











반응형
Comments