현행 시스템 파악
- 현행 시스템이 어떤 하위 시스템으로 구성되어있는지 등의 정보를 파악하는 활동
: 소프트웨어 및 하드웨어 정보
: 네트워크 구성
: 제공 기능 등
- 절차
ㆍ1단계
: 구성 / 기능 / 인터페이스 파악
ㆍ2단계
: 아키텍쳐 및 소프트웨어 구성 파악
ㆍ3단계
: 하드웨어 및 네트워크 구성 파악
소프트웨어 아키텍쳐
- 소프트웨어의 구성요소와 특성, 구성요소간 관계를 표현하는 시스템의 구조
소프트웨어 아키텍쳐 프레임워크
- 아키텍쳐가 표현해야하는 내용 및 이들 간의 관계를 제공하는 아키텍쳐 기술 표준
- 구성요소
ㆍ아키텍쳐 명세서
: 이해 관계자들의 시스템에 대한 관점에 맞추어 작성한 뷰로 표현한 산출물
: 개별 뷰, 뷰 개괄 문서, 인터페이스 명세 등
ㆍ이해관계자 : 시스템 개발에 관련된 모든 사람과 조직
ㆍ관심사
: 이해관계자들의 의견과 목표
: 사용자 입장 / 유지보수자 입장 / 개발자 입장
ㆍ관점
: 개별 뷰를 개발할때 토대가 되는 양식
: 이해관계자들의 관점
ㆍ뷰 : 관련있는 관심사들의 집합의 관점에서 전체 시스템 표현
ㆍ근거 : 아키텍쳐 결정 근거 (회의 결과, 보고 결과)
ㆍ목표
ㆍ환경
ㆍ시스템
소프트웨어 아키텍쳐 4+1 뷰
- 고객의 요구사항 기반의 시나리오를 바라보는 4개 관점의 접근 방법
: 체크방법으로 유스케이스 사용
- 뷰
ㆍ유스케이스 뷰
: 유스케이스 또는 아키텍쳐를 도출하고 다른 뷰를 검증
: 사용자 / 설계자 / 개발자 / 테스트 관점
ㆍ논리 뷰
: 시스템의 기능적인 요구사항이 어떻게 제공되는지 설명
: 설계자 / 개발자 관점
ㆍ프로세스 뷰
: 시스템의 비기능적인 속성 (자원의 효율성 / 병행실행 / 비동기 / 이벤트 처리 등)
: 개발자 / 시스템 통합자 관점
ㆍ구현 뷰
: 개발 환경 안에서 정작인 소프트웨어 모듈의 구성을 표현
: 컴포넌트 구조와 의존성 및 컴포넌트에 관한 부가적인 정보 정의
ㆍ배포 뷰
: 컴포넌트가 물리적인 아키텍쳐에 어떻게 배치되는가를 매핑해서 표시
소프트웨어 아키텍쳐 패턴
- 소프트웨어를 설께할 때 참조할 수 있는 전형적인 해결방식
- 패턴유형
ㆍ계층화 패턴
ㆍ클라이언트-서버 패턴
ㆍ파이프-필터 패턴
ㆍ브로커 패턴
ㆍ모델-뷰-컨트롤러 패턴 (MVC)
계층화 패턴
- 시스템을 계층으로 구분하여 구성하는 패턴
클라이언트-서버 패턴
- 하나의 서버와 다수의 클라이언트로 구성된 패턴
파이프-필터 패턴
- 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴
: 서브 시스템이 입력 데이터를 받아 처리하고 다음 서브 시스템으로 넘겨주는 과정 반복
: 재사용성이 좋고 추가가 쉬워 확장이 용이
브로커 패턴
- 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되는 패턴
: 브로커 컴포넌트를 통해 컴포넌트간 통신
: 참조 (2mukee.tistory.com/123)
모델-뷰-컨트롤러 패턴 (MVC 패턴)
- 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화 하는 패턴
: 높은 재사용성과 컴포넌트의 독립성
- 모델 : 핵심 기능과 데이터 보관
- 뷰 : 사용자에게 정보 표시
- 컨트롤러 : 사용자로부터 요청을 받아 처리
소프트웨어 아키텍쳐 비용 평가 모델
- 아키텍쳐 접근법이 품질 속성에 미치는 영향과 아키텍쳐의 적합성을 평가
- 종류
ㆍSAAM : 변경 용이성 / 기능성 / 평가 용이성 / 무경험 조직 활용 가능
ㆍATAM : 아키텍쳐 품질 속성 만족에 대해 판단 및 품질 속성들의 이해 삭충 관계 평가
ㆍCBAM : ATAM 바탕으로 경제적 의사결정 요구 충족
ㆍADR : 소프트웨어 아키텍쳐 구성요소간 응집도 평가
ㆍARID : 특정 부분에 대한 품질요소에 집중
디자인 패턴
- 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
- 구성요소
: 패턴 이름 / 문제 및 배경 / 솔루션 / 사례 / 결과 / 샘플코드
- 유형
ㆍ생성 : 객체 인스턴스 생성에 관여 (클래스 정의 / 객체 생성 방식 구조화 / 캡슐화)
ㆍ구조 : 더 큰 구조 형성을 목적으로 클래스나 객체의 조합을 다룸
ㆍ행위 : 클래스나 객체들의 상호작용 방법과 역할 분담
ㆍ클래스 : 클래스간 관련성 (컴파일 타임에 정적으로 결정)
ㆍ객체 : 객체간 관련성 (런타임에 동적으로 결정)
생성 패턴
- Builder : 복합객체 생성 관련
- Prototype : 원형을 만들고 복사하여 필요한 부분만 수정해서 사용
- Factory Method : 상위 클래스의 인터페이스 정의하고 하위 클래스 인스턴스를 생성하는 방식
- Abstract Factory : 구체적인 클래스에 의존하지 않고 서로 연관된 객체를 조합하는 인터페이스 제공
- Singleton : 전역 변수를 사용하지않고 하나의 객체로 어디든 참조
구조 패턴
- Bridge : 기능의 클래스 계층과 구현의 클래스 계층 연결
- Decorator : 기존 클래스에 필요한 기능을 추가해 나가는 설계 패턴
- Facade : 복잡한 시스템에 대해 단순한 인터페이스 제공
- Flyweight : 클래스의 경량화
- Proxy : 실제 객체애 대한 대리 객체
- Composite : 객체간 관계를 트리구조로 구성
- Adapter : 클래스 재사용을 위해 중간에서 맞춰주는 역할의 인터페이스 생성
행위 패턴
- Mediator : 중재자를 두어 통신의 빈도수 감소
- Interpreter : 언어와 구문의 해석
- Iterator : 컬렉션 구현 방법을 노출시키지 않으면서 접근 방법 제공
- Template Method : 상위 클래스의 추상메서드를 통해 기능 골격 제공 / 하위 클래스 메서드에 대해 세부처리 구체화
- Observer : 한 객체의 상태가 바뀔때 연관 객체에 연락이 가고 자동으로 내용 갱신
- State : 객체 상태를 캡슐화하여 클래스화
- Visitor : 각 클래스 데이터 구조로 부터 처리기능 분리
- Command : 실행될 기능을 캡슐화
- Strategy : 알고리즘 군 정의(추상클래스) / 같은 알고리즘을 각각 하나의 클래스로 캡슐화 / 필요할때 교환해서 사용
- Memento : Undo기능 개발 시 사용
- Chain of Responsibillity : 하드코딩 되어있는 처리 연결을 동적으로 변경
현행시스템 분석
- 취득자료
ㆍ정보시스템 구성 현황 / 정보시스템 기능 구성도 / 인터페이스 현황
ㆍ현행 시스템 아키텍쳐 구성도 / 소프트웨어 구성도
ㆍ하드웨어 구성도 / 네트워크 구성도
개발 기술 환경 정의
- 운영체제
: 컴퓨터 시스템이 제공하는 모든 하드웨어, 소프트웨어를 사용할 수 있도록 인터페이스를 제공하는 프로그램
: 품질측면과 지원 측면 분석
ㆍ품질측면 : 신뢰도 / 성능
ㆍ지원측면 : 기술지원 / 주변기기 / 구축비용
- 네트워크
: 컴퓨터 장치들의 노드간 연결(데이터링크)를 이용하여 서로에게 데이터를 교환할 수 있도록 하는 기술
: 백본망, 라우터, 스위치, 게이트웨이, 방화벽 등을 대상으로 분석
ㆍOSI 7계층
- DBMS
: 데이터베이스라는 데이터의 집합을 만들고 저장 및 관리할 수 있는 기능들을 제공하는 응용프로그램
: 가용성, 성능, 기술 지원, 호환성, 구축비용을 분석
- 미들웨어
: 분산 컴퓨팅 환경에서 응용 프로그램과 환경간 원만한 통신을 위해 제어하는 소프트웨어
: 가용성, 성능, 기술지원, 구축비용을 분석
ㆍWAS
'Certification > 정보처리기사' 카테고리의 다른 글
UI 설계 (다이어그램의 종류) (0) | 2021.04.08 |
---|---|
UI 요구사항 확인 (0) | 2021.04.08 |
요구사항 확인 (0) | 2021.04.08 |
비용산정 / 일정관리 모형 (0) | 2021.04.08 |
소프트웨어 개발방법론 (0) | 2021.04.08 |