170 likes | 390 Views
Projects - Development Methodology - - using CVS-. 2003/10/27 참고자료. GRAPPLE (Guidelines for Rapid APPLication Engineering). 참고 : Joseph Schmuller 저 / 곽용재역 / 초보자를 위한 UML 진행 영역 요구사항 수집 (Requirement Gathering) 분석 (Analysis) 설계 (Design) 개발 (Development) 배치 (Deployment).
E N D
Projects- Development Methodology -- using CVS- 2003/10/27 참고자료
GRAPPLE(Guidelines for Rapid APPLication Engineering) • 참고: Joseph Schmuller저/곽용재역/초보자를 위한 UML • 진행 영역 • 요구사항 수집(Requirement Gathering) • 분석(Analysis) • 설계(Design) • 개발(Development) • 배치(Deployment)
GRAPPLE(Guidelines for Rapid APPLication Engineering) • 요구사항 수집 • 업무과정 파악(Discover Business Process) • 의뢰인과 인터뷰하여 무엇을 원하는지 알아낸다 • 도메인 분석(Perform Domain Analysis) • 분석가는 자주 의뢰인을 만나 모든것을 토해(?) 내도록 유도한다. • 인터뷰를 녹음하거나, 노트북으로 대화내용을 정리한다. 또는 노트에… • 대화중 명사를 정리하여 클래스를 만들기 시작한다. 대화중 동사는 클래스의 메소드가 되겠다. • 연동시스템 확인(Identify Cooperating Systems) • 어떤 시스템이든 혼자서 동작하기란 쉽지않다. 서로 맞물리수 있는 컴포넌트를 찾는다.
GRAPPLE(Guidelines for Rapid APPLication Engineering) • 요구사항 수집(Cont.) • 시스템 요구사항 파악(Discover System Requirements) • 개발팀이 첫 번째 공동 애플리케이션 개발(Joint Application Development;JAD) 모임을 가지게 된다. • 클래스 다이어그램을 손질하고, 패키지 다이어그램을 만들어 낸다. • 요구사항 수집 결과를 가지고 의뢰인과 의사 교환 (Present Result to Client) • 결과물을 의뢰인에게 보낸다. 때로, 비용산정을 요구하기도 한다.
GRAPPLE(Guidelines for Rapid APPLication Engineering) • 분석 • 시스템 사용법의 이해(Understand System Usage) • JAD 모임에서 추상 수준의 쓰임새를 분석한다. • 쓰임새에 살 붙이기(Flesh out Use Cases) • 클래스 다이어그램 손질(Refine the Class Diagrams) • 연관, 추상클래스, 다중성, 일반화, 집합연관등 • 객체의 상태변화 분석(Analyze Changes of State in Objects) • 상태 다이어그램 • 객체간 교류 정의(Define the Interactions Among Objects) • 시퀀스 다이어그램, 협력 다이어그램 • 연동 시스템과의 통합 분석(Analyze Integration with Cooperating System) • 네트웍 구조, 통신 방법, 데이터베이스
GRAPPLE(Guidelines for Rapid APPLication Engineering) • 설계 • 객체 다이어그램 개발과 손질 (develop and Refine Object Diagrams) • 컴포넌트 다이어그램의 개발(Develop Component Diagrams) • 배치계획(Plan for Deployment) • 사용자 인터페이스의 설계와 원형 정의(Design and Prototype User Interface) • GUI는 각각의 화면 프로토타입을 종이에 그려낸다. • 시험 설계(Design Tests) • 문서화 시작 (Begin Documentation) • 시스템 설명서, 사용자 설명서의 골격을 만들고 기록하기 시작한다.
GRAPPLE(Guidelines for Rapid APPLication Engineering) • 개발 • 코드 작성 (Construct Code) • 각 다이어그램을 보고 코딩을 시작한다. • 코드 시험(Test Code) • 각 코드가 원하는데로 작동하는지 시험 한다. • 사용자 인터페이스의 구축과 코드의 연결 및 실험(construct User Interface, Connect to Code, and Test) • GUI전담 프로그래머가 만든 인터페이스를 코드에 연결한다. 결과물은 인터페이스가 붙은 소프트웨어. • 문서화 완료(Complete Documentation) • 문서화 작업은 소프트웨어 개발과 동시에 끝난다.
GRAPPLE(Guidelines for Rapid APPLication Engineering) • 배치 • 백업과 복구에 대한 계획(Plan for Backup and Recovery) • 적합한 하드웨어 최종 시스템 설치하기(Install the Finished System on Appropriate Hardware) • 설치된 시스템의 시험 (Test the Installed System) • 시스템이 처음에 의도한 대로 동작하는가?, 백업/복구 조치가 제대로 이루어지는가? • 발표(Celebrate)
CVS(Concurrent Version System) • What is CVS? • Concurrent Version System • http://www.cvshome.org/ • 기능 • 버젼관리 • 공동작업 • 기타 제품군 • Microsoft SourceSafe • Borland TeamSource
CVS(Concurrent Version System) • 버젼관리 • 버전을 기록하여 남길 수 있고, 언제라도 조회할 수 있다. • 공간 최적화 • 다수의 개발자가 • 동시에 동일 모듈 수정가능 • 동시에 동일 파일 수정가능
CVS(Concurrent Version System) • 기본용어 • Repository • 개발중인 소스코드와 문서의 중앙 저장소 • Import • 현재 개발중인 내용을 CVS공간으로 이동,생성 • Checkout • 저장소(Repository)에 있는 모듈을 자신의 작업공간으로 가져온다. • Commit • 수정한 내용을 저장소(Repository)에 저장. • Update • 다른 사람이 수정한 내용을 저장소(Repository)에서 가져온다.(수정된 내용만 가져온다.)
CVS(Concurrent Version System) • Version Control 용어 • Revision • 파일의 번호, 짝수개의 숫자를 . 로 연결 • 1.1 부터 시작 • Commit 하면 최종숫자가 1 증가 1.2.3.1->1.2.3.2 • Version • 각각의 Revision을 가진 파일들의 집합 • 하나의 모듈에는 다양한 Version이 존재할 수 있다. • Main Trunk • 중심 개발 흐름 • Branch • Main Trunk의 일부분에 대한 개발 흐름 • Main Trunk의 Revision 번호에 두자리 숫자를 붙여 Branch를 만듦
CVS(Concurrent Version System) Version/Main Trunk/Branch
CVS(Concurrent Version System) • CVS Client Process CVS Repository Server 1) Repository에 Login 2) Module영역을 만들고 파일 복사(Import) 3) Module 가져오기(Checkout) 4) 갱신수정(Update, Commit) 5) 갱신수정(Update, Commit)
CVS(Concurrent Version System) • Eclipse의 CVS 지원 • CVS Repository Exploring Perspective • 뷰 • CVS Console View • CVS Repository View • CVS Resource History View • Synchronize View
CVS(Concurrent Version System) • Eclipse의 CVS 사용 시나리오 • 1) CVS Repository Perspective 열기 • 2) New>Repository Locations…선택 • 3) 새프로젝트 만들기 • 4) Team>Share Project…실행 • 5) Team>Synchronize …실행 • 6) Synchronize View에서 변경사항 확인 • 7) Team>Update • 8) Team>Commit…
DEMO • 관련 사이트■http://jakarta.apache-korea.org/site/cvsindex.htmlThe Jakarta Site – CVS Repository■http://kldp.org/KoreanDoc/html/CVS-KLDP/장우현님의 CVS 이야기■http://www.javacafe.or.kr/lecture/cafeLecture/tool/cvsnt/cvsnt.htmljavacafe송지훈님의 CVSNT 서버 설치 매뉴얼■http://www.jlab.net/news/20021111/news.htmjlab 류균태,허원진님의 CVS 서버 구축과 CVS를 통한 프로젝트 수행■http://www.cvshome.org/CVS Home Page■http://www.cvshome.org/docs/manual/cvs official manual■http://www.cvsnt.org/wiki/Windows CVSNT 서버■http://w1.858.telia.com/~u85831169/InstallCVSNT.htmlCNSNT Installation Tips