• Software Requirement 소프트웨어 요구사항 3
  • 모든 프로젝트 이해관계자가 알아야 할 요구공학의 정석과 실천법

  • 칼 위거스, 조이 비티 지음
  • 최상호, 임성국 옮김

  • IT Leaders 시리즈_026
  • ISBN: 9791158390594
  • 42,000원 | 2017년 04월 28일 발행 | 752쪽



모든 소프트웨어 프로세스 개선에서 요구사항 관례 개선이 가장 유익한 결과다. 이 책에서는 요구사항 관례 개선을 위해 현장에서 실질적으로 도움이 되는 입증된 기법들을 설명한다. 효율적인 요구공학 방법을 적용한 수십 개의 도구를 제공하며, 이러한 도구를 통해 의사소통을 용이하게 한다.

이 책의 목표는 소프트웨어 제품 개발 주기에서 요구사항 도출 및 분석, 요구사항 명세서 작성 및 검증, 요구사항 관리에 사용하는 프로세스를 개선할 수 있도록 돕는 것이다. 소프트웨어를 포함한 모든 시스템의 요구사항을 정의하고 이해하는 데 참여하는 누구든지 이 책에서 유용한 정보를 찾을 수 있을 것이다.

 

추천사

"『소프트웨어 요구사항, 제3판』은 여러분이 접할 수 있는 가장 귀중한 요구사항 안내서다. 위거스와 비티는 오늘날의 비즈니스 분석가가 알고 있어야 하는 전반적인 실천 지침을 다룬다. 여러분이 이미 요구사항 명세서의 베테랑이든 아니면 첫 프로젝트에 참여한 초심자이든 항상 책상에 두거나 들고 다닐 필요가 있는 책이다."

-- 개리 K. 에반스(Gary K. Evans), 애자일 코치 겸 유스케이스 전문가, Evanetics, Inc.

 

"비즈니스 분석의 고전 중 하나로서, 제3판은 해당 분야의 최신 동향을 추적하는 놀라운 일을 해냈다."

-- 케빈 브레넌(Kevin Brennan), 국제 비즈니스 분석 협회(IIBA, International Institute of Business Analysis) 최고 비즈니스 분석가 겸 수석 부사장

요구공학의 검증된 실천 지침 및 최신 내용이 담긴 고전!

요구공학 고전의 세 번째 판이 새로운 주제와 예시, 통찰력과 함께 완전히 탈바꿈했다. 소프트웨어 요구사항 커뮤니티의 두 대가의 안내를 통해 모든 요구사항 개발 및 관리 활동을 포괄하는 최신 사례 및 도구를 접할 수 있을 것이다. 이러한 실용적이고 현실적인 기술을 적용하면 더 나은 정확한 솔루션을 제공하면서 비용과 유지보수, 재작업을 줄일 수 있다.

★ 여러분의 팀을 향상시키는 방법 ★

  • 주요 이해관계자 식별 및 협력
  • 비즈니스 목표에 중점을 둔 요구사항 도출 및 분석
  • 요구사항의 문서화 및 우선순위 할당, 유효성 검사, 재사용
  • 요구사항 프로토타이핑 및 시각적 모델 구현
  • 변경 요청, 범위 추가, 요구사항 위험 관리
  • 고객의 품질 기대치 이해 및 구체화

★ 본 개정판의 새로운 내용 ★

  • 애자일 프로젝트에 특정 실천 지침을 적용하기 위한 안내
  • 성공을 위한 비즈니스 분석가의 역할 및 역량에 대한 정보
  • 비즈니스 프로세스 자동화, 패키지 솔루션, 아웃소싱, 개선 및 교체, 임베디드 시스템 프로젝트에 적합한 방법 제안
  • 데이터 및 보고서 요구사항에 대한 안내

칼 위거스(Karl Wiegers)

칼 위거스 박사는 소프트웨어 요구공학, 프로세스 개선, 소프트웨어 품질 분야에서 높은 평가를 받는 전문가다. 소프트웨어 요구사항의 이전 판과 더불어 수많은 책을 썼고 저자로서 수상 경력이 있다.

조이 비티(Joy Beatty)

조이 비티는 소프트웨어 요구사항 커뮤니티의 선도자로서 수천 명의 비즈니스 분석가를 교육했고 주요 단체가 훌륭한 비즈니스 분석 센터를 구축하는 데 기여했다. 그녀는 『소프트웨어 요구사항을 위한 시각 모델(Visual Models for Software Requirements)』의 공동 저자다.

임성국

현재 카카오 클라우드컴퓨팅셀에서 전사 모니터링 플랫폼에 대한 개발 및 운영 업무를 담당하고 있으며, 개발 전에 요구사항을 정리하여 이해관계자들 사이를 중재하는 것이 가장 빠른 개발의 길임을 알고 가능한 정리 후 진행하려고 노력하는 편이다. 아주대학교에서 컴퓨터 공학, 한국과학기술원에서 웹공학 석사 학위를 받았고, 이전에는 ETRI에서 중소기업을 위한 공통 플랫폼 개발, KT에서 Open API GW System을 개발했었다.

최상호

LG전자, LINE, 스타트업 등 크고 작은 회사와 조직에서 연구원, 개발팀장, 서버 개발자 등으로 일해왔다. 개발하는 것만큼이나 비즈니스와 사용자 니즈, 데이터에 관심이 많고, 한 줄의 코드를 작성하는 만큼 요구사항에 대해 고민하기를 좋아한다. 단국대학교에서 컴퓨터과학과 경영학 학사, 한국과학기술원에서 전산학 석사 학위를 받았다.

  • [1부] 소프트웨어 요구사항: 무엇을, 왜, 누가
    • ▣ 01장: 필수 소프트웨어 요구사항
      • 소프트웨어 요구사항의 정의
        • “요구사항”의 여러 해석
        • 요구사항의 단계와 유형
        • 세 단계로 요구사항 작성하기
        • 제품 요구사항 vs. 프로젝트 요구사항
      • 요구사항 개발과 관리
        • 요구사항 개발
        • 요구사항 관리
      • 모든 프로젝트는 요구사항을 갖는다
      • 좋은 사람이 나쁜 요구사항을 만날 때
        • 사용자 참여 부족
        • 부정확한 계획
        • 점점 늘어나는 사용자 요구사항
        • 모호한 요구사항
        • 금도금
        • 간과된 이해관계자
      • 좋은 요구사항 프로세스의 이점
      •  
    • ▣ 02장: 고객 관점의 요구사항
      • 기대치 차이
      • 누가 고객인가?
      • 고객과 개발자 간의 협력 관계
        • 소프트웨어 고객을 위한 요구사항 권리장전
        • 소프트웨어 고객을 위한 요구사항 의무장전
      • 요구사항을 존중하는 문화 만들기
      • 의사결정자 식별하기
      • 요구사항 합의에 도달하기
        • 요구사항 기준
        • 합의에 도달하지 못하면 어떻게 할까?
        • 애자일 프로젝트에서 요구사항에 동의하기
      •  
    • ▣ 03장: 요구공학의 우수 사례
      • 요구사항 개발 프로세스 프레임워크
      • 우수 사례: 요구사항 도출
      • 우수 사례: 요구사항 분석
      • 우수 사례: 요구사항 명세
      • 우수 사례: 요구사항 검증
      • 우수 사례: 요구사항 관리
      • 우수 사례: 지식
      • 우수 사례: 프로젝트 관리
      • 새로운 사례 시작하기
      •  
    • ▣ 04장: 비즈니스 분석가
      • 비즈니스 분석가의 역할
      • 비즈니스 분석가의 업무
      • 분석가의 필수 역량
      • 분석가의 필수 지식
      • 비즈니스 분석가 육성
        • 전직 사용자
        • 전직 개발자나 테스터
        • 전직(혹은 현직) 프로젝트 관리자
        • 주제 전문가
        • 초심자
      • 애자일 프로젝트에서 분석가의 역할
      • 협력적인 팀 구성하기
      •  
  • [2부] 요구사항 개발
    • ▣ 05장: 비즈니스 요구사항 정립하기
      • 비즈니스 요구사항 정의하기
        • 원하는 비즈니스 이득 식별하기
        • 제품 비전 및 프로젝트 범위
        • 상충하는 비즈니스 요구사항
      • 비전 범위 문서
          1. 비즈니스 요구사항
          1. 범위 및 한계
          1. 비즈니스 컨텍스트
      • 범위 표현 기법
        • 컨텍스트 다이어그램
        • 생태계 맵
        • 기능 트리
        • 이벤트 목록
      • 범위에 집중하기
        • 범위 결정을 위해 비즈니스 목표 활용하기
        • 범위 변경의 영향력 평가하기
      • 애자일 프로젝트의 비전과 범위
      • 완료 여부 결정을 위해 비즈니스 목표 활용하기
      •  
    • ▣ 06장: 고객의 목소리 찾기
      • 사용자 클래스
        • 사용자 분류하기
        • 사용자 클래스 식별하기
      • 사용자 페르소나
      • 사용자 대표와 함께하기
      • 제품 챔피언
        • 외부 제품 챔피언
        • 제품 챔피언에 대한 기대
        • 다수의 제품 챔피언
        • 제품 챔피언의 아이디어 수용하기
        • 피해야 할 제품 챔피언의 함정
      • 애자일 프로젝트의 사용자 대표
      • 상충하는 요구사항 해결하기
      •  
    • ▣ 07장: 요구사항 도출
      • 요구사항 도출 기법
        • 인터뷰
        • 워크숍
        • 포커스 그룹
        • 관찰
        • 설문지
        • 시스템 인터페이스 분석
        • 사용자 인터페이스 분석
        • 문서 분석
      • 프로젝트 요구사항 도출 계획
      • 요구사항 도출 준비
      • 요구사항 도출 활동 수행하기
      • 요구사항 도출 후속 조치
        • 노트 정리 및 공유
        • 미해결 이슈 문서화하기
      • 고객 의견 분류하기
      • 요구사항 도출 완료 시점은 어떻게 알 수 있을까?
      • 요구사항 도출 시 주의할 점
      • 가정 요구사항과 암묵적 요구사항
      • 누락된 요구사항 찾기
      •  
    • ▣ 08장: 사용자 요구사항 이해하기
      • 유스케이스와 사용자 스토리
      • 유스케이스 접근법
        • 유스케이스와 사용 시나리오
        • 유스케이스 식별하기
        • 유스케이스 탐색하기
        • 유스케이스 검증하기
        • 유스케이스와 기능적 요구사항
        • 피해야 할 유스케이스의 함정
      • 사용 중심 요구사항의 장점
      •  
    • ▣ 09장: 규칙에 따르기
      • 비즈니스 규칙의 분류체계
        • 팩트
        • 제약조건
        • 동작 활성자
        • 추론
        • 계산
        • 원자 수준의 비즈니스 규칙
      • 비즈니스 규칙 문서화하기
      • 비즈니스 규칙 발견하기
      • 비즈니스 규칙 및 요구사항
      • 모두 함께 묶기
      •  
    • ▣ 10장: 요구사항 문서화하기
      • 소프트웨어 요구사항 명세서
        • 요구사항 명명하기
        • 불완전성 다루기
        • 사용자 인터페이스와 SRS
      • 소프트웨어 요구사항 명세서 템플릿
          1. 소개
          1. 전반적인 설명
          1. 시스템 특징
          1. 데이터 요구사항
          1. 외부 인터페이스 요구사항
          1. 품질 속성
          1. 국제화 및 현지화 요구사항
          1. [기타 요구사항]
        • 부록 A: 용어사전
        • 부록 B: 분석 모델
      • 애자일 프로젝트에서의 요구사항 명세서
      •  
    • ▣ 11장: 좋은 요구사항 작성하기
      • 좋은 요구사항의 특징
        • 요구사항 문장의 특징
        • 요구사항 모음의 특징
      • 추적 가능한
      • 요구사항 작성을 위한 지침
        • 시스템/사용자 관점
        • 스타일에 따라 작성하기
        • 세부 수준
        • 표현 기법
        • 모호함 피하기
        • 불완전성 피하기
        • 개선 전후의 견본 요구사항
      •  
    • ▣ 12장: 백문이 불여일견
      • 요구사항 모델 만들기
      • 고객의 목소리로 분석 모델 만들기
      • 올바른 표현 기법 선택하기
      • 데이터 흐름 다이어그램
      • 스윔레인 다이어그램
      • 상태 전이 다이어그램과 상태표
      • 대화상자 맵
      • 의사결정 일람표와 의사결정 트리
      • 이벤트 반응표
      • UML 다이어그램에 대한 몇 마디
      • 애자일 프로젝트에서 모델 만들기
      • 당부사항
      •  
    • ▣ 13장: 데이터 요구사항 명세화하기
      • 데이터 관계 모델 만들기
      • 데이터 사전
      • 데이터 분석
      • 보고서 명세화하기
        • 보고서 요구사항 도출하기
        • 보고서 명세의 고려사항
        • 보고서 명세 템플릿
      • 대시보드 보고서
      •  
    • ▣ 14장: 기능, 그 이상을 향해
      • 소프트웨어 품질 속성
        • 품질 속성 찾기
      • 품질 요구사항 정의하기
        • 외부 품질 속성
        • 내부 품질 속성
      • Planguage로 품질 요구사항 명세화하기
      • 품질 속성의 트레이드오프
      • 품질 속성 요구사항 구현하기
      • 제약조건
      • 애자일 프로젝트에서 품질 속성 다루기
      •  
    • ▣ 15장: 프로토타이핑을 활용한 위험 감소
      • 프로토타이핑: 무엇을 그리고 왜
      • 목업과 개념 증명
      • 일회성 프로토타입과 진화형 프로토타입
      • 종이 프로토타입과 전자 프로토타입
      • 프로토타입으로 작업하기
      • 프로토타입 평가
      • 프로토타이핑의 위험
        • 프로토타입의 출시 압력
        • 구제화 정도에 기인한 산만함
        • 비현실적인 성능 예측
        • 프로토타입에 과도한 노력 투자하기
      • 프로토타이핑 성공 요소
      •  
    • ▣ 16장: 중요한 것 먼저: 요구사항 우선순위 할당하기
      • 왜 요구사항의 우선순위를 나눠야 하는가?
      • 몇 가지 우선순위 화용론
      • 우선순위와 심리적 게임
      • 몇 가지 우선순위 할당 기법
        • 할까? 말까?
        • 짝 비교와 순위 나누기
        • 3단계 규모 조정
        • MoSCoW
        • 100달러
      • 가치와 비용, 위험에 따른 우선순위 할당하기
      •  
    • ▣ 17장: 요구사항 검증하기
      • 검증과 확인
      • 요구사항 검토하기
        • 검사 프로세스
        • 결함 체크리스트
        • 요구사항 검토 팁
        • 요구사항 검토의 어려움
      • 요구사항 프로토타이핑하기
      • 요구사항 테스트하기
      • 인수 기준에 따라 요구사항 검증하기
        • 인수 기준
        • 인수 테스트
      •  
    • ▣ 18장: 요구사항 재사용
      • 왜 요구사항을 재사용하는가?
      • 요구사항 재사용의 관점
        • 재사용 범위
        • 수정 범위
        • 재사용 원리
      • 재사용을 위한 요구사항 정보의 종류
      • 일반적인 재사용 시나리오
        • 소프트웨어 제품군
        • 시스템 개량 및 교체
        • 기타 재사용 기회
      • 요구사항 패턴
      • 재사용에 유용한 도구
      • 요구사항을 재사용할 수 있게 만들기
      • 요구사항 재사용 장벽과 성공 요소
        • 재사용 장벽
        • 재사용 성공 요소
      •  
    • ▣ 19장: 요구사항 개발, 그 이상을 향해
      • 요구사항 노력 산정하기
      • 요구사항을 기반으로 프로젝트 계획하기
        • 요구사항을 기반으로 프로젝트 규모와 필요한 노력 산정하기
        • 요구사항과 일정 산정
      • 요구사항을 기반으로 설계 및 구현하기
        • 아키텍처와 할당
        • 소프트웨어 설계
        • 사용자 인터페이스 설계
      • 요구사항에서 테스트까지
      • 요구사항에서 성공까지
      •  
  • [3부] 다양한 프로젝트 유형을 위한 요구사항
    • ▣ 20장: 애자일 프로젝트
      • 폭포수 개발 방법의 한계
      • 애자일 개발 방법론
      • 요구사항에 대한 애자일 접근 방식의 필수 요소
        • 고객 참여
        • 문서의 상세 수준
        • 백로그와 우선순위 할당
        • 시기
      • 에픽, 사용자 스토리, 기능, 맙소사!
        • 변경 예측
      • 애자일 프로젝트에 요구사항 사례 실천하기
      • 애자일로 갈아타기: 이제 뭘 하지?
      •  
    • ▣ 21장: 개선 프로젝트와 교체 프로젝트
      • 예측 가능한 문제
      • 기존 시스템에 적용할 수 있는 요구사항 기법
      • 비즈니스 목표에 따라 우선순위 할당하기
        • 갭 주의하기
        • 성능 수준 유지하기
      • 기존 요구사항이 존재하지 않을 때
        • 어떤 요구사항을 명세화해야 할까?
        • 기존 시스템의 요구사항을 찾는 방법
      • 신규 시스템 도입 장려하기
      • 반복할 수 있을까?
      •  
    • ▣ 22장: 패키지 솔루션 프로젝트
      • 패키지 솔루션 선택을 위한 요구사항
        • 사용자 요구사항 개발하기
        • 비즈니스 규칙 고려하기
        • 필요한 데이터 식별하기
        • 품질 요구사항 정의하기
        • 솔루션 평가하기
      • 패키지 솔루션을 구현하기 위한 요구사항
        • 구성 요구사항
        • 통합 요구사항
        • 확장 요구사항
        • 데이터 요구사항
        • 비즈니스 프로세스 변경
      • 패키지 솔루션의 일반적인 문제
      •  
    • ▣ 23장: 외주 프로젝트
      • 요구사항의 적절한 명세화 수준
      • 인수자와 납품업체 간 상호작용
      • 변경 관리
      • 인수 기준
      •  
    • ▣ 24장: 비즈니스 프로세스 자동화 프로젝트
      • 비즈니스 프로세스 모델 만들기
        • 요구사항 도출을 위해 현재 프로세스 활용하기
        • 미래의 프로세스 먼저 설계하기
      • 비즈니스 성과 지표 모델 만들기
      • 비즈니스 프로세스 자동화 프로젝트의 우수사례
      •  
    • ▣ 25장: 비즈니스 분석 프로젝트
      • 비즈니스 분석 프로젝트의 개요
      • 비즈니스 분석 프로젝트를 위한 요구사항 개발
        • 의사결정을 활용해 작업에 우선순위 할당하기
        • 정보가 사용되는 방법 정의하기
        • 데이터 니즈 구체화하기
        • 데이터를 변환하기 위한 분석 정의
      • 분석의 진화적 특성
      •  
    • ▣ 26장: 임베디드 및 기타 실시간 시스템 프로젝트
      • 시스템 요구사항, 아키텍처 및 할당
      • 실시간 시스템 모델 만들기
        • 컨텍스트 다이어그램
        • 상태 전이 다이어그램
        • 이벤트 반응표
        • 아키텍처 다이어그램
      • 인터페이스
      • 타이밍 요구사항
      • 임베디드 시스템을 위한 품질 속성
      • 임베디드 시스템의 도전과제
      •  
  • [4부] 요구사항 관리
    • ▣ 27장: 요구사항 관리 사례
      • 요구사항 관리 프로세스
      • 요구사항 기준
      • 요구사항 버전 관리
      • 요구사항 속성
      • 요구사항 상태 추적
      • 요구사항 이슈 해결
      • 요구사항 노력 측정
      • 애자일 프로젝트에서 요구사항 관리
      • 왜 요구사항을 관리하는가?
      •  
    • ▣ 28장: 변경의 발생
      • 왜 변경을 관리하는가?
      • 범위 추가 관리하기
      • 변경 관리 정책
      • 변경 관리 프로세스의 기본 개념
      • 변경 관리 프로세스 기술서
          1. 목적 및 범위
          1. 역할과 책임
          1. 변경 요청 상태
          1. 시작 기준
          1. 작업
          1. 종료 기준
          1. 변경 관리 상태 보고서
        • 부록: 각 요청이 포함하는 속성
      • 변경 관리 위원회
        • CCB 구성
        • CCB 헌장
        • 합의 재협상하기
      • 변경 관리 도구
      • 변경 영향 분석
        • 영향 분석 절차
        • 영향 분석 템플릿
      • 애자일 프로젝트의 변경 관리
      •  
    • ▣ 29장: 요구사항의 연결 고리
      • 요구사항 추적하기
      • 요구사항 추적을 위한 동기부여
      • 요구사항 추적 매트릭스
      • 요구사항 추적을 위한 도구
      • 요구사항 추적 절차
      • 요구사항 추적은 타당한가? 정말 필요한 것인가?
      •  
    • ▣ 30장: 요구공학을 위한 도구
      • 요구사항 개발 도구
        • 요구사항 도출 도구
        • 프로토타이핑 도구
        • 모델링 도구
      • 요구사항 관리 도구
        • RM 도구 사용의 이점
        • RM 도구의 기능
      • 요구사항 도구의 선택과 구현
        • 도구 선택하기
        • 도구와 프로세스 준비하기
        • 사용자의 도구 도입 촉진하기
      •  
  • [5부] 요구사항 구축하기
    • ▣ 31장: 요구사항 프로세스 개선하기
      • 요구사항이 다른 프로젝트 프로세스와 연관되는 방법
      • 요구사항 및 다양한 이해관계자 그룹
      • 변경에 대한 합의 구하기
      • 소프트웨어 프로세스 개선의 기본 원칙
      • 근본 원인 분석
        • 프로세스 개선 주기
        • 현재 방법 평가하기
        • 개선 활동 계획하기
        • 프로세스 만들기, 시험하기, 공개하기
        • 결과 평가하기
      • 요구공학 프로세스 자산
        • 요구사항 개발 프로세스 자산
        • 요구사항 관리 프로세스 자산
      • 아직 멀었나?
      • 요구사항 프로세스 개선 로드맵 만들기
      •  
    • ▣ 32장: 소프트웨어 요구사항과 위험 관리
      • 소프트웨어 위험 관리의 기본 원칙
        • 위험 관리 요소
        • 프로젝트 위험 문서화하기
        • 위험 관리 계획
      • 요구사항 관련 위험
        • 요구사항 도출
        • 요구사항 분석
        • 요구사항 명세서
        • 요구사항 검증
        • 요구사항 관리
      • 위험 관리는 여러분의 친구다
      •  
    • ▣ 에필로그
    • ▣ 부록 A장: 현재 요구사항 실천 지침에 대한 자기 평가
    • ▣ 부록 B장: 요구사항 문제 해결 가이드
    • ▣ 부록 C장: 요구사항 문서 샘플
    • ▣ 용어사전
    • ▣ 참고문헌

관련 글