정보학/정보처리기사
2과목: 어플리케이션 설계 : 소프트웨어 개념
윤채니챈
2023. 7. 9. 15:43
728x90
반응형
소프트웨어 개념
- 컴퓨터 시스템에서 동작하는 프로그램이나 애플리케이션 등을 포함하는 컴퓨터 프로그램의 모든 부분을 가리킵니다.
- 소프트웨어는 컴퓨터 시스템의 동작과 기능을 제어하고 관리하는 역할을 합니다.
- 프로그램(Program): 프로그램은 컴퓨터에서 실행되는 일련의 명령어들로 구성된 소프트웨어. ** 프로그램은 개발자가 프로그래밍 언어로 작성되며, 컴파일러나 인터프리터를 통해 기계어로 변환된 후 실행됩니다. 프로그램은 컴퓨터 시스템의 동작을 제어하고 응용 소프트웨어, 시스템 소프트웨어 등 다양한 업무를 수행하는데 사용됩니다.
- 자료구조(Data Structure): 자료구조는 데이터를 구성하고 저장하는 방식이나 형태를 의미. 자료구조는 데이터를 효율적으로 조작하고 처리하기 위해 사용되며, 데이터의 저장, 탐색, 삽입, 삭제 등 다양한 연산을 수행할 수 있도록 합니다. 예를 들어, 배열, 연결 리스트, 스택, 큐, 트리, 그래프 등이 일반적으로 사용되는 자료구조입니다.
- 문서(Document): 정형화된 형식으로 작성되기도 하며, 프로그램 설계, 사용자 매뉴얼, 보고서, 요구사항 명세서 등 다양한 형태로 활용됩니다. 문서는 정보의 공유, 협업, 기록 보존 등에 필수적인 요소로 사용되며, 정보처리 기사에서도 문서 작성 및 관리에 관련된 지식과 기술이 요구됩니다.
소프트웨어 특징
- 상품성: 소프트웨어 개발시 판매가능합니다
- 복잡성: 개발하는 과정이 복잡하고 관리가 어렵습니다
- 변경가능성: 프로그램을 일부 수정하여 업그레이드 및 오류 수정이 가능합니다
- 복제성: 복제가 용이 쉽게 복사 유통이가능합니다
시스템이란?
- 시스템 개요: 시스템은 목적을 달성하기 위해 상호작용하는 구성 요소들의 집합으로 볼 수 있습니다. 시스템은 보통 목적을 가지고 동작하며, 특정한 기능을 수행하거나 문제를 해결하는 데 사용됩니다.
- 시스템 기본 요소
- 입력(Input): 시스템에게 입력되는 데이터나 정보입니다.
- 처리(Processing): 입력 데이터를 가공, 분석, 조작하거나 특정 작업을 수행하는 과정
- 출력(Output): 처리된 결과나 정보를 외부로 제공하는 과정
- 피드백(Feedback): 출력된 결과가 다시 시스템에게 돌아와 시스템의 동작을 조정하고 개선하는 과정
소프트웨어 공학이란?
- 경제적으로 신뢰도 높은 소프트웨어를 만들기 위한 방법과 도구와 절자체계
- IEEE(미국 전기전자기술자 협회)에서는 소프트웨어 공학에 대한 정의를 제시
"소프트웨어 공학은 체계적인 접근 방법과 이론을 활용하여 소프트웨어의 개발, 운용, 유지보수, 폐기 등을 위한 프로세스를 이해하고 적용하는 학문과 기술 분야이다. 소프트웨어 공학은 소프트웨어의 요구사항 분석, 설계, 개발, 테스트, 유지보수 등을 다루며, 소프트웨어 제품의 품질, 신뢰성, 보안, 효율성, 유지보수 용이성 등을 목표로 한다."
공학적으로 좋은 소프트웨어는?
- 소프트웨어는 사용자의 요구사항을 충족해야 합니다.
- 품질과 신뢰성
- 사용자 경험: 좋은 소프트웨어는 사용자에게 편리하고 직관적인 사용자 인터페이스를 제공해야 합니다.
- 유지보수 용이성: 소프트웨어는 변경과 유지보수가 용이해야 합니다. 모듈화와 재사용 가능한 코드, 문서화된 설명 등을 통해 소프트웨어의 유지보수성을 높여야 합니다.
- 효율성과 성능: 소프트웨어는 효율적으로 동작하고, 작업을 신속하게 처리할 수 있어야 합니다. 성능 향상을 위해 최적화 기법을 사용하고, 시스템 자원을 효과적으로 활용해야 합니다.
- 안정성과 보안: 소프트웨어는 안정성과 보안에 대한 적절한 대책을 갖춰야 합니다.
소프트웨어 공학 계층구조
- 도구: 프로세스와 방법을 처리하는 기능을 제공합니다.
- 방법론: 소프트웨어를 설계하는데 기술적인 방법을 제공하는 것, 구조적 기법, 프로토타이핑 기술, 객체지향 기법 등이 있습니다.
- 프로세스: 소프트웨어의 가장 기초적인 개발에 사용되는 방법론과 도구가 적용되는 순서를 의미하는 것, 소프트웨어 생명 주기 (Software Life Cycle)라고도 합니다. 프로세스는 소프트웨어의 개념 형성에서 시작하여 운용/유지보수에 이르기까지 변화의 모든 과정을 포함합니다². 프로세스에는 폭포수 모형, 프로토타입 모형, 나선형 모형 등이 있습니다.
*** 각각의 계층은 서로 상호작용하고 영향을 주며, 소프트웨어 공학의 목적인 경제적으로 신뢰도 높은 소프트웨어를 만들기 위한 체계를 구성합니다.
728x90
반응형