본문 바로가기
정보처리기사

소프트웨어 분류와 특성

by 두두리안 2022. 6. 18.
728x90

목차

1. 상용 소프트웨어
2. 시스템 소프트웨어
3. 플랫폼
4. 프레임워크
5. 컴포넌트
6. 소프트웨어 공학

1. 사용 소프트웨어(Commercial Software)

1-1. 상용 소프트웨어 개념

* 상업적 목적으로 생산되는 프로그램
* 시중에서 판매되고 유통되는 소프트웨어
* 홍보를 위한 무료 소프트웨어 포함
* 원시코드 제공하지 않음

1-2. 상용 소프트웨어 구분

1. 산업 특화 소프트웨어: 자동차, 항공, 조선, 농업 ..
2. 산업 범용 소프트웨어: 시스템 소프트웨어, 미들웨어, 응용소프트웨어 ..

1-3. 기업용 소프트웨어

1. OfficeWare: 회사나 단체 조직의 업무활동을 지원하는 그룹웨어
2. ERP: 경영 활동 프로세스들을 통합적으로 연계해서 관리하는 소프트웨어
3. SCM: 물류의 흐름을 파악하여 정보의 흐름이 원할 하도록 지원하는 소프트웨어
4. BI: 수집된 데이터를 정리,분석,활용하여 의사결정 할수 있도록 지원하는 소프트웨어
5. CRM: 고객 특성에 맞는 마케팅 활동을 지원하는 소프트웨어

2. 시스템 소프트웨어

2-1. 시스템 정의

* 공통적인 목적을 가지고 구성 요소들을 상호 결합한 형태

2-2. 시스템 기본요소

1. 입력
2. 출력
3. 처리
4. 제어
5. 피드백

2-3. 시스템 소프트웨어의 개념

1. 운영체재(OS) 같은 의미를 가진다
2. 응용 소프트웨어를 실행하기 위한 환경을 제공한다

3. 플랫폼

3-1. 플랫폼 개념

* 응용 프로그램을 편리하게 이용할수 있는 (하드웨어 + 소프트웨어) 환경
* 하드웨어 운영, 소프트웨어 개발 편안하게 서비스 지원
* 동일한 플랫폼에서 개발된 소프트웨어 호환성이 좋음
* 현행 시스템을 분석하기 위해 현재 시스템의 플랫폼을 상세분석

소프트웨어 vs 프로그램

프로그램: 소스코드와 결과물
소프트웨어: 프로그램포함 모든 산출물

3-2. 플랫폼 특징

* 소프트웨어 개발 비용을 줄일수 있다
* 동일한 플랫폼간의 네트웨크 구성이 효율적
* 소프트웨어 개발 생산성 향상

3-3. 플랫폼 성능 평가 기준

1. 가용성
2. 응답시간
3. 정확성
4. 사용률

4. 프레임워크

4-1. 프레임워크 개념

* 일정하게 짜여진 틀에서 제공되는 서비스 환경
* 설계, 구현등을 재사용이 가능한 형태로 제공하는 소프트웨어
* 소프트웨어 구성에 필요한 기본뼈대 제공
* 여러형태의 컴포넌트

4-2. 프레임워크 특징

1. 모듈화
2. 재사용성
3. 확장성
4. 제어의 역 흐름(IC)

4-3. 프레임워크 기대효과

1. 개발 용이성
2. 품질 보증
3. 변경 용이성
4. 유지보수 용이성
5. 재사용성 향상
6. 표준화율 향상
7. 상호 운용성 향상

5. 컴포넌트

5-1. 컴포넌트 개념

1. 모듈: 부품화된 프로그램
2. 라이브러리: 관련된모듈, 패키지 집합
3. 컴포넌트: 라이브러리 집합

라이브러리

* 표준 라이브러리: 프로그래밍 언어에 포함됨
* 외부 라이브러리: 별도의 설치를 통해 사용함

5-2. 협약에 의한 설계를 따를 경우 포함되는 조건

컴포넌트 오퍼레이션

1. 선행조건: 사용전 참
2. 결과조건: 사용후 만족
3. 불변조건: 항상 만족

6. 소프트웨어 공학

6-1. 소프트웨어 공학 개념

* 높은 품질의 소프트웨어를 최소비용으로 개발하기 위한 모든 도구 및 방법론
* 품질과 생산성 향상을 연구하는 학문

6-2. 소프트웨어 공학 등장배경

* 소프트웨어 개발의 시간과 비용 예측력 부족
* 소프트웨어 품질 향상
* 하드웨어에 대한 소프트웨어 상대적 비용 절감
* 기술의 급속적 발전

6-3. 소프트웨어 공학 기본 원칙

* 현대적 프로그래밍 기술
* 지속적인 검증
* 품질 높은 소프트웨어 상품 개발
* 결과에 관한 명확한 기록

 

참고자료: 이기적 환상콤비 정보처리기사

728x90

'정보처리기사' 카테고리의 다른 글

UML  (0) 2022.06.21
요구사항 정의  (0) 2022.06.21
소프트웨어 개발환경 분석  (0) 2022.06.20
소프트웨어 생명주기 모델  (0) 2022.06.20
소프트웨어 개발 방법론  (0) 2022.06.19