책소개
요구사항 관리부터 설계, 개발, 테스팅, 빌드/배포관리, 변경관리에 이르는 소프트웨어 개발 전 과정에 걸쳐 각 단계에서 무엇을, 왜 해야 하며 어떻게 해야 하는지를 이론적 설명과 함께 실천적 방법을 Rational 도구를 통하여 구체적으로 보여주고자 본 책을 출간하게 되었다.
목차
제목 : 똑똑한 소프트웨어 개발을 위한 실용 가이드
한국IBM 소프트웨어 Rational 테크니컬 프로페셔널 팀 지음
한국문헌정보번호(ISBN) 978-89-967316-2-7
서문
Part I 소프트웨어 개발 전략 및 사례
1장 포트폴리오 관리
환경의 변화
복잡한 비즈니스 환경
제품은 진화 중
제품 개발의 변화
제품 포트폴리오 관리
- 포트폴리오 관리
- 제품 포트폴리오 관리
베스트 프랙티스
- Idea Management
- Market Management
- Program Management
- Product Management
애자일 요구(사항)관리
기술로드맵관리
- Portfolio Management
똑똑한 의사결정
AHP(Analytic Hierarchy Process) 방법론
결론
2장 요구사항 관리
무엇이 프로젝트의 성공인가?
요구사항이 필요악?
사양서 작업이 단순 문서화?
개발산출물간의 바느질
국내외 사례 및 ROI
- 자동차 분야
- 국방분야
IBM Rational DOORS: 요구사항관리 도구
요구사항 분석가의 역할
3장 분석, 설계, 모델링 MDD(모델 기반 개발) 이상인가? 현실인가?
MDD가 걸어 온길
현재 MDD 는 어디에?
- MDD 의 정의
- MDD(Model Driven Development) 와 MDA(Model Driven Architecture)
- MDA를 위한 가이드라인 (출처 : OMG)
- 왜 MDD가 필요한가? (MDD의 혜택)
- 현재 국내에서 MDD 적용 모습
- 현재 MDD에 있어서의 과제
MDD 앞으로 어떻게 발전할 것인가?
결론
4장 개발 생산성 혁신과 방법론 적용
V 모델
- 요구사항 - 개발 - 테스트 추적성
- 전통적인 폭포수 모형
- 반복 개발 모형
- 애자일 모형
팀 협업
- 애자일 계획
- 작업 항목 관리
- 소스 제어
- 빌드
- 프로세스
결론
5장 품질 관리
품질이란?
소프트웨어 공정 및 소프트웨어 테스트의 현실
조기 검증 - 요구사항 기반 테스트
누가 품질을 개선할 수 있을까?
- 협업(Collaboration)의 중요성
- 작업 항목 관점의 협업
테스트 수행
- 개발자 수행 테스트
소스 코드 정적 분석
애플리케이션 동적 분석
- 테스터 수행 테스트
회귀 테스트
테스트 데이터 커버리지
테스트 수행 자동화
결론
6장 빌드/배포 자동화
CI의 의미
- CI 의 등장 배경
- CI의 10가지 지침
- CI와 프로세스 자동화
- 자동화 프로세스의 이점
CI (Continuous Integration)의 자동화 구현 원칙
- 자동화 환경, 대상, 프로세스를 식별 그룹화하고 표준화 한다.
- 빌드를 포함한 모든 자동화가 가능한 대상을 자동화 시킨다.
- 프로세스와 프로세스를 연결한다.
- 개발자의 개발 이외의 프로세스는 모두 자동화 대상으로 한다.
- 자동화된 프로세스 내에 품질 검토 단계를 포함한다.
- 소프트웨어 형상 관리 도구를 이용하여 CI의 저장소를 구축한다.
- 통합 영역을 통제(분리)해라.
- 빌드 전용 장비를 사용한다.
- 모든 담당자가 빌드 과정 및 결과를 확인할 수 있도록 한다.
- 자동화 프로세스를 유지보수가 용이하고 확장성 있게 구현한다.
CI (Continuous Integration)의 자동화 구현 예
- 권고 Image
- 구현 시나리오
- 구현
소스 관련 자동화 처리
빌드 자동화 처리
테스트 자동화 처리
배포 자동화
자동화 프로세스 실행
- 참고 모델 (사례)
결론
7장 소프트웨어 보안
서론
- 보안을 대하는 우리의 현실
- 웹 어플리케이션 보안 사고 증가
대표적인 웹 어플리케이션 해킹 기법 소개
- 크로스 사이트 스트립트(XSS)가 어떤 보안 문제점을 야기시킬 수 있는가?
- 크로스 사이트 스크립트(XSS) 설명
웹 어플리케이션 보안 취약점 탐지 및 보완 대책
- 웹 어플리케이션 취약점 스캔 방법
- 정적 분석(White Box)
소개
수행 방법
- 동적 분석(Black Box)
소개
수행 방법
- 어플리케이션 탐색 환경 설정
- 테스트 정책 설정
- 스캔 수행
- 결과 분석
- 상관 관계 분석
소개
상관 관계 분석 프로세스
리포팅
어플리케이션 개발 공정 상의 보안 대책
- 조기에 보안 취약점 조치
- 개발 공정의 단계별 보안
디자인 단계
개발 단계
빌드/배포 단계
역할별 업무
결론
- 보안 중요성 인식
- 우선순위 수립
- 보안 정책 수립
- 소프트웨어 개발 공정 각 단계별 보안 테스트
8장 메인프레임 개발
System z 에 대한 오해
- 메인 프레임에서의 개발
- 메인 프레임 기반 개발은 어떻게 다를까?
- 오해는 생각보다 크지 않다.
현대화된 개발기법을 메인프레임에 적용해 보자
- 새로운 개발환경을 위한 IBM 의 Enterprise Modernization 이란?
- IBM 의 Rational Developer for System z 란?
IBM 의 Enterprise Modernization Sandbox 를 만나보자
- IBM Enterprise Modernization Sandbox 란?
- Enterprise Modernization Sandbox 로 개발 환경 구성 하기
- Rational Developer for System z 를 만나보자
- Rational Developer for System z 를 통해 메인프레임에 익숙해 지기
새로운 개발환경의 가치와 조화로운 개발팀으로 나아가기 위한 조언
- 엔터프라이즈 현대화 (Enterprise Modernization) 의 단계별 접근법
- EM 의 각 단계를 진행하기 위한 도구간의 통합을 대하는 IBM 의 관점
결론
Part II 시스템/임베디드 개발 전략 및 사례
1장 임베디드 소프트웨어 개발의 현재와 미래, 모델링을 통한 협업이 해답
Smart 시대, 그리고 소프트웨어 개발 현실
스마트 개발기법의 핵심은 모델 기반 개발 (Model Driven Development)
- Smart device의 특징 - 소프트웨어의 복잡성
- 소프트웨어 복잡성에 대응하기 위한 해답은 ‘모델링’
수많은 개발자 간의 의사 소통 효율성
체계성 문제 - defect와 비용 절감 측면
코드 재사용
- Rhapsody를 이용한 모델 기반 개발
Rhapsody는 무엇인가?
Rhapsody를 활용한 모델 기반 개발의 강점
- 요구사항 시각화를 통한 효율적 관리
- 코드 재사용 확대
- 설계에 대한 시각적 분석 및 검증
- 안정화된 코드 자동 생성
- 모델과 코드간의 자동 동기화 유지
결론
2장 Architecture Centric Development
프로세스의 필요성
요구사항 관리의 필요성
- 요구사항이란 무엇이며 요구사항 관리는 왜 중요한 것인가?
- 요구사항 관리는 언제, 어떻게 해야 하는가?
- 요구사항 관리의 현실
- 요구사항과 Modeling간의 관계
- 소프트웨어 구조란
소프트웨어 구조의 중요성
효과적인 소프트웨어 구조 설계 방안
설계된 소프트웨어 구조 검증 방안
- 구조와 행위 설계를 통한 구현 방안
결론
3장 GM Volt 사례를 통해 본 임베디드 소프트웨어 개발의 나아갈 길
임베디드 소프트웨어 개발의 현실
해결책은 MDD. 하지만 제대로 된 tool chain이 아니라면?
- 구체적 사례 : 스마트 카와 스마트 트래픽
- 우리가 무얼 만들어야 하는거지?
- 어떻게 이 기능을 구현할 수 있을까?
- state chart를 통한 동작 모델링
- 전제 구조 update 하기
- 작성된 모델을 시나리오 별로 검증하기
PIM과 PSM이란?
PIM과 PSM으로 이루어진 시스템의 검증
TestConductor는 무엇에 쓰는 툴?
- 검증된 모델을 target에 로딩하여 제품화 하기
- 기존 코드를 모델에서 사용하고 싶은데..
코드를 다룰 새로운 component 설정
Reverse engineering 수행
- 기존 코드를 개선하고 싶다면
- 예제를 마치며
MDD는 개발자들을 위한 유용한 툴일 뿐, 결코 개발자들의 대체 수단이 아니다.
4장 Rational 솔루션을 활용한 System Engineering 적용 방안
서론
- IT Domain과 System Domain
- 시스템 고객들이 부딪치는 문제점들
- 시스템 엔지니어링을 통한 문제 접근 방법
- IBM Rational의 System Engineering 접근 방법
본론
- Harmony-SE를 통한 모델기반 SE - Rhapsody
- MND-AF를 통한 시스템 엔지니어링 구현 - System Architect
아키텍처 구축방법론인 ABM(Activity Based Methodology)를 통한 MND-AF의 구축
- ABM 방법론 개요
- ABM의 적용 절차
MND-AF 산출물과 단계별 문서의 연계
- SSDD 문서 목차의 분석
- SSDD와 MND-AF 산출물 매핑
- SA 모델의 문서 연계 활용
결론
부록
부록1 소프트웨어 개발환경의 발전사와 IBM 소프트웨어 개발환경의 변화
1980년 이전의 소프트웨어 개발 환경
1980 ~ 2000년의 소프트웨어 개발 환경
2000 ~ 2005년의 소프트웨어 개발 환경
2005년 이후의 소프트웨어 개발 환경
소프트웨어 개발과 시스템 개발
결론
부록2 IBM Rational 소프트웨어 솔루션 소개
Introduction
- Jazz - 협업 통한 혁신
- 핵심 기능 분야
Rational 솔루션
- 요구사항 및 분석
Rational DOORS
Rational Requirements Composer
- 설계 및 개발
Rational Software Architect
Rational Application Developer
Rational Rhapsody
- 소프트웨어 품질
Rational Functional Tester
Rational Performance Tester
Rational Quality Manager
Rational Software Analyzer
- 프로세스 및 포트폴리오 관리
Rational Focal Point
Rational Insight
Rational System Architect
Rational Method Composer
- 소프트웨어 형상, 변경 및 배포 관리
Rational Team Concert
Rational ClearCase
Rational ClearQuest
Rational Build Forge
- 웹 어플리케이션 보안 및 컴플라이언스
Rational AppScan 라이프사이클 솔루션
Rational AppScan Source Edition
Rational Policy Tester
- Rational for System z
IBM Rational Developer for System z