rlarudals 2024. 7. 31. 20:55

SRS (Software Requirements Standards, 요구사항명세서)

- 요 녀석은 말 그대로 소프트웨어가 만족하는 요구사항을 명세한 문서이다.

 

작성해야하는 이유들

  • 프로젝트 전체 규모를 파악
  • 구현 가능 여부에 대한 논의
  • 커뮤니케이션 비용 절약
  • 프로젝트 일정 계획 수립

 

좋은 명세서의 특징들

  • 요구사항 명세서를 읽는 작업자(개발자, 디자이너 등)가 이해하기 쉬워야 한다.
  • 소프트웨어 개발을 주도하는 기술진들도 반드시 참여야해야합니다.
  • 무엇을 어떻게 구현되어야 하는지 명확하게 작성한다.
  • 하나의 요구사항에 여러가지(복수) 요구사항을 작성하지 않는다.
  • 다른 요구사항 모순 또는 중복되지 않게 한다.
  • 애매한 단어를 사용하지 않고 명확하게 기재한다. ( ~ 있으면 좋겠다 → ~ 기능 필요) 오해하지 말아야 할 것이 명령하는 것이 아니고 의견을 모호하게 하지 말고 명확하게 표현하라는 의미이다.
  • 꼭 필요하고 중요한 요구사항은 표시하는 것이 좋다. 다만 모든 요구사항에 남발 해서는 안된다.
  • 동일한 용어를 사용한다. 댓글, 코멘트, 덧글과 같이 모두 같은 의미를 다르게 표현하지 말라는 의미이다.
  • 난이도가 있는 기능이거나 프로젝트 기간이 짧아 모든 요구사항을 구현하기 어려울 상황일 경우, 대체 가능한 다른 방법도 함께 기술하여 전달하는 것이 좋다. 

출처https://korea-sw-eng.blogspot.com/2015/12/sw_8.html

SDS (Software Design Standards, 소프트웨어 설계 사양서)

- 소프트웨어의 전반적인 설계에 대해 상세하게 명세한 문서

- SDS는 소프트웨어 설계 정보를 전달하기 위한 매체로 사용되고 시스템의 설계도나 모델로 간주 될 수 있다.

 

SDS의 중요성

 

  • 일관성 확보: 모든 개발자가 동일한 기준을 따르도록 하여 일관된 소프트웨어를 개발할 수 있습니다.
  • 효율성 증대: 명확한 설계 기준을 통해 개발 과정에서의 혼란을 줄이고 효율성을 높입니다.
  • 품질 보장: 고품질의 소프트웨어를 개발할 수 있도록 도움을 줍니다.
  • 유지보수 용이성: 표준화된 코드와 구조로 인해 유지보수 작업이 용이해집니다.
  • 협업 촉진: 다양한 팀과의 협업 시 공통된 기준을 제공하여 원활한 협업을 도모합니다.

SCS (Software Code Standards, 소프트웨어 코드 사양서)

- 소프트웨어 개발에서 코드 작성 시 준수해야 할 표준과 규칙을 정의한 문서

- SCS는 코드의 일관성, 가독성, 유지보수성을 높이는 데 중요한 역할

 

SCS의 주요 구성 요소

  1. 코딩 스타일
    • 들여쓰기 및 공백 사용: 코드의 가독성을 높이기 위해 일관된 들여쓰기와 공백 사용 규칙을 정의합니다.
    • 주석 작성: 코드의 주요 부분이나 복잡한 로직에 대해 주석을 다는 규칙을 설정합니다.
    • 명명 규칙: 변수, 함수, 클래스 등의 명명 규칙을 명확히 정의하여 코드의 이해를 돕습니다.
  2. 코드 구조
    • 파일 및 디렉토리 구조: 코드 파일과 디렉토리를 어떻게 구성할 것인지에 대한 규칙을 설정합니다.
    • 모듈화: 코드를 기능별로 모듈화하여 유지보수와 재사용성을 높이는 방법을 정의합니다.
  3. 에러 처리
    • 예외 처리: 예외 상황을 어떻게 처리할 것인지에 대한 규칙을 명시합니다.
    • 로그 작성: 에러 발생 시 로그를 어떻게 기록할 것인지에 대한 규칙을 설정합니다.
  4. 보안 규칙
    • 입력 검증: 외부 입력을 어떻게 검증할 것인지에 대한 규칙을 정의합니다.
    • 데이터 보호: 민감한 데이터의 보호 방법과 암호화 규칙을 설정합니다.
  5. 성능 최적화
    • 코드 최적화: 성능을 고려한 코드 작성 방법과 최적화 규칙을 명시합니다.
    • 리소스 관리: 메모리, CPU 등의 리소스를 효율적으로 관리하는 방법을 정의합니다.
  6. 테스트 코드
    • 단위 테스트: 각 모듈에 대한 단위 테스트 작성 규칙을 설정합니다.
    • 통합 테스트: 통합 테스트 방법과 규칙을 정의합니다.

scs의 중요성

  • 코드 일관성 유지: 모든 개발자가 동일한 스타일과 규칙을 따름으로써 코드의 일관성을 유지할 수 있습니다.
  • 가독성 향상: 명확한 규칙을 통해 코드의 가독성을 높여 다른 개발자가 쉽게 이해할 수 있습니다.
  • 유지보수 용이성: 일관된 코드 구조와 명명 규칙으로 인해 유지보수가 쉬워집니다.
  • 협업 효율성 증대: 공통된 코드 표준을 통해 팀원 간 협업이 원활해집니다.
  • 품질 향상: 코드의 품질을 높이고 버그 발생을 줄여 안정적인 소프트웨어를 개발할 수 있습니다.

솔직히 저걸 본 나도 위의 내용들이 복잡하기만 하다. 

아니 솔직히 머릿속에 안들어온다. 그래서 쉽게 요약해봤다

.

 

  • SRS는 "무엇을" 개발할 것인지에 대한 요구사항을 정의
  • SDS는 "어떻게" 개발할 것인지에 대한 설계 기준과 방법을 정의
  • SCS는 "어떻게" 코드를 작성할 것인지에 대한 구체적인 코딩 규칙을 정의

이렇게 생각하면 조금 편할 수 도 있다.

솔직히 저 가운데 글자 R,D,C 만 다른건데 뭐 이리 내용이 훅훅 바뀌는지 참 알기 힘든것 같다.

하지만 어쨋든 나도 이 분야를 초보자여도 배우고 있으니 나중에 가면 필요한 내용들이다.