상세정보
소프트웨어 스펙의 모든 것 - 프로젝트를 성공으로 이끄는 소프트웨어 스펙(SRS) 작성법
- 저자
- 김익환.전규현 지음
- 출판사
- 한빛미디어
- 출판일
- 2021-01-04
- 등록일
- 2021-02-09
- 파일포맷
- PDF
- 파일크기
- 4MB
- 공급사
- 알라딘
- 지원기기
-
PC
PHONE
TABLET
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
프로젝트가 실패하지 않는 답은 소프트웨어 스펙 작성에 있다
소프트웨어 스펙(SRS)은 시작이고 기준이다. 스펙을 제대로 작성하는 것은 프로젝트의 성패를 가를 만큼 중요하다. 스펙을 잘 작성하기 위해서는 개발 문화, 관행, 습관, 프로세스, 원리, 원칙을 알고 접근해야 하며 실전을 통한 노하우 축적이 필요하다. 이 책은 저자들의 수많은 경험을 토대로 여러 유관 분야 이론을 망라하고 스펙 작성 요령을 제시한다. `스펙 작성`의 진짜 의미가 무엇인지 이 책을 통해 알아보길 바란다.
프로젝트의 불확실성을 줄이는 소프트웨어 스펙, 제대로 작성하고 있었을까?
프로젝트의 가장 많은 실패 원인은 스펙과 관련 있다. 소프트웨어 버그의 절반 이상이 부실하거나 잘못 작성된 스펙 때문에 발생한다. 프로젝트 성공률을 높이는 가장 좋은 방법은 스펙을 제대로 작성하는 것이다. 여기서 `제대로`는 `자세히`가 아니다. 어려움과 미지수까지 사실을 그대로 보고, 스펙을 작성하면서 검증해 불확실성을 줄여가는 것이다. 누구나 알고 싶어 하지만 쉽게 알 수 없는 소프트웨어 스펙 작성의 거의 모든 것을 정리했다. 훌륭한 소프트웨어를 만드는 데 힌트가 되기를 바란다.
- 1부 소프트웨어 스펙이란?
소프트웨어 스펙 원리를 이해하고 이를 잘 작성하는 역량을 키우는 방법을 알아본다. 스펙, SRS(Software Requirements Specification)라는 용어는 글로벌 소프트웨어 업계에서 널리 통용되는 표준 용어이며 기능명세서, 시방서 등과는 의미가 다르다.
- 2부 SRS 작성법
실제 SRS 템플릿을 제공하고 각 항목별 작성 내용을 설명한다.
저자소개
서울대학교 공과대학 졸업 후 미국 산호세 주립대학교에서 전산학 학사, 스탠퍼드 대학교에서 전산학 석사를 취득했다. GE, 썬 마이크로시스템즈, GTE Government Systems 등 세계적인 실리콘밸리 기업에서 17년간 소프트웨어 개발 실무 내공을 쌓았으며, 글로벌 기업에 인터넷 통합 메시지 솔루션을 제공하는 `스탠퍼드 소프트웨어(Stanford Software Corp, USA)`를 설립했다. 국내에서는 안철수연구소 부사장 및 CTO를 지내고, 카이스트 소프트웨어대학원 겸임교수를 역임했다. 현재는 다양한 기업을 대상으로 경영/개발 컨설팅을 진행하며 실리콘밸리의 선진 소프트웨어를 전파하고 있다.
『대한민국에는 소프트웨어가 없다』, 『소프트웨어 개발의 모든 것』, 『글로벌 소프트웨어를 꿈꾸다』, 『글로벌 소프트웨어를 말하다, 지혜』를 집필하고 『세상을 바꾼 32개의 통찰』을 번역했으며, 소프트웨어 공학 블로그 ikwisdom.com을 운영한다.
목차
1부 소프트웨어 스펙이란?
1장 소프트웨어 스펙의 개요
1.1 소프트웨어 프로젝트 실패의 원인
1.2 스펙에 대한 오해
1.3 스펙의 역할
1.4 스펙을 제대로 작성하지 않으면
1.5 스펙과 프로젝트의 성공
2장 SRS
2.1 SRS란 무엇인가?
2.2 어떻게 소프트웨어를 빠르게 개발할 것인가?
2.3 스펙 문서의 유형
2.4 요구사항과 스펙의 차이
2.5 스펙 문서에 대한 착각
2.6 스펙인 것과 스펙이 아닌 것
2.7 스펙과 프로젝트 일정의 관계
2.8 스펙과 설계의 구분
3장 스펙 작성의 현주소, 현실과 관행
3.1 현재의 관행과 문제점
3.2 스펙에 대한 잘못된 통념
3.3 부실한 스펙 후 설계는 사상누각
3.4 시간만 있으면 누구나 스펙을 쓸 수 있는가?
3.5 소프트웨어 공학, 약인가? 독인가?
4장 사례 연구
4.1 A사의 해외 프로젝트_부실한 분석에 의한 계약
4.2 B사의 부품 교체_허술한 변경 관리
4.3 C사의 갑을 관계_고객의 의무 소홀
4.4 D사의 SI 수행_분석 역량 부족
4.5 E사의 소프트웨어 개발_있는 것은 소스코드뿐
4.6 F사의 공공 프로젝트_과도한 산출물
4.7 해외 사례_초기 분석 부실
5장 기업 문화
5.1 스펙과 기업 문화
5.2 잘 작성한 스펙의 혜택
5.3 좋은 관행 만들기
5.4 전사 아키텍처 전략을 선도하는 기술위원회
5.5 사수/부사수 시스템 탈피 방법
5.6 스펙을 제대로 작성하려면
6장 프로세스
6.1 소프트웨어 프로젝트의 개발 단계
6.2 스펙 작성 프로세스
6.3 SRS 관점으로 바라본 방법론 비교
6.4 스펙 작성에 시간을 얼마나 할애해야 하는가?
6.5 스펙은 얼마나 자세히 적어야 하는가?
6.6 스펙 리뷰
6.7 코드 리뷰보다는 설계 리뷰, 설계 리뷰보다는 스펙 리뷰
6.8 스펙과 베이스라인
6.9 스펙 변경 프로세스
6.10 종결된 프로젝트의 스펙, 업데이트할 것인가?
6.11 종결된 프로젝트의 스펙 일부 삭제
6.12 대형 프로젝트 분석의 협업
7장 Who?
7.1 스펙은 누가 쓰는가?
7.2 분석 아키텍트의 역할
7.3 분석 아키텍트의 자질
7.4 소프트웨어 개발자는 글을 잘 써야 한다
7.5 문서 작성 기술
7.6 시뮬레이션 능력
7.7 문제 해결 능력
7.8 프로젝트 이해관계자
8장 What?
8.1 why, what, how
8.2 목표와 범위 정의하기
8.3 요구사항에 우선순위 부여하기
8.4 외주 시 외주 업체에 전달할 문서는?
8.5 스펙 체크리스트의 효용성
9장 How?
9.1 스펙의 재료
9.2 스펙 가독성 높이기
9.3 문장 바르게 쓰기
9.4 스펙 작성 팁
9.5 스펙 재사용하기
9.6 소스코드로 스펙 작성하기
9.7 유닛 테스트로 스펙 작성하기
9.8 중복 최소화하기
9.9 품질 특성 명시하기
9.10 프로토타입 만들기
9.11 스펙을 적기 위해서는 why를 알아야 한다
9.12 훔쳐보기는 이제 그만
9.13 인터페이스 개선하기
9.14 인터페이스 정의하기
10장 도구
10.1 SRS 작성을 돕는 도구
10.2 UI 작성 방법
10.3 스펙 문서의 템플릿
2부 SRS 작성법
1장 Introduction(개요)
1.1 Purpose(목표)
1.2 Product Scope(범위)
1.3 Document Conventions(문서 규칙)
1.4 Terms and Abbreviations(정의 및 약어)
1.5 Related Documents(관련 문서)
1.6 Intended Audience and Reading Suggestions(대상 및 읽는 방법)
1.7 Project Output(프로젝트 산출물)
2장 Overall Description(전체 설명)
2.1 Product Perspective(제품 조망)
2.2 Overall System Configuration(전체 시스템 구성)
2.3 Overall Operation(전체 동작방식)
2.4 Product Functions(제품 주요 기능)
2.5 User Classes and Characteristics(사용자 계층과 특징)
2.6 Assumptions and Dependencies(가정과 종속관계)
2.7 Apportioning of Requirements(단계별 요구사항)
2.8 Backward Compatibility(하위 호환성)
3장 Environment(환경)
3.1 Operating Environment(운영 환경)
3.2 Product Installation and Configuration(제품 설치 및 설정)
3.3 Distribution Environment(배포 환경)
3.4 Development Environment(개발 환경)
3.5 Test Environment(테스트 환경)
3.6 Configuration Management(형상 관리)
3.7 Bugtrack System(버그트래킹 시스템)
4장 External Interface Requirements(외부 인터페이스 요구사항)
4.1 System Interface(시스템 인터페이스)
4.2 User Interface(사용자 인터페이스)
4.3 Hardware Interface(하드웨어 인터페이스)
4.4 Software Interface(소프트웨어 인터페이스)
4.5 Communication Interface(통신 인터페이스)
5장 Performance Requirements(성능 요구사항)
5.1 Throughput(작업 처리량)
5.2 Concurrent Session(동시 세션)
5.3 Response Time(대응 시간)
5.4 Performance Dependency(성능 종속관계)
5.5 Other Performance Requirements(그 외 성능 요구사항)
6장 Non-functional Requirements(비기능 요구사항)
6.1 Safety(안전성 요구사항)
6.2 Security(보안 요구사항)
6.3 System Attributes(소프트웨어 시스템 특성)
6.4 Logical Database Requirements(데이터베이스 요구사항)
6.5 Business Rules(비즈니스 규칙)
6.6 Design and Implementation Constraints(설계와 구현 제한사항)
6.7 Memory Constraints(메모리 제한사항)
6.8 Operations(운영 요구사항)
6.9 Site Adaptation Requirements(사이트 적용 요구사항)
6.10 Internationalization Requirements(다국어 지원 요구사항)
6.11 Unicode Support(유니코드 지원)
6.12 64bit Support(64비트 지원)
6.13 Certification(제품 인증)
7장 Functional Requirements(기능 요구사항)
8장 Change Management Process(변경 관리 프로세스)
9장 Document Approvals(최종 승인자)