본문 바로가기
프로그래밍/Code Craft

[5부 프로세스의 일부] Chapter19 규격화하기

by Ohdumak 2017. 11. 28.
728x90

소프트웨어 규격서 작성하기

 

소프트웨어 규격서(specification): 프로그램이 어떻게 설계되고 구축될 것인지를 정의

 

규격서란 무엇인가?

우리가 영리하게 일을 하게 만들고, 나은 소프트웨어를 만들 있게 도와준다

규격서는 내에서의 그리고 사이에서의 의사소통의 형태이다

 

안전하고

손실되거나, 잊혀지거나, 잘못 기억될 가능성이 없어진다

접근하기 쉽고

모든 정보가 알려진 위치에 기록되기 때문에 편리하다

정확하게

 

규격서의 유형

여러 가지 유형의 규격서는 소프트웨어 프로세스의 중간에서 각각 관문을 형성한다

요구 규격서

소프트웨어 개발 프로세스가 완전히 붕괴되고, 다른 모든 규격서들이 사라져 버리더라도 당신은 문서를 끝까지 사수해야 한다

소프트웨어가 해야 일이 무엇인지, 기준에 맞는 구현이 무엇인지 분명하게 식별하는 문서

기능 요구사항, 성능 요구사항, 상호운영성의 요구사항, 미래의 동작에 대한 요구사항을 고려해야 한다

고객은 반드시 요구 규격서에 동의하고 사인을 해야 한다

기능 규격서

관찰이 가능한 소프트웨어의 동작에 대해 기술한다

시스템 아키텍처 규격서

소프트웨어 솔루션의 전체 모습과 구조에 대해 묘사한다

사용자 인터페이스 규격서

인터페이스 관례와 인터페이스의 상징성을 기술하고, 시스템 기능의 상호 작용이 사용자에게 어떻게 보일지를 보여준다

설계 규격서

컴포넌트의 내부 설계를 기록하는 문서

코드를 작성할 사람과 유지보수할 사람에게 중대한 정보

테스트 규격서

소프트웨어의 특정 부분에 대한 테스트 전략을 기술

 

규격서가 포함해야 하는 것은

정확하고 이해하기 쉽고 완전하고 검증이 가능하고 수정하기 쉽고 스스로를 설명하고 추적이 가능한

 

규격서 작성의 프로세스

  1. 문서 작성을 시작할 사용할 적절한 문서 템플릿을 고르자
  2. 문서를 작성하자
  3. 문서를 리뷰되도록 하자
  4. 문서에 대한 동의를 받고 다음 독자들에게 릴리즈하라
  5. 나중에 문제가 발생하면 규격서의 변경을 요청하고 제기하고, 수정의 결과가 자신의 개발 작업 범위에 어떻게 영향을 미치는지 반드시 알아두자

 

우리가 규격서 작성을 하는 이유는?

규격서 작성을 회피하는 것은 위험하고 프로답지 못한 행동이다. 규격서를 제대로 작성할 시간이 없다면 대게 코드를 작성할 시간도 없을 것이다

 

좋은 프로그래머는…

  • 규격서의 중요성을 알고 있고, 규격서를 이용해서 자기가 개발 생활을 편하게 만든다
  • 문서의 적절한 수준을 알고 있다
  • 자신의 문서 작성 스킬을 향상시키고 싶어 하고, 리뷰와 연습할 기회를 쫓아다닌다

나쁜 프로그래머는…

  • 설계, 문서, 리뷰에 대한 생각을 하지 않고 코딩으로 곧장 다이빙한다
  • 자기가 쓰는 텍스트에 대해서 생각을 하지 않는다; 구조도 없고, 따라가기도 힘든 규격서를 만들어 낸다
  • 문서 작성을 피하려고 하고, 따분하고 무의미한 일이라고 생각한다


728x90

댓글