티스토리 뷰

728x90
반응형

현행시스템 파악

:하위시스템구성, 제공기능, 연계정보, 기술정보, SW, HW, 네트워크 구성 등 무엇인지 파악하는 활동.

 

현행시스템 파악 3단계 절차

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

- 구성파악: 조직 업무 처리 기간업무와 이를 지원하는 지원업무로 구분.

- 기능파악: 단위 업무 시스템이 제공하는 기능을 파악해 계층형으로 표시.

- 인터페이스 파악: 단위 업무시스템이 타시스템과 주고받는 데이터 정보, 프로토콜, 연계유형, 주기 파악.

2) 아키텍처 및 SW 구성 파악

아키텍처 파악: 기간업무 수행위해 계층별 기술요소 최상위 수준에서 파악.

SW 파악: 단위업무 시스템의 업무처리 위해 SW정보 파악. 라이선스 수 파악.

3) HW 및 네트워크 구성 파악

hw파악: 서버위치/사양, 이중화 구현여부 파악. 이중화는 기간업무 서비스 시간, 장애대응 정책에 따라 필요성 여부 결정->인프라 구축기술 난이도/비용 증가.

넽웤 파악: 업무처리시스템 위해 어떤 넽웤장비 사용?

 

소프트웨어 아키텍처

: 여러 SW 구성요소와 그 특성중 외부에 드러나는 특성, 구성요소간 관계표현하는 시스템 구조나 구조체.

소프트웨어 아키텍처 프레임워크

: 아키텍처가 표현해야 하는 내용 및 이들 간 관계를 제공하는 아키텍처 기술표준.

 

소프트웨어 아키텍처 구성요소

1) 아키텍처 명세서: 아키텍처 기록 산출물. 이해관계자들의 관점을 뷰로 표현. 개별뷰, 뷰개괄문서, 인터페이스 명세 등.

2) 이해관계자: 개발 관련 모든 사람.

3) 관심사: 이해관계자들의 서로 다른의견과 목표.

4) 관점: 개별뷰를 개발할 때 토대가 되는 패턴이나 양식

5) : 관심사들의 집합이라는 관점에서 전체 시스템 표현. 아키텍처 설명에는 하나 이상의 뷰로 구성

6) 근거: 아키텍처 결정근거. 회의결과, 보고결과.

7) 목표: 이해관계자들이 의도하는 시스템 목적.운영방법.

8) 환경: 시스템 영향요인. (개발, 운영 외부요인)

9) 시스템: , 시스템, 제품군 등 구현체

 

소프트웨어 아키텍처 4+1

: 고객 요구사항을 4개 관점으로 보는 SW적 접근 방법. 4개 구조 아키텍처. 4개 구조가 충돌해? 요구사항충족해? 증명하기위해 체크 방법으로 유스케이스 사용.

1:유스케이스. 4: 논리뷰, 구현뷰, 프로세스뷰, 배포 뷰.

유스케이스: 시스템이 액터에게 제공할 기능. 요구사항이자, 사용자입장에서의 시스템 기능.

유스케이스뷰: 유스케이스||아키텍처 도출하고 설계하며 다른 뷰 검증. 사용자/설계자/개발자/테스트 관점.

논리뷰(logical): 기능적 요구사항이 어케 제공되는지 설명뷰. 설계자/개발자 관점

프로세스뷰: 비기능적 속성. 자원 효율적사용, 병행실행, 비동기, 이벤트 처리 등을 표현한 뷰. 개발자/시스템 통합자 관점.

구현뷰: 개발환경 내 정적 SW 모듈 구성 보여주는 뷰. 컴포넌트 구조와 의존성을 보여줌.

배포뷰: 컴포넌트가 물리적 아키텍처에 어케 배치되는지 매핑해서 보여주는 뷰.

 

소프트웨어 아키텍처 패턴

: SW 설계시 참조할 전형적 해결 방식. 문제점들에 대한 일반화되고 재사용 가능한 솔루션임.

- 필요성: 고객과 의사소통 통해 요구사항 만족시키고, 개발 생산성과 품질 확보가 가능함. 개발시간단축, 고품질 SW 생산. 이미 검증된 구조로 개발하므로 안정적 개발. 개발전 예측 가능.

 

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

1) 계층화(layered)패턴: 시스템을 계층으로 구분. 하위모듈은 추상화를 제공, 각 계층은 상위계층에 서비스 제공. 서로 마주보는 2개 계층 사이에서만 상호작용.

2) 클라이언트-서버 패턴: 1서버와 클라이언트로 구성.

3) 파이프-필터 패턴: 데이터스트림 생성, 처리하는 시스템에서 사용가능한 패턴. 서브시스템이 입력데이터를 받아 처리, 결과를 다음 섭시스템으로 넘겨주는 과정을 반복. 필터 컴포넌트는 재사용성이 좋고, 확장이 용이함.

4) 브로커 패턴: 분리된 컴포넌트들로 이루어진 분산시스템에서 사용. 원격시스템 실행을 통해 상호작용 가능.서버가 지 기능을 브로커에 넘겨줌. 클라이언트가 브로커에 서비스 요청하면 브로커는 클라이언트를 레지스트리에 있는 적합한 서비스로 리다이렉션함.

5) 모델--컨트롤러(MVC) 패턴: 대화형 앱을 모델,,컨트롤러 3개의 서브시스템으로 구조화한 패턴.

: SW 설계시 참조할 전형적 해결 방식. 문제점들에 대한 일반화되고 재사용 가능한 솔루션임.

- 필요성: 고객과 의사소통 통해 요구사항 만족시키고, 개발 생산성과 품질 확보가 가능함. 개발시간단축, 고품질 SW 생산. 이미 검증된 구조로 개발하므로 안정적 개발. 개발전 예측 가능.

 

소프트웨어 아키텍처 비용 평가모델

: 아키텍처 접근법이 품질 속성에 미치는 영향을 판단하고 아키텍처의 적합성을 평가하는 모델.

 

 

1) SAAM(Sw Architecture Analysis Method): 변경 용이성, 기능성에 집중. 평가용이해 무경험자도 활용가능.

2) ATAM(Architecture Trade-off Analysis method): 아키텍처 품질 속성을 만족시키는지 판단 및 품질 속성들의 이해 상충관계를 평가.

3) CBAM(Cost Benefit Analysis Method): ATAM 바탕의 시스템 아키텍처 분석 중심. 경제적 의사결정에 대한 요구를 충족.

4) ADR(Active Design Review): sw 아키텍처 구성요소 간 응집도 평가

5) ARID(Active Reviews for Intermediate Designs): 전체가 아닌 특정 아키텍처에 대한 품질요소에 집중.

 

 

디자인 패턴

: sw설계에서 공통 발생문제에 대해 자주 쓰이는 설계방법을 정리한 패턴.

: 최적화, 개발 효율성, 유지보수성, 운용성이 높아짐

 

 

디자인 패턴 구성요소

1) 패턴의 이름

2) 문제 및 배경

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

4) 사례

5) 결과: 디패를 사용하면 얻는 이점, 영향

6) 샘플 코드: 디패가 적용된 원시코드

 

 

디자인 패턴 유형

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

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

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

4) 범위-클래스: 클래스간 관련성(상속관계), 컴파일 타임에 정적으루 결정

5) 범위-객체: 객체 간 관련성. 런타임에 동적으로 결정.

 

1) 생성패턴 (Builder, Prototype, Factory Method, Abstract Factory, Singleton)

(1) Builder: 인스턴스 조립하여 만드는 구조. 복합개체를 생성할 때 객체생성과 객체구현을 분리하여 서로다른 표현결과를 만듦.

(2) Prototype: 첨부터 일반적 원형(기존객체) 만들고, 복제 후 필요부분만 수정(객체타입 등 설정)해 사용.

(3) Factory Method: 상위클래스에서 객체생성 인터페이스 정의, 하위클래스에서 인스턴스 생성.(오버로딩)

(4) Abstract Factory: 구체적 클래스에 의존하지 않고 서로 연관/의존적인 객체들의 조합을 만드는 인터페이스 제공. 이패턴으로 생성된 클래스는 사용자에 인터페이스(API) 제공. 구체적 구현은 Concrete Product 클래스에서 이뤄짐. 동일한 주제의 다른 팩토리를 묶음.

(5) Singleton: 전역변수 노사용. 객체 1개만 생성해 어디서든지 참조하도록 함. 11객체 존재하도록 제한.

 

 

2) 구조패턴 (Bridge, Decorator, Facade, Flyweight, Proxy, Composite, Adapter)

(1) Bridge: 기능클과 구현클을 연결. 구현부에서 추상 계층을 분리해 추상화된 부분과 실제 구현 부분을 독립적으로 확장. 구현뿐 아니라 추상화된 부분까지 변경해야 하는 경우 활용.

(2) Decorator: 기존클래스에 필요기능 추가. 설계 패턴으로 기능 확장이 필요할 때 객체간 결합 통해 기능을 동적으로 유연히 확장할수 있게해 상속의 대안으로 사용.

(3) Facade: 단순 인터페이스 제공해 시스템간 결합도를 낮춰 시스템구조 파악 쉽게함. 오류를 단위별로 확인 가능, 접근성이 높음. 통합된 인터페이스 제공.

(4) Flyweight: 다수 객체로 생성될 경우, 모두가 갖는 본질요소를 클래스화하여 공유해 메모리절약. 클래스의 경량화를 목적으로 함. 여러개 가상인스턴스를 제공해 메모리 절감.

(5) Proxy: 실체 객체에 대한 대리객체. 할당하지 않아도 상관없는 것을 할당해 메모리절약. 실체 객체를 드러나지않게해 정보은닉 특정 객체로의 접근을 제어하기 위한 용도로 사용.

(6) Composite: 객체관계를 트리구조로 구성해 부분-전체계층을 표현. 단일/복합객체를 동일하게 취급함.

(7) Adapter: 기존클을 재사용하게 중간역할. 상속클과 위임클 이용하는 인스턴스 패턴의 2형태로 사용. 인터페이스가 호환되지 않는 클을 함께 이용하도록 타클의 인터를 기존 인터에 덧씌움.

 

 

3) 행위패턴 (Mediator, Interpreter, Iterator, Template Method, Observer, State, Visitor, Command, Strategy, Memento, Chain of Responsibility)

(1) Mediator: 객체지향설계에서 객체 많아지면 복잡, 느슨한 결합의 특성을 해치므로, 통제하고 지시하는 중재자. 통신의 빈도수를 줄여 객체지향 목표 달성. 상호작용의 유연한 변경을 지원.

(2) Interpreter: 언어 다양한 해석, 구체적 구문을 나눠 구문해석을 맡는 클래스를 각각 작성해 여러 언어구문을 해석하게함. 문법 자체를 캡슐화 하여 사용.

(3) Iterator: 컬렉션 구현 방법(내부구조) 노출 노!but!모든항목에 접근법 제공! 복잡 객체 원소를 순차접근 가능하게 함.

(4) Template Method: 일부분을 서브클래스로 캡슐화해 전체구조 안바꾸면서 특정 수행내역 바꾸는 패턴. 상위클(추상)은 골격, 하위클(구체)는 세부처리 구체화해 코드양 줄여, 유지보수 용이.

(5) Observer: 객체상태 바낌->의존객체에 연락->자동갱신. 1 의존성 가지며, 상호작용하는 객체사이에서는 가능하면 느슨하게 결합함.

(6) State: 객체를 캡슐화해 클화함으로써 참조하게 하는 방식. 상태에ᄄᆞ라 달리 처리하도록 행위내용 변경. 변경 시 원시코드 수정 최소화, 유지보수 편의성.

(7) Visitor: 클 데이터구조로부터 처리기능 분리해 별도 클 만들어 클의 메서드가 각 클을 돌아댕기며 특정 작업수행. 객체구조 노변경, 기능만 추가,확장. 특정구조 이루는 복합 객체 원소특성에 따라 동작수행하도록 지원.

(8) Command: 실행기능을 캡슐화해 여러기능 실행할 재사용높은 클을 설계함. 추상 클래스에 메서드만들어, 각 명령이 들어오면 서브클래스가 실행됨. 요구사항을 객체로 캡슐화.

(9) Strategy: 알고리즘 군을 정의(추상클)하고, 같은 알고리즘을 하나의 클로 캡슐화 한담에, 필요시 교환해 사용. 행위를 클로 캡슐화해 동적행위를 자유롭게 체인지.

(10) Memento: 클 설계관점에서 객체정보 저장할 때 적용. Undo 기능 개발 시 사용.(객체를 이전 상태로 복구)

(11) Chain of Responsibility: 정적인 기능의 처리연결이 하드코딩되어있을 때, 동적으로 연결되어있는 경우에 따라 다르게 처리될 수 있도록 연결.한 요청을 2이상의 객체에서 처리.

 

 

현행시스템 관련 자료수집 및 산출물 작성

1) 정보시스템 구성/기능 및 인터페이스 자료 수집팀: 정보시스템 구성도/기능구성도/인터페이스 현황 수집 .

2) 현행 시스템 아키텍처 및 SW자료수집팀: 현행 시스템 아키택처 구성도, SW 구성도 수집

3) hw & 넽웤자료수집팀: hw, 넽워크 구성도 수집.

 

개발 기술 환경 정의

OS: 컴시스템이 제공하는 hw, sw를 사용할 수 있도록 해주고, 사용자와 hw간 인터페이스를 담당하는 프로그램.

사용자가 컴을 쉽게 사용하기 위해 지원하는 sw.

 

OS 현행 시스템 분석 (품질/ 지원측면 고려)

1) 품질측면

신뢰도: 장기간 시스템 운영 시 OS장애발생 가능성, OS버그로 인한 재기동 여부

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

2) 지원측면

기술지원: 공급사의 안정적 기술지원, 오픈소스 여부

주변기기: 설치가능한 hw, 다수 주변기기지원 여부

구축비용: 지원가능 하드웨어 비용, 설치할 응프 라이선스 정책 및 비용, 유지 관리 비용

 

 

OS 종류 및 특징

1) PC : windows, UNIX, Linux

Windows (Microsoft): /소규모 서버. 일반PC. 유지 관리비용 장점

UNIX(IBM, HP, SUN): 대용량처리, 안정성 높은 엔터프라이즈급 서버. 소유비용 가장 적게 든다.

Linux(리누스토발즈): /대규모 서버이상, 높은 보안성

2) mobile: Android, iOS

android(구글): 리눅스os위에서 구동. 컴파일된 바이트 코드 구동하는 런타임 라이브러리 제공하는 OS.

iOS(애플): , 태블릿PC의 높은 보안성과 고성능 제공

 

 

네트워크 현행 시스템 분석

: 네트워크는 컴 장치들의 노드간 연결(데이터 링크)을 사용해 서로에게 데이터 교환하는 기술.

: 데이터링크는 광케이블같은 유선매체 또는 와이파이 같은 무선매체를 통해 확립된다.

OSI 7계층(Layer)

: 넽웤 통신에서 생긴 충돌 완화 위해 국제 표준화 기구(ISO)에서 제시한 넽웤 기본 모델임.

 

계층 설명 프로토콜 전송단위
응용계층(application layer) 사용자와 넽웤간 응용서비스 연결, 데이터 생성 HTTP
FTP
data
표현계층(Presentiation layer) 데이터형식 설정, 부호교환, /복호화 JPEG
MPEG
세션계층 연결 접속 및 동기제어 SSH
TLS
전송계층(transport layer) 신뢰성있는 통신보장
데이터분할, 재조립, 흐름제어, 오류제어, 혼잡제어
TCP
UDP
segment
네트워크계층 단말간 데이터 전송위한 최적화 경로 제공 IP
ICMP
Packet
데이터링크계층 인접 시스템간 데이터전송, 전송오류제어, 동기화, 흐름제어 등의 전송 기능 제공. 오류검출, 재전송 이더넷 Frame
물리계층(physical layer) 0,1 비트정보를 회선에 보내기위한 전기적 신호변환 RS-232C Bit

 

 

넽웤구성도를 통해 서버 위치, 서버간 연결방식파악가능

백본망, 라우터, 스위치, 게이트웨이, 방화벽 등을 대상으로 분석함.

넽웤분석 시 물리적 위치관계 파악, 조직 내 보안 취약성 분석 및 대응이 가능함.

넽웤 장애 발생 추적 및 대응 등 다양한 용도활용.

 

DBMS 현행 시스템 분석

DBMS가 제공하는 기능

1) 중복 제어: 동일데이터 여러위치에 중복 저장방지

2) 접근 통제: 권한에 따라 데이터 접근제어

3) 인페 제공: 사용자에 SQL, CLI, GUI

4) 관계표현: 서로다른 데이터간 다양한관계 표현

5) 샤딩/파티셔닝: 구조 최적화 위해 작은단위로 나눔

6) 무결성 제약조건: 무결성 제약조건 정의/검사 기능

7) 백업,회복: DB장애 발생 시 데이터 보존 기능

 

DB의 가용성, 성능, 기술지원, 호환성, 구축비용 분석

성능측면

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

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

3) 상호호환성: 설치가능한 OS종류.. 다양한OS지원되는 JDBC, ODBC

지원측면

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

2) 구축 비용: 라이선스 정책 및 비용, 유지관리 비용, 총 소유비용

 

 

미들웨어의 현행시스템 분석

: 가용성, 성능, 기술지원, 구축비용을 분석한다.

미들웨어: 분산컴퓨팅 환경에서 응프와 프로그램이 운영되는 환경 간 원만 통신을 제어해주는 sw.

-OSsw 애플리케이션 사이에 위치함.

-대표적 미들웨어: WAS

-WAS: 서버계층에서 애프리케이션 동작환경을 제공, 안정적인 트잭 처리와 관리, 다른 이기종 시스템과 애플리케이션 연동 지원하는 서버.

 

오픈소스 사용시 고려사항

: 라이선스 종류, 사용자 수, 기술 지속가능성, 자유 배포, 소스코드 공개, 파생작업 허용, 소스코드 일관성 확보, 차별금지, 라이선스 배포, 포괄적 허용

 

개발 기술 환경 요구사항 파악

기술환경 정의를 위한 기초 자료 조사 항목 사례

1) 온라인 트잭 처리(OLTP) 시스템

조사항목: 시스템 구축형태, 사용자수, 트잭 수

2) /앱 애플리케이션 서버(WEB/WAS)

-조사항목: 시스템 용도 및 서비스형태, 시스템구성형태, 접속자 수

 

 

728x90
반응형
댓글