소프트웨어 아키텍쳐 분석/설계 #1

요구기술

  • UML2.1
  • 유스케이스 모델링
  • 객체지향 언어 (Java) 고급
  • 디자인 패턴
  • 아키텍처 패턴
  • 도메인 모델링
  • J2EE

아키텍처 정의

  • IEEE1471 : 시스템의 근간이 되는 구성 (fundamental organization)
  • 고유의 목표를 달성하기 위해 요건 : 기능요건–>기능 설계, 품질요건–>아키텍처 설계
  • 능과 품질요건은 직교함 : ex) 다리의 상판(기능), 교각(품질)
  • 시스템은 하나의 아키텍처를 가진다. 유일하게!!
  • 아키텍처는 “아키텍처 서술”을 통해 “표현”해야함 -> 뷰 -> 모델링(ea), 문서(word), 프리젠테이션(ppt)
  • 뷰는 뷰포인트 명세를 준수하여야 한다. : ex) 4+1뷰, RUP
  • 아키텍처 설계에 영향을 주는 시스템 특성들
    • 사용자 수 : 단일 사용자, 다중 사용자
    • 티어 유형 : 단일 티어, 다중 티어
    • 어플리케이션 수 : 단일 어플리케이션, 다중 어플리케이션
    • 어플리케이션 용도 : 업무용, 시스템용
    • 어플리케이션 활용 : 운영용, 솔루션
사용자 삽입 이미지
IEEE 1471 – 아키텍터 서술 권고

참고 : 4+1뷰

  • Use Case View
  • Implementation View
  • Design View
  • Process View
  • Deployment View

사용자 삽입 이미지

참고 : Rational Unified Process (RUP)

  • 4단계 : Inception(초기) > Elaboration(상세) > Construction(구축) > Transition(이행)

 

사용자 삽입 이미지

  • 반복 (Iterations)

 

사용자 삽입 이미지

아키텍처 수립 프로세스

  • 전형적인 아키텍쳐 수립 프로세스 지점은 RUP의 Elaboration 부분임
  • 표준 아키텍쳐 수립 프로세스 예
    • 1. 아키첵쳐 요구파악 : 이해관계자 식별, 품질속성 식별
    • 2. 참조아키텍처 준비 : 자체 참조 아키텍쳐 준비
    • 3. 아키텍쳐 모델링 : 뷰정의, 패턴 선정, 프레임워크 선정, 설계이슈 선정
    • 4. 아키텍처 프로토타입 : 유스케이스 단위 설계, 컴포넌트 단위 설계, 기술 이슈 설계, 구현
    • 5. 아키텍쳐 배포 : 아키텍쳐 문서 작성
  • 산출물
    • 1. 아키텍처 서술 : 모델, 문서, 발표자료
    • 2. 아키텍쳐 프로토타입 (AS a reference implemetation)
    • 3. 설계가이드 (UI, 컴포넌트, 데이터, 인터페이스 등)

품질속성

시스템의 품질 속성

  • 가용성 (available)
  • 변경용이성 (modificability)
  • 수행성능 (performance)
  • 보안성 (security)
  • 테스트 용이성 (testablilty)
  • 사용성 (usability)

품질속성 시나리오

  • 구성 : 자극의 원천, 자극, 환경, 대상, 응답, 응답측정
  • 요구사항 단계에서 작성

사용자 삽입 이미지
사용자 삽입 이미지
Download

참고 : SAiP 품질모델

시스템 품질속성

  • 가용성(Availability)
  • 보안(Security)
  • 성능(Performance)
  • 변경가능성(Modifiability)
  • 사용성(Usability)
  • 시험가능성(Testability)

비즈니스 품질속성

  • 적시성 (Time to Market)
  • 비용과 혜택 (Cost and Benefit)
  • 예상 시스템 수명 (Projected Lifetime of the System)
  • 목표 시장 (Targeted Market)
  • 공개 일정 (Rollout Schedule)
  • 기존 시스템과 통합 (Integration with Legacy Systems)

아키텍처 품질속성

  • 개념 무결성(Conceptual Integrity)
  • 정확성과 완결성(Correctness and Completeness)
  • 구축가능성(Buildability)

품질목표

가용성 (available) 전술

  • 오류감지(ping/echo, hearbeat, exception)
  • 오류복구
  • 오류예방(트랜잭션:all or nothing, 프로세스 모니터)

변경용이성 (modificability)

  • 변경의 모듈화(모듈 일반화, 변경 예상)
  • 파급효과 예방(정보 은폐, 기존 인터페이스 유지, 통신경로 제한, 중재자 사용)
  • 바인딩 연기

수행성능 (performance)

  • 자원요구(대기시간 감소, 처리할 이벤트 감소, 자원 사용 전술)
  • 자원관리 (동시성 도입)
  • 자원 중재(스케쥴링 전략)

보안성 (security)

  • 공격저지
  • 공격감지
  • 공격복구

테스트 용이성 (testablilty)

  • 입출력 관리
  • 내부 모니터링

사용성 (usability)

  • UI분리

 

 

 

 

사용자 삽입 이미지

CC BY-NC-ND 2.0 KR

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스

저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.

댓글 남기기