1. 시스템의 개념 - 명지전문대학 E

Download Report

Transcript 1. 시스템의 개념 - 명지전문대학 E


시스템의 개념을 파악하고 시스템의 개발 방법 및
단계를 학습한다.
2
1) 시스템(System)의 정의
◦ 그리스어의 “systema”에서 유래(Syn:함께, Histem:놓다)
◦ 어떤 목적달성을 위해 필요한 여러 구성 요소들이 상호
관련하여 유기적으로 결합된 집합체
 유사한 정의
 예정된 기능을 협동해서 수행하도록 설계된 상호작용 요소들의
유기적인 집합체(R.E. Gibson)
 규칙적으로 상호 작용하거나 상호 의존적이면서 단일 집합을
형성하는 항목들의 집합
 주의, 사상, 법칙 등의 조직화된 집합
 조직화되거나 확립된 절차 또는 분류하거나 기호화하여 도식화하는
방법
 조화로운 배열 및 양식 즉, 절차
 하나의 조직화된 사회 또는 사회환경 즉, 체계
3
1) 시스템(System)의 정의
◦ 예) 인체시스템, 교육시스템, 컴퓨터시스템,
인사급여시스템
그림 1.1 시스템의 구성요소
인사급여시스템의 예
4

시스템 분석 및 설계 관점에서의 시스템
◦ 컴퓨터 하드웨어, 소프트웨어, 데이터, 운영절차 및
사람들을 상호 유기적으로 결합시킴으로써 조직의 정보
요구에 관한 목표를 가장 효과적으로 달성시키기 위한 것

시스템 분석 및 설계하는 작업
◦ 컴퓨터화되지 않은 기존의 시스템을 컴퓨터화된
시스템으로 대체하거나
◦ 컴퓨터화 된 시스템일지라도 개선된 새로운 시스템으로
교체하는 작업
5
2) 시스템의 기본 요소
그림 1-2 시스템의 기본 요소
6
2) 시스템의 기본 요소
◦ 입력(Input) 기능
 처리를 위한 자료를 시스템에 투입하는 것
 정보를 처리하기 전에 미리 준비하는 행위
 정보를 입력하기 위해 키보드, 스캐너, 바코드 등을 사용
◦ 처리(Process) 기능
 입력 자료를 주어진 조건에 따라 처리/가공하는 것
◦ 출력(Output) 기능
 입력된 자료를 가지고 적절한 처리를 거쳐 생성된 결과를 시스템에서
추출하는 것
◦ 제어(Control) 기능
 입력에서 출력까지 각 요소들이 올바르게 수행되도록 감독하는 것
◦ 피드백(Feedback) 기능
 처리된 결과를 평가하여 부정확하다면, 결과의 일부나 오차를 다음
단계에 다시 입력하여 반복 처리하는 것
7
3) 시스템의 특성

목적성(Objective)

자동성(Automation)

제어성(Control)

종합성(Integration)
그림 1.3 시스템의 특징
◦ 모든 시스템은 분명한 목적이 있음.
시스템의 목적은 하나 이상이 될 수도
있음. 즉 큰 목적을 달성하기 위해 작은
목적을 갖는 여러 시스템들이 존재할 수
있음
◦ 조건 또는 상황의 변화가 발생할 때 이에
대응하는 절차나 행동을 가장 적절한
처리가 자동적으로 이루어지도록
시스템을 설정해 주는 것
◦ 정해진 규정에 따라 시스템이 정상적으로
진행되도록 제어하는 것
◦ 신뢰성과 밀접한 관계를 가짐. 제어성이
뛰어난 시스템은 신뢰성이 높음
◦ 다른 관련 시스템과의 상호의존 관계가
있으며, 각 부분 시스템도 전체 시스템의
일부분으로써 필수 기능을 수행함
8
4) 시스템의 종류
◦ 자연 시스템 : 자연계에 존재하는 시스템
◦ 인공 시스템: 사람에 의해 조직되고 관리되는 시스템
시스템의 종류
내 용
자연 시스템
(Natural system)
◎ 물리적 시스템
- 천체 시스템 : 지구, 태양, 달 등
- 지리 시스템 : 산, 강, 바다 등
◎ 생물적 시스템
- 사람, 동물, 식물
인공 시스템
(Artificial system)
◎
◎
◎
◎
사회제도 :금융실명제, 버스전용 차로제 등
운송 시스템 : 항공, 고속도로, 운하 등
통신 시스템 : 핸드폰, 팩시밀리 등
제조 시스템 : 컴퓨터 조립라인 등
표 1.1 시스템의 종류
9
5) 정보 처리 시스템(information processing
system)의 형태
◦ 정보처리시스템 : 컴퓨터를 이용하여 자료를 수집하여
유용한 정보로 변환 및 저장하는 등 일련의 작업을
처리하는 시스템
◦ 종류




일괄처리 시스템(Batch processing system)
시분할 시스템(Time sharing system)
실시간 시스템(Real Time system)
분산처리 시스템(Distributed processing system)
10
5) 정보 처리 시스템의 형태
◦ 일괄처리 시스템
 사용자들의 작업 요청을 일정
기간 동안 또는 일정한
분량이 될 때까지 모아
두었다가 한꺼번에 처리하는
방식의 시스템
 결과를 얻으려면 상당한
시간을 기다려야 함
 일정한 시간 계획에 의해서
시스템을 가동할 수 있어서
업무 관리와 처리효율이
뛰어남
 급여계산, 분기별 매출
현황보고, 대학 입시처리 등
그림 1.4 일괄처리 시스템
11
5) 정보 처리 시스템의 형태
◦ 시분할 시스템
 일괄처리 시스템의 사용에서
느끼는 사용자의 불편을
해결하기 위해 등장
 컴퓨터 시간을 잘게 나눈 시간
조각(time slice)에 의해서
컴퓨터를 공유하는 시스템
 중앙처리장치가 여러 작업들을
각각 짧은 시간으로 나누어
연속적으로 처리
 사용자 입장에서는 마치 혼자
사용하고 있는 것처럼 이용
 통신선 비용 부담이 크며,
운영체제가 복잡해진다는 단점
그림 1.5 시분할 시스템
12
5) 정보 처리 시스템의 형태
◦ 실시간 시스템
 데이터를 입력하는 즉시 처리하여 결과를 출력하는 시스템
 시스템 사용 중 장애가 발생하더라도 수행을 계속할 수 있는
장치가 마련되어 있어야 함
 처리속도가 매우 빠르고 신뢰성이 높아야 함
 예) 공정 제어, 항공기 예약, 은행의 온라인 거래 시스템, 증권 시세
등
◦ 분산 처리 시스템
 네트워크를 통해 서로 연결되는 여러 개의 프로세서들과 네트워크
자체를 의미함
 여러 개의 분산된 데이터 저장 장소와 프로세서들을 네트워크로
연결하여 서로 통신을 하면서 동시에 일을 처리하는 시스템
 중앙집중식 시스템의 비효율성 문제를 해결하고자 분산처리
시스템 환경으로 변화
 예) 클라이언트-서버 시스템
13
5) 정보 처리 시스템의 형태
구
분
2단계 (2-Tier)
클라이언트-서버 시스템
3단계 (3-Tier)
클라이언트-서버 시스템
적용 규모
소규모
대규모
클라이언트 확장력
제한(약 500대 정도)
무제한
서버 확장력
제한(약 5대 정도)
유연(약 100대 이상)
DB 확장력
구축 비용
제한
적다
용이
많다
구축시 용이성
쉽다
비교적 어렵다
네트워크 구축
간단
복잡
개발자 부담
작다
크다
트랜잭션 응답시간
같다
짧다
작업부하 분배
불가능
가능
보안
제한
강력
중앙 집중관리
불가능
가능
표 1.2 2단계와 3단계 클라이언트-서버 시스템의 비교
14
1) 현실 중심 개발 방법
◦ 현재 사용중인 시스템의 문제점을 보완 및 개선하여 시스템을
개발하는 방법
◦ 문제 중심 개발 방법 또는 축차적 개발 방법이라고도 함
◦ 기존 시스템의 정상적인 부분은 그대로 사용, 성능의 저하 또는
비효율적인 부분을 찾아 수정
◦ 기존의 시스템과의 차이점이 적어 사용자는 배우기 쉬움
◦ 기존 시스템의 설계가 전체적으로 비효율적이면 개발작업이
복잡해질 수 있음
2) 이상 중심 개발 방법
◦
◦
◦
◦
신규 시스템을 개발하는 방법
목적 지향형 개발 방법 또는 규범적인 개발 방법이라고도 함
효율적이며 성능이 뛰어남 시스템을 개발할 수 있음
업무환경과 사용자의 수준 등 현실적인 문제, 기존 시스템과
다르게 개발되어 사용자의 거부감이 발생할 수 있음
15
현실 중심 개발방법
이상 중심 개발방법
장점
∙시스템 도입이 비교적 용이
∙개발 기간이 짧음
단점
∙현 시스템의 설계가 비효율적이면 개발∙시스템 도입이 어려움
작업이 복잡
∙오랜 개발기간
특징
∙현 시스템의 문제점만 개선
∙처음부터 새롭게 모두 개발
∙비교적 짧음
∙비교적 길음
∙있음
∙없음
환경 변화
∙(이상 중심 개발방법 보다) 적음
∙(현실 중심 개발방법 보다) 많음
사용자의 거부감
∙(이상 중심 개발방법 보다) 적음
∙(현실 중심 개발방법 보다) 많음
∙문제 중심 개발방법
∙축차적 개발방법
∙목적 지향형 개발방법
∙규범적인 개발방법
개발 기간
기존 시스템의 유무
동의어
∙시스템 효율이 높음
표 1.3 현실중심 개발방법과 이상 중심 개발방법의 비교
16

시스템 개발 방법론
◦ 시스템을 개발하기 위해 공통적으로 거치는 단계와 그
단계에서의 활동 지침을 정리한 것
◦ 시스템 개발 주기(System Development Life Cycle)
 관리자적인 입장에서 시스템 도입에 필요한 활동들을 정리
 시스템의 탄생부터 소멸까지의 변환과정
 관리자는 하드웨어와 소프트웨어를 포함한 전체 시스템을
성공적으로 도입하는 활동들을 주로 관리
◦ 소프트웨어 생명 주기(Software Life Cycle)
 개발 실무자적인 입장에서 시스템 도입에 필요한 활동들을 정리
 소프트웨어의 탄생부터 소멸까지의 과정
 개발자는 소프트웨어를 구현하는데 필요한 자료 구조, 알고리즘
등에 집중
17
1) 시스템 개발 주기
그림 1.6 시스템 개발 주기
18
1) 시스템 개발 주기
◦ (1) 시스템 조사 단계
 시스템과 연관된 환경, 업무, 제약사항 등의 예비조사부터 시작
 시스템 분석가와 사용자가 공동으로 현행 시스템을 분석하여
수작업으로 인한 업무의 신뢰성 저하 등 사용자가 직면한 문제를
규명하고 개선책을 제시하고 사용자의 요구사항을 파악하기 위해
연관된 많은 자료를 수집
 현재 시스템의 목적, 문제 등을 정의
 개선된 시스템 또는 새로운 시스템 개발의 타당성 조사
그림 1.7 시스템의 조사 순서
19
1) 시스템 개발 주기
◦ (2) 시스템 분석 단계
 시스템조사단계에서 얻은
정보를 기초로 적용 업무에
가장 적합한 시스템을
정의하는 것
 시스템에 대한 환경, 서브
시스템의 구성요소, 사용자의
요구사항을 정의, 현
시스템의 문제점을 조사
그림 1.7 시스템의 조사순서
20
1) 시스템 개발 주기
◦ (2) 시스템 분석 단계
 조직 정보의 분석
 개발 예정 시스템의 기업조직 정보를 분석한 후, 중요한 관리사항,
운영사항과 정보체계를 분석
 서브시스템의 분석
 주요 서브 시스템, 업무의 구성요소, 상호 연관성을 분석, 서브 시스템의
내용과 요구사항을 분석
 현행 시스템의 분석
 현행 정보체계의 구성 요소 및 기능을 분석하고, 개발 예정 시스템에 영향을
주는 정보 체계에 대해 업무의 흐름을 분석
 제안 시스템의 분석
 제안 시스템과 그 서브 시스템의 입출력, 처리 내용, 조건 등의 논리적
흐름을 분석
 시스템의 요구사항
 개발 예정 시스템의 목표, 계약조건, 요구사항을 문서화하며 시스템 요구
사양서를 작성
21
1) 시스템 개발 주기
◦ (2) 시스템 분석 단계
내
용
- 현행 시스템에 대한 이해
- 필요한 사항과 기대 파악
기능 분석 - 발생한 문제점과 현행 시스템의 애로 사항에 대한 이해
- 환경이나 특성에 대한 이해
- 목적과 기능의 명백화
- 대체안에 대한 작성
비용효과 - 전산화 비용 견적
분석
- 효과 측정을 위한 계수적 이해
- 대체안 평가
표 1.4 기능 분석과 비용효과 분석
22
1) 시스템 개발 주기
◦ (3) 시스템 설계 단계
 시스템 분석 단계에서 정의된 사용자의
요구사항을 기초로 새로운 시스템의 모델을
설계하는 것
 기본 설계
 시스템의 기능 설정, 시스템을 여러 모듈로
구분하여 각 모듈의 입출력 형태, 파일의 구조,
모듈간의 접속, 코드 체계 등 시스템 전체에 대한
처리 모델을 설계, 사용자 인터페이스 정의
 상세 설계
 기본 설계를 기초로 시스템 구현과 운영에
필요한 사항들을 자세히 정의. 코드설계,
입출력설계, 파일설계, 프로그래밍 설계순으로
수행
 시스템 사양서 작성
 개발 예정 시스템의 목적, 범위, 시스템 설계의
자세한 기술을 작성. 원시 문서들, 데이터베이스,
출력매체, 자료 준비와 수집절차, 전산 업무의
처리 흐름을 포함. 프로그램 정의서,
하드웨어/소프트웨어 사양도 작성
그림 1.9 시스템 설계 단계
23
1) 시스템 개발 주기
◦ (4) 시스템 구현 단계
 시스템 설계 단계에서 작성된 설계 내용을 기초로 프로그램 언어로
변환 및 작성하는 단계
 프로그래밍 또는 코딩
 구현 방법
 구조적 프로그래밍 : 하향식(top-down) 프로그래밍,
순차(sequence), 선택(Selection), 반복(Repetition) 세가지
제어구조만 사용. 코드 이해 및 검증이 쉬움
 모듈화 프로그래밍 : 하나의 프로그램을 논리적으로 여러 작은
모듈들로 분할하여 설계
 단계적 세분화 : 세분화 단계를 실행
 상향식 및 하향식 프로그래밍
 객체지향 프로그래밍 : 자료와 연산을 분리하고 있는 기존의
개념과는 달리 자료와 연산이 결합된 객체들의 시스템
24
1) 시스템 개발 주기
◦ (5) 시스템 시험 단계
 프로그래머가 작성한 모듈을
통합 및 실행하면서 시스템의
입출력, 기능, 시스템의
특성들이 설계된 내용과
일치하는지를 확인
 신규시스템에 대한 문서화,
운영, 교육훈련 등을 포함
그림 1.10 시스템 시험 단계
25
1) 시스템 개발 주기
◦ (5) 시스템 시험 단계
 계획

신규 시스템의 시행 계획으로 교육, 훈련, 작동에 대한 절차와 일정 계획이 포함됨

시스템 운영자에 대한 교육을 실시



시스템의 시험, 평가, 디버깅을 수행
단위 시험 : 각 모듈에 초점을 맞추고 각 모듈이 하나의 시스템 단위로 정상적인 기능을
수행하는지 시험
통합 시험 : 단위 테스트를 마친 모듈들을 통합하여 프로그램에 대해 시험
검증 시험 : 분석 단계에서 설정된 시험 기준에 연관된 사항들을 시험
시스템 시험 : 확인된 소프트웨어가 다른 시스템 구성 요소와 통합되어 전체적인 기능과
목표에 부합하는지 여부를 확인
인수 시험 : 개발이 완료된 시스템을 사용자 환경에서 시스템의 기능과 성능을 점검하는 것

시스템, 프로그래밍, 조작, 사용자 지침서 등의 문서화

시스템의 작동방법, 기존 시스템으로부터 전환 절차 등을 수행
 교육
 시험



 문서화
 운영
26
1) 시스템 개발 주기
◦ (6) 유지보수 단계
 시스템에 필요한 개선 사항과 수정에 대해 시스템을 보완, 감시,
평가하는 과정
 시스템 운용 시 발생하는 문제점들의 수정 및 새로운 기능을 추가
 정확한 출력보고서, 신뢰성 등 시스템의 타당성을 검토
 수리 유지보수
 시험 단계에서 발견되지 않은 에러가 시스템을 인수하여 사용할 때
발견되는 경우가 있는데 이런 오류를 고치는 작업
 적응 유지보수
 환경의 변화에 대응하여 소프트웨어를 변경하는 작업
 완전화 유지보수
 좋은 알고리즘으로 수정 등 기능상의 보완 작업
 유지보수 순서
 소프트웨어의 이해 -> 유지보수 요구사항 분석 -> 소프트웨어
설계 -> 코드 수정 -> 단계별 테스트 ->유지보수 결과 검토
27
2) 소프트웨어 생명 주기
◦ 폭포수 모델(Waterfall Model)
그림 1.11 폭포수 모델
28
2) 소프트웨어 생명 주기
◦ 폭포수 모델(Waterfall Model)
 계획단계
 시스템 정의서 : 사용자의 문제를 정의, 전체 시스템이 갖추어야 할 기본 기능과
성능 요건을 파악, 타당성 분석
 요구사항 분석 단계
 요구사항 명세서 : 시스템의 목표를 정하는 단계, 사용자의 요구사항을 정의하기
위해 시스템의 요구사항을 수집
 설계 단계
 설계 명세서 : 요구사항 분석 단계에서 모아진 요구사항을 설계도면에 옮김
 구현 단계
 컴퓨터 프로그램 : 설계 명세서를 시스템의 실제 모습으로 변환(프로그래밍, 코딩)
 시험 단계
 모든 과정에 대한 최종 점검을 하는 단계
 통합 테스트, 시스템 테스트, 인수 테스트
 유지보수 단계
 소프트웨어를 사용 중 발생하는 문제점을 수정, 새로운 기능을 추가하는 단계
29
2) 소프트웨어 생명 주기
◦ 폭포수 모델(Waterfall Model)
 특징







개발 단계가 선형구조
비전문가가 사용할 시스템을 개발하는데 적합
각 단계마다 끝난 후 결과물이 명확히 산출되어야 함
앞 단계가 끝나야만 다음 단계로 넘어갈 수 있음
모든 계획이 최종 완성일 하나에만 맞추어져 있음
모든 분석은 프로젝트가 시작되기 전에 완성되어야 함
사용자의 의견을 프로젝트 중간에 반영시킬 수 없음




각 단계의 병렬 수행이 불가능
오류수정이 어려움
개발 기간이 늦어질 수 있음
새로운 요구사항을 설계에 반영하기 힘듦
 단점
30
2) 소프트웨어 생명 주기
◦ 프로토타입 모델(Prototype Model)
 요구분석의 어려움을 해결하기 위해 실제 개발할 소프트웨어의
일부분을 직접 개발하여 사용자에게 보여줌으로써 의사 소통의 도구로
이용하기 위한 모형
 개발의 타당성을 검증하기 위한 목적으로 프로토타입 작성
 프로토타이핑(Prototyping)
 사용자가 최종 결과물이 생성되기 전에 최종 결과물의 일부 또는 모형을
보고자 할 때 시스템의 일부 또는 시스템의 모형이 될만한 것을 만드는 과정
그림 1.12 프로토타입 모델
31
2) 소프트웨어 생명 주기
◦ 프로토타입 모델(Prototype Model)
 요구사항 분석 단계
 시스템 분석가와 사용자간 소프트웨어의 전반적인 요구사항 정의
 시제품 설계 단계
 프로토타입에 대해 설계, 시제품 개발의 목표를 확립, 시제품에
포함된 시스템의 기능들을 선택
 시제품 개발 단계
 기초 수준 정도로 구현
 고객의 시제품 평가 단계
 요구사항의 오류 발견, 추가되어야 하는 요구사항 발견
 시제품 정제 단계
 시제품에 대한 조율
 완제품 생산 단계
 완제품 개발
32
2) 소프트웨어 생명 주기
◦ 나선형(Spiral) 모델
 폭포수 모델과 프로토타입
모델의 장점에 새로운 요소인
위험분석을 추가시킨 것
 여러 번의 개발 주기를 거침
 비용과 시간이 많이 필요
 대규모 시스템 개발 및
구축에 적합
그림 1.13 나선형 모델
33
2) 소프트웨어 생명 주기
◦ 계획 및 정의 단계
 요구사항을 수집하며 개발에 따른 목표, 제약조건 등을 설정
및 개발 계획서를 작성
◦ 위험분석 단계
 비용 또는 기술적으로 위험 부담이 큰 경우 위험 분석 및
해결 방법을 찾음
◦ 개발 단계
 위험에 대한 평가 후, 선택된 기능을 개발(설계, 구현,
시험)함
◦ 고객 평가 단계
 시스템 평가, 수정을 요구
34
수고하셨습니다!!
35