S/W   Software, Software Engineering   소프트웨어, 소프트웨어 공학

(2019-08-01)

시스템 소프트웨어, 버전 관리

1. 소프트웨어 (Software)

  ㅇ 하드웨어를 동작하고 제어하는 역할을 하는 명령어 집합
     - 응용 소프트웨어        : 다양한 응용에 사용하기 위해 특별히 제작된 소프트웨어들
     - 시스템 소프트웨어      : 하드웨어 및 응용소프트웨어 중간에 위치
        . 운영체제            : 하드웨어와 직접 상호작용, 프로그램에 공통적인 서비스 제공
        . 유틸리티 소프트웨어 : 기본적인 활동을 수행하며 운영체제 기능을 확장시켜줌
        . 번역 프로그램       : 컴파일러, 어셈블러, 인터프리터
2. 소프트웨어 공학 (Software Engineering)

  ㅇ 대규모/복잡한 소프트웨어 시스템의 개발에 지침이 되는 원리들을 모색하는
     컴퓨터과학의 한 분야

  ㅇ 소프트웨어 공학의 대상
     - 주로, 소프트웨어의 설계, 품질, 테스트를 다룸
     - 이외에도, 프로그래머 인력 관리,프로젝트 관리 등 경영과학적인 것도 포함될 수 있음

  ㅇ 소프트웨어 공학의 목표
     - 더 큰 규모의 재사용을 통한 생산성 및 품질 향상, 
     - 빠른 응용 개발을 통한 시장경쟁력 강화 등

  ㅇ 소프트웨어 개발 패러다임 시대적 변화
     - 1970년대  :  구조적 프로그래밍, 하향식 설계
        . 기능, 절차 중심의 개발 방식
     - 1980년대  :  객체지향 방법론
        . 코드 재사용성, 수정 용이성 등
     - 2000년대  :  컴포넌트 기반 방법론
     - 2010년대  :  서비스 지향 방법론


3. 버전 관리

  ㅇ 깃 (Git)
     - (공개성) 타 개발자들의 코드를 쉽게 내려받을 수 있음
     - (소스 코드 관리 도구) 코드의 버전 관리를 하여 줌
     - (소프트웨어 작성에 따른 복잡도 완화)
        . 개발자 자신의 프로그램에 대한 특정시점의 스냅샷을 저장,복원 등
        . 타 개발자와 쉽게 협력(협업)도 가능
  ㅇ 깃허브 (GitHub)
     - 깃의 기본 기능 위에 다양한 웹서비스 기능을 추가 함


[소프트웨어공학 기초] 1. 소프트웨어공학 2. CASE,CAD 3. CBD (컴포넌트기반개발) 4. MDA (모델주도형구조) 5. 역공학

 
        최근수정     요약목록     참고문헌