Chapter 4 시스템개발 프로젝트 계획수립 (IS Development Planning) 시스템분석 및 설계 Chapter 4 시스템개발 프로젝트 계획수립 (IS Development Planning)
목 차 0. 학습개요 및 학습목표 1. 문제의 이해와 시스템정의 2. 타당성 분석 2.1 경제적 타당성 분석 목 차 0. 학습개요 및 학습목표 1. 문제의 이해와 시스템정의 2. 타당성 분석 2.1 경제적 타당성 분석 2.2 기술적 구현가능성 분석 2.3 지적 재산권 분석 3. 시스템개발 프로젝트 계획 4. 시스템개발 일정계획 및 프로젝트 관리
0. 학습개요 및 학습목표 시스템 정의 및 개발계획의 중요성을 인식한다. 시스템정의서의 내용과 시스템정의서의 작성방법을 숙지한다. 시스템개발의 타당성분석의 종류와 내용을 이해한다. 시스템개발계획의 주요 내용을 이해하고 개발계획서 를 작성하는 방법을 숙지한다.
0. 시스템 분석가 소프트웨어 생명 주기 전체 단계에 대해 총 책임을 지는 사람으로 사용자와 개발자 사이의 교량 역할 시스템 계획이나 분석 단계에서 개발해야 할 시스템의 목적, 기능 및 현업 담당자들의 요구사항 등을 파악하여 이의 해결책을 문서화하여 명세서를 작성하는 사람
0. 시스템 분석가의 역할 ‧ 분석가는 문제의 분석과 실행에 대한 문제를 제언 ‧ 분석가는 컴퓨터 시스템의 계획, 구성, 조작, 제어 등 전반적인 사항을 경영진에 제언 ‧ 분석가는 현 시스템을 평가하고 개선점을 찾는다. ‧ 분석가는 새로운 시스템을 설계하거나 현 시스템을 다시 설계할 경우 세부 명세서를 마련 ‧ 분석가는 정보를 처리하는 과정에서 경영에 필요한 특별한 보고서나 문서의 표준화를 이루어야 한다. ‧ 분석가는 컴퓨터의 하드웨어와 소프트웨어에 대한 지식을 습득하여 시스템 개선에 적용해야 한다. ‧ 분석가는 프로그래머, 오퍼레이터, 관리자의 임무를 잘 이해해야 한다.
0. 시스템 분석가의 자질 (1) 전산 지식 (2) 적용 업무 지식 (3) 문제 해결 능력 (4) 대인 관계 기술 프로그래밍 언어, 컴퓨터 하드웨어, 데이터베이스, 통신, 시스템 개발 방법론 등에 대한지식 전산 지식은 빠르게 발전하므로 항상 최신 기술을 습득 (2) 적용 업무 지식 현 시스템의 문제점을 파악하여 해결책을 제시해야 하므로 전산화 적용 업무에 대한 기본적인 지식 대부분의 경우 사용자가 시스템의 문제와 해결책을 가장 잘 알고 있으므로 분석가는 완전한 지식을 알 필요는 없으며 기본적인 지식을 갖추고, 상세 업무는 개발시 사용자와 협의하여 습득 (3) 문제 해결 능력 현 시스템의 문제를 원인과 결과로 나누어 기업의 목적에 미치는 영향을 분석하고 전체 목적에 가장 효과적인 시스템을 정의 (4) 대인 관계 기술 다양한 사람들 사이에서 긴밀하게 대화하면서 의견을 중재하고 조정하여 프로젝트 진행을 원활하게 한다.
1. 문제의 이해와 시스템 정의 사전연구를 통해서 시스템개발 해당 영역의 문제를 이해한다. 사전연구 결과를 토대로 시스템정의서를 작성한다.
1. 문제의 이해와 시스템 정의 1.1 문제의 이해 문제의 이해: 단순한 문제의 나열만이 아니라, 문제의 영역/원인/해 결방법(기능)/해결목표 등 기술 분석가와 사용자 간의 질의/회의/ 면담 등을 통해 분석 개발될 시스템의 기능 시스템개발에 따른 제한사항: 시스템성능, 시스템환경, 개발비용, 개발 언어, 개발방법론, … 시스템 사용자 및 사용자의 수준 새로운 시스템이 투입될 시기( 개발일정) 개발될 시스템에 대한 윤곽을 파악하고, 개발프로젝트의 수행여부 결정
1. 문제의 이해와 시스템 정의 1.2 시스템정의 (System Definition) 시스템정의서의 작성목적 시스템개발의 필요성 정당화 시스템의 기능의 우선순위 및 성능 수준 사용자의 수준파악 시스템개발이 최선의 대안인지 타진
1. 문제의 이해와 시스템 정의 시스템정의서의 핵심내용 기술 영역 기술 목적 해당 영역 기술 시스템개발의 필요성과 개발효과를 강조 시스템개발 프로젝트를 정당화 개발작업이 원활하게 진행될 수 있도록 경영층으로부터 필요한 자원을 지원 받기 위해서 작성 문제의 배경 시스템개발의 필요성 문제의 내용 구체적인 문제의 내용과 시스템개발을 통해서 문제 해결 가능성을 제시 개발될 시스템의 기능과 성능에 대한 조건 정의 시스템의 최종사용자의 수준을 파악하여 사용자의 사용 편리성을 제공 개발 프로젝트 계획을 수립하기 위한 목적 시스템개발의 목표 갖추어야 할 기능 성능요구조건 제약사항 사용자의 특성 개발 및 운용유지보수 추진전략 일관된 방법론과 체계적인 절차에 따라서 시스템개발 작업을 효율적으로 진행할 수 있도록 작업 상의 요구사항을 정리 시스템기능의 구현의 우선순위를 결정하기 위해서 작성 시스템기능의 우선순위
1. 문제의 이해와 시스템 정의 시스템정의서를 작성하는데 고려해야 할 핵심내용 문제의 영역과 과제 시스템개발 시 요구되는 의뢰인에 대한 요구 갖추어야 할 기능, 개선 혹은 유지되어야 할 기능 최소한의 시스템 성능 사용자의 질적 수준 시스템운영 및 유지보수 환경 추진전략
2. 타당성 분석 (Feasibility Analysis) 타당성분석 작업이 필요한 이유 제한된 조건상황(비용, 인원, 기간, …) 하에서 개발 프로젝트를 진행해야 하는지 검토 시스템개발의 타당성 시스템개발이 경제적 효과가 있는지 검토 경제적 타당성 원하는 시스템을 기술적으로 구현 가능한지 검토 기술적 구현 가능성 시스템개발에 법적인 문제가 발생할 여지는 없는지 검토 법적 인 타당성
2. 타당성 분석 (Feasibility Analysis) 2.1 경제적 타당성 분석 경제적 타당성 (Economic Feasibility Analysis) 시스템개발이 최선의 대안인가? 시스템개발을 통한 이익과 개발비용의 비교분석 전제: 시스템 도입효과 vs. 개발비용 시스템 도입효과: 직접적인 측정방법이 모호하기 때문에, 해결하려는 문제 의 중요도로 판단 개발비용 산정: 개발비용 항목별로 수치화할 수 없는 경우가 많기 때문에, 비 산술적인 방법으로 비용을 산정함 (하향식 산정방법 / 상향식 산정방법)
2. 타당성 분석 (Feasibility Analysis) 하향식 비용산정 방법 개발비용 항목을 일일이 수치화하지 않고 항목 전체에 대한 객관 적인 주관적인 판단으로 산정 객관적인 주관적인 판단: 과거의 사례/전문가의 의견과 같은 합리적 인 기준에 근거하여 주관적으로 판단 과거의 유사 사례 프로젝트에 의한 비용산정 전문가의 감정에 의한 비용산정 델파이 방식에 의한 비용산정
2. 타당성 분석 (Feasibility Analysis) 개발비용 항목과 개별요인 항목 개별 요인 개 요 프로젝트 문제의 유형 문제의 유형과 문제의 복잡도에 따라 해결방법이 다르기 때문에, 문제의 유형과 복잡에 따라 비용을 산정한다. 문제의 복잡도 개발기간 개발기간과 개발인원 사이의 관계를 고려하여 비용을 산정한다. 개발 시스템 개발시스템의 규모 개발시스템의 규모는 시스템을 통해서 처리할 내용을 의미하며, 규모가 커질수록 개발비용은 상대적으로 증가한다. 개발시스템의 규모는 원시프로그램의 라인수(KDSI: 1000 Delivered Source Instruction)로 산정한다. 개발시스템의 신뢰도 사용자가 정확하고 견고하며, 완벽한 시스템을 요구할수록 개발비용은 상대적으로 증가한다. 인적 자원 개발에 참여할 인원 시스템개발에 참여하는 인력에 대한 비용은 비교적 산정하기 쉬운데, 인적자원비용은 인월 당 총비용으로 산정한다. 개발자의 전문성 시스템개발에 참여하는 개발자의 전문성은 시스템개발 프로젝트의 성공확률은 높이기 때문에, 유사한 사례를 통해서 객관적으로 입증된 전문성 정도에 따라서 비용을 산정한다. 시스템자원 소프트웨어 시스템개발을 위해서 필요한 소프트웨어와 하드웨어 장비들은 비교적 쉽게 파악할 수 있기 때문에, 비용 또한 손쉽게 산정할 수 있다. 하드웨어 개발방법론 및 개발도구 사용되는 방법론과 개발도구는 시스템의 효율성과 개발기간의 단축, 개발인원의 감축 측면에서 비용절감 효과가 있다.
2. 타당성 분석 (Feasibility Analysis) 상향식 비용산정 방법 개발비용 항목별로 일일이 개별 비용을 산정 원시프로그램 라인수: 시스템 기능을 구현하는데 소요되는 원시 프로그램 라인수를 예측하고 라인수를 기준으로 개발비용을 산 정하는 방법 개발참여 인월수: 분석-설계-구현-시험 등의 절차마다 어느 정 도의 인원이 필요한지 계산하고 인원 당 인건비를 계산하여 개발 비용을 산정하는 방법
2. 타당성 분석 (Feasibility Analysis) 2.2 기술적 구현가능성 분석 시스템정의서로 요약된 시스템기능/성능은 구현가능성과 무관하게 갖추어야 할 기능/성능을 열거한 것이기 때문에, 실지로 구현가능한 지 검토 개발위험 검토 사례연구/최악 사례연구/시뮬레이션 연구/프로토타이핑 연구 자원 가용성 검토 인적자원 가용성/기술적 자원가용성/물적자원 가용성 개발기술 검토 개발기술의 존재여부와 효율성 검증이 검토 대상
2. 타당성 분석 (Feasibility Analysis) 2.3 지적 재산권 분석 지적 재산권 분석(Legal Feasibility Analysis) 개발에 필요한 각종 언어번역기/개발자동화 도구의 사용에 법적인 분쟁여지가 있는지 검토 분석/설계/구현 과정에서 사용되는 소프트웨어의 불법 사용 검토 DBMS CASE TOOL 개발될 시스템도 불법복제 및 불법 사용으로부터 보호 받을 수 있어 야 하기 때문에, 개발자 스스로 타인의 지적 재산권을 침해하지 않 도록 하는 것이 기본 도리
3. 시스템개발 프로젝트 계획 시스템정의서의 내용이 경제적/기술적/지적 재산권 분석 을 통해서 경제적 타당성, 기술적인 구현가능성, 법적이 하자가 없음이 입증되면, 언제 어떤 일을 어떻게 어떤 절차에 의해서 진행하며, 개발기간 개발비용은 얼마나 소요되는지 구체적인 계획을 수립
3. 시스템개발 프로젝트 계획 시스템개발 계획요소 및 세부사항
4. 일정계획 및 프로젝트 관리 시스템개발 일정계획 프로젝트 일정산정 방법 후방위 스케줄링: 시스템 인도일자를 기준으로 세부단계의 작업일정을 역으로 계산 최대 여유시간 산정 가능 전방위 스케줄링: 시스템개발의 세부단계의 작업일정을 고려하여 언제 시스템을 인도할 수 있는 계산 프로젝트 종료시간 산정
4. 일정계획 및 프로젝트 관리 프로젝트 일정계획의 표현: Gantt-chart 전체작업을 세부작업으로 구분 소요시간을 막대의 길이로 표현
4. 일정계획 및 프로젝트 관리 프로젝트 일정계획의 표현: MS Project 일정계획의 용이한 수정 및 재작성 가능
4. 일정계획 및 프로젝트 관리 프로젝트 일정관리 및 통제 가상 프로젝트 표기 작업내용 소요시간(단위: 월) 선행 작업 A1 요구사항분석 6 - A2 시스템설계 4 A3 화면 및 보고서 설계 A4 데이터베이스 설계 3 A5 프로그래밍 7 A2, A3, A4 A6 테스트 A7 사용자지침서 작성 A8 시스템설치 2 A6, A7
4. 일정계획 및 프로젝트 관리 프로젝트 일정관리 및 통제: PERT , CPM
시스템분석 및 설계 Chapter 5 사 례 자동주차관리 시스템
시스템분석 및 설계 Chapter 6 사용자 요구분석의 이해
목 차 0. 학습개요 및 학습목표 1. 사용자 요구분석의 개요 2. 사용자 요구분석 절차와 방법 1.1 요구분석가의 역할 목 차 0. 학습개요 및 학습목표 1. 사용자 요구분석의 개요 1.1 요구분석가의 역할 1.2 사용자 요구의 종류 1.3 사용자 요구분석의 문제점 2. 사용자 요구분석 절차와 방법 2.1 사용자 요구분석 절차 2.2 사용자 요구분석을 위한 의사소통 방법
0. 학습개요 및 학습목표 사용자 요구분석가의 역할과 갖추어야 할 역량을 이해한다. 사용자 요구분석가가 파악해야 할 다양한 요구조건들을 학습한다. 사용자가 파악해야 할 요구조건들의 우선순위를 결정하는 방법을 학습한다. 사용자 요구분석의 원리와 방법을 이해한다. 사용자 요구분석의 다양한 기법에 대해서 이해한다. 사용자 요구분석결과를 문서로 작성하는 방법에 대해서 학습한다.
1. 사용자 요구분석의 개요 요구분석 단계의 위치와 업무내용
1. 사용자 요구분석의 개요 요구분석 단계에서 파악해야 할 내용 시스템운영 상의 요구조건 시스템품질 상의 요구조건 현재의 시스템기능 / 미래에 갖추어야 할 기능 데이터구조와 흐름 / 인터페이스 시스템품질 상의 요구조건 시스템의 신뢰성 / 유지보수 용이성 / 효율성 / 사용자 편리성 기술적인 요구조건: H/W, S/W 연계 / 프로그래밍 언어 / 운영체제 테스트 및 유지보수를 위한 요구조건 시스템 구현을 위한 요구조건: 자원 / 개발모형 / 개발도구
1. 사용자 요구분석의 개요 요구분석가의 역할 사용자의 요구를 찾아내고 일목요연하게 정리하며 이를 기록하는 역할 사용자의 요구를 찾아내기 위해서 회의, 면담, 설문, 관찰 등 다양한 방법을 활용 사용자와 개발자 그리고 개발의뢰인 사이의 중재자로서의 역할 사용자, 개발자, 개발의뢰인은 각각 자신의 관점에서 각기 다른 요구조건을 표명 하기 때문에, 이를 조정하고 중재하는 역할을 담당함. 개발방법론 또는 개발도구(tool) 등이 상호 의사소통 도구로 활용됨.
1. 사용자 요구분석의 개요 요구분석가가 갖추어야 할 역량 요구분석을 위해서 업무 영역에 대한 전문적인 지식 논리적이고 조직적인 사고 문제해결을 위한 독창적인 아이디어 사용자, 개발자를 중재하기 위한 원만한 인간관계 요구분석을 위한 전문기술 및 풍부한 경험 컴퓨터 프로그래밍 경험과 전문성
1. 사용자 요구분석의 개요 사용자 요구의 종류
1. 사용자 요구분석의 개요 사용자 요구의 분류기준 요구사항의 필요성 정도 시스템기능으로 반드시 구현해야 하는지의 여부 문제해결을 위해서 절대적으로 필요한 요구조건 문제해결에는 영향이 없지만, 시스템품질에 영향을 미치는 요구조건 시스템기능으로 반드시 구현해야 하는지의 여부 기능적인 요구: 문제해결을 위해서 절대적으로 필요한 요구조건 들 비능적 요구: 시스템으로 구현될 필요는 없지만 시스템품질을 위해서 중요한 요 구조건 들 요구사항을 제기하는 주체 최종 사용자: 기능적인 요구, 문제해결에 절대적으로 필요한 요구 사용자가 속한 상위 조직부서: 전략적인 요구
1. 사용자 요구분석의 개요 사용자 요구분석의 문제점 요구분석작업 자체의 어려움 분석해야 할 요구사항의 종류가 다양하고 복합적 배경지식이 다른 사용자, 개발자를 중재하는 역할을 담당하기 때문에, 업무지식 과 기술적인 전문지식이 요구됨 요구를 추출하는 기술, 지식, 방법, 문서작성 기술이 요구됨. 분석해야 할 요구사항의 종류가 다양하고 복합적 사용자 스스로가 자신의 문제를 정확하게 알지 못하고, 따라서 요구를 명확 하게 나타내지 함. 사용자의 요구가 수시로 변하고 일관성이 없음 요구분석서는 사용자와 개발자가 이해할 수 있는 형태와 수준에서 작성되 어야 하기 때문에, 문서작성에 어려움이 있음.
2. 사용자 요구분석 절차와 방법 사용자 요구분석 절차
2. 사용자 요구분석 절차와 방법 사용자 요구분석을 위한 접근방법
2. 사용자 요구분석 절차와 방법 사용자 요구분석 기본원리 복잡도를 줄이기 위해서 대상 영역 전체를 분석대상으로 하지 않고 부분 영역으로 분할하여 분석 대상 영역 분할(Abstraction) 분석(모델링) 대상(Scope of Modeling) 설정 어떤 기준으로 영역을 분할할 것인지는 방법론에 따라 각기 다름. 분할된 영역별로 별도의 방법론과 모델링 도구가 사용될 수 있음. 분할된 영역을 분석(모델링) 대상으로 하여 부분 영역의 모델을 작성 작성된 부분 영역의 모델을 통합하여 통합모델을 작성
2. 사용자 요구분석 절차와 방법 효율적인 요구분석을 위한 접근방법 의사소통의 문제를 해결하기 위한 방법 사용자, 분석가, 개발자가 이해할 수 있는 공통의 모델링 방법론, 공통의 모델링 도구를 사용 프로토타입을 상호 의사소통도구로 활용 문제의 복잡도를 줄이기 위한 방법 문제 영역을 방법론이 제시하는 기준으로 분할하여 모델의 복잡도를 줄임. 구조적 방법론이나 객체지향 분석기법을 이용 요구분석의 일관성 유지하기 위한 방법 고도의 자동화된 분석도구를 활용
2. 사용자 요구분석 절차와 방법 의사소통 방법 - 회의 회의에 참석할 대상을 정한다. 회의시간과 장소, 목적을 미리 전달하여 참석자가 자신의 업무를 스스로 정리할 수 있는 시간적 여유를 갖도록 한다. 브레인스토밍 방식의 회의 진행 자신의 입장을 거리낌없이 이야기할 수 있도록 최대한 자유스러운 분위기로 회 의를 진행한다. 평소 자신의 생각하고 있었던 문제점과 해결방법에 대한 아이디어를 소신 있게 말하도록 한다. 자유스러운 분위기를 유지하되, 주제에서 벗어난 방향으로 나날 때에는 진행자 가 적절하게 통제한다. 모든 내용에 대한 프로토콜을 작성하여 사후 검증을 받는다.
2. 사용자 요구분석 절차와 방법 의사소통 방법 - 인터뷰 현재의 업무를 이해하고 문제점과 해결방안까지 가장 잘 알 수 있는 위치 에 있는 사용자 중에서 인터뷰 대상을 선정한다. 인터뷰 내용과 시간, 장소를 협의하고, 인터뷰를 통해서 참석자가 어떤 역 할을 해야 하는지를 전달한다. 인터뷰에 사용될 질문을 미리 숙지하도록 하여, 미리 준하도록 한다. 인터뷰에 사용될 질문은 질문자의 주관이 개입되지 않도록 객관적이어야 한다. 인터뷰 결과는 반드시 문서로 작성하여 응답자와 함께 인터뷰 결과를 확 인하며, 수정 보완하여 이를 다시 문서로 작성한다.
2. 사용자 요구분석 절차와 방법 의사소통 방법 - 설문조사 회의, 인터뷰는 대상의 크기에 따라 물리적인 한계가 있기 때문에, 전사적 업무분석처럼 분석범위가 넓은 경우에는 설문조사가 효율적임. 설문조사는 익명성이 보장되기 때문에, 회의/인터뷰 방식보다 더 소신 있는 대답을 기대할 수 있음. 익명성으로 인해 무성의한 대답이 나올 수 있음 시스템품질에 결정적으 로 부정적인 영향을 초래함. 따라서 불특정 다수를 위한 시스템개발의 경우가 아니면, 사용을 자제하는 것이 바람직
2. 사용자 요구분석 절차와 방법 의사소통 방법 - 업무관찰 사용자가 어떻게 업무를 처리하고 있는지? 그들의 문제가 무엇인지? 또 그들이 요구하는 것이 무엇인지를 직접 관찰하고 문제점과 해결방안을 사 용자와 함께 논의하여 정리하는 방법 회의, 인터뷰 방식에 대한 보완적인 방법으로 주로 사용됨 의사소통 방법 - 프로토타이핑 다양하고 복잡한 사용자의 요구를 회의, 설문, 인터뷰, 관찰과 같은 일회 적인 접촉을 통해서 파악하기는 어렵기 때문에, 일회 요구분석을 통해서 프로토타입을 개발 추가/변경된 요구사항을 반복적으로 파악하여 수시로 반영하는 방법