본문 바로가기

포트폴리오/정보처리기사

프레임워크, 기업용 소프트웨어

(저번 시간)

플랫폼
운영체제 - 플랫폼 - 응용 프로그램

 >> 플랫폼은 운영체제와 응용 프로그램 사이에서 작동하는 하나의 툴


플랫폼의 성능 특성 분석 항목
 - 가용성 : 정보 시스템은 적절한 방법으로 정보를 요구하는 사용자(클라이언트)에게 정보 서비스를 제공해야한다.

 - 응답시간 : 정보를 요구하는 사용자의 명령이 주어지고 반응하기까지 걸린 시간을 반응 시간이라고 한다.

 - 정확성 : 플랫폼에서 명령에 의해서 처리된 결과가 얼마나 올바른 값에 근접한가를 측정하는 정도를 말한다.

 - 사용률 : 하드웨어, 소프트웨어, 네트워크 자원등을 일정 시간 사용하는 정도를 말한다.

 


프레임워크
 - 일정하게 짜여진 틀(뼈대)에서 일한다.
 - 프레임워크는 목적을 달성하기 위해 복잡하게 연결되어 있으며, 문제를 해결하기 위한 구조이자 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.
ex) 엑셀, 워드, 컴파일러, 컴포넌트

소프트웨어 프레임워크
 - 응용 프로그램 개발이나 문제 해결을 수월하게 하기 위해 설계와 구현을 재사용이 가능한 형태로 제공하는 소프트웨어 환경
 - 효율적인 정보 시스템 개발을 위한 코드 라이브러리, 애플리케이션 인터페이스, 설정 정보 등의 집합으로써 재사용이 가능하도록 소프트웨어 구성에 필요한 기본 뻐대를 제공

 - 다양한 소프트웨어 개발을 가능하게 하는 여러 형태의 컴포넌트들

 - 완전한 제품이 아니며 개발자의 코드나 사용자 데이터가 필요

소프트웨어 프레임워크의 특징
- 모듈화 : 전체 프로그램을 한 번에 설계하지 않고 단일 기능을 갖출 수 있도록 부분적으로 묶어서 처리하는 기술
- 재사용성 : 전체나 일부 소프트웨어가 다른 응용 목적으로 사용될 수 있는 정도
- 확장성 : 추가적인 설계없이 얼마나 쉽고 가능한가에 대한 용이성
- 제어의 역 흐름 : 소프트웨어 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하여 특정한 이벤트가 발생할 때 다형성을 통해 애플리케이션이 확장한 메소드를 호출함으로써 제어가 소프트웨어 프레임워크부터 애플리케이션으로 거꾸로 흐르게 함

프레임워크를 적용할 경우 기대 효과
- 개발 용이성 : 공통적으로 필요한 기능을 미리 제공 받아 소프트웨어를 개발함으로써 빠른 시간에 개발할 수 있음
- 품질 보증 : 오류 발생 가능성을 최소화하므로 품질이 향상
- 변경 용이성 : 개발자들이 새로운 기능을 추가하거나 변경하더라도 부담 없이 변경 가능
- 유지보수 용이성 : 프레임워클 적용된 소프트웨어는 보다 체계적이고 안정적이어서 변경 되더라도 위험부담이 낮음
- 재사용성 향상 : 프레임워크 기반으로 개발된 컴포넌트들을 다른 곳에서 쉽게 사용할 수 있어서 재사용성을 극대화
- 표준화율 향상 : 정형화된 개발 기술과 방법을 제공함으로써 설계, 개발 등 시스템 구추 전반에 걸친 표준을 제시할 수 있음
- 상호 운용성 향상 : 전자 정부 표준 프레임워크 기반으로 개발된 시스템 간에 컴포넌트 연계가 용이하여 상호 운용성이 극대화될 수 있음


기업용 소프트웨어
1) 오피스웨어
- 회사나 단체에서 업무에 사용되는 소프트웨어
- 워드프로세서, 프레젠테이션, 스프레드시트 등의 업무용 오피스 소프트웨어와 그룹웨어(인트라넷, 익스트라넷)를 포함하는 기업용 소프트웨어

2) ERP(Enterprise Resource Planning) ex) 재고관리
- 신속한 의사 결정을 위한 소프트웨어이다.
- 경영 활동 프로세스들을 통합적으로 연계해서 관리하는 소프트웨어
- 기업에서 발생하는 정보들을 서로 공유하고 새로운 정보의 생성과 신속한 의사 결정을 도와줌으로써 전사적(회사 전체 차원)으로 자원을 관리한다.

3) SCM(Supply Chain Management) ex) 배송조회
- 부품 공급자를 지원하는 소프트웨어
- 부품업자로부터 생산자, 배포자, 고객에 이르는 물류의 흐름을 하나의 가치 사슬 관점에서 파악하고, 필요한 정보가 원활히 흐르도록 지원하는 기술

4) BI(Business Intelligence)

5) CRM(Customer Relationship Management) ex) 고객분석

컴포넌트(Component)
1) 컴포넌트의 개념
- 부품화된 프로그램을 모듈, 모듈들의 집합을 라이브러리라고 한다.
- 라이브러리의 집단을 컴포넌트라고 하며 컴포넌트는 라이브러리를 기능별로 분류하여 지원한다.
- 컴포넌트는 독립적으로 사용될 수 있다.

2) 컴포넌트의 설계
- 컴포넌트 설계 시 협약(Contract)에 의한 설계를 따를 경우에 다음의 조건들이 포함된어야한다
--> 컴포넌트의 오퍼레이션 사용 전에 참이 되어야 할 선행 조건
--> 사용 후 만족되어야 할 결과 조건
--> 오퍼레이션이 실행되는 동안 항상 만족 되어야 할 불변 조건

3) CBD(Component Based Development)
- 재사용이 가능한 컴포넌트 기반의 개발 방법론이다.
- 개발 기간 단축으로 생산성과 품질을 높일 수 있다.
- 유지보수 비용을 최소화할 수 있다.
- 시스템을 신속하게 구축, 새로운 기능 추가 및 확장을 용이하게 한다.

소프트웨어 공학(SE : Software Engineering)
1) 소프트웨어 공학의 개념
- 최소의 비용으로 높은 품질의 소프트웨어를 개발하기 위한 모든 도구 및 방법론을 총칭한다.
- 소프트웨어 위기를 극복하기 위해 품질과 생산성 향상을 목적으로 연구하는 학문이다.

2) 소프트웨어 공학의 기본원칙
- 현대적인 프로그래밍 기술을 적용한다.
- 지속적인 검증을 시행한다.
- 결과에 관한 명확한 기록을 유지한다.
- 품질 높은 소프트웨어 상품을 개발한다.

3) 소프트웨어 공학의 등장 배경
- 소프트웨어 개발에 필요한 시간과 비용 예측력이 부족해서
- 개발된 소프트웨어의 품질 수준이 부족해서
- 하드웨어에 대한 소프트웨어의 상대작 비용이 커져서
- 유지보수의 역할이 증대되어서
- 하드웨어 및 소프트웨어 기술의 급속한 발전 때문에
- 크고 복잡한 소프트웨어에 대한 수요가 증가해서
- 특정 개인에 의존한 시스템이 개발되어서

4) 소프트웨어 공학의 도입
- 소프트웨어 개발 과정에 공학적인 접근을 시도하여 생산성과 신뢰성을 높이기 위한 기법과 원리를 다루기 위해 도입

- 방법 : 소프트웨어를 구축하기 위한 방법 제공

- 도구 : 방법을 지원하기 위한 자동화된 도구를 지원

- 절차 : 방법과 도구를 결합하여 좀 더 향상된 프로그램을 개발하기 위한 절차

728x90
반응형