Implementing Server program

m_ngyeong·2024년 4월 26일
0

정보처리기사 이론

목록 보기
10/25
post-thumbnail

📡 Implementing Server program


Modularity(모듈화)

모듈화는 소프트웨어의 성능 향상, 스시템의 수정 및 재사용, 유지 관리 등이 용의하도록 시스템의 기능들을 모듈 단위로 나누는 것을 의미한다.

  • 모듈화는 모듈간 결합도(Coupling)의 최소화와 모듈 내 요소들의 응집도(Cohesion)를 최대화하는 것이 목표

Module

모듈은 모듈화를 통해 분리된 시스템으로 각 기능으로, 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작은 단위 등을 의미한다.

Coupling(결합도)

결합도는 모듈 간에 상효 의존하는 정도 똔느 두 모듈 사이의 연관 관계이다.

  • 결합도가 약할수록 품질이 높고, 강할수록 품질이 낮음
  • 내용 결합도 > 공통 결합도 > 외부 결합도 > 제어 결합도 > 스탬프 결합도 > 자료 결합도

Tpyes of Coupling

  • Content Coupling(내용 결합도) : 모듈 간의 인터페이스로 데이터, 지역 변수 등을 직접 참조하거나 수정할 때의 결합도

  • Common Coupling(공통[공유] 결합도) : 모듈 간의 인터페이스로 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 사용하여 전역 변수를 갱신하는 방식으로 상호작용하는 때의 결합도

  • External Coupling(외부 결합도) : 어떤 모듈에서 선언한 데이터(변수)를 외보의 다른 모듈에서 참조할 때의 결합도

  • Control Coupling(제어 결합도) : 단순 처러 대상인 데이터만 전달되는 것이 아니라 어떻게 처리해야 하는지를 결정하는 제어 요소가 전달되는 경우의 결합도, 제어 신호가 이동하여 하위모듈이 상위 모듈에게 처리 명령을 내리는 권리 전도 현상이 발생.

  • Stamp Coupling(스탬프[검인] 결합도) : 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도

  • Data Coupling(자료 결합도) : 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도

Cohesion(응집도)

응집도는 모듈의 내부 요소들이 서로 관련되어 있는 정도이다.

  • 결합도가 강할수록 품질이 높고, 약할수록 품질이 낮음
  • 기능적 응집도 > 순차적 응집도 > 교환적 응집도 > 절차적 응집도 > 시간적 응집도 > 논리적 응집도 > 우연적 응집도

Tpyes of Cohesion

  • Functional Cohesion(기능적 응집도) : 하나의 기능에 밀접하게 관련되어 있거나 연관되어 있을 때의 응집도

  • Sequential Cohesion(순차적 응집도) : 모듈 내 하나의 할동으로부터 나온 출력 데이터를 그다음 활동의 입력 데이터로 사용할 경우의 응집도

  • Communication Cohesion(교환[통신]적 응집도) : 서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때의 응집도

  • Procedural Cohesion(절차적 응집도) : 내부의 요소들이 기능적으로 연관성은 없으나, 순차적으로 실행될 때의 응집도

  • Temporal Cohesion(시간적 응집도) : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도

  • Logical Cohesion(논리적 응집도) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도

  • Coincidental Cohesion(우연적 응집도) : 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도


객체지향 분석의 방법론

  • Rumbaugh 방법 : 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행함
  • Booch 방법 : 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하며, 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의함
  • Jacobson 방법 : Use Case를 강조하여 사용
  • Coad와 Yourdon 방법 : E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주제 정의, 속성과 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정으로 구성함
  • Wirfs-Brock 방법 : 분석과 설계 간의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행

Rumbaugh의 분석 기법

Rumbaugh의 분석 기법은 모든 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 기법이다.

  • OMT(Object-Modeling Technique), 즉 객체 모델링 기법이라고 함
  • 분석 활동은 '객체 모델링 → 동적 모델링 → 기능 모델링' 순으로 이루어 진다.
  • Object Modeling(객체 모델링) : Imformation Modeling(정보 모델링)이라고도 하며, 시스템에서 요구되는 객체를 찾아내어 속성과 연산 기별 및 객체들 간의 관계를 규정하여 표시하는 모델링으로 E-R 다이어그램이 있음
  • Dynamic Modeling(동적 모델링) : 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링으로 상태 변화도(STD), 사건 추적도가 있음
    Functional Modeling(기능 모델링) : 다수의 프로세스들 간의 자료 프름을 중심으로 처리 과정을 표현한 모델링으로 자료흐름도(DFD)가 있음

SOLD 원칙

  • SRP(Single Responsibility Principle) : 단일 책임의 원칙으로, 객체는 단 하나의 책임만 가져야 한다는 원칙
  • OCP(Opne Close Principle) : 개방-폐쇄 원칙으로, 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야 한다는 원칙
  • LSP(The Liskov Substitution Principle) : 리스코드 치환 원칙으로, 자식 클래스는 최소한 부모 클래스의 기능은 수행할 수 있어야 한다는 원칙
  • ISP(Interface Segregation Principle) : 인터페이스 분리 원칙으로, 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 원칙
  • DIP(Dependency Inversion Principle) : 의존 역전 원칙으로, 의존 관계 성립 시 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙

IPC(Inter-Process Communication)

IPC는 모듈 간 통신방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스의 집합이다.

  • 복수의 프로세스를 수행하며 이뤄지느 프로세스 간 통신까지 구현이 가능
  • IPC 대표 메소드
    • Shared Memory
    • Socket
    • Semaphores
    • Pipes & named Pipes
    • Message Queueing

Test Case

테스트 케이스는 구현된 SW가 사용자의 요구사항을 정확하게 준수했는지르 ㄹ확인하기 위한 테스트 항목에 대한 명세서이다.

  • ISO/IEC/IEEE 29119-3 표준에 따른 테스트 케이스의 구성 요소
식별자_ID테스트 항목테스트 조건테스트 데이터예상 결과
LS_W10_35로그인 가능사용자 초기 화면아이디(test_01), 비밀번호(203s%5!ff)로그인 성공
LS_W10_36로그인 가능사용자 초기 화면아이디(test_02), 비밀번호(1234)로그인 실패(1) - 비밀번호 비일치
LS_W10_37로그인 가능사용자 초기 화면아이디(" "), 비밀번호(" ")로그인 실패(2) - 미입력


참고,
길벗알앤디. 『정보처리기사 실기 단기완성』. 길벗. 2023.

profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글