본문 바로가기

Dev.../소프트웨어 아키텍처

[SA강좌] Part 3-5 Allocation View 정의 Allocation View 정의 Allocation View는 컴포넌트가 하드웨어에 어떻게 배치되는지를 보여준다. 그림 2. Allocation View에 대한 예제 더보기
[SA강좌] Part 3-4 Module View 정의 Module View 정의 이 과정에서 컴포넌트를 파악하고 정의하는 접근하는 방법에 대해서 설명하도록 하겠다. -. 인터페이스 파악 : 시스템 분해는 몇 개의 컴포넌트와 이들간의 관계를 나타내는 인터페이스를 결정해야 한다. -. 도메인 파악 : 컴포넌트는 시스템을 구성하는 컴포넌트들이다. 따라서 여기서 두 종류의 도메인으로 파악할 수 있는데, 어플리케이션 도메인과 컴퓨터 사이언스 도메인으로 분류된다. 어플리케이션 도메인은 주로 소프트웨어 시스템과 관련이 있으며, 컴퓨터 사이언스 도메인은 해당 문제를 해결하기 위한 솔루션과 관련 있다. -. 추상 레이어 구조 파악 세 번째 과정이 분해된 시스템을 추상화 레이어로 재 분해하는 과정이다. 이는 수평적 레이어 분해라고 할 수 있다. 추상화 레이어 단계는 반복적으.. 더보기
[SA강좌] Part 3-3 Component Connector View정의 Component Connector View 정의 일단 시스템 컨텍스트로 시스템 경계를 정의하였으면, 다음 과정으로는 시스템을 구성하는 핵심 엔터티에 대해서 abstraction을 파악하고 정의하는 단계로 이행된다. 시스템에 대한 추상화는 component와 connector를 사용하여 표현한다. Component&Connector View에 대한 다이어그램 작성 방법은 별도의 장에서 제시한다. 아키텍처 관련 요구사항 분석 Component&Connector View를 작성하기 전에 이 View에 어떤 요구사항과 품질 요소를 반영할 것인가를 결정해야 한다. 또한 요구사항이 모호한 경우나 요구사항이 빠진 경우에는 요구사항을 상세화하거나 추가해야 한다. 설계 전략 수립 아키텍처 설계는 요구사항에 대한 추상적.. 더보기
[SA강좌] Part 3-2 시스템 컨텍스트 정의 시스템 컨텍스트 정의 시스템 컨텍스트를 정의하는 과정은 다음 작업들로 이루어진다. 첫 번째 작업은 시스템과 외부 엔터티와 인터페이스를 정의한다. 엔터티를 기술할 경우, 각 레벨에 대해서 명확히 인터페이스를 기술하여야 한다. 두 번째 작업은 각 인터페이스와 관련한 기능적 요구사항과 품질 요구사항을 정의한다. 세 번째 작업으로는 소프트웨어 개발 라인의 경우, 다양한 제품을 지원하는 인터페이스 다양성은 명확하게 정의되고 분류되어야 한다. 시스템 컨텍스트는 상위 시스템과의 관계, 동등한 레벨의 시스템과의 관계, 하위 시스템과의 관계로 이루어진다. 그림 Ⅲ-27. 시스템 컨텍스트 Use Case Diagram을 사용한 시스템 컨텍스트 작성 방법 Use Case Diagram을 사용하여 시스템 컨텍스를 작성할 경우.. 더보기
[SA강좌] Part 3-1 소프트웨어 아키텍처 설계 소프트웨어 아키텍처 설계 소프트웨어 아키텍처 설계 활동의 작업들과 작업 절차는 다음과 같다. 그림 Ⅲ-24. 소프트웨어 아키텍처 설계 절차 소프트웨어 아키텍처 설계 과정은 우선 아키텍처 관련 요구사항을 분석하고 그 후 시스템 컨텍스트를 정의한다. 아키텍처의 각 View는 Component&Connector View, Module View, Allocation View, Code View의 순서로 작성한다. 각 View를 작성하기 전에 아키텍처 관련 요구사항을 수정하고 다시 분석할 수도 있다. 그림 Ⅲ-25은 소프트웨어 아키텍처의 각 View와 다른 산출물과의 관계를 보여준다. 그림 Ⅲ-25. 소프트웨어 아키텍처 설계 절차 첫 번째 설계 단계는 설계를 위한 시스템 컨텍스트를 결정한다. 이는 시스템의 행위(.. 더보기
소프트웨어 컴포넌트에 대한 꿈꾸는자의 생각의 파편... 흔하게... 소프트웨어 컴포넌트를 비유하면서... 컴퓨터에 설치되는 VGA카드와 같은 비유를 한다. 정말 궁금한것은... 소프트웨어 컴포넌트를 만들때에... 그정도로 표준화 되어있고... 정해진 규칙과... 대량으로 필요한 곳이 있는가? 과연 컴포넌트라는 포장을 할 정도로 그 의미가 있는가? 재사용성이라는 미래에 대한 착각속에서... 정착 사용자가 원하는 '기능'보다... 과다 포장된... 물건들을 만들기 위한 기술로 기술을 포장하기 위한 기술의 착각은 아닌지... 최소한 그런 착각은 하지 않는... 소프트웨어 개발자가 되기를... 더보기
[SA강좌] Part 2-12 보안에 대한 프로파일 보안 표 Ⅲ-10. 보안 프로파일의 예 Category 시나리오에 대한 설명 외부 공격 인증 받지 않은 사용자가 시스템을 공격한다. 데이터 보안 예전에 공개되었던 데이터가 private로 바뀌면서 이 데이터에 대한 엑세스도 제한되어야 한다. 보안은 인증된 사용자에게 서비스를 제공하는 동안 인증 받지 않은 사용자의 시스템 사용 요청은 차단하는 것이다. 보안을 파괴하려는 시도를 공격이라고 부르며 다양한 형태를 가지고 있다. 인증 받지 않는 공격은 데이터나 서비스에 접근하거나 데이터를 수정하거나 인증된 사용자가 서비스를 받지 못하게 하려는 목적으로 시도된다. 다양한 경로를 통해 발생하는 시스템 공격은 전자 거래의 이체 시 돈을 빼가거나 민감한 데이터를 수정하거나 신용 카드 번호를 빼가거나 컴퓨터 시스템의 파일.. 더보기
[SA강좌] Part 2-11 가용성에 대한 프로파일 가용성(Availability) 표 Ⅲ-8. 가용성 프로파일의 예 Category 시나리오에 대한 설명 시스템 오류 발생 FTP 사이트로 사용자가 파일을 요청하자 FTP 서버가 down되었다. 시스템은 또 다른 파일 요청에 대한 처리를 10분 동안 중단시켜야 한다. 주문 처리 주문 처리 요청이 들어왔을 때 실패하면 시스템은 10분 동안 처리를 중단시킨다. 그 사이에 시스템 운영자가 주문 처리를 다시 시작시킬 수 있다. 주문 처리 사용자가 매 10분 단위로 주문 처리를 요청할 수 있으며 이 요청은 큐에 저장하여 처리한다. 주문 처리 하드웨어 문제가 발생하면 시스템은 정지되며 5분 안에 주문을 다시 처리한다. 가용성은 시스템에 오류가 발생하면 어떤 결과가 발생하는가에 대한 것이다. 시스템의 오류는 시스템이 .. 더보기
[SA강좌] Part 2-10 유지보수에 대한 프로파일 유지보수에 대한 프로파일 표 Ⅲ-6. 유지보수 프로파일의 예 Category 시나리오에 대한 설명 기능 변경 사용자에게 화면을 보여주기 위해 추가적인 데이터가 요구된다. 기능 변경 사용자가 화면 추가를 요구한다. 기능 변경 사용자가 화면 상의 처리 절차의 변경을 요구한다. 기능 변경 사용자가 데이터 포맷의 변경을 요구한다. 기능 변경 두 개의 발사 명령을 내렸다. 두 번째가 첫 번째 보다 우선한다고 판단하여 첫 번째 발사 명령을 취소한다. 무기가 다르면 이 원칙이 달라질 수 있다. 기능 변경 무기 발사를 자동화 할 것 기능 변경 메시지 포맷의 변경 기능 변경 지연 사항에 대한 벌금 부과 기능 추가 기능 변경 메타 데이터의 변경을 필요로 하는 새로운 보고서 양식이 추가된다. 플랫폼의 변경 IRIX 6.2에.. 더보기
[SA강좌] Part 2-9 성능에 대한 프로파일 성능에 대한 프로파일 개요 성능은 얼마나 시간이 소요되는가에 대한 문제이다. 이벤트(인터럽트, 사용자의 요청 등)가 발생하면 시스템은 응답해야 한다. 이벤트가 시스템에 도착하는 방법과 응답하는 방법은 다양하지만 성능은 기본적으로 이벤트가 발생했을 때 시스템이 응답하는데 얼마의 시간이 걸리는가에 대한 문제이다. 프로파일 Use Case에 대한 scenario를 작성하고 빈도수를 가중치로 하여 성능 프로파일을 작성한다. 성능 프로파일을 사용 방법 다음과 같은 절차에 의해 성능 프로파일을 작성하고 사용한다. 그림 Ⅲ-23. 성능 프로파일 작성 절차 성능 프로파일의 예 표 Ⅲ-4. 성능 프로파일 예 NO. Category Use Case 시나리오에 대한 설명발생 횟수최대 동시 사용자 수응답 시간S1 C1 계좌 .. 더보기