제6장 소프트웨어와 정보시스템

Download Report

Transcript 제6장 소프트웨어와 정보시스템

제6장 소프트웨어와 정보시스템
목차
• 소프트웨어
• 프로그래밍 언어
• 프로그램의 설계
• 소프트웨어 개발 방법론
• 정보시스템의 발전
6.1 소프트웨어
• 개념
– 프로그램
– 여러 가지 프로그램들을 총칭하는 포괄적인 의미
• 기능
– 컴퓨터의 하드웨어 구성 요소들을 작동
– 문제 해결
• 분류
– 시스템 소프트웨어(System Software)
• 하드웨어 자원을 관리 / 응용 소프트웨어 실행 지원
– 응용 소프트웨어(Application Software)
• 사용자를 위한 프로그램
6.1 소프트웨어
• 컴퓨터 구성
• 사용자/응용소프트웨어/시스템소프트웨어/하드웨어간의 관계
시스템 소프트웨어
• 하드웨어와 응용 소프트웨어간의 매개체 역할
– 하드웨어 구성 요소들과 함께 응용 소프트웨어 지원
– 종류
• 운영체제(Operating System : OS)
• 컴파일러와 인터프리터(언어 번역기)
• 유틸리티
운영체제(OS)
• 사용자와 하드웨어를 서로 연결시켜주는 매개체 역할
• 초기 운영체제는 시스템 조작자가 수동으로 작업을 실행시킴
• 현재, 컴퓨터의 모든 자원을 자동으로 인식시켜주고 프로그램을
실행시켜주는 운영체제 프로그램이 개발되었음
– 부팅 후 운영체제의 작업
• 사용자를 위한 인터페이스 제공 / 하드웨어 장치 관리
• 파일 시스템 관리 및 보존 / 기타 다른 프로그램 지원
– 종류
• 개인용 / 서버용 / 기업용
• Microsoft Windows 시리즈 / UNIX / Linux
• Apple의 Mac/IBM의 OS 400/SUN의 솔라리스/HP의 HP-UX 등
– POST(Power On Self Test) : 자체진단
– Boot : Bootstrap(부트스트랩)의 줄인 말
• 컴퓨터가 자신의 운영체제를 부팅한다는 의미
언어 번역기(Translator)
• 컴퓨터를 활용하기 위해서는,
– “프로그램을 통해서만 가능하다.”
• But,
– 프로그램은 컴퓨터가 이해할 수 있는 구조인 “0”, “1”의 조
합으로 만들어져야 함
• But, “0”, “1”(저급언어)로 프로그램 하는 것이 어렵다.
• 따라서, 고급언어로 프로그램 한다.
• Compiler and Interpreter
– 고급언어 표현을 저급언어 표현으로 변환
• Compiler : 프로그램 전체를 대상으로 변환(C, C++ 등)
• Interpreter : 프로그램 문장마다 변환(Basic, Prolog 등)
• Hybrid : 두 가지 방식 혼용
유틸리티
• 모든 사용자들이 자주 사용하는 프로그램들
• 운영체제 자체적으로 제공
• 기능
–
–
–
–
데이터를 한 매체에서 다른 매체로 옮김
데이터의 배치 순서 변경
에러 디버깅(Debugging)
텍스트 편집기
응용소프트웨어
• 특정 분야의 응용을 목적으로 개발되
는 프로그램들
– 사용자 프로그램
• 일반 사용자 / 조직에서 직접 제작하
여 사용하는 프로그램
• 학사관리, 인사, 재고, 경영관리 등
– 패키지 프로그램
• 소프트웨어 전문 회사가 작성하여 판
매하는 프로그램
• 한글, MS 오피스, SPSS 등의 통계 패
키지
6.2 프로그래밍 언어
• 바벨탑과 프로그래밍 언어와의 관계
저급언어(Low Level)
• 컴퓨터 개발 초기에 사용됨
• 주로 시스템 프로그래밍에 사용
– 기계어(Machine Language)
• 전기적 회로를 통해 직접적으로 해석, 실행
• 매우 효율적 / 복잡하고 어렵고 많은 시간 소요
• 컴퓨터에 의존적
– 어셈블리어(Assembly Language)
•
•
•
•
기계어를 대신하여 사용됨
기계어 명령을 대신하는 기호(심볼)를 사용함
컴퓨터에 의존적이고, 또한 번역 시켜주는 어셈블러 요구
But, 수행시간이 빠르고 효율적임.
고급언어(High Level)
• 실행되기 전에 저급언어로 변환이 요구됨
• 컴파일러나 인터프리터가 번역기로 사용됨
– 절차지향( Procedural Programming )
•
•
•
•
초기 고급 언어들의 특징
전통적인 프로그래밍의 논리로 문제 해결
명령을 순서에 맞게 코딩하고 순차적으로 실행
Fortran, COBOL, PASCAL, BASIC 등
– 객체지향(Object-Oriented Programming)
•
•
•
•
•
객체 : 데이터와 데이터에 관계된 연산으로 구성
클래스 : 객체들의 공통적인 성질을 정의함
상속 : 객체를 조직화 함.
객체는 다른 응용 프로그램안에서 사용/공유될 수도 있음
Smalltalk, C++, Visuql C++, JAVA 등
고급언어(High Level)
– 비절차지향
•
•
•
•
•
제4세대 언어(4GL : 4th Generation Language)
프로그램의 생산성을 높이기 위한 패키지 프로그램
프로그램의 흐름을 전문가가 아닌, 소프트웨어로 해결
문제 해결형 언어라고도 함.
SQL (Structure Query Language)
– 데이터베이스 검색/질의/변경들의 작업을 수행
• 함수 언어, 논리언어(술어논리), 자연언어
– 제 5세대 언어(5GL)
• 인공지능 구현, 전문가 시스템 작성 시 사용
• LISP, Prolog
철수는 남자다 - 명제논리
Man(철수) - 술어논리
고급언어 종류
•
비주얼베이직(Visual Basic)
– 프로그램 작성 쉬움, 시각적 디자인 가능, 인터프리터 특성
•
C
–
–
–
–
•
유닉스 운영체제 작성키 위해 설계됨
신뢰성, 규칙성, 간소성 등의 사용상의 편리함
저급언어 특징을 보유, 융통성과 이식성
C++로 확장
비주얼 C++(MS)
– 윈도우용 프로그램 작성용
•
JAVA(SUN MicroSystem)
– C++보다 강력하며, 네트워크 및 분산환경에서 이식성이 우수, 인터프리터
기법, 중간코드 생성(Binary)
– 웹과의 접목
•
XML (eXtensible Markup Language)
– 인터넷 환경 지원
– 웹상에서 구조화된 문서를 전송(문서 규격, 형식, 표준화된 텍스트 형식)
Diagram of Programming Language History
6.3 프로그램의 설계
• 프로그램 개요
– 원하는 결과를 얻을 수 있도록 컴퓨터에게 일련의
일을 시키게 하는 명령어들의 집합체
– 기계어로 변환하는 단계 존재
• 원시 언어는 고급 언어가 사용됨
– 프로그램 작성은 단계별로 실시함
•
•
•
•
•
프로그램
프로그램
프로그램
프로그램
프로그램
명세서(설명서) 검토
구조와 논리설계
작성
테스트
적용
6.3 프로그램의 설계
• 프로그램 설계기법
– 흐름도
• 프로그램 작성에 앞서
프로그램 계획을 세우
는 방법
• 문제 해결을 위해 논
리를 나타내고, 이를
도식적으로 표현
– 사용 기호(도형)들
처리
시작/종료
대체 처리
판단
준비
데이터
6.3 프로그램의 설계
• 윤년 또는 평년인지 결정하는 흐름도
6.4 소프트웨어 개발 방법론
• 소프트웨어 수명주기(Life Cycle)
– 사용자의 요구에 따라 소프트웨어가 탄생되고 가동 및 운용
되는 가운데 수정,보완이 반복되어 최종적으로 사용이 종료
될 때까지의 기간
– 폭포수 모델(고전적 모델)
• 개발 방법론
– 구조적 기법
– 객체지향 기법
6.4 소프트웨어 개발 방법론
• 구조적 기법
6.4 소프트웨어 개발 방법론
• 객체지향 기법(컴포넌트 기반 개발(CBD) 방법)
요구분석
S/W 개발 프로세스
구현
6.5 정보 시스템의 발전
•
전자정보처리 시스템(EDPS : Electronic Data Processing System)
– 전자데이터처리 시스템 (예, 컴퓨터 )
•
경영정보 시스템(MIS : Management Information Systems)
– 기업 경영에 관한 정보를 제공해주는 컴퓨터 시스템
– 범주 (거래처리시스템, 경영정보시스템, 의사결정지원시스템(DSS))
•
전략정보 시스템(SIS : Strategic Information Systems)
– MIS를 활용하여 기업의 경쟁력을 키워나가는 전략적 정보 시스템
•
전사적 자원관리(ERP : Enterprise Resource Planning)
– 기업의 전반적인 업무 프로세스(생산,판매,자재,인사,회계 등)를 지원
•
고객관계 관리(CRM : Customer Relationship Management)
– 고객관계를 관리해 나가기 위한 방법 또는 소프트웨어 지칭
– 공급망 관리(SCM : Supply Chain Management)
• 물자, 정보 및 재정 등의 공급자에게서 생산자에게로의 진행과정을 감독