[TIL] 내일배움캠프 87일차_[SA문서] SRS/SDS/SCS
👀Today I Learn
SRS(Software Requirement Specification)
- Software Requirement Standards / ‘요구사항명세서’라고도 함
- 작성 주체자는 주요 이해관계자(고객사, 기술소장, SW부장(팀장/PM), HW부장(팀장/PM), 전략부장 등)이 함께 참여하여 작성
주요 내용
- Word/Excel/한글 등 문서형태로 작성
- 소프트웨어 개요
- 개발하고자하는 소프트웨어의 전반적인 내용을 요약
- 소프트웨어의 소개
- 소프트웨어의 목적
- 주 사용자에 대한 설명
- 개발하고자하는 소프트웨어의 전반적인 내용을 요약
- 유저 시나리오
- 사용자가 해당 소프트웨어를 사용하기 위한 일련의 과정
- 목표 시나리오: 개발자의 의도대로 목표까지 사용되는 시나리오
- 경험 시나리오: 사용자가 실제 소프트웨어를 사용하며 생성되는 여러가지 과정
- 사용자가 해당 소프트웨어를 사용하기 위한 일련의 과정
- 와이어프레임
- UX를 고려하여 만든 UI로 각 인터페이스가 어떤 역할을 하는지, 대략적인 모양, 색깔, 위치 등 기준을 나타내는 문서
-
예시
- 구동 환경
- 해당 소프트웨어가 구동되기 위한 물리적, 논리적 조건을 설명
- 요구 성능
- 해당 소프트웨어가 원할하게 처리해야하는 목표 요구치를 의미
-
예시
- 최대 10만명의 동시 접속자를 처리할 수 있어야한다. - 결과값은 최대 15초를 넘기지 않고 결과값을 도출해야한다. - 비교군 10,000개에 대해 예측률이 최소 95% 이상이여야한다. - 최대 2페타바이트의 데이터를 수용 및 처리할 수 있어야한다. - 해당 기기는 50도 이상에서도 정상작동 해야한다.
- 제한 사항
- 해당 소프트웨어가 원할하게 사용되기 위한 제한 사항을 의미
- 이 사항에 대해서는 기술진들이 이해관계자들에게 제한 사항에 대해충분히 납득할 수 있도록 설득해야하는 상황이 올 수도 있음
-
예시
- 해당 기기는 80°C 이하에서 작동해야한다. - 방수 터치 패드는 표면으로부터 수심 1m까지만 사용해야한다. - 최대 접속량은 8만명으로 제한한다. - 인터넷익스플로 브라우저를 통한 접속에 대해서는 지원하지 않는다.
SDS (Software Design Specification)
- Software Design Standards / ‘설계사양서’ 라고도 함
- 작성 주체자 SW부장(팀장/PM)과 SW부서원(팀원)이 함께 작성
- 다른 사람도 이해할 수 있게 작성하여야 함
주요 내용
- Word/Excel 등 문서형태로 작성
- 와이어프레임
- UX를 고려하여 만든 UI로 각 인터페이스가 어떤 역할을 하는지, 대략적인 모양, 색깔, 위치 등 기준을 나타내는 문서
- 단, 여기서는 최대한 개발자의 의도보다 SRS문서에 따른 와이어프레임의 내용을 적용
- 개발 환경
- 해당 소프트웨어를 개발하기위한 물리적/논리적 환경을 의미
- 예시
```
- 프로그래밍 언어는 python 3.10.8을 적용한다.
- IDE는 vscode 또는 pycharm을 사용한다.
- SQL은 SQLite 3.46을 적용한다. ```
- 디자인 패턴
- 어떤 구조로 구현할것인지 정의
- MTV 패턴을 적용
- SDS는 기술진을 위한 문서이기에 자세한 설명을 작성하지 않아도 될 것같지만 반드시 각 명칭에 대해 옳바른 정의 및 설명을 거의 전부 써주어야 함
- 어떤 구조로 구현할것인지 정의
- 연계 기술
- 함께 연계되는 기술들은 어떤것들이 있는지 작성
- Tensorflow 2.0
- ChatGPT-4
- 주요 기술들과 함께 개발 언어와 SQL에 대한 내용도 함께 포함하여 작성
- 함께 연계되는 기술들은 어떤것들이 있는지 작성
- 구동 환경
- 본 소프트웨어가 구동되기 위한 환경에 대해 설명
- Windows 8~10
- IOS 15.1~17.5
- 본 소프트웨어가 구동되기 위한 환경에 대해 설명
- API 명세서
- 사용되는 메소드에 대한 이름, 기능, url, end-point, 목적, 필요 매개변수 등 모든 사항을 표 형태로 기재
- 표 형식의 작성 폼에는 반드시 ID 값이 들어가야 하며 이 ID 값은 분류 CODE를 의미
- 분류 CODE는 문서상에서 해당 항목을 식별하기 위한 식별자
- 대분류, 소분류 등등 세세할수록 좋음!!
- UML (Unified Modeling Language, 통합 모델링 언어)
- 그림과 관계도를 그려서 누구나 쉽게 알아볼 수 있도록 하는 다이어그램
- 클래스 다이어그램
-
클래스간 어떤 관계를 나타내고 있는지, 어떤 객체를 왜 어떻게 사용하는지 표현하는 다이어그램을 의미
-
- ERD(Entity Relationship Diagram, 개체 관계 다이어그램)
-
DB에서 각 개체 간에 어떤 관계를 나타내는지 표현한 다이어그램
-
- 파일 구조
- 소프트웨어의 전반적인 파일 구조를 설명
- 예시
├── 📂static/ │ ├── 📂css/ │ ├── 📂js/ │ ├── 📂images/ │ └── ... ├── 📂media/ │ ├── 📂profile_pictures/ │ ├── 📂documents/ │ └── ...
- 반드시 각 폴더 및 파일이 어떤 역할을 하는지 설명해야 함
SCS (Software Code Standards)
- ‘표준코딩지침서’라고 하지만 한국말로는 불리는 이름이 회사마다 다름
- ’표준코딩규칙’, ‘코딩지침서’ 등등 → 의미는 전부다 동일
-
코딩 스타일에 대해 통일시키는 것
- 작성 주체자는 SW부장(팀장/PM)이 작성
- SCS문서는 오로지 SW부서를 위한 문서이므로 일반적으로 타 부서의 이해를 돕기위한 문구는 작성하지 않아도 됨
주요 내용
- Word/Excel 등 문서형태로 작성
- 개발 환경, 프로그래밍 언어
- 개발 방식
- 보통 디자인 패턴과 파일 구조 등 개발 하기 위한 공통된 방식을 정의
- 코드 컨벤션
- 소스코드를 작성할 때 공통된 방식으로 작성하도록 정의
- 이슈 처리 방법
- 프로그램적인 문제가 발생하였을 때 어떻게 대응하는지에 대해 정의
- 형상 관리에 관한 전반적인 내용
- 형상 관리 주기, commit 컨벤션 등 전반적인 내용을 정의
💡Today I Thought
오늘의 체크리스트
- 알고리즘 코드카타 317
- SQL 코드카타 112
- LangChain 코드 Streamlit 구현
- 로그인 인증 기능 추가
- 사이드바 UI 변경
- TIL 작성
- WIL 작성
회고
오늘도 이렇게 저렇게 하루 마무리! 어제 잠을 제대로 못잤는지 너무 피곤해서 아침부터 커피☕ 드링킹해버렸다. 하루종일 LangChain 코드에 몰입해서 아직도 눈앞에 코드가 아른아른..ㅎㅎ
댓글남기기