Module 1-1. 신개념 PM SPEAKER: 고형석정보관리기술사정보시스템감리사 KT 차장 light211@paran.com 1
<< 목차 >> 프로젝트관리 ( 신개념 PM) Ⅰ. 소프트웨어개발 프로세스이해 1. 소프트웨어개발방법론 2. 전통적개발방법론 3. 객체지향프레임웍방법론 Ⅱ. 프로젝트준비실무 1. 프로젝트준비개괄 2. 정보요청단계 3. 제안요청단계 4. 제안서단계 5. 제안서평가및계약 6. 사업수행계획처리 Ⅲ. 프로젝트관리실무 1. 프로젝트관리개괄 2. 범위관리 3. 일정관리 4. 품질관리 5. 인력관리 6. 프로젝트관리자의요건 Ⅳ. CBD 프로젝트실무 1. CBD 프로젝트개발프로세스 2. CBD 프로젝트개요 3. CBD 프로젝트관리범위 4. 기존프로젝트와비교 5. 형상관리 6. 정보시스템감리활동 Ⅴ. 신개념 PM 관심 Topic 정리 기술사시험기출문제 Ⅵ. 맺음말 2
1. 소프트웨어개발방법론 개념정의 방법론분류 - 소프트웨어공학원리를소프트웨어개발생명주기에적용한개념 - 정보시스템을개발하기위한작업활동, 절차, 산출물, 기법등을체계적으로정리한것 ( 표준화, 공정가시화, 의사소통 ) - 전통적개발방법론 : 구조적개발방법론, 정보공학개발방법론 - 객체지향프레임웍방법론 : 객체지향개발방법론, CBD(Component Based Development) 방법론구성관련요소 개발공정작업방법산출물관리기술개발기법적용도구 - 공정별활동, 활동별세부작업열거, 활동의순서명시 (SDLC 단계 ) - 각단계별수행해야하는일로작업방법기술 - 절차 / 작업방법 ( 누가, 언제, 무엇을작업하는지기술 ) - 각단계별로만들어야하는산출물의목록및양식 ( 프로그램및문서 ) - 계획수립, 진행관리, 품질, 외주, 예산, 인력관리등프로젝트진행 진행사항기록 ( 예 : 계획서, 실적, 품질보증등종료까지 ) - 각단계별로작업수행시기술및기법의설명 - 데이터모델링및프로세스모델링, 이벤트모델링 (DFD, ERD, UI.. 등 ) - 기법에서제시된긱기법별지원도구에대한구체적인사용표준및방법등을자동화시켜개발생산성향상 ( 예 : CASE & Repository) 3
1.1 소프트웨어개발방향 객체지향프레임웍방법론적용 CORBA3.0 EJB,.NET, XML, 비즈니스컴포넌트? Ⅰ. Java- 소프트웨어개발프로세스 Agile SW 개발 (XP, TSP/PSP) C++, Java, ORDBMS, UML(OOA/D, OMT,Use Case) 컴포넌트방법론 프레임웍지향 프로그래밍 전통적개발방법론 4GL/GUI, RDBMS, RAD, ERD, CASE.. 객체지향방법론 객체지향프로그래밍 Pascal, Ada, COBOL, RPG, Flow-chart 정보공학방법론 구조적방법론 절차적프로그래밍 1980 1990 2000 2005 2010 4
2. 전통적개발방법론 단계 구조적 정보공학 차이점 ISP 없음 - 정보체계 정보공학에서는 - 데이터모델 - 업무기능모델 - 통합시스템지향 - 전략적활동모색 업무분석 - 기능분할 - 데이터모델 구조적방법론 - 데이터흐름분석 - 기능분할 - 프로세스중심 - 프로세스명세화 - 의존성분석 정보공학방법론 - 프로세스명세화 - 데이터중심 시스템설계 - 프로세스모델 - 사용자모델 - 이벤트설계 - 패키징대화설계 정보공학에서는 - 구조도변환불필요 - 인터페이스설계 - 인터페이스설계 -DB 설계 - 기술설계 - 자료흐름도의데이터변환 - 데이터구조전환설계 - 모듈설계 -DB 설계 -DB 생성 구축 -Code 작성 -Code 생성 정보공학에서는 - 개발도구활용 유지보수 -Code 생성후다이어그램수정 - 다이어그램수정후코드생성 정보공학에서는 - 자동화도구활용 5
2.1 전통적개발방법론의한계 가. 전통적개발방법론의최대취약점은폭포수형모형 SDLC를따르고있다는점 1) 생명주기에따라이전단계의완성을토대로다음단계를진행 2) 폭포수모형 의특성처럼잘못된작업에대해서는거의거스르기가어려운경직된구조 ( 피드백허용안함 ) 3) 구조적분석 / 설계기법의 SDLC를정보공학방법론도그대로따르고있음 나. 복잡한논리체계와산출물의연계 1) 현실적으로복잡하고산출물들의종류가많아제시된절차를따르기어려움 2) 개발조직및문화에맞게산출물의종류, 규격을커스터마이즈하여적용필요 3) 값비싼 Tool의도입과까다로운사용법을숙지해야하고 Tool 마다표준이행미흡 ( 정보공학의경우 CASE Tool의사용을강조 ) 다. 전통적 SDLC 를따르면서 IT 관련업체로부터파생된 Others 1) 웹개발방법론 2) Package 개발방법 6
3. 개체지향프레임웍방법론 3.1 객체지향방법론 개념 : 소프트웨어재사용성, 유지보수성을높이기위해객체지향원리 ( 추상화, 은닉화, 상속성, 다형성 ) 을기초로클래스, 메시지및이들간의관계를식별하고추상적 개념으로설계, 구현하는개발방법론 ( 객체 = 속성 + 메소드 ) 특징 : 분석, 설계, 구현단계의명확한경계는없음 단계요건정의분석설계구현 작업항목요구사항분석객체모델링동적모델링기능모델링시스템설계객체설계 OO프로그래밍 현재의환경분석과요구사항정의 시스템정적구조포착, 추상화, 분류화, 일반화, 집단화 시간흐름에따라객체사이의변화조사, 상태, 사건, 동작 입력에대한처리결과에대한확인 시스템구조를서브시스템으로분해성능최적화방안, 자원분배방안 상세내역을모형으로개발상세화, 구체적자료구조와알고리즘구현 C++, JAVA, Small talk 설명 - 참고사항 : OOSE(Jacobsen), OMT(Rumbaugh), OD(Booch) -> UML(Unified Modeling Language) 7
3.2 UML(Unified Modeling Language 개념 : 객체기술에관한국제표준화기구 (OMG:Object Management Group) 에서 특징 인정한객체지향분석, 설계를위한통합모델링언어 UML = Jacobson 의 Use Case Model 정의 + Rumbaugh 의 OMT 분석 + Booch 의 OD 설계 - 표기법이라기보다는사용하는형식과각각의표기에의미를가진언어 - 이용시개발자간의사소통원활, 객체개발프로세스 : 반복적점진적과정 - 개발규모, 개발프로세스, 언어에관계없이적용가능 -UML 은객체지향개발만을위한것이아니라다른모델에적용가능 ( 통합모델링언어 ) 가시화언어 개념모델작성오류없이전달의사소통의용이 Graphic 언어 구축언어 다양한 Prog. 언어와연결왕복공학가능 ( 순공학 / 역공학 ) 실행시스템예측가능 UML 명세화언어 정확한모델제시완전한모델작성분석, 설계의결정표현 문서화언어 시스템에대한통제, 평가, 의사소통의문서 ( 요구사항, Architecture, 설계, Source Code, Project 계획,Test, Prototype, Release) 8
UML 구성요소 UML 구성요소 사물 (Things) 관계 (Relationships) 도해 (Diagrams) 구조사물 Structural Thing 의존관계 Dependency 클래스도 Class Diagram 행동사물 Behavioral Thing 연관관계 Association 객체도 Object Diagram 그룹사물 Grouping Thing 일반화관계 Generalization 쓰임새도 Use Case Diagram 주해사물 Annotation Thing 실체화관계 Realization 순차도 Sequence Diagram 협력도 Collaboration Diagram 상태도 State Chart Diagram 활동도 Activity Diagram 컴포넌트도 Component Diagram 배치도 Deployment Diagram 9
BPR 작업흐름도 상태다이어그램 활동다이어그램 상태다이어그램 구현다이어그램패키지다이어그램 정적구조다이어그램 클래스다이어그램 사용사례기술서 사용사례다이어그램 요구사항명세서 클래스다이어그램 컴포넌트다이어그램 시나리오 객체다이어그램 객체모델 배치다이어그램 상호작용다이어그램 순서다이어그램 협력다이어그램 10
UML 다이어그램활용 아키텍처종류내용정적도해동적도해 쓰임새뷰 (Use Case View) 시스템행동을설명최종사용자, 분석가, 설계자, 테스트담당자에게제공되는뷰시스템아키텍처를구체화하는요인들을명세화 쓰임새도 교류도상태도활동도 설계뷰 (Design View) 시스템이최종사용자에게제공해야할서비스를표현문제영역과해법의어휘를형성하고있는 Class, Interface, Collaboration 으로구성 클래스도객체도 교류도상태도활동도 프로세스뷰 (Process View) 시스템의성능, 신축성, 처리능력을표현시스템의동시성과동기화메커니즘을형설하고있는 Thread 와 Process 로구성 클래스도객체도활성클래스도 교류도상태도활동도 구현뷰 (Implementation View) 시스템배포의형상관리표현물리적인시스템을조립하고배포하는데사용되는 Component 와 File 들로구성 컴포넌트도 교류도상태도활동도 배치뷰 (Deployment View) 시스템을구성하는물리적부분의분산, 인도, 설치표현 H/W 형태를형성하는 Node 로구성 배치도 교류도상태도활동도 참고 : UML 은방법론이아니다 11
3.3 CBD (Component Based Development) 관련용어정의 - 컴포넌트 : 인터페이스를통해서서비스를제공하는소프트웨어패키지 [Peter Herzum and Oliver Sims Business Components Factory:, 1999] - 컴포넌트웨어 (Componentware) : 컴포넌트를조립해서만든소프트웨어 [OVUM] - CBSE/CBD : 컴포넌트개발 (CD) 과컴포넌트기반시스템개발 (CBSD) 을포함하는 일반적 CBD 기술구분 소프트웨어엔지니어링프로세스 [21 st ICSE CBSE Workshop in LA/USA] 기존에만들어진소프트웨어부분 (pieces of software) 을조립해서보다빠른어플리케이션개발을가능하게하는방법으로컴포넌트생산기술과사용기술로구분 구분 컴포넌트생산기술 컴포넌트사용기술 내용 - 재사용설계 / 개발 - 디자인패턴및프레임워크 - 재공학 - 컴포넌트정형명세 - 영역 (Domain) 공학 - 컴포넌트인증 - 재사용정보저장소 (Reuse Repository) - 재사용에의한설계 / 개발 - 영역공학 - 재사용매트릭스 12
개발프로세스 Iteration 을돌면서분석단계부터테스트단계까지정제, 산출물의수정 ( 반복횟수는?) 1 차개발 2 차개발 3 차개발 계획분석설계구현테스트인도 3.4 생각해봅시다. 우리기관은금번프로젝트에어떤개발방법론을적용해야? - 규모, 비용, 정보기술환경, 자원 ( 인력 ) 13
SW 개발방식생각해봅시다. 시스템화의라이프사이클 1 워터폴형개발방식 프로젝트계획 관리, 품질관리 경영전략ㆍ비젼 시스템화전략계획 운용 계획 분석ㆍ개념설계 시스템설계 구축 도입 개발프로젝트로서실시 개발 2 워터폴형 + 프로토타이핑개발방식 프로젝트계획 관리, 품질관리 3 스파이럴형개발방식 계획 분석과개념설계 시스템설계 프로토타이핑 구축 도입 운용 구축 분석 설계 기획 분석 분석 운용 설계 설계구축운용 구축 만족할때까지반복하고 4 RAD(Rapid Application Development) 방식 계획분석설계 프로젝트관리, 품질관리 본격구축 도입 가구축 타임박스 타임박스 14