반응형
소프트웨어의 분류와 특성
상용 소프트웨어(Commercial Software)
1) 상용 소프트웨어의 개념
- 상업적 목적으로 생산되는 프로그램(Program)
- 시중에 판매되고 유통되는 소프트웨어
- 홍보를 위한 특정 무료 소프트웨어도 포함
- 제작에 필요한 원시 코드(Source Code)를 제공 X
2) 상용 소프트웨어의 구분
- 산업 특화 소프트웨어 : 자동차, 항공, 조선, 건설, 농업 등의 산업에 사용되는 소프트웨어
- 산업 범용 소프트웨어 : 시스템 소프트웨어, 미들웨어, 응용 소프트웨어
3) 기업용 소프트웨어
- 오피스웨어(OfficeWare) : 회사나 단체 조직의 업무 활동을 지원하는 그룹웨어, 오피스 프로그램 등
- ERP(Enterprise Resource Planning) : 경영 활동 프로세스들을 통합적으로 연계해서 관리하는 소프트웨어
- SCM(Supply Chain Management) : 부품업자로부터 생산, 배포, 고객에 이르는 물류의 흐름을 파악하여 정보 흐름이 원활하도록 지원하는 소프트웨어
- BI(Business Intelligence) : 수집된 데이터를 정리, 분석, 활용하여 각 조직에서 적시에 의사결정을 할 수 있도록 지원하는 소프트웨어
- CRM(Customer Relationship Management) : 고객 특성에 맞는 마케팅 활동을 지원하는 소프트웨어
시스템 소프트웨어(System Software)
1) 시스템의 정의
하나의 공통적인 목적을 가지고 있는 구성 요소들을 상호 결합한 형태
2) 시스템 기본 요소
- 입력(Input) : 처리 방법, 데이터, 제어 요소 등을 시스템에 투입하는 행위
- 출력(Output) : 처리된 결과를 시스템으로부터 출력하는 행위
- 처리(Process) : 입력 요소를 가공하여 처리 조건에 맞게 변환하는 행위
- 제어(Control) : 시스템의 각 과정이 올바르게 수행되도록 감독하는 행위
- 피드백(Feedback) : 처리된 결과와 기대 결과를 비교하여 불충분할 경우 재입력하는 행위
3) 시스템 소프트웨어의 개념
- 일반적으로 운영체제(OS : Operating System)와 같은 의미
- 응용 소프트웨어(Application Software)를 실행하기 위한 환경을 제공
- CPU, 기억장치, 디스크 등의 컴퓨터 하드웨어(Hardware)를 동작시키고 관리
- 사용자로 하여금 컴퓨터 하드웨어를 알지 못해도 이용할 수 있도록 지원
플랫폼(Platform)
1) 플랫폼의 개념
- 응용 프로그램을 편리하게 이용할 수 있도록 지원하는 하드웨어와 소프트웨어 환경의 총칭
- 소프트웨어 개발과 하드웨어의 운영을 편안하게 할 수 있도록 서비스를 지원
- 동일한 플랫폼에서 개발된 소프트웨어는 호환성이 뛰어나다.
- 현행 시스템을 분석하기 위해 현재 시스템의 플랫폼을 상세분석
소프트웨어와 프로그램의 차이
·프로그램 : 프로그래머가 작성한 소스 코드와 번역된 결과물
·소프트웨어 : 프로그램뿐만 아니라 관련된 모든 산출물의 총칭
소프트웨어에서의 호환성
호환성이 좋은 소프트웨어는 충돌(기능 손실) 없이 작동이 가능하다.
2) 플랫폼의 특징
- 소프트웨어 개발 비용을 줄일 수 있다.
- 동일한 플랫폼 간의 공통 시스템 네트워크 구성이 효율적이다.
- 소프트웨어 개발의 생산성을 향상시킬 수 있다.
3) 플랫폼의 성능 평가 기준
- 가용성(Availability) : 정보 시스템은 적절한 방법으로 정보를 요구하는 사용자에게 제공해야 한다.
- 응답(반응) 시간(Response Time) : 명령이 주어지고 반응하기까지 걸린 시간이다.
- 정확성(Accuracy) : 플랫폼에서 처리된 결과가 얼마나 올바른 값에 근접한 지 측정한다.
- 사용률(Utilization) : 소프트웨어, 하드웨어, 네트워크 자원 등을 사용하는 정도를 말한다.
프레임워크(Framework) ★
1) 프레임워크의 개념
- 일정하게 짜여진 틀에서 제공되는 서비스 환경
- 응용 소프트웨어 개발을 수월하게 하기 위해서 설계, 구현 등을 재사용이 가능한 형태로 제공하는 소프트웨어 환경
- 코드 라이브러리, 애플리케이션 인터페이스(Interfaace) 등의 재사용이 가능하도록 소프트웨어 구성에 필요한 기본 뼈대(Frame)를 제공
- 다양한 소프트웨어 개발을 가능하게 하는 여러 형태의 컴포넌트들
2) 프레임워크의 특징
- 모듈화(Modularity) : 전체 프로그램을 한 번에 설계하지 않고 단일 기능(부품화)을 갖출 수 있도록 부분적으로 묶어서(그룹화) 처리하는 기술
- 재사용성(Reusability) : 소프트웨어의 전체나 일부를 다른 시스템의 응용 목적으로 사용될 수 있는 정도
- 확장성(Extensibility) : 추가적인 설계 없이 확장이 얼마나 쉽고 가능한가에 대한 용이성
- 제어의 역 흐름(Inversion of Control) : 소프트웨어 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하여 특정한 이벤트가 발생할 때 다형성(Polymorphism)을 통해 애플리케이션이 확장한 메서드를 호출함으로써 제어가 소프트웨어 프레임워크부터 애플리케이션으로 거꾸로 흐르게 한다.
3) 프레임워크의 기대 효과
- 개발 용이성 : 공통적으로 필요한 기능들을 미리 제공받아 소프트웨어를 개발함으로써 빠른 시간에 개발할 수 있다.
- 품질 보증 : 오류 발생 가능성을 최소화할 수 있으므로 품질이 향상된다.
- 변경 용이성 : 개발자가 새로운 기능을 추가하거나 변경하더라도 부담 없이 변경할 수 있도록 해준다.
- 유지보수 용이성 : 프레임워크로 적용된 소프트웨어는 보다 체계적이고 안정적이어서 변경이 되더라도 위험 부담을 줄일 수 있다.
- 재사용성 향상 : 프레임워크 기반으로 개발된 컴포넌트들을 타 사업에서 쉽게 사용할 수 있어 재사용성이 극대화될 수 있다.
- 표준화율 향상 : 정형화된 개발 기술과 방법을 제공함으로써 설계, 개발 등 시스템 구축 전반에 걸친 표준을 제시할 수 있다.
- 상호 운용성 향상 : 전자 정부 표준 프레임워크 기반으로 개발된 시스템 간에 컴포넌트 연계가 용이하여 상호 운용성이 극대화될 수 있다.
컴포넌트(Component)
1) 컴포넌트의 개념
- 모듈 : 필요한 것을 찾아서 쓸 수 있는 부품화된 프로그램을 말한다.
- 라이브러리 : 관련된 모듈, 패키지들의 집합을 말한다.
· 표준 라이브러리 : 프로그래밍 언어에 포함된 라이브러리
· 외부 라이브러리 : 별도의 설치를 통해 사용하는 라이브러리
- 컴포넌트 : 라이브러리의 집합이다.
라이브러리를 기능별로 분류하여 지원한다.
컴포넌트는 독립적으로 사용 가능한 소프트웨어 모듈이다.
2) 협약(Contract)에 의한 설계를 따를 경우에 포함되어야 할 조건
- 선행조건(precondition) : 컴포넌트의 오퍼레이션 사용 전에 참이 되어야 할 선행조건
- 결과조건(postcondition) : 컴포넌트의 오퍼레이션 사용 후 만족되어야 할 결과조건
- 불변조건(invariant) : 오퍼레이션이 실행되는 동안 항상 만족되어야 할 불변 조건
소프트웨어 공학
1) 소프트웨어 공학의 개념
- 높은 품질의 소프트웨어를 최소의 비용으로 개발하기 위한 모든 도구 및 방법론을 총칭
- 소프트웨어 개발의 품질과 생산성 향상을 연구하는 학문
2) 소프트웨어 공학의 등장 배경
- 소프트웨어 개발에 필요한 시간과 비용 예측력이 부족했다.
- 개발된 소프트웨어의 품질 향상이 목적이다.
- 하드웨어에 대한 소프트웨어의 상대적 비용이 절감된다.
- 하드웨어 및 소프트웨어 기술이 급속하게 발전하였다.
3) 소프트웨어 공학의 기본 원칙
- 현대적인 프로그래밍 기술을 적용한다.
- 지속적인 검증을 시행한다.
- 품질 높은 소프트웨어 상품을 개발한다.
- 결과에 관한 명확한 기록을 유지한다.
※ <이기적> 환상의 콤비 정보처리기사 책으로 공부하며 정리한 내용입니다.
반응형
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] UML ( 정리, 공부 ) (0) | 2022.12.15 |
---|---|
[정보처리기사] 요구사항 정의 ( 정리, 공부 ) (0) | 2022.12.14 |
[정보처리기사] 소프트웨어 개발 환경 분석 ( 정리, 공부 ) (0) | 2022.12.12 |
[정보처리기사] 소프트웨어 생명주기 모델 ( 정리, 공부 ) (0) | 2022.12.09 |
[정보처리기사] 소프트웨어 개발 방법론 활용 ( 정리, 공부 ) (0) | 2022.12.06 |