관리기법/1 – 활동 및 태스크

관리기법/1 – 활동 및 태스크

관리기법/1 시스템 개발의 전 단계 즉, 계획수립에서 분석 및 설계, 설치 및 운용까지를 지원하는 시스템 개발방법론이다.
시스템 개발 및 운용관리, 품질보증활동 등을 지원하는 프로젝트 관리방법론으로써, 개발경로, 작업 오브젝트, 기법 등 3개 의 주요 구성요소로 이루어진다.

☞ 관리기법1의 개발경로

일련의 시스템 개발 또는 유지관리와 관련된 활동이라 정의할 수 있다. 이러한 활동 및 태스크는 다음과 같다.

① 특정한 목적을 갖는다.
② 작업을 완료 시 생성/검토/갱신해야 하는 오브젝트 또는 전달물을 지시한다.
③ 전형적으로 작업을 수행할 직능 유형을 정의한다.

구 분 활동 및 태스크 내 용
정보수립계획  전략적 업무 필요 및 기술 요건을 파악하고 정의한다. 또한 개별적인 프로젝트 수준에서 계획수 립을 다룬다.
클라이언트/서버개발  클라이언트/서버 환경에서 분산되고 협동적인 처리를 요구하는 정보시스템을 위한 것이다.
이 경로에서는 새로운 구성요소를 생성하는 방법과 필요한 경우 기존의 시스템을 통합하는 방법을 제공한다.
호스트 개발  기존의 호스트 환경에서 전통적인 온라인 처리를 요구하는 정보시스템을 위한 것이다.
패키지 시스템 개발  시중의 소프트웨어를 충족될 수 있는 업무 그리고 정보요구를 위한 것이다. 가용한 소프트웨어 패키지를 평가하고 선정하며 필요한  경우 표준 또는 요구사항을 충족시키도록 사용자화하여 설치하는 절차들이 포함된다.
소규모 프로젝트
개발
 클라이언트/서버 개발과 호스트 개발 두 경로의 부분집합으로, 이 경로의 범위는 넓은 방법론 (클라이언트/서버와 호스트개발경로 와 같은)과 소규모의 고속 개발 접근방법 사이에 있다.
고속개발  소규모 프로젝트 팀으로 3개월에서 6개월의 기간동안 고품질의 응용 시스템을 구축하는 것이다.
팀은 JAD(Joint application development), 타임박스, 프로토타이핑과 같은 특정한 기법을 적용하여 “고속”으로 수행한다.

이러한 정의에 따라 관리기법/1에서는 프로젝트의 규모, 기술적 범위, 업무절차를 고려하여 주요 개발경로로 정보계획수립, 클라이언트/서버 시스템 개발, 호스트 시 스템 개발, 패키지 시스템 개발, 소규모 프로젝트 개발, 고속개발로 나눈다.
또한 관리기법/1에서는 이러한 개발경로와 관련되어 프로젝트 관리, 기반구조 관 리를 제공한다.

프로젝트 관리에서는 수행 중에 있는 업무의 계획이나 관리, 기술이 나 경험을 적절하게 섞어서 결합하는 일, 업무의 진행과 질을 감시하는 일 등과 같 이 핵심적인 프로젝트 기능을 규정한다.

기반구조 관리에서는 응용개발 환경과 아 키텍처를 지원하는 방법론을 제공한다.

그리고 관리기법/1에서는 각 개발경로에서 진행되는 분석, 설계, 프로젝트 관리, 품질, 기반구조 관리를 지원하기 위하여 개발 기법을 제공한다.

작업 오브젝트란 방법론에서 어떤 작업을 완수하기 위해 작성하고 참조하며 관리 하게 되는 전달물이며 시스템에 관한 지식의 집합이다. 각 작업 오브젝트는 다음 태스크에 필요한 입력사항이 되며 프로젝트 팀 간에 활용을 위하여 데이터저장소에 저장되어 관리되는 것이 바람직하다. 관리기법/1에서는 개발자 표준양식에 따라 작 성하는 산출물로써 작업 오브젝트에 대한 샘플을 제공한다.

관리기법/1의 각 개발경로들은 단계와 세그먼트 및 태스크 등 세 가지 유형의 항 목으로 구성된다. 각 개발경로들은 프로젝트의 업무 범위와 기술적 요소, 자원요소 에 의해 정의된다. 여기의 단계는 관리기법/1에서 상위 수준의 항목이다. 그리고 각 단계는 방법론 계층에서 다음 수준의 세부사항을 나타내는 세그먼트로 나누어지고, 다시 각 세그먼트는 태스크로 나누어진다. 이 태스크는 계층에서 최하위수준이다. 세그먼트와 태스크는 작업 오브젝트와 산출물을 만드는 실제 활동들이다.

관리기법/1에서 제공하는 단계는 프로젝트의 규모, 기술적 범위, 업무절차를 고려 하여 주요 개발경로를 구분하고 있다. 클라이언트/서버 개발 단계는 대규모 프로젝 트를 기준으로 전체 경로를 포함하고 있어, 관리기법/1에서 제공하는 산출물을 포 괄적으로 제시할 수 있다. 클라이언트/서버 개발경로에서는 새로운 시스템의 요건 을 계통적으로 조직화하고, 해당 요건에 맞도록 시스템을 설계, 구축, 시험, 전개하 는 세그먼트를 포함한다. 관리기법/1에서 제공하는 각 세그먼트에서 수행하는 활동을 정의하면 다음과 같다.

구 분 세그먼트에서 수행하는 활동내용
사용자
요구사항
사용자가 필요로 하는 요구사항과 새로운 시스템이 운용될 새로운 전반적인 업무흐름 및 조직을 이해하고 문서화한다. 프로젝트 팀은 사용자의 요구사항과 아울러 기존 시스템과 새로운 시스템의 차이를 찾아 새로운 시스템의 관점에서 필요한 변경사항과 변경되지 않을 구성요소들을 식별한다.
품질요건 시스템이그 기능을 얼마나 성공적으로 수행해낼 수 있을 것인가를 기술한다.
일반적으로 성능, 신뢰성, 사용성, 유연성 등의 품질요건을 분석하여 그 측정 방법과 목표치를 정한다. 또한 품질요건들 간에 상충되는 사항이 있는 경우에는 예산, 구현일정 등을 고려하여 품질요건의 순위를 결정한다.
요구사항 분석 사용자 요구사항에서 나타난 사항을 사용자와 프로젝트 팀 모두가 이해하고 확인할 수 있도록 업무프로세스의 프로토타입을 작성하고 이벤트 모델, 데이터 모델, 프로세스 모델을 통해 요구사항 모델을 공식화 한다.
업무절차 설계 사용자 관점에서 신규 시스템의 모습을 정의하는 세그먼트이다. 주요 활동은 대화설계, 윈도우와 기타 입출력 설계, 상세한 작업 흐름을 정의한다.
기술설계 요구사항을 기술적 아키텍처의 구성요소에 대응시키는 작업과 시스템의
상세한 구성요소를 설계하는데 필요한 표준과 지침을 마련하는 전반적인 설계를 결정한다.
그리고 데이터와 프로세스를 네트워크 전체에 분산시키고 프로그램을 모듈 단위로 구분하고, 프로그램간과 모듈간의 메시지를 설계 및 외부시스템과의 인터페이스를 설계한다. 데이터 모델은 일단 논리 데이터베이스로 변환시킨 후 물리 데이터베이스 설계로 변환시킨다. 그리고 마지막으로 IS운용 필요사항이 고려된다.
품질검증 사용자와 기술 담당자가 모든 기능 요건이 설계 명세서에 모두 포함되어 있으며 목표로 하는 품질요건을 충족시킬 수 있을 지에 대해 검증한다. 이 세그먼트에서는 프로토타이핑되거나 시험될 수 있는 품질 속성인 사용성과 성능에 특히 주의를 두어야 한다.
전환설계 새 시스템을 운용하는데 필요한 활동 즉, 사용자 교육, 데이터베이스 변환, 시험 및 전개 등에 관한 활동들을 계획한다.
아키텍처 설계

프로토타입
아티텍처에 대한 개념 설계를 검증, 갱신하고 공급업체 및 제품을 재검토한 후 권고안을 작성한다. 실질적인 프로토타이핑 시험에서는 응용에서 요구하는 모든 요건들을 아키텍처가 충족시키는지를 확인한다.
아키텍처 구축
및 시험
프로젝트팀은 아키텍처 구성요소를 구축하고 시험한다. 아키텍처 및 개발 프로세스는 아키텍처 개발자들과 공동으로 아키텍처 구성요소 도구, 표준 등의 베타 테스트를 수행함으로써 시스템 및 그 개발환경이 성능에 대한 요구사항을 모두 만족시키고 있는지를 확인한다.
상세설계 설계작업을 완료하고, 각 작업 단위에 대한 상세한 문서를 작성한다. 또한 각 프로그래밍 작업단위의 논리 데이터 뷰와 물리 데이터베이스를 작성하고 설계검토를 실시한다. 마지막으로 컴파일 단위를 시험하는 데 사용할 수 있는 공통 시험데이터를 마련한다.

 

구 분 내 용
사용자 절차 및 교육 시스템을 지원하는 성능, 보안, 제어, 컴퓨터 운용기능들에 대해 사용자 절차를 작성한다. 아울러 입력문서, 출력양식 등에 대한 설계를 마무리 짖고,
사용자 절차, 보안절차, 제어절차에 대한 상세한 내용을 묶어 사용자 설명서를 작성한다.
그리고 프로젝트 팀은 사용자 설명서 및 절차로부터 필요한 교육용 자료와 강사용 자료를 작성한다. 프로젝트 팀은 교육에 대해 파일럿
시험이나 검토회의를 하는 절차를 수행하여 교육이 효율적으로 구성되어 가는지를 확인한다.
시스템 시험

전개 계획 수립
새로운 시스템을 사용자에게 어떤 방식으로 전개 실시할 것인지에 대한 방안을 마련한다. 이와 같은 작업에 따른 복잡도와 이 작업에 의해 발생되는
필요자원 및 인원 등은 시스템이 어떤 방식으로 분산되어져 있는지와 변환 작업을 여러 사이트에서 반복해서 실시해야 하는지의 여부에 따라
좌우된다. 아울러 프로젝트 팀에서는 시스템이 당초 원했던 바대로 작동하는지를 시험하기 위한 시스템 시험계획과 시스템이 정상적으로
작동하는지를 확인하기 위한 시험데이터와 예상 결과를 포함하고 있는 시스템 시험모델도 마련한다.
프로그래밍 코딩이란 프로그래밍 작업 단위를 컴퓨터가 실행 할 수 있는 형태로 변환하는 작업을 의미한다. 프로그래밍 언어를 이용하여 코드를 작성하고, 코드
제너레이터 도구에 입력되는 규격을 작성하며, 업무 제어문을 작성하는 일 등이 여기에 포함된다. 그 다음에는 결과를 점검하고 문법상의 오류를
제거한다. 그리고 충분한 시험데이터를 준비하고, 단위시험을 통해 코드에 오류가 없는지 확인한다.
시험결과를 예상 결과와 비교 점검하고 에러를 수정한다. 프로그램을 완전히 시험하고 난 후, 같은 스트링 내에 있는 접속 프로그램들과
부분시험을 실시한다.
이것은 프로그램간의 통신을 검증하고 ‘시스템 시험’ 세그먼트의 통합시험으로 이어진다. 이 세그먼트에서, 프로젝트 팀은 프로그래밍을 지휘, 통제하고, 시험을 조정함으로써 코딩 작업을 지원한다.
시스템 시험 시스템 운용으로 가기 전에 시스템 시험기간 동안 신규 시스템을 시험할 책임이 있다. 프로그래밍으로부터 이루어진 구성을 시험하고 그 결과를
재검토한다.
통합시험을 실시하고 시스템의 성능을 확인하여 필요하다면 변경을 수행한다.
또한 결과를 조사하여 결함이 있다면 수정해 준다. 그리고 ‘품질보증’검토를 포함한 사용자 시험을 실시하여 시스템이 사용자가 기대한 대로
성능을 수행하는지 확인한다.
전개준비 신규 시스템을 전개하기 전에 필요한 모든 작업을 완료한다. 교육팀에서는 시스템을 사용할 요원을 교육하고 교육 결과에 대한 피드백을 받아 교육
프로그램에 반영한다. 프로젝트 팀은 구축에 따른 비용 산정, 구축 완료 일정 및 책임/의무조항, 하드웨어 및 소프트웨어 전달을 포함하여
신규 사이트에 필요한 모든
조치를 취해야 한다. 그리고 프로젝트 팀은 기존 데이터베이스와 소스들에 들어있는 데이터를 변환시켜 준다.
시스템 전개 작업환경은 신규 시스템만을 반영해야 한다. 구 시스템의 나머지는 반드시 제거해야 한다. 프로젝트 팀은 시스템을 재검토하고 분석하여 설계서에 명시된
기능을 수행하는지 검증한다. 그리고 프로젝트 팀은 신규 시스템이 사용자와 업무상의 요구사항과 작업요건에 더욱 적합하게 하기 위해 시스템의
운용 초기에 행
한 변경사항이나 향상된 점을 문서화하여 향후 재구현시 방영할 수 있도록 해야 한다.