NOTE1 - 제1부 시스템 공학과 시스템의...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 제1부 시스템 공학과 시스템의 일반적인 공정과정 1장. 시스템 공학이란? 2장. 시스템 개발의 일반적 공정 과정 1-1 1.1 시스템 공학 ■ 시스템은 어떤 목적과 기능을 수행하기 위하여 유기적인 관계를 맺 으며 함께 작용하는 요소들의 집합 ■ 시스템은 여러 요소들로 이루어진 특정한 집합 ■ 각 요소는 다른 요소들과 관계를 가지고 시스템의 공동목표를 위하여 함께 작용 ■ 시스템의 예: 사람, 컴퓨터 시스템, 자동차 운전 시스템 ■ 시스템 공학은 시스템의 개발과 운용, 유지보수를 합리적으로 행하기 위한 사고방법, 절차, 조직 및 기법 등을 총칭한 것 ■ 시스템 공학의 기술적 측면과 관리적인 측면 - 기술적인 측면: 시스템을 구성하는 물적 요소의 적합성과 이의 효과적 인 조합에 의한 효율의 극대화를 추구 - 관리적인 기능: 시스템 개발에 관련된 업무가 제대로 이루어지도록 인원, 설비, 자재 등에 대한 계획과 통제를 행하는 관리기술 1-2 컴퓨터 시스템과 소프트웨어 시스템 ■ 시스템 개발은 인간의 욕구와 사회적 필요성에 의해 시작 ■ 시스템의 평가기준은 시스템의 목적에 따라 다름 ■ 시스템의 가치 평가기준: 성능, 시간, 비용, 신뢰성, 보전성, 안전 성 ... 등 ■ 평가요소들은 시스템의 기술적 측면과 관리적인 측면에 의해서 달성 ■ 컴퓨터 시스템 공학은 기능을 하드웨어, 소프트웨어 등의 시스템의 구성 요소에 할당 ■ 시스템 개발의 첫 단계는 사용자가 요구하는 목표와 시스템의 제약 조건으로부터 시스템을 정의하는 일 ■ 그 다음, 시스템의 주요 기능, 성능 제약 조건, 설계 제약 조건, 인터페이스, 정보 구조 등을 각 시스템 구성 요소에 할당하는 작업이 수행 ■ 소프트웨어 개발은 정의 단계, 개발 단계, 유지보수 단계를 포함 1-3 1.2 건축공학의 예 ■ 건물을 지을 때의 진행 과정으로부터 대부분의 공학에도 두루 적용 되는 기본 원리 발견 ■ 설계 회사에서 설계 도면을 완성한 후 시공회사를 선정하여 설계 도면대로 건축 ■ 시공이 끝나면 감리회사가 감리 ■ 감리가 끝나면 사용자들이 입주하여 건물을 사용하고 유지보수 - 설계는 누가 하는가? - 건축 공학을 전공한 설계사가 어떤 지식으로 큰 병원을 설계할 수 있을까? - 건축학을 전공한 설계사가 어떻게 환자의 심리상태나 필요성을 파악하여 그들이 이용하기 편리한 병원을 설계할 수 있을까? 1-4 건축공학의 공정 과정 ■ 요구사항 분석 단계 - 설계팀이 구성되고 사용자들의 요구사항을 수집하고 통합 - 요구사항 분석은 설계이전에 수행되어야 할 중요한 과정 ■ 설계 단계 - 사용자의 요구 조건을 만족할 수 있도록 건물의 윤곽을 그리는 과정 - 설계사가 요구사항을 통합하여 설계 도면 완성 ■ 구현 단계 - 시공회사는 설계 도면을 가지고 건물을 건축 ■ 감리(시험) 단계 - 시공 후 감리회사는 건물이 설계한 대로 지어졌는지 - 체계적이며 분할된 공정과정을 통해 안전과 품질을 보증 - 건물에 이상이 발견되면 책임의 소재가 규명, 품질의 관리도 가능 ■ 운용과 유지보수(maintenance) 단계 - 감리 후 사용자들이 입주하여 건물 사용 1-5 건축 공학 생명주기 모델 건축물 사 용 자 건축물 사 용 자 요구사항 분석 요구사항 분석 건축물 설계 건축물 설계 시공 감리 감리 유지보수 유지보수 ■ 생명주기 모델은 간단, 명료하여 프로젝트 진행시 수행되어야 할 활동들과 그 활동들의 순서를 정하고 관리, 통제하기 쉽게 한다. ■ 또한 프로젝트에 참여한 여러 사람들이 의사 소통을 원활하게 할 수 있는 기준을 제공 ■ 이 기본개념은 다른 많은 공학에도 그대로 적용됨 1-6 2장. 시스템 개발의 일반적 공정 과정 1-7 제안서, RFP, 요구사항 명세서 ■ 고객은 시스템 개발을 위해 제안요청서 (RFP: request for proposal)를 쓴다 ■ 제안서는 시스템의 필요 사항을 명시하는 것으로 문제 해결을 위한 답을 제시하는 것은 아니다. 개발할 회사가 쓴다. ■ 제안서는 일반적으로 문제 이해의 시작점 1-8 소프트웨어 개발 과정 ■ 요구사항 분석, 설계, 구현, 시험 및 유지 보수 과정을 거침 ■ 소프트웨어는 여러 구성요소가 유기적으로 상호작용하는 시스템 ■ 소프트웨어는 일반적으로 하드웨어 및 다른 요소들과 결합 ■ 시스템 전체에 대한 기능과 요구사항의 정의가 선결된 후 그 기능 의 일부를 소프트웨어 시스템이 담당 1-9 2.1 요구사항 분석(Requirements Analysis) ■ 자동판매기 제조: 자판기에서 요구되는 기능들을 찾아내고 시스템 요소에 할당하는 작업 선행 ■ 우선 독자들은 간단한 질문 목록을 만들어 그에 대한 해답을 찾음 1. 사용 가능한 동전과 지폐는 어떤 것인가? 2. 잔돈 반환은 자동으로 되는가? 금전 관리 기능은 어떤 것이 있는가? 3. 현재의 총 금액은 표시되는가? 4. 냉장, 온장 및 절전 기능은 있는가? 5. 도난 방지 및 보안장치는 필요한가? 6. 보안 장치는 어떤 것이 있으며 비용은 얼마나 소요되는가? 1-10 자판기 질문 목록(계속) 7. 거스름돈이 없는 경우 음료가 판매될 수 있는가? 8. 음료 관리 기능은 어떤 것이 있는가? 9. 기계 관리자에게는 어떤 기능이 필요한가? 10. 어떤 일정과 예산이 할당되어 있는가? 11. 사용자가 삽입한 동전을 거스름돈으로 활용할 수 있는가? 12. 신용카드를 사용하게 할 수 있는가? 13. 신용카드 기능을 설치하는 것의 문제점은? 14. 신용카드 기능은 경제성을 가지고 있는가? 15. 심야(深夜)에는 다른 시간대보다 높은 음료수 가격을 부과하려 하는데 문제는 없는가? 16. 요구사항을 정의한 문서는 언제까지 만들어져야 하며 어느 기능들이 명시되어야 하는가? 1-11 (1) 요구사항의 규명 ■ 사용자의 관점에서 시스템의 요구사항을 모으는 것 ■ 기능(function) 요구, 성능(performance) 요구, 인터페이스(inter -face) 요구사항 등 ■ 요구사항 분석은 고객의 요구와 필요가 나오게 된 원인, 배경, 환 경 등에 대한 분석을 포함 ■ 시스템에 대한 필요가 나오게 된 고객의 내부 환경과 외적 요인을 파악(환경 분석 ) - 내적 요인: 인력 규모 축소, 기술력을 향상, 생산 증대, 서비스 향상 - 외적 요인: 경쟁, 법규나 제도의 변화, 시장 여건의 변화 등 1-12 (2) 타당성 조사 ■ 주어진 시간과 예산안에서 시스템을 개발 ■ 가능한한 빠른 시간내에 타당성을 평가하는 것이 요구됨 ■ 타당성 조사(feasibility study)는 프로젝트 계획 단계에서 이루어 지는 것이 바람직하며 분석단계에서도 이루어지는 것이 일반적 ■ 시스템 개발에 요구되는 시간, 비용, 인력 등의 자원은 시스템의 타당성에 직접적인 영향을 미친다. ■ 이러한 자원의 투자와 그 이익을 조사(손익 계산)하고 위험에 대한 분석을 수행 ■ 타당성 조사는 경제적 타당성, 기술적 타당성, 법적 타당성, 대체 방안 등에 집중됨 1-13 (3) 비용과 일정에 대한 제약 설정 ■ 요구사항을 분석하는 분석가는 응용 분야(예: 자판기)에 대한 해박한 지식 요구됨 ■ 개발 비용, 개발 일정, 시스템 성능 등에 대해서도 정확한 예측을 해야함 ■ 프로젝트 관리가 매우 중요하며 관리활동은 요구되는 자원과 성취해야 할 임무, 소요 기간, 추적해야 할 이정표 등을 포함 ■ 소프트웨어 프로젝트 관리가 다른 공학에 비해 취약한 형편 ■ 각 기능에 대한 소요 비용과 개발 기간의 예측, 제약 조건 및 위험에 대한 평가 등이 분석 단계에서 이루어져야 한다. 1-14 (4) 요구사항 정의 문서화 ■ 사용자의 요구사항과 시스템의 기능이 문서화되어야 함 ■ 중요한 산출물: 요구사항 명세서(requirements specification) ■ 기능 명세서, 목표 문서, 기능 요구서라고도 함 ■ 이 명세서는 분석가가 만드는 경우가 대부분이나 고객과 함께 만드는 경우도 있다. ■ 요구사항 명세서는 프로젝트와 관계된 모든 사람이 읽고 이해하기 쉽도록 쓰여져야 한다. ■ 요구사항 명세서는 고객과 개발 회사의 약속문서(계약서) ■ 이를 통해 추후에 발생하는 문제와 변화에 대한 책임이 명확히 규명될 수 있어야 한다. ■ 이를 위해 요구사항 명세서에 시스템에 연관된 당사자들이 동의하여 서명하고 그 다음 단계로 넘어가는 것이 바람직 1-15 자판기 질문이 어디에 해당하는가? (1) 자판기의 기능 요구사항 (2) 자판기의 성능 요구사항 (3) 자판기의 인터페이스 요구사항 (4) 자판기 개발의 내부 환경(환경 분석) (5) 자판기 개발의 외적 요인(환경 분석) (6) 자판기의 경제적 타당성 (7) 자판기의 기술적 타당성 (8) 자판기의 법적 타당성 (9) 대체 방안 (10) 비용에 대한 제약 설정 (11) 일정에 대한 제약 설정 (12) 요구사항 명세서 1-16 요구사항의 정확한 규명 ■ 사용자의 관점에서 사용자가 제공받기를 원하는 것이 무엇인지 분명하고 명확하게 밝혀 준다는 점에서 매우 중요 ■ 요구사항을 정의하고 규명하는 데 많은 시간과 노력이 우선 투자되 지만 이를 통해 진행 과정에서 발생하는 막대한 양의 비효율적인 시간과 노력을 절약 ■ 이 과정은 개발될 시스템의 설계 및 품질과 밀접한 관계를 갖는다. ■ 고품질의 소프트웨어를 만들어 내려면 시스템 개발에 앞서 요구사항 분석이 분명하고 명확하게 정의되어야 한다. ■ 요구사항 분석 단계의 주요 초점은 어떻게(how to)가 아니라 무엇 (what) ■ 무슨 기능을 수행해야 하는지에 초점을 맞추어 목표를 기술하며, 어떻게 그 기능이 수행될 것인지는 기술하지 않는다. 1-17 What과 How to 시스템 파리잡는 시스템 정렬하는 시스템 What How to 파리를 잡는다 1. 끈끈이 풀로 잡는다 2. 파리채로 잡는다 3. 파리약으로 잡는다 학생의 이름을 가나다 순으로 정렬한다 1. Bubble 정렬을 사용하여 정렬한다 2. Quick 정렬을 사용 하여 정렬한다 1-18 요구사항 분석의 중요성 ■ 요구사항 분석은 앞으로 만들 시스템의 목표를 확립하는 중요한 과정 ■ 요구사항 명세서는 이 프로젝트에 연관된 사람들 사이의 계약서. ■ 우수한 품질의 시스템은 개발 목표가 확실하고 책임의 소재가 명확 할 때 얻어질 수 있다. ■ 목표가 구체적이고 명확할수록 좋은 품질의 제품을 체계적으로 만들 수 있다. ■ 성공비결: "목표를 확립하고 행동하라" ■ 인생에 있어서도 목표를 뚜렷이 하는 것이 성공의 비결 ■ 많은 사람이 모여 큰 시스템을 개발할 때 목표를 정해 놓지 않는다 면 그것은 성공할 기회를 포기하는 것과 마찬가지 1-19 소프트웨어 개발 실정 ■ 제안서에 의해 계약이 이루어지고 난 후 그대로 개발(설계, 프로그 래밍 등)에 들어가는 경우가 많다. ■ 즉, 구체적인 목표의 확립없이 구현 ■ 설계와 프로그래밍을 하는 과정에서 새로운 요구사항이 나타나면 그때야 비로소 요구사항의 수정이 이루어진다. ■ 이러한 개발 방법으로 제대로 된 좋은 품질의 제품이 생산될 수 있을까? ■ 이는 헌법만 가지고 사회를 운영하겠다는 생각과 비슷하며 나중에 시스템이 완성된 후 시험할 수 있는 근거를 잃는다. ■ 이 경우 어디가 잘되고 잘못되었는지를 가릴 수 있는 기준이 없다. ■ 요구사항 명세서는 품질을 측정하는 기초가 되는 동시에 소프트웨어 공학이 추구하는 고품질 소프트웨어를 만든다는 단일 목표에 접근할 수 있게 한다. 1-20 2.2 설계(Design) ■ 설계는 요구사항 분석과정에서 모아진 요구사항을 설계도면에 옮기 는것 ■ 분석과정을 개념적 (conceptual)단계라 할때 설계 과정은 물리적(physical) 실현의 첫 단계 ■ 시스템을 만들며 중요하게 구분되어야 하는 것이 무엇 (what)과 어떻게(how to)이다. ■ 시스템 설계는 서브시스템(subsystem)들로 이루어지는 시스템 구조 를 결정하고, 서브시스템들을 하드웨어 및 소프트웨어 등의 구성요소들에게 할당한다. ■ 설계는 품질에 직접적인 영향을 미친다. ■ 설계가 제대로 되지 않으면 안정감이 없는 시스템이 만들어진다. ■ 안정감이 없는 시스템은 유지보수가 어렵고 조금만 변화를 가하여도 견디지 못한다. ■ 소프트웨어 시스템 설계 단계의 결과물은 설계 명세서 1-21 2.3 구현(Implementation) ■ 설계의 결과를 사용자가 이용할 수 있는 모습으로 변환 ■ 시스템의 기능이 수행 가능한 모습으로 나타난다. ■ 구현은 프로그래밍 또는 코딩 이라고 부른다. ■ 프로그래밍의 결과는 컴퓨터 프로그램 ■ 시스템 개발 과정 중 프로그래밍에 드는 비용은 평균 20%정도이며, 40-50%의 비용이 요구사항 분석과 설계에 들어간다. ■ 이 비율은 요구사항 분석과 설계가 가지는 중요성을 보여줌 ■ 소프트웨어 시스템 구현시 부딪히는 어려움은 대부분 분석과 설계의 잘못에 의한 것 ■ 소프트웨어의 경우 설계가 제대로 이루어지면 시스템 구현은 상대적으로 단순하고 기계적인 과정 1-22 2.4 시험(Testing) ■ 어느 제품이든 품질 에 대한 중요성은 아무리 강조해도 지나치지 않는다. ■ 우수한 품질의 제품을 얻기 위해서는 제품이 개발되는 공정 과정 마다 품질 보증을 위한 절차를 따라야 한다. ■ 공식적인 검토회 등을 통하여 잘못된 것을 걸러내는(filtering) 작 업이 수행되어야만 한다. ■ 시스템 시험은 품질보증 활동의 중요한 일부분이며 그 임무는 사용 자 요구사항, 설계, 구현의 전 과정에 대한 최종 점검을 포함 ■ 시험은 제품의 오류를 발견하고 수정하는 과정 ■ 시험을 하지 않았을 때 나타나는 문제점과 과다한 비용을 생각하여 보면, 시험 하는 데 드는 비용의 정당성을 찾을 수 있다. ■ 시험은 시스템 개발 전체 과정에 대하여 체계적으로 점검할 수 있는 일련의 활동들의 집합 1-23 소프트웨어 시스템 시험 ■ 사용자 요구사항, 설계, 그리고 코딩의 전 과정에 대한 점검 ■ 소프트웨어 개발 비용 중 40%이상을 차지하는 경우가 흔하다. ■ 체계적인 소프트웨어 시스템 테스트를 하기 위해서는 테스트 계획 (test plan)이 만들어져야 한다. ■ 테스트 계획에는 시험 진행 단계, 시험에 사용되는 데이터 및 시험의 한계점 등이 기술되어야 한다. ■ 테스트 계획은 최소한의 시간과 비용을 투자해서 최대한의 확률로 오류를 찾아낼 수 있도록 만들어져야 한다. 1-24 2.5 유지보수(Maintenance) ■ 제품의 유지보수는 사용 중 발생하는 여러 변경 사항에 대해 적응하는 활동이며 변화에 대비하는 과정 ■ 소프트웨어 유지보수는 4가지로 그 활동이 요약 - 잘못된 것을 수정하는 유지보수 시스템을 새 환경에 적응시키는 유지보수 새로운 기능을 추가하는 유지보수 미래의 시스템 관리를 위한 유지보수 ■ 소프트웨어 시스템의 유지보수를 위해 시스템 변경에 의한 재 요구분석, 재 설계, 재 구현, 재 시험이 필요하게 되고, 관련된 문서의 수정까지도 수반하기 때문에 체계적인 관리 기능이 필요 1-25 건축 공학과 소프트웨어 공학 건축 공학 소프트웨어 공학 건물 사 용자 요 구 건물 사 용자 요 구 사항 분 석 사항 분 석 소프트웨어 사 용자 소프트웨어 사 용자 요구사항 분석 요구사항 분 석 소프트웨어 소프트웨어 설계 설계 건물 설 계 건물 설 계 프로그래밍 프로그래밍 (코딩) (코딩) 시공 시공 감리 감리 건물 유 지보수 건물 유 지보수 테스팅 테스팅 소프트웨어 소프트웨어 유 지보수 유 지보수 < 그림 2.1 건축 공학과 소프트웨어 공학 공정 과정 비교 > 1-26 소프트웨어 품질과 우리의 미래 ■ 소프트웨어 시스템들은 미래의 우리 사회를 지탱하는 중요한 기간 시스템들이 될 것이다. ■ 이러한 기간 소프트웨어 시스템 개발도 탄탄한 계획과 절차에 의하 여 구축하여야 하다. ■ 처음부터 올바르게 만들지 않고는 품질 개선 노력과 품질 보증 활동이 성공적으로 이루어질 수 없고 고품질의 제품과 서비스로 고객의 욕구를 만족시킬 수 없다. ■ 각 기업에서 소프트웨어 시스템의 품질 보증을 위한 공정 과정과 품질 관리 체계를 확립하여야 한다. ■ 품질은 개발팀의 목적과 고객의 기대 및 요구와 직결되어 있다. ■ 모든 엔지니어들과 관리자들이 소프트웨어 개발에 요구되는 체계적 인 공정 과정에 대한 중요성을 인식하고, 품질 방침을 이해하여 이를 실천해 나가야 한다. . 1-27 ...
View Full Document

{[ snackBarMessage ]}

Ask a homework question - tutors are online