VSTS를홗용한 Application Life-cycle Management by ncy98006

VIEWS: 0 PAGES: 48

									Microsoft Application Platform

VSTS를 홗용한
Application
Life-cycle
Management


           한국마이크로소프트
           Developer Solution Specialist
           홍미영(myhong@microsoft.com)
시작하기 전에..
 어떤 개발 언어를 사용하시나요?
 현재 사용하고 계시는 개발 도구는?
 개발자 수는 몇 분 정도 계시나요?
 업무 분석가, 개발자, 테스터 등 어떤
  역할의 분들이 개발에 관여 하시나요?
 현재 사용 중인 도구는?
   형상관리
   테스트
   모델링
   기타




                          |   2
Overview
 개발 홖경의 변화 – ALM 의 필요성
 Visual Studio Team System 제품 개요
 VSTS 주요 기능
 VSTS 주요 사례 - 게임
 VSTS Future




                                    Do your systems talk business? |   3
개발 조직이 겪고 있는 어려움

   조직적, 지리적으로 분리된 팀갂의 효과적인 협업
   프로젝트 상태에 대한 가시성 부족
   제대로 정의되지 않고 계속 변경되는 요구사항
   점점 복잡해 지고 빠르게 변화하는 기술
   불충분한 테스트
   기졲 어플리케이션 유지 보수에 대한 부담
   각종 규제에 대한 컴플라이언스 요구에 대응
   아웃 소싱에 대한 위협


                             |   4
What is ALM?

   Forrester Research,   August 2006
     ALM이란 요구사항, 모델링, 개발, 빌드, 테스팅과 같은
     어플리케이션 개발 라이프사이클과 관렦된 홗동들을
       1)홗동을 강제하는 프로세스
       2)개발 산출물과 홗동갂의 관계 추적
       3)개발 짂행에 대한 리포팅을 통해
      관리하는 것을 의미한다.




                                         |   5
Visual Studio Team System:
Application Life Cycle Management (ALM) Solution



                설계자   개발자     DB 전문가

         아키텍트
                                       테스터
업무 분석가                                       IT / Project
                                             관리자




   개발팀 전체의            효과적인             소프트웨어
   생산성 향상             팀 협업             품질 향상

                                                   |   6
              Visual Studio Team System 개요
                                                   Visual Studio Team Suite
                                        Architecture   Development           Test                Database
                           Visual                                                                Edition      Visual
                           Studio       Edition        Edition               Edition                          Studio
                           Team         어플리케이션                                                      데이터 베이스   Industry
                                                         코드 분석               성능 테스트
                           Explorer      모델링                                                          전개      Partners
                                                        성능 튜닝                 수동 테스트                데이터 베이스
MSF Process and Guidance




                                      인프라 스트럭쳐 및                                                     변경관리
                                        배치 모델링                               테스트 관리
                                                        보앆 분석                                       데이터베이스
                                                                                                      테스팅
                                                              코드 커버리지/메트릭
                                                                    단위 테스트

                                                                클래스 모델링

                                                          Visio 와 UML 모델링
                                                        Visual Studio Professional Edition

                                                                           Load Test Agent


                                      Visual Studio Team Foundation Server
                                      소스 제어                  리포팅                    Integration Service

                                      작업 항목 관리              팀 포털 제공                 프로젝트 관리

                                                                                                                    |    7
VSTS 주요 기능




             |   8
VSTS 주요 기능


              요구사항 관리
              개발 프로세스
    형상 관리      변경 요청 관리
               프로젝트 관리
                    지원
        팀 협업을 위한

        통합된 단일 서버


   실시갂 리포팅    품질 도구 제공


                          |   9
VSTS 주요 기능


    형상 관리    개발 프로세스 지원

        팀 협업을 위한

       통합된 단일 서버

   실시갂 리포팅    품질 도구 제공


                          |   10
형상관리! 하고 계신가요?

         소스에 대한 버전관리
         병렬 개발 작업
         변경 및 이슈 관리, 요구 사항
            관리와의 통합
           개발 프로세스 정립
           빌드 및 배포와의 연계
           분산된 팀 간의 통합된 작업
           …
           어떤 도구를 사용하고 계신 가요?


                                 |   11
왜 형상관리를 고민하시나요?
기업 내부의 요인

• 소스 재사용을 통한 개발기갂 단축
• 개발생산성 향상을 위해 병렧 개발 홖경 필요
• 보다 짂보된 Source 관리 체계 필요                                 효율적인 통제와 관리
• 자원에 대한 보앆 강화 필요
• 다양한 Project, 다양한 System, 다양한 관리 체계에 대한




                                           형상관리 솔루션 도입
 협업홖경 필요                                                 추적성 확보
• 단위 시스템에 대한 통합/연계 필요성 증대
• 요구사항 관리 및 개발 Process 표준화
                                                         효과적인 팀 협업
외부의 요인

• 소프트웨어 개발 프로세스 표준화 및 내재화                                개발 생산성 향상
• Software 품질보증에 대한 인증제도
  ISO 9001, CMMI, SPICE etc…
• 사용자는 빠른 기갂에 고품질의 Software 요구
• 더욱 복잡해지고 고도화되어 가는 개발홖경

                                                                     |   12
프로젝트 산출물에 대한 형상 관리
 개발 산출물에 완벽한 버전 관리
     데이터: SQL Server , 워크스페이스
     보앆, 속도, 데이터 앆정성
 보다 강력한 보앆 관리
     그룹별, 사용자별 권한 부여
     산출물에 대한 접근 제어
 Change Set 지원 - Atomic
    Check in
                                 소스 코드에 대한 버전
   변경 이력 관리                     관리
   특정 버전 과의 비교
   폴더 비교
   주석 처리

                                                |   13
프로젝트 산출물에 대한 형상 관리
 강력한 병렧 개발 기능 지원
  다중 Check Out 정책 지원
  강력한 Branch/Merge을 통한 동시 개발 지원
  보류(Shelving) 지원 - 중단/통합/검토/백업/전달


                        변경
   App1 changeset 10                   changeset 13
            분기
                          변경
   App1-branch                           병합
                 changeset 11 changeset 12     changeset 14




                                                 다중 Check out
                                                 정책을 통한 병렧
                                                 개발 지원

                                                                |   14
프로젝트 산출물에 대한 형상 관리
 코드 품질에 대한 통제 가능
  체크인 정책
  작업 항목, 코드 분석, 테스트 정책, 빌드




                              체크 인 정책을 통한
                              소스 제어




                                            |   15
프로젝트 산출물에 대한 형상 관리
 다양한 Client 지원
   Visual Studio와 완벽하게 통합
   다양한 플랫폼 및 개발도구에서 액세스 가능
   Linux/Linux64/Mac/Solaris/AIX/Windows
   Eclipse, PowerBuilder, Delphi




                                            |   16
     Demo
형상관리 주요 기능


   Do your systems talk business? |   17
VSTS 주요 기능

               요구사항 관리
              변경 요청 관리
    형상 관리    개발 프로세스 지원
               프로젝트 관리

        팀 협업을 위한

       통합된 단일 서버

   실시갂 리포팅    품질 도구 제공


                          |   18
작업 항목 관리를 통한 개발 프로세스 지원
   작업 항목
     프로젝트에서 수행해야 할 단위 작업
     지속적으로 관리 추적 가능

 변경 요청 관리,
 요구 사항 관리,
 리스크 관리, 프로젝트 관리
            서비스 품질 요구사항                 버그    테스트 팀



             시나리오            작업(Task)

      업무
                                              개발팀
      분석가    변경 요청 사항 프로젝트
                       관리자
                                               에러
      작업항목은 개발 팀 내의
     의사소통을 위한 기본 단위                          운영팀

                                                      |   19
작업 항목 관리를 통한 개발 프로세스 지원
   작업 항목의 홗용
     개발 프로세스 상에서 관리하고자 하는 항목을 정의
     작업 항목 유형, 각 작업 항목 별 내용, 작업 항목 유형 별 UI

   VSTS 내의 프로세스 템플릿 홗용
     프로세스 커스터마이징을 통한 적절한 작업 항목 및 프로세스 설계 지원
     MFS for Agile , MSF for CMMI 기반의 프로세스 템플릿을 제공




                                                      |   20
작업 항목 관리를 통한 개발 프로세스 지원
 다양한 클라이언트 지원
   Web Access 지원
   MS Excel , MS Project 과의 연계 지원




                                     |   21
    통합 단일 서버 제공
   버전 관리, 작업 항목, 빌드 및 테스트 정보를 하나의 단일 서버 에서 관리
                  *            *
     단계별 작업 갂의 추적성 확보 구조
                  프로젝트                  개발 주기
     작업 항목 갂의 연계 정보, 이력 관리

 버전 관리, 테스트와의 연계            *
                   *  * 작업 – 쿼리,
 프로젝트 관리를 위한 기본 데이터 항목 * 리포팅
              빌드                 * 테스트 결과
                               *
   Ex) 현재 완료된 요구사항 리스트
                        *   *
                               *        *
                       최신 버전            변경 집합




                          라벨             특정 버전
     TFS Enablement   TFS Enablement   TFS Enablement   TFS Enablement


      Work Items        특정 Control
                      Version버전         Team Build        Core Data

                        변경 셋                               개발 주기
                                         빌드
                                       테스트 결과            프로젝트 구조

                                                                      |   22
     Demo
프로세스 주요 기능


   Do your systems talk business? |   23
VSTS 주요 기능


    형상 관리    개발 프로세스 지원

        팀 협업을 위한

       통합된 단일 서버

   실시갂 리포팅    품질 도구 제공


                          |   24
실시간 모니터링 및 리포팅
   프로젝트의 짂행 상황 파악을 위한 실시갂 리포트 제공
     SQL Server 의 리포팅 서비스에 기반
     다양한 형태로 접근 가능
     팀 탐색기 , Web , Integration Service
 사전에 잘못 예측된 일정 및 비용에 대한 짂단
 개발 작업 짂행시의 문제점 짂단
 프로젝트 범위의 변동 사항 감지
 예측성 증대, 리스크 감소




                                          Do your systems talk business? |   25
통합 빌드를 위한 팀 빌드
   MS Build를 이용한 팀 빌드 자동화
        빌드 프로세스 커스터 마이징 지원
        버전 관리, 테스트, 작업항목 관리 , 리포트와 통합
        빌드 스케쥴링 지원



               Get Source

                                  생성된 빌드 리포트
                Compile
                 Source
                                  빌드 결과
    MSBuild




              Label Source


                Test Task


              Copy Binary           ChanageSet 정보
              File to Target
                                                    |   26
  Demo
              리포팅


Do your systems talk business? |   27
VSTS 주요 기능


    형상 관리    개발 프로세스 지원

        팀 협업을 위한

       통합된 단일 서버

   실시갂 리포팅    품질 도구 제공


                          |   28
Bug 해결 비용
 비용 / $




          Development   Testing   UAT   Released




          “소프트웨어 에러와 버그로 인한 비용은 해마다 증가! 그러나 이중
          의 약 50%는 효과적인 테스트 도구의 활용으로 해결 가능하다.”



                                         Do your systems talk business? |   29
다양한 품질 도구 제공

개발자를 위한 테스트 도구 제공   테스터를 위한 테스트 도구 제공

     단위 테스트              단위 테스트

    정적 코드 분석             웹 테스트

    코드 프로파일링             부하 테스트

     코드 메트릭              수동 테스트

    코드 커버리지




                                        |   30
다양한 품질 도구 제공
: 단위 테스트
 코드에 대한 테스트를 자동 생성
 특정 코드가 제대로 동작하는지를 조기에 확인
 Data Driven Test 가능 : DB, Excel
                         코드에 대한 단위 테스트 생성




                        단위 테스트 수행 결과




                                            |   31
다양한 품질 도구 제공
: 정적 코드 분석
 코드를 실행하지 않고 코드 상에 보앆이나 성능 상의
  문제를 사전에 분석
   Ex) Object not Disposed , Localisation Issue, Potential Sql Injection
    attack
프로젝트에 대한 코드 분석 설정



                                                   코드 분석 결과




                                                                      |   32
다양한 품질 도구 제공
: 코드 프로파일링
 어플리케이션 성능 분석
 함수 수행 시갂, Deadlock, Call Tree, Object Allocation 정보
 럮타임 문제(Memory Allocation, Heap allocation) 및 Deadlock,
  리소스 Leak 발견
           성능마법사를 통한 코드
           프로파일링 구성




        코드 프로파일링 수행 결과

                                                        |   33
다양한 품질 도구 제공
: 코드 커버리지
 테스트 실행 중 어떤 소스 코드가 실행되는지를 판단



             프로젝트에 대한 코드 커버리지 설정




       코드 커버리지 수행 결과




                                   |   34
다양한 품질 도구 제공
: 코드 메트릭
 코드에 대한 평가
  유지 관리 편의성, 숚홖 복잡성, 상속 수준, 클래스 결합도, 코드 줄
  수 등에 대한 정보를 분석




              코드 메트릭




                                         |   35
다양한 품질 도구 제공
: 테스트 관리
 테스트 작성
                테스트 목록 관리
 테스트 실행
 테스트 결과 보고
 테스트와 작업 항목 과의 연계
 빌드 서비스와의 연계


                            테스트 실행
       테스트 관리




                                     |   36
  Demo
              테스팅


Do your systems talk business? |   37
ALM 도입효과




Application
Lifecycle
Management




              |   38
VSTS 도입 사례 : J사 ALM 도입

비전
목표




추짂      개발 생산성          프로젝트            Time to
전략       극대화             가시성            Market




도입
        7개 국가 서비스를 한 팀이 해야 하는데 가장 효율적인 방법은?
배경
     코드, 버그, 변경관리 등 몇몇 핵심적인 기능이 자동화/통합화되어야 하겠는데..

         요구 사항은 많고, 시갂은 모자라고, 패치하고 나면 항상 버그…


                                   Do your systems talk business? |   39
VSTS 활용 예시 – Task 관리




                   Do your systems talk business? |   40
VSTS 활용 예시 – 버그 관리




                 Do your systems talk business? |   41
VSTS 활용 예시 – 빌드 관리




                 Do your systems talk business? |   42
ALM 도입 효과 – ROI 분석 사례
                        효과      평가           지표값                 KPI    사용주기         연갂화폐가치
No         KPI명
                        (+/-)   척도   사용후     사용전      GAP       특성      (월평균)          (원)

1        개발표준준수           -     분                                 P

2    코드품질 증대를 위한 코드검증     -     분                                 P

3        버그추적시갂           -     분     5.5    24.67   19.17(-)     L      31.8회           xxxx

4    개발과 테스트의 유기적 연계      -     분    0.59     8.5    7.91(-)      L       54회            xxxx

5       작업짂척상황보고          -     분    6.25    17.5    11.25(-)     L       54회            xxxx

6       버전 롤백 시갂단축        -     분                                 P

7       문제해결 시갂단축         -     분                                 P

8       짂척사항파악시갂          -     분    122.5   242.5   120(-)       L       54회            xxxx


9     프로젝트짂척율 파악시갂        -     분    240     480     240(-)       L       64회            xxxx

10       업무인수시갂           -     분                                 P

11       업무인계시갂           -     분                                 P

12       개발산출물공유         +      건수                                P

13    요청사항짂행상태파악시갂        -     분     1.5     6       4.5(-)      L       26회            xxxx


                                                                Do your systems talk business? |   43
ALM 도입 효과 – ROI 분석 사례




       ALM 도입 효과 – ROI 분석 사례




                               Do your systems talk business? |   44
ALM 도입 및 홗용방앆

     아키텍처 기반 설계 및 구현                                             [개발 프로젝트 조직 및 전산 조직의 역량
                                                                  에 따른 VSTS 구축 방앆]
     통합 프로젝트 관리
                              관리 체계 고도화
     지속적인 개발 프로세스 정제



전
산    전사 표준 개발 프로세스 정립
조    요구사항/위험요소 관리
직    데이터베이스 스키마 관리         프로세스 정립                                 Architecture Edition
역    품질 보증 (테스터 테스트)                                                VS Team Edition 통합
량    통합 빌드                                                          지속적인 프로세스 템플릿 정제
                                                                     VSTS 교육 프로그램

     프로젝트 모니터링           프로젝트 관리
     체크 인 정책
     품질 보증 (개발자 테스트)                                 프로세스 템플릿
                                                      작업 항목 관리
                              TF 버전제어                팀 빌드
                              리포트                    Test Edition
     프로젝트 계획                 팀 프로젝트 포탈              Database Edition
     형상 관리                   Development Edition



                          VSTS 기능 홗용

                                                                                             |   45
VSTS 주요 특징
                협업을 위한 단일화된 통합서버 제공
     효과적인       친숙하고 직관적인 도구 제공
  팀 협업 홖경 제공    프로세스 및 도구와 긴밀하게 연계



                프로젝트 상태에 대한 실시갂 리포팅
 전체 개발 공정에 대한   규제에 대한 대응을 위한 추적 기능 제공
    투명성 제고      프로젝트의 예측성 증대 및 리스크 감소


                가볍고   커스터마이징 가능한 프로세스
                역할별   통합된 테스팅 도구 제공
 소프트웨어 품질 향상    조기에   소프트웨어의 결함을 발견하고
                취약점   보완



                           Do your systems talk business? |   46
Summary
Visual Studio Team System 특장점
     개발팀 전체의 생산성 향상

           실시간으로 프로젝트 상태를 파악 및 예측성
           증대

               원활한 팀 내의 의사소통 지원

                모든 팀원을 위한 통합된 품질 도구 제공

                   도구의 확장을 통한 다양한
                   프로세스 및 개발 지원

                                    |   47
Do your systems talk business? |   48

								
To top