본문 바로가기
정보처리기사/01. 요구사항 관리

Chapter 02. 현행 시스템 분석

by HoPpangg 2021. 9. 8.
SMALL

1. 현행시스템 파악 절차

-1) 구성/기능/인터페이스 파악

- 시스템 구성 현황 파악

- 시스템 기능 파악

- 시스템 인터페이스 현황 파악

-2) 아키텍처 및 소프트웨어 구성 파악

- 아키텍처 파악

- 소프트웨어 구성 파악

-3) 하드웨어 및 네트워크 구성 파악

- 시스템 하드웨어 현황 파악

- 네트워크 구성 파악

 

2. 소프트웨어 아키텍처 4+1 (유논프구배)

논리 뷰, 구현 뷰, 프로세스 뷰, 배포 뷰 + 유스케이스

1) 유스케이스 뷰 (Usecase View)

- 유스케이스 또는 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는데 사용되는 뷰

-2) 논리 뷰 (Logical View)

- 시스템의기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰

-3) 프로세스 뷰 (Process View)

- 시스템의 비기능적 속성으로서 자원의 효율적인 사용, 병행, 실행, 비동기 이벤트 처리 등을 표현한 뷰

- 설계자, 개발자 관점

-4) 구현 뷰 (Implementation View)

- 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰

- 컴포넌트 구조와 의존성을 보여주고 컴포넌트에 관한 부가적인 정보 정의

-5) 배포 뷰 (Deployment View)

- 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰

 

3. 소프트웨어 아키텍처 패턴 유형

-1) 계층화 패턴(Layered Pattern)

- 시스템을 계층으로 구분하여 구성하는 패턴

- 각 하위 모듈은 특정한 수준의 추상화를 제공하고, 각 계층은 담음 상위 계층에 서비스를 제공

- 서로 마주 보는 두 개의 계층 사이에서만 상호작용

-2) 클라이언트-서버 패턴(Client-Server Pattern)

- 하나의 서버와 다수의 클라이언트로 구성된 패턴

- 사용자가 클라이언트를 통해서 서버에 서비스를 요청하면 서버는 클라이언트에게 서비스 제공

- 서버는 계속 클라이언트로부터 요청 대기

-3) 파이프-필터 패턴(Pipe-Filter Pattern)

- 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴

- 서브 시스템이 입력 데이터를 받아 처리하고, 결과를 다음 서브 시스템으로 넘겨주는 과정을 반복

- 필터 컴포넌트는 재사용성이 좋고, 추가가 쉽기 때문에 확장이 용이

-4) 브로커 패턴(Broker Pattern)

- 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 이 컴포넌트들은 원격 서비스 실행을 통해 상호작 용이 가능한 패턴

-5) 모델--컨트롤러 패턴 (MVC; Model View Controller Pattern)

- 모델 : 핵심 기능과 데이터 보관

- : 사용자에게 정보 표시(하나 이상의 뷰가 정의 가능)

- 컨트롤러 : 사용자로부터 요청을 입력받아 처리

- 컴포넌트를 분리하며 코드의 효율적인 재사용을 가능하게 하고, 다수의 뷰가 있어야 하는 대화형 애플리케이 션 구축에 적합

 

4. 소프트웨어 아키텍처 비용 평가 모델 (SACAA)

-1) SAAM(Software Architecture Analysis Method)

- 변경 용이성과 기능성에 집중, 평가가 용이하여 경험이 없는 조직에서도 활용 가능한 비용 평가 모델

-2) ATAM(Architecture Trade-off Analysis Method)

- 아키텍처 품질 속성을 만족시키는 판단 및 품질 속성들의 이해 상충관계까지 평가하는 모델

-3) CBAM(Cost Benefit Analysis Method)

- ATAM 바탕의 시스템 아키텍처 분석 중심으로 경제적 의사결정에 대한 요구를 충족하는 비용 평가 모델

-4) ADR(Active Design Review)

- 소프트웨어 아키텍처 구성 요소 간 응집도를 평가하는 모델

-5) ARID(Active Reviews for Intermediate Designs)

- 전체 아키텍처가 아닌 특정 부분에 대한 품질 요소에 집중하는 비용 평가 모델

 

5. 디자인 패턴 구성 요소(패문솔 사결샘)

패턴의 이름

문제 및 배경

솔루션 : 디자인 패턴을 이루는 요소들, 관계, 협동 과정

사례

결과

샘플 코드

 

6. 디자인 패턴 유형

목적에 따른 유형 (생구행)

-1) 생성 : 객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화를 수행하는 패턴

-2) 구조 : 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴

-3) 행위 : 클래스나 객체들이 상호작용하는 방법과 역할 분담을 다루는 패턴

범위에 따른 유형

-1) 클래스 : 컴파일 타임에 정적으로 결정

-2) 객체 : 런타임에 동적으로 결정

 

7. 디자인 패턴 종류

생성 패턴(생빌 프로 팩앱싱)

-1) Builder

- 객체를 생성하는 방법과 객체를 구현하는 방법을 분리함으로써 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수    있는 디자인 패턴

-2) Prototype

- 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정하여 사용하는 패턴

- 객체를 생성할 때 갖추어야 할 기본 형태가 있을 때 사용되는 디자인 패턴

-3) Factory Method

- 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식

- 상위 클래스에서는 인스턴스 생성 방법만 결정하고, 하위 클래스에서 그 데이터의 생성 을 책임지고 조작하는 함수들    을 오버라이딩 하여 인터페이스와 실제 객체를 생성하는 클래스를 분리할 수 있음

-4) Abstract Factory

- 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

-5) Singleton

- 전연 변수를 생성하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조 할 수 있도록 하는 디자인 패턴

- 한 클래스에 한 객체만 존재하도록 제한

 

구조 패턴 (구 브데 퍼플 프록 컴어)

-1) Bridge

- 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 추상화 된 부분과 실제 구현    부분을 독립적으로 확장할 수 있는 디자인 패턴

-2) Decorator

- 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴

- 기능 확장이 필요할 때 객체 간의 결합을 통해 기능을 동적으로 유연하게 확장 가능

-3) Facade

- 복잡한 시스템에 대하여 단순한 인터페이스를 제공함으로써 사용자와 시스템 간 또는 여타 시스 템과의 결합도를 낮추 어 시스템 구조에 대한 파악을 쉽게 하는 패턴

-4) Flyweigt

- 다수의 객체로 생성 될 경우 모두가 갖는 본질적 요소를 클래스 화하여 공유함으로써 메모리를 절약하고, ‘클래스의 경량화를 목적으로 하는 디자인 패턴

- 여러 개의 가상 인스턴스를 제공하여 메모리 절감

-5) Proxy

- 실체 객체에 대한 접근 이전에 필요한 행동을 취할 수 있게 만들며, 미리 할당하지 않아도 상관없 는 것들을 실제 이용할 때 할당하게 하여 메모리 용량을 아낄 수 있으며, 실제 객체를 드러나지 않 게 하여 정보 은닉의 역할도 수행하는 디자인 패턴

-6) Composite

- 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴

- 사용자가 단일 객체와 복합 객체를 모두 동일하게 다루도록 하는 패턴

-7) Adapter

- 기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴

 

행위 패턴 (행 미인이 테옵 스테 비커 스트 메체)

-1) Mediator

- 중간에 통제, 지지하는 중재자를 두고, 중재자에게 모든 것을 요구하여 통신의 빈도수를 줄여 객체지향의 목표를 달성하게 해주는 디자인 패턴

-2) Interpreter

- 분리된 구문의 해석을 맡는 클래스 작성, 각 행태의 언어 구문을 해석하는 디자인 패턴

-3) Iterator

- 컬렉션 구현 방법을 노출 시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법 을 제공하는 디자인 패턴

-4) Template Method

- 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴

- 상위 클래스에는 추상 메서드를 통해 기능의 골격을 제공하고, 하위 클래스의 메서드 에는 세부 처리를 구체화하는 방식으로 사용

-5) Observer

- 한 객체의 상태가가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 방법으로 느슨하게 결합하는 디자인 패턴

-6) State

- 객체 상태를 캡슐화하여 클래스화 함으로써 그것을 참조하게 하는 방식

- 변경 시 원시코드의 수정 최소화, 유지보수 편의성

-7) Visitor

- 각 클래스 데이터 구조로부터 처리 기능을 분리하여 별도의 클래스를 만들어 놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만드는 패턴

- 객체의 구조는 변경하지 않으면서 기능만 추가하거나 확장할 때 사용하는 디자인 패턴

-8) Command

- 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴

- 하나의 추상 클래스에 메서드를 만들어 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 특징을 갖는    디자인 패턴

-9) Strategy

- 알고리즘 군을 정의하고(추상 클래스) 같은 알고리즘을 각각 하나의 클래스로 캡슐화한 다음, 필 요할 때 서로 교환해서 사용할 수 있게 하는 패턴

- 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 디지아니 패턴

-10) Memento

- 클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을 때 적용하는 디자인 패턴으로 Undo 기능을 개발할 때 사용하는 디자인 패턴

-11) Chain of Responsibility

- 정적으로 어떤 기능에 대한 처리의 연결이 하드코딩 되어 있을 때 기능 처리의 연결 변경이 불가능한데, 이를 동적으로 연결되어있는 경우에 따라 다르게 처리 될 수 있도록 연결한 디자인 패턴

- 한 요청을 2개 이상의 객체에서 처리

 

8. 분석 산출물 종류 (현기인 아소하네)

-1) 정보시스템 구성 현황

-2) 정보시스템 기능 구성도

-3) 인터페이스 현황

-4) 현행 시스템 아키텍처 구성도

-5) 소프트웨어 구성도

-6) 하드웨어 구성도

-7) 네트워크 구성도

 

9. 운영체제 현행 시스템 분석 시 고려 사항

-1) 품질 측면

- 신뢰도 : 장기간 시스템 운영 시 운영체제의 장애 발생 가능성 / 운영체제의 버그로 인한 재기동 여부

- 성능 : 대규모 및 대량 파일 작업(배치 작업) 처리 / 지원 가능한 메모리 크기 (32bit, 64bit)

-2) 지원 측면

- 기술 지원 : 공급사들의 안정적인 기술 지원 / 오픈 소스 여부

- 주변 기기 : 설치 가능한 하드웨어 / 주변 기기 지원 여부

- 구축 비용 : 지원 가능한 하드웨어 비용 / 설치할 응용 프로그램의 라이선스 정책 비용 / 유지 관리 비용

 

10. OSI 7 계층(Layer) ( 아파서 피내다, 피나다 )

: 네트워크 통신에서 생긴 여러 가지 충돌 문제를 완화하기 위해 국제 표준화 기구에서 제시한 네트워크 기본 모델

계층 설명 프로토콜 전송 단위
응용 계층
Application Layer
사용자와 네트워크 간 응용 서비스 연결, 데이터 생성 HTTP
FTP
데이터(Data)
표현 계층
Presentation Layer
데이터 형식 설정과 부호화 교환, /복호화 JPEG
MPEG
세션 계층
Session Layer
연결 접속 및 동기 제어 SSH
TLS
전송 계층
Transport Layer
신뢰성 있는 통신 보장
데이터 분할과 재조립, 흐름제어, 오류 제어, 혼잡 제어 등을 담당
TCP
UDP
세그먼트
(Segment)
네트워크 계층
Network Layer
단말 간 데이터 전송을 위한 최적화된 경로 제공 IP
ICMP
패킷
(Packet)
데이터 링크 계층
Data Link Layer
인접 시스템 간 데이터 전송, 전송 오류 제어
동기화, 흐름제어 등의 전송 기능을 제공
오류 검출 / 재전송 등 기능 제공
이더넷 프레임
(Frame)
물리 계층
(Physical Layer)
01의 비트 정보를 회선에 보내기 위한 전기적 신호 변환 RS-232C 비트(Bit)

 

11. DBMS(Database Management System) 기능

DBMS : 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램

- 중복제어 : 동일한 데이터가 여러 위치에 중복 저장 되는 현상 방지

- 접근 통제 : 권한에 따라 데이터에 대한 접근 제어

- 인터페이스 제공 : 사용자에게 SQL CLI, GUI 등 다양한 인터페이스 제공

- 관계 표현 : 서로 다른 데이터 간의 다양한 관계를 표현할 수 있는 기능 제공

- 샤딩/파티셔닝 : 구조 최적화를 위해 작은 단위로 나누는 기능 제공

- 무결성 제약 조건 : 무결성에 관한 제약조건을 정의/검사하는 기능 제공

- 백업 및 회복 : 데이터베이스 장애 발생 시 데이터의 보존 기능 제공

 

12. DBMS 현행시스템 분석 시 고려 사항 (가성호기구)

-1) 성능 측면

- 가용성 : 장기간 시스템 운영 시 장애 발생 가능성 / 백업, 복구 편의성 / DBMS 이중화 및 복제 지원 여부

- 성능 : 대규모 데이터 처리 / 대량 거래 처리 / 다양한 튜닝 옵션 지원 여부 / 비용 기반 최적화 지원 및 설 정의 최소화 지원 여부

- 상호 호환성 : 설치 가능한 운영체제 종류 / 다양한 운영체제에서 지원되는 JBDC, ODBC

-2) 지원 측면

- 기술 지원 : 공급 업체들의 안정적인 기술 지원 여부 / 사용자 간의 정보 공유 여부 / 오픈 소스 여부

- 구축 비용 : 라이선스 정책 및 비용 / 유지 관리 비용

 

13. 웹 애플리케이션 서버(WAS; Web Application Server)

서버 계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 다른 이기종 시스템과의 애플리케이션 연동을 지원하는 미들웨어

 

728x90
LIST

댓글