1장 시스템 개발 과정의 이해 소프트웨어 위기와 소프트웨어 공학 출 현 배경 이해 시스템(소프트웨어)의 개발자들 시스템 개발단계(SDLC 모형, 프로토타 입 모형) 프로젝트 관리 개념 및 절차 이해 한빛미디어(주)
소프트웨어 공학 소프트웨어 위기(Software Crisis) 하드웨어와 소프트웨어 비용 구성률 위기요소들 과도한 개발비용 개발기간의 지연 개발자 의존적 체계적 개발방법론 부재 * 소프트웨어 위기는 소프트웨어 공학의 출현 배경이 됨 [그림 1-1]
소프트웨어 공학 소프트웨어 공학의 출현 소프트웨어 공학(Software Engineering)의 정의 <IEEE의 정의> “소프트웨어 공학이란, 소프트웨어의 개발, 운용, 유지 보수 및 파기에 대한 체계적인 접근 방법이다.” “품질이 좋은 소프트웨어를 최소한의 비용으로 계획된 일정에 맞추어 개발하는 것이다.” * 소프트웨어 공학 = 소프트웨어(Software) + 공학(Engineering) 소프트웨어 개발에 공학적 개념을 적용하려는 시도
소프트웨어 공학 소프트웨어 공학 계층 구조 도구(Tools) 프로그램 개발 과정에서 사용되는 여러 가지 방법을 자동화한 것 CASE (Computer Aided Software Engineering) :컴퓨터 기반의 S/W개발 전 단계를 지원하는 도구 [그림 1-2]
소프트웨어 공학 소프트웨어 공학 계층 구조 방법론(Methodology) 소프트웨어 개발 전 단계에 사용되는 기술적인 방법 프로세스 중심 방법론 :1970년대 제시, 자료 흐름(Data Flow), 변환(Transaction) 등이 중심 개념 자료중심 방법론 :1980년대 제시, 데이터베이스 기반의 쿼리중심 언어에 의한 개발이 주류 객체지향 방법론 :1990년대 제시, 프로세스와 자료의 결합인 객체를 중심으로 개발
소프트웨어 공학 소프트웨어 공학 계층 구조 프로세스 소프트웨어 개발에 사용되는 방법과 도구를 적용할 순서 정의
소프트웨어 공학 소프트웨어 공학 계층 구조 품질 정확성 :소프트웨어가 요구하는 기능들을 수행하는 정도 정확성 :소프트웨어가 요구하는 기능들을 수행하는 정도 유지보수성 :새로운 환경과 고객의 요구사항에 따라 소프트웨어의 변경과 수정이 가능한 정도 무결성 :소프트웨어에 가해지는 위협에 대응하는 보안 능력의 정도 사용성 :사용자가 소프트웨어 시스템을 배우고 익혀 사용하기 편한 정도
시스템 개발자 02 시스템의 개념 시스템의 구조 [그림 1-3] 시스템이란 컴퓨터 등의 정보처리기에 의해 처리가 가능한 형태로 자료를 변환하여 입력하고, 자료를 저장, 처리, 가공하여 필요한 시점에 자료(정보)를 출력할 수 있도록 설계되고 구현된 정보체계
시스템 개발자 02 시스템 개발에 참여하는 사람들 시스템 개발 참여자들 [그림 1-4]
SDLC 모형 03 SDLC 모형의 5단계 SDLC 모형의 5단계 [그림 1-5]
SDLC 모형 03 SDLC 모형의 특성 SDLC 모형의 단계별 인력소요 [그림 1-6]
SDLC 모형 03 SDLC 모형의 특성 SDLC 모형과 건축공학 과정의 비교 [그림 1-7]
프로토타입 모형 04 프로토타입 모형이란? 프로토타입 모형에 의한 개발과정 [그림 1-8]
프로젝트 관리 05 관리자의 활동 제안서 작성 프로젝트 계획과 일정관리 프로젝트 비용 산정 프로젝트 모니터링과 중간평가 실무자 선정과 평가 보고서 작성과 발표
프로젝트 관리 05 프로젝트 계획
프로젝트 관리 05 일정관리 간트 챠트(Gantt Chart)에 의한 일정계획(예)
프로젝트 관리 05 품질관리 품질관리 활동 검열(Inspection) 검토(Review, Walkthrough) 시험(Test) 품질의 종류 설계의 품질(Quality of Design) 적합의 품질(Quality of Conformance)
프로젝트 관리 05 위험 관리 소프트웨어 위험 요소 [표 1-1] 종 류 위험요소 내 용 프로젝트 위험 인력부족 종 류 위험요소 내 용 프로젝트 위험 인력부족 경험 있는 실무자가 프로젝트 완료 전에 개발팀을 사직 관리 변화 조직 내에서 관리의 우선순위 변화 하드웨어 미비 개발에 필수적인 하드웨어의 수급이 배달지연 등으로 부족 규모의 과소평가 시스템 크기의 과소평가 생산품 위험 요구변경 계속적인 요구 사항 변경 명세서 지연 기본적인 인터페이스 명세서가 일정대로 작성되지 못함 비즈니스 위험 기술 변화 기반 기술을 신기술로 대체하지 못한 기술적 취약 생산품 경쟁 경쟁 상품이 먼저 시장에 나옴 [표 1-1]