쉱이
728x90
반응형

(1) 개발 환경 구축

  • 개발 환경 구축
    응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것.
    개발 환경은 응용 소프트웨어가 운영될 환경과 유사한 구조로 구축하며, 분석 단계의 산출물을 바탕으로 개발에 필요한 하드웨어와 소프트웨어를 선정함.
  • 하드웨어 환경
    • 클라이언트(Client)와 서버(Server)로 구성되며, 클라이언트는 사용자의 인터페이스 역할을 하고 서버는 서비스를 제공함.
    • 서버의 종류:
      • 웹 서버(Web Server): 클라이언트로부터 직접 요청을 받아 처리함. 저용량의 정적 파일들을 제공함.
      • 웹 애플리케이션 서버(WAS): 동적 서비스를 제공하거나, 웹 서버와 데이터베이스 서버 사이에서 인터페이스 역할을 수행함.
      • 데이터베이스 서버(DB Server): 데이터베이스와 이를 관리하는 DBMS를 운영함.
      • 파일 서버(File Server): 비효율적인 데이터를 저장하고 관리함.
  • 소프트웨어 환경
    • 클라이언트 서버 운영을 위한 시스템 소프트웨어와 개발에 사용되는 개발 소프트웨어로 구성됨.
    • 개발 소프트웨어의 종류:
      • 요구사항 관리 도구: 요구사항 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어.
      • 설계/모델링 도구: UML을 지원하며, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어.
      • 구현 도구: 개발 언어를 통해 애플리케이션의 실제 구현을 지원하는 소프트웨어.
      • 빌드 도구: 구현된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어.
      • 테스트 도구: 모듈들이 요구사항에 적합하게 구현되었는지 테스트하는 소프트웨어.
      • 형상 관리 도구: 산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어.

(2) 소프트웨어 아키텍처

  • 소프트웨어 아키텍처
    소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체.
    아키텍처 설계의 기본 원리에는 모듈화, 추상화, 단계적 분해, 정보 은닉이 있음.
  • 모듈화(Modularity)
    소프트웨어의 성능 향상, 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 기능들을 모듈 단위로 나누는 것.
  • 추상화(Abstraction)
    문제의 전체적이고 포괄적인 개념을 설계한 후, 세분화하여 구체화하는 것.
  • 단계적 분해(Stepwise Refinement)
    문제를 상위의 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법.
  • 정보 은닉(Information Hiding)
    한 모듈 내부에 포함된 절차와 자료들의 정보를 감추어 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법.

(3) 아키텍처 패턴

  • 아키텍처 패턴(Patterns)
    소프트웨어 시스템의 구조를 구성하기 위한 기본적인 윤곽을 제시하는 전형적인 해결 방식.
  • 레이어 패턴(Layers Pattern)
    시스템을 계층으로 구분하여 구성하는 고전적인 방법. 상위 계층은 하위 계층에 대한 서비스 제공자가 되고, 하위 계층은 상위 계층의 클라이언트가 됨.
  • 클라이언트-서버 패턴(Client-Server Pattern)
    하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴.
  • 파이프-필터 패턴(Pipe-Filter Pattern)
    데이터 스트림 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴.

(4) 객체 지향

  • 객체 지향
    소프트웨어의 각 요소들을 객체(Object)로 만든 후, 객체들을 조립해서 소프트웨어를 개발하는 기법.
  • 객체(Object)
    데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈.
  • 클래스(Class)
    공통된 속성과 연산을 갖는 객체의 집합.
  • 메시지(Message)
    객체들 간의 상호작용에 사용되는 수단으로, 객체의 동작이나 연산을 일으키는 외부의 요구 사항.

(5) 객체 지향 분석 및 설계

  • 객체 지향 분석(OOA; Object Oriented Analysis)
    사용자의 요구사항과 관련된 객체, 속성, 연산, 관계 등을 정의하여 모델링하는 작업.
  • 객체 지향 분석의 방법론
    대표적인 방법론으로는 Rumbaugh(럼바우) 방법, Booch(부치) 방법, Jacobson 방법 등이 있음.

(6) 모듈

  • 모듈(Module)
    모듈화를 통해 분리된 시스템의 각 기능으로, 서브루틴, 서브 시스템, 소프트웨어 내의 프로그램, 작업 단위 등을 의미.
  • 결합도(Coupling)
    모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계.
  • 응집도(Cohesion)
    모듈의 내부 요소들이 서로 연관되어 있는 정도.

(7) 단위 모듈

  • 단위 모듈(Unit Module)
    소프트웨어 구현에 필요한 여러 동작 중, 한 가지 동작을 수행하는 기능을 모듈로 구현한 것.
  • IPC(Inter-Process Communication)
    모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합.

(8) 공통 모듈

  • 공통 모듈
    여러 프로그램에서 공통으로 사용할 수 있는 모듈로, 자주 사용되는 계산식이나 매번 필요한 사용자 인증 같은 기능들로 구성됨.

(9) 코드

  • 코드(Code)
    자료의 분류, 조합, 집계, 추출을 용이하게 하기 위해 사용하는 기호.

(10) 디자인 패턴

  • 디자인 패턴(Design Pattern)
    모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식.

(11) 개발 지원 도구

  • 통합 개발 환경(IDE; Integrated Development Environment)
    개발에 필요한 환경을 하나의 인터페이스로 통합하여 제공하는 소프트웨어.

(12) 서버 개발

  • 서버 개발
    웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 웹 애플리케이션 서버(WAS)에 탑재하는 것.
728x90
반응형
profile

쉱이

@ILV_쉱이

감사합니다:)