요구사항 확인

2021. 4. 4. 02:44학습/정보처리기사

반응형

객체지향- 소프트웨어-설계 원칙


개방 폐쇄원칙

  • 기존의 코드 변경 x , 기능 추가( 환경을 바꾸다 )

  • 수정에는 닫혀있고 확장에는 열려있다.



리스코프 치환의 원칙

  • 부모, 자식클래스 사이에 ''일관성''이 있어야 한다.

  • 부모와 자식을 바꿔도 프로그램의미는 상관없다.

  • 즉, 대체가 가능하다.



인터페이스 분리 원칙

  • 클라이언트가 필요한 메소드만잇는 인터페이스 제공
  • 그로인해 클라이언트는 다른것에 영향을 안받는다.



의존성역전의 원칙

  • 클라이언트는 변하지않는 것에 의존해야한다.
  • 변하지 않는것은 '추상'적인것 , '구체' 클래스에는 의존 X

공통모듈 작성원칙


  1. 명확성 : 뭔지 확실히 알수있게 ( 일관된이해 + 하나로 해석)

  2. 일관성 : 공통기능 사이에 충돌 X

  3. 완전성 : 요구사항과 모든것을 기술

  4. 추적성 : 출처와 다른것과 유기적인 관계 확립

  5. 정확성 : 구현시 필요한지 정확하게 기술


모듈화


프로그램 효율적으로 관리하기위해 시스템을 분해, 추상화

그러면 애네들이 얼마나 흩어져있는지 알수있는 지표가 "응집도, 결합도"

응집도(약함) 우연적 논리적 시간적 절차적 통신적 순차적 기능적
결합도(약함) 자료 스탬프 제어 외부 공통 내용

Fan in , Fan out


구조적 설계에서 모듈의 입/출력 관계
  • Fan in (공유도) : 들어오는 상위 모듈 수
  • Fan out (제어도) : 나가는 하위 모듈 수

설계 모델링


  • 구조 모델링

    : 시스템 구성요소, 구조적 관계 모델링

    : 소프트웨어의 구성하는 것들의 [상호 연결 구조] 모델링


  • 행위 모델링

    : 시스템 구성요소의 기능적 특성 모델링

    : 어떤 순서로 진행되는지에 대한 동적 모델링 - [상호작용] 자체를 모델링


소프트웨어 아키텍쳐


소프트웨어시 시스템 개발, 구조에 중요한 결정을 한다.

요구되는 기능과 품질 확보

소프트웨어 시스템의 구축 및 지속적인 개선에 용이하게 함


구조적 틀 : 시스템 개발을 위해 결정된 컴포넌트의 구조모델

비구조적 틀 : 그 이외의 아키텍쳐 설계의 결정


시스템을 만들기위한 '청사진'의 역할


#아키텍쳐 드라이버 : 아키텍쳐에 영향을 주는 요구사항

#아키텍쳐 패턴

#아키텍쳐 스타일 : 아키텍쳐의 유형


아키텍쳐 패턴


''소프트웨어 아키텍쳐 설계절차''에서 반복적으로 일어나는 문제에 대해서 미리 준비한 솔루션
  • 계층화 패턴

    : N-티어 아키텍쳐 , 하위모듈을 구조화된 프로그램에서 사용 , ''계층'' // OSI 7계층 생각하자


  • 클라이언트 - 서버 패턴

    : 하나의서버, 다수의 클라이언트로 구성 // 이메일, 은행


  • 마스터 - 슬레이브 패턴

    : 마스터는 슬레이브한테 일을 나눠주고(분산) 마스터는 최종 결과값 계산


- **파이프 - 필터 패턴**

:데이터 스트림을 생성하고 처리하는 환경, 처리가 ''필터'' 에서 이루어짐 // 파싱 의미분석


  • 브로커 패턴

    :클라이언트와 서버를 중개해주는 '브로커' 가있음, 통신을 조정한다.

    중개를 하는 이유 애네들이 분리되어있는 분산시스템이기때문! (원격서비스를 이용)


  • 피어투피어 패턴

    : 클라이트 서버가 동등한 관계로 있어서 교환도 가능하다. (유동적)


  • 이벤트 - 버스 패턴

    : 이벤트를 처리하고 , [이벤트소스 이벤트리스너 채널 이벤트버스] 4가지 주요 컨포넌트를 갖는다.


  • MVC 패턴

    : 모델 뷰 컨트롤러로

    모델은 데이터

    뷰는 화면 보여줌

    컨트롤러는 조합해서 출력


SW 아키텍쳐 4+1 View


**고객의 요구사항**을 중심으로 **4가지 관점**으로 **소프웨어 아키텍처를 설계**하는 기법
  • 사용사례관점 : 외부사용자의 관점에서 사용사례간 관계 정의
  • 논리관점 : 시스템의 논리적인 구조/ 행위 정의
  • 구현관점 : 독립적으로 실행되는 컴포넌트 관계정의
  • 프로세스관점 : 시스템의 병렬처리및 동기화 처리를 위한 스레드와 프로세스 정의
  • 배치관점 : 실행되는 하드,소프트웨어 관계 정의

객체 지향


실제의 개체를 속성 메소드가 결합된 형태(객체)로 표현하는 개념

구성요소

  • 클래스 : 객체들의 공통 속성과 행위 정의
  • 객체 : 클래스의 인스턴스
  • 속성 : 데이터
  • 메소드 : 행위
  • 메세지 : 통신

기법

  • 캡슐화 : 속성과 메소드를 하나로 묶어서 객체로 만듬
  • 추상화 : 공통성질을 추출해서 수퍼클래스로 구성한다. ,현실세계를 자연스럽게 표현
  • 다형성 : 동일한 이름의 메소드를 다양하게 쓸수있다.
    • 오버로딩 : 하나의 클래스에서 같은이름으로 여러개의 메소드 정의
    • 오버라이딩 : 자식클래스가 부모클래스를 새로 재정의할수있다.
  • 정보은닉 : 캡슐화된 정보를 숨긴다.
  • 상속성 : 자식이 부모클래스의 속성과 메소드를 받는다.

디자인 패턴


설계 방법론 (전문가들이 모아온 지금까지의 솔루션 느낌)

생성 패턴, 구조 패턴, 행위 패턴 으로 나누어진다.


  • 생성 패턴

    객체 인스턴스 생성을 위한

    클래스 Factorty method
    객체 싱글톤
    객체 Abstract factory
    객체 Builder
    객체 Prototype

  • 구조패턴

    객체들을 조직화

    객체 구성에 유동성 확장성을 추가

    클래스 Adapter
    객체 Bridge
    객체 Composite
    객체 Decorator
    객체 Facade
    객체 Fly weight
    객체 Proxy

  • 행위 패턴

    객체의 행위를 조직화

    제어흐름 결정

    클래스 Template method
    클래스 interpreter
    객체 iterator
    객체 command
    객체 chain of responsibility
    객체 state
    객체 strategy
    객체 mediator
    객체 memento
    객체 visitor
    객체 observer

~~줜내많네~~

내외부 인터페이스


조직 내외부에있는 시스템들이 서로 상호작용하기위한 접속 방법
  • 직접 인터페이스 방식

  • 간접 인터페이스 방식


객체지향 방법론


  • 럼바우 방법론
  • 객체 모델링 : 정보모델링, 요구되는 객체 찾고 관계규정 , 시스템 정적구조 생성

  • 동적 모델링 : 상태 다이어그램이용 , 행위 기술

  • 기능 모델링 : 자료흐름도(DFD) 이용

DFD : 입출력 결정 > 자료흐름도 > 기능내용 기술 > 제약사항 결정 및 최소화


- 부치방법론
  • 절차지향 프로그램 개발 - '동사'
  • 객체지향 프로그램 개발 - '명사'
  • 미시적, 거시적 관점 둘따!
  • use case를 강조해서 사용하는 방법이다.

- 코드 요든 방법론 (Coad, Yourdon)
  • E-R 다이어그램

  • 워프스 - 브록 방법론 (Wirfs-Borck)
    • 분석 설계간 구분이 없고, 고객명세서를 평가해서 설계작업까지 연속 으로 수행

시스템 아키텍쳐 설계


#시스템 아키텍쳐 : 시스템이 작동방식을 설명하는 프레임 워크

시스템 아키텍쳐 설계소프트웨어 아키텍쳐 설계에 제약을 줌

소프트웨어 아키텍쳐의 제약 안에서 수행하는 소프트웨어 상세 설계


개체정의서


데이터베이스 개념모델링 단계에서 도출된 정의서
  • 개체타입명
  • 속성
  • 식별자

#테이블 정의서

​ 논리 및 물리 모델링 과정에서 얻은 설계 산출물


#코드 정의서

​ 코드에 대한 명명규칙, 코드는 db에서 유일하게 정의된다.


#송수신데이터 명세서

​ 위에것들과 연계하고자하는 테이블, 파일 단위로 송/수신 데이터 명세를 작성한다.


미들웨어 솔루션


클라이언트와 서버 사이의 통신을 담당하는 시스템 소프트웨어
  • 데이터베이스

    클라이언트와 데이터베이스를 연결하기위한 미들웨어


  • RPC (Remote Procedure Call)

    원격프로시저를 로컬프로시저 처럼 호출하는 미들웨어


  • MOM (Message Oriented Middleware)

    메세지 기반의 비동기형 메시지 전달방식 미들웨어


  • TP- 모니터

    온라인 업무에서 트랜잭션 처리,감시

    사용자수가 늘어나도 ㄱㅊ


  • ORB (Object Request Broker)

    코바(CORBA) 표준 스펙을 구현한 객체지향 미들웨어


  • WAS (Web Application Server )

    웹환경을 구현하기위한 미들웨어


반응형

'학습 > 정보처리기사' 카테고리의 다른 글

서버프로그램 - 정렬  (0) 2021.04.28
통합구현  (0) 2021.04.28
제품 소프트웨어 패키징 및 용어  (0) 2021.04.28
응용SW 기초기술활용  (0) 2021.04.28
소프트웨어 개발보안 구축  (0) 2021.04.27