소프트웨어의 종류 및 개발 방법론

이연중·2021년 2월 8일
0

소프트웨어 분류 및 특성

상용 소프트웨어


1) 상용 소프트웨어: 상업, 판매를 목적으로 생산되고 판매 유통되는 소프트웨어로서 원시 코드는 제공되지 않고 실행 코드만 제공된다.(추가, 수정, 삭제 불가)

2) 상용 소프트웨어의 구분 및 분류

상용 소프트웨어
산업 범용 S/W산업 특화 S/W
시스템 S/W미들웨어응용 S/W
운영체제, 데이터 관리, 스톨로지 소프트웨어, 소프트웨어 공학 도구, 가상화 소프트웨어, 시스템보안분산 소프트웨어, IT 자원 관리, 서비스 플랫폼, 네트워크, 보안영상 처리, CG/VR, 콘텐츠 배포, 자연어 처리, 음성 처리,기업용 소프트웨어자동차, 항공, 패션 의류, 조선, 건설, 농업, 의료, 국방, 게임 ,공공, 교육, 물류, 인터넷 서비스

시스템 소프트웨어


1) 시스템

정의: 하나의 공통적인 목적을 가지고 있는 구성 요소들을 상호 결합해 놓은 유기적인 집합체

기본 요소

  • 입력(Input): 처리 방법, 제어 조건, 처리할 데이터를 시스템에 투입하는 요소

  • 출력(Output): 처리된 결과를 시스템에서 출력하는 요소

  • 처리(Process): 입력된 자료를 처리 조건에 따라 변환 및 가공하는 요소

  • 제어(Control): 시스템의 기본 요소들이 각 과정을 올바르게 행하는지 감독하는 요소

  • 피드백(Feedback): 처리된 결과를 측정, 파악하여 목표에 도달되었는가를 검사하며, 불충분할 경우 목표 달성을 위해 다시 입력하는 요소

입력(제어) -> 처리(제어) -> 출력(제어) ->피드백 -> 입력

2) 시스템 소프트웨어의 개념

  • 응용 프로그램을 실행하기 위한 환경을 제공하고 컴퓨터 하드웨어를 동작시키고 관리하는 소프트웨어

플랫폼(Platform)


1) 플랫폼의 개념

  • 많은 응용 프로그램들을 쉽고 편리하게 사용할 수 있도록 지원해주는 하드웨어나 소프트웨어 환경
  • 동일한 플랫폼에서 개발된 소프트웨어는 언제, 어디서나 손쉽게 실행될 수 있음

2) 플랫폼의 기능

  • 소프트웨어의 개발 및 운영비용 절감
  • 동일한 플랫폼 간 공통 그룹을 형성해 네트워크 효과를 최대화
  • 소프트웨어 개발의 생산성 향상

3) 플랫폼의 성능 특성 분석 항목(가 -ㅇ 정사)

  • 가용성(Availavility): 정보 시스템은 적절한 방법으로 정보를 요구하는 사용자에게 정보 서비스를 제공해야 함

  • 응답 시간(Response Time): 명령이 주어지고, 반응하기까지 걸린 시간

  • 정확성(Accurancy): 플랫폼에서 처리된 결과가 얼마나 올바른 값에 근접했는지를 측정한 정도

  • 사용률(Utilization): 하드웨어 자원, 소프트웨어 자원, 네트워크 자원 등을 일정 시간 사용하는 정도

프레임워크(Framework)


1) 프레임워크의 정의

  • Frame + Work = 일정한 틀 안에서의 작업 수행
  • 목적 달성을 위해 복잡게 연결되어 있으며, 문제를 해결하기 위한 구조이자 소프트웨어 개발에 있어 하나의 뼈대 역할을 함

2) 소프트웨어 프레임워크

  • 응용 프로그램 개발이나 문제 해결을 수월하게 하기 위해 설계와 구현을 (재사용이 가능한 형태로) 제공하는 소프트웨어 환경(코드 라이브러리, 어플리케이션 인터페이스, 설정 정보 등의 집합)
  • 완전한 제품이 아니며 개발자의 코드나 사용자 데이터가 필요

3) 소프트웨어 프레임워크의 특징

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

4) 프레임워크를 적용할 경우 기대 효과

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

기업용 프레임워크


1) 오피스웨어(OfficeWare)

  • 회사나 단체에서 업무에 사용되는 소프트웨어(워드, 피피티, 엑셀 등)

2) ERP(Enterprise Resource Planning)

  • 신속한 의사 결정을 위한 소프트웨어
  • 기업에서 발생하는 정보들을 서로 공유하고 새로운 정보의 생성과 신속한 의사 결정을 도와줌으로써 전사적으로 자원을 관리

3) SCM(Supply Chain Management)

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

4) BI(Business Intelligence)

  • 구성원에게 적시에 의사 결정을 지원하는 소프트웨어
  • 기업에서 데이터를 수집, 정리, 분석하고 활용해 구성원에게 적시에 의사 결정을 할 수 있도록 지원하는 기술

5) CRM(Customer Relationship Management)

  • 고객 특성에 기초한 마케팅 활동을 지원하는 소프트웨어
  • 신규 고객 획득, 기존 고객 유지 및 수익성 증대 목적

컴포넌트(Component)

1)컴포넌트의 개념

  • 부품화된 프로그램을 모듈, 모듈의 집합을 라이브러리라고 함
  • 라이브러리의 집합을 컴포넌트라 하며, 컴포넌트는 라이브러리를 기능별로 분류하여 지원
  • 독립적으로 사용될 수 있음

2) 컴포넌트의 설계

설계 시 협약에 의한 설계를 따를 경우 다음 조건들을 포함해야 함

  • 컴포넌트의 오퍼레이션 사용 전 참이 되어야 할 선행 조건
  • 사용 후 만족되어야 할 결과 조건
  • 오퍼레이션이 실행되는 동안 항상 만족되어야 할 불변 조건

3) CBD(Component Based Develoment)

  • 재사용이 가능한 컴포넌트 기반의 개발 방법론
  • 개발 기간 단축으로 생산성과 품질을 높힘
  • 유지보수 비용 최소화
  • 시스템을 신속하게 구축, 새로운 기능 추가 및 확장 용이

소프트웨어 공학(SE: Software Engineering)

1) 소프트웨어 공학의 개념

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

2) 소프트웨어 공학의 기본 원칙

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

3) 소프트웨어 공학 도입

  • 소프트웨어 개발 과정에 공학적인 접근을 시도해 생산성과 신뢰성을 높이기 위한 기법과 원리를 다루기 위해 도입
  • 방법(Method): 소프트웨어를 구축하기 위한 방법 제공
  • 도구(Tool): 방법을 지원하기 위한 자동화된 도구를 지원
  • 절차(Procedure): 방법과 도구를 결합해 좀 더 향상된 프로그램을 개발하기 위한 절차

참고

출제 위원이 참고하는 정보처리기사 필기(이기적) -최희준, 영진정보연구소 공저

profile
Always's Archives

0개의 댓글