본문 바로가기

Software Engineering

[소프트웨어 공학] Specification 명세화의 4단계

반응형

 

 

 

0. Specification 명세화에 대해 

 

소프트웨어 개발 과정에는 Specification Development Validation Evolution 이 네 가지 단계가 포함되어 있습니다. 그 중 첫 번째인 Specification 명세화에 대해 이번 글에서 알아보려고 합니다.

 

요구사항 명세화(Specification) 단계에서는 서비스의 본질이 무엇인지, 어떤 기능을 포함해야 하는지, 그리고 시스템을 개발하고 운영하는 데 있어서의 제약사항이 무엇인지를 명확하게 정의합니다. 요구사항 명세화를 통해 개발팀은 프로젝트의 기본 틀을 설정하고, 이는 이후의 디자인과 개발 과정 전반에 걸쳐 지침서 역할을 합니다. 만약 이 초기 단계에서 요구사항이 잘못 정의되면, 프로젝트의 나머지 부분도 잘못될 가능성이 높기 때문에, 이 단계의 정확성은 프로젝트 성공에 결정적인 영향을 미칩니다.


 

1. 명세화의 4단계

 

소프트웨어 명세화 단계는 프로젝트의 서비스 목적, 기능, 그리고 개발 및 운영 시의 제약사항을 문서화하는 과정이라고 했습니다. 이 단계에는 네 가지 필수 활동이 포함되어 있습니다. 각 활동에서는 활동에 맞는 결과물도 함께 나오게 됩니다. 

a. 첫 번째 활동은 타당성 조사(feasibility study)로, 한글로 타당성 조사 라고 합니다. 이는 프로젝트가 실행할 가치가 있는지 여부를 평가하는 단계입니다. '비즈니스 측면 가능성' '기술적으로 가능한건가' '예산에 대해 실현 가능한가 ' '법적으로 문제 없는가' 등의 문제와 관점 측면에서 분석을 진행하고, 문제가 없으며 가치가 있다고 판단되면 다음 단계로 넘어갑니다. 이 타당성 조사 단계에서 이러한 검토를 한 결과를 '타당성 리포트' 또는 feasibility report에 정리하게 됩니다. 

b. 두 번째 활동은 요구사항 획득과 분석(requirements elicitation and analysis)입니다. 이 과정에서는 시스템의 필수 구성 요소와 우선 순위를 분석합니다. 이 분석의 결과로는 완성된 시스템 모델(system models)이 있으며, 시스템 모델은 참여자들에게 프로젝트의 구조를 명확하게 해줍니다.

c. 세 번째 활동은 요구사항 명세(requirements specification)입니다. 거대한 프로젝트일수록 개발자뿐만 아니라 다양한 이해관계자가 참여하게 됩니다. 특히 모든 프로젝트는 사용자가 있기 마련입니다. 이러한 이해관계자 특히 사용자의 요구사항을 확인하는 단계가 요구사항 명세 단계입니다. 사용자 요구사항(user requirements)은 주로 클라이언트와 관리자가 이해할 수 있도록 추상적으로 기술되며, 이는 개발자가 시스템 요구사항(system requirements)으로 보다 상세하게 다듬어야 합니다. 유저의 요구사항은 추상적이기 때문에 client와 manager가 이해할 수 있게끔 작성해야 합니다. 이 단계의 결과물은 user and system requirements가 됩니다. 

d. 마지막 활동은 요구사항 검증(requirements validation)으로, 이는 최종 요구사항 문서(requirements document)를 작성하는 단계입니다. 이 문서는 프로젝트의 requirement specification을 법적 근거로 사용할 수 있으며, 때로는 contracted document라고도 불립니다. 이러한 과정을 통해 프로젝트의 기초가 견고하게 다져지며, 개발 단계로의 원활한 전환을 보장합니다. 

 

 

 

이후 이 요구사항을 바탕으로 이후 단계인 디자인(Design)이나 설계(Implementation) 단계에서는 수집된 요구사항을 실현할 수 있는 소프트웨어의 구조를 만드는 작업이 이루어집니다. 이때, 개발자들은 요구사항을 충족시키기 위한 아키텍처와 구성 요소들을 결정하고, 어떻게 각 부분이 통합될지를 계획합니다. 효과적인 설계 없이는 개발 과정이 원활하게 진행될 수 없습니다. 이처럼 전 단계에서 효과적이고 정확한 수행은 다음 단계, 그리고 최종 제품이 품질에 영향 주고 결정 짓게 된다는 것을 느낄 수 있습니다. 

 

 

반응형