• 제목/요약/키워드: Software Architectural Patterns

검색결과 14건 처리시간 0.021초

소프트웨어 구조스타일의 정형화를 통한 조립형 구조패턴의 정의 (Defining of Architectural Patterns through Formalization of Architectural Styles)

  • 궁상환
    • 정보처리학회논문지D
    • /
    • 제9D권5호
    • /
    • pp.877-886
    • /
    • 2002
  • 소프트웨어 재사용의 문제는 두 가지 측면에서 검토해 볼 수 있는 데, 하나는 이미 개발이 완료된 소프트웨어 컴포넌트를 조합하여 재사용하는 방법이고, 다른 한 가지는 소프트웨어들이 공통적으로 갖는 구조적인 패턴을 정의해서 재사용 하는 방법이다. 물론 이 두 가지가 소프트 웨어의 구조설계에 중요한 방법이긴 하지만, 이 두 방식의 차이점은 소프트웨어 컴포넌트는 프로그램 컨텐츠가 채워진 빌딩블록들을 재사용 하여 소프트웨어를 쉽게 구성하는 것인 반면, 소프트웨어 구조패턴은 빌딩블록의 내용보다는 빌딩블록의 틀, 즉 빌딩블록간의 연결을 통한 구조화에 더 관심이 있는 것이라고 하겠다. 논문은 후자의 경우와 같이 소프트웨어 응용에서 많이 발견되는 구조적인 소프트웨어 패턴을 분석하고 체계적으로 정의하여, 이 패턴들이 소프트웨어 구조 설계 시 유용하게 활용될 수 있도록 하는 데 목적을 두고 있다. 특히, 이제까지 소프트웨어의 구조적인 패턴을 설명하는 데 중요한 모델이 되어 왔던 소프트웨어 구조 스타일을 분석하고 정형화하여 다양한 응용의 소프트웨어 구조설계에 활용될 패턴형 컴포넌트를 정의하고자 한다.

소프트웨어 요구사항 분류체계를 이용한 효율적인 아키텍처 패턴 적용에 관한 연구 (A Study on Efficient Application of Architectural Patterns by the Taxonomy of Software Requirements)

  • 최종우;민상윤
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제12권7호
    • /
    • pp.285-294
    • /
    • 2023
  • 다양한 산업에 영향을 미치고 있는 소프트웨어의 규모와 복잡도가 높아지면서 소프트웨어 아키텍처의 역할이 매우 중요해지고 있다. 소프트웨어 아키텍트는 이러한 아키텍처를 설계할 때 종종 경험적 직관에 의존한다. 그럼에도 아키텍처 설계에 관한 방법론이 다양하게 연구되고 있으나, 시스템에 여러 아키텍처 패턴(architectural pattern)을 적용하는 구체적인 방법이나 적용 순서에 따른 효과에 관해서는 다루고 있지 않다. 본 연구에서는 먼저, 같은 아키텍처 패턴 세트(set)를 동일 시스템에 적용할 때, 적용 순서에 따른 아키텍처 설계 결과의 상이성에 관해 설명한다. 이러한 현상적 논리를 바탕으로 아키텍처 패턴 적용이 필요한 요구사항들을 사전에 식별하고, 적용할 패턴을 분류하는 방안을 제시한다. 또한 분류한 패턴들을 효율적으로 적용하기 위해 적용 순서를 정할 수 있도록 요구사항의 우선순위를 정하는 절차를 제안하며 사례연구를 통해 아키텍처 패턴 유형을 기반으로 요구사항을 우선순위화하는 것이 품질 속성 측면에서 효율적인 소프트웨어 아키텍처 설계에 도움이 됨을 보인다.

문제틀과 아키텍처 패턴의 매칭을 이용한 소프트웨어 아키텍처 설계 방법 (A Software Architecture Design Method that Matches Problem Frames and Architectural Patterns)

  • 김정민;강성원;이지현
    • 정보과학회 논문지
    • /
    • 제42권3호
    • /
    • pp.341-360
    • /
    • 2015
  • 패턴은 소프트웨어 개발에서 얻은 경험을 구조화한 것으로 문제해결에 이용되는 반면, 문제틀은 소프트웨어 문제를 분석하는 방법이다. 문제틀은 해법이라기 보다는 문제 도메인에 중점을 두고 있기 때문에 문제를 이해하는데 유용하다. 문제틀과 소프트웨어 아키텍처를 연결하는 기존 연구들은 주어진 문제를 이해하는데 치중하여 문제틀을 이용할 뿐 문제틀과 품질속성 모두를 고려하면서 아키텍처 패턴을 도출하고 있지 않다. 본 논문에서는 문제틀과 아키텍처 패턴의 매칭을 통한 소프트웨어 패턴 기반 아키텍처 설계 방법을 제안한다. 먼저, 문제틀 방법에 따라 문제 모델을 개발한 후 기능 및 품질속성 관점에서 문제 모델을 아키텍처 패턴 후보와 매칭한다. 논문은 기능 매칭을 위해서는 문제틀 다이어그램을 이용한 아키텍처 패턴의 문제 모델을, 품질속성을 고려하기 위해서는 새로운 분석 템플릿을 사용하여 아키텍처를 설계하는 방법을 제안한다. 또한, 사례연구를 통해 제안한 방법이 올바른 아키텍처 패턴을 결정하는 체계적인 프로세스이며 잘 정제된 소프트웨어 아키텍처 설계를 위한 기초가 됨을 보인다.

보안 전술과 Broker 아키텍처 패턴간의 호환성 분석 (Compatibility Analysis Between Security Tactics and Broker Architecture Pattern)

  • 김순태
    • 한국인터넷방송통신학회논문지
    • /
    • 제15권4호
    • /
    • pp.19-24
    • /
    • 2015
  • 보안은 소프트웨어 개발에 있어서 주요한 관심사중 하나이다. 보안 전술(Security tactics)은 아키텍처 수준에서 보안의 문제를 해결하기 위한 재사용 가능한 빌딩 블록으로, 소프트웨어 시스템의 구조를 수립하기 위한 일반적인 해결책인 아키텍처 패턴(Architectural Pattern)과 자주 함께 사용된다. 하지만, 아키텍처 패턴에서의 아키텍처 전술은 패턴이나 전술 참여자들이 구조적/행위적으로 어떻게 함께 설계되어야 하는지에 대한 구체적인 이해 없이 보통 개념적으로만 이해되고 만다. 본 논문에서는 대표적인 아키텍처 패턴중 하나인 Broker패턴에서 이와 함께 사용 가능한 보안 전술을 모델 기반으로 표현하고, 실세계에서 어떻게 이 개념이 적용되었는지에 대한 구체적인 사례를 소개한다.

품질속성의 트레이드오프 분석을 통한 아키텍처 패턴 추천 방법 (An Architectural Pattern Recommendation Method Based on a Quality-Attributes Trade-off Analysis)

  • 박현주;이석원
    • 정보과학회 논문지
    • /
    • 제44권2호
    • /
    • pp.148-162
    • /
    • 2017
  • 아키텍처는 시스템의 품질 속성과 요구사항 그리고 비즈니스 목적 달성을 위해 이루어지는 중요한 설계 결정들의 집합으로 현재 소프트웨어 공학 프로세스에서 필수적으로 다루어지는 과정 중 하나이다. 최근 소프트웨어가 사용되는 컨텍스트와 개발 환경이 크게 변화하면서 복잡한 요구사항을 다루고 시스템의 품질 속성을 달성하는 것이 더욱 중요해지고 있다. 하지만 아키텍처 설계가 많은 부분에 있어 아키텍트의 직관에 의존하고 있으며 재사용 가능한 아키텍처 패턴을 설계에 적용할 때 패턴 스키마가 통일되지 않고 사용자 관점에서 표현되어지지 않아 비교 분석에 어려움을 겪고 있다. 본 논문은 아키텍처 패턴을 사용자 관점에서 재해석하여 품질 속성 요구사항과의 간격을 줄여주는 새로운 스키마를 제안한다. 또한 스키마로 재구성한 패턴 모델을 이용해 아키텍처 설계의 가장 중요한 요인인 품질속성이 설계 결정에 어떤 영향을 주는지 트레이드 오프를 고려한 패턴 추천 방법을 제안 한다.

복잡도가 높은 모바일 어플리케이션 설계를 위한 아키텍처 패턴과 적용지침 (Practical Architectural Patterns and Guidelines for Designing Complex Mobile Applications)

  • 장정란;라현정;김수동
    • 정보처리학회논문지D
    • /
    • 제19D권1호
    • /
    • pp.63-80
    • /
    • 2012
  • 안드로이드 OS, iOS 등 여러 모바일 디바이스 운영체제를 통해서 모바일 디바이스는 다양한 소프트웨어 어플리케이션을 설치 운영하는 모바일 컴퓨팅 기능을 제공하고 있다. 나아가 개인용 컴퓨팅 용도뿐 아니라 엔터프라이즈를 위한 어플리케이션 클라이언트 단말기로도 사용될 것으로 예상한다. 그러나 모바일 디바이스는 자원의 제한성, 모바일 무선 네트워크 지원 능력 등 이전의 피처폰이나 개인용 컴퓨터에는 없는 특징이 있다. 따라서, 모바일 어플리케이션을 개발하기 위해서는 어플리케이션의 설계 시에 모바일 디바이스가 가진 속성을 반영하는 방법이 필요하다. 아키텍처는 소프트웨어의 특성을 반영하는 비기능적 요구사항을 충족시켜 소프트웨어의 품질을 향상시키는 설계 방법이다. 아키텍처 설계를 하기 위해서 모바일 어플리케이션의 특징으로부터 아키텍처 비기능적 요구사항인 아키텍처 드라이버를 추출한다. 기존의 소프트웨어 아키텍처 설계는 여러 패턴 제공하고 있지만, 모바일 어플리케이션의 특징을 반영하지 않았기 때문에 적용하기가 어렵다. 본 논문에서는 모바일 어플리케이션의 주요 특징을 반영한 어플리케이션 개발을 위해, 모바일 어플리케이션에 적합한 아키텍처 패턴을 정의하고, 각 패턴을 설계하는 지침을 제안한다. 먼저, 모바일 디바이스 및 어플리케이션의 특징을 정의하고, 이 특징으로부터 아키텍처 드라이버를 추출한다. 그리고 모바일 어플리케이션 개발을 위한 아키텍처 패턴을 정적 뷰와 동적 뷰 관점으로 설명하고, 각 아키텍처 패턴을 적용하여 모바일 어플리케이션 아키텍처를 설계하기 위한 적용 지침을 제공한다. 그리고 제시된 아키텍처 패턴의 사례 연구를 통해 적용 가능성을 보여준다. 마지막으로 제시된 아키텍처 패턴을 아키텍처 드라이버 별로 평가하고 또한 기존 연구와의 비교를 통해 본 논문에서 제시하는 아키텍처 패턴을 평가한다.

소프트웨어 구조패턴을 활용한 소프트웨어 구조개발방법 (Architectural Patterns Based Software Architecture Design)

  • 궁상환
    • 한국산학기술학회:학술대회논문집
    • /
    • 한국산학기술학회 2002년도 춘계학술발표논문집
    • /
    • pp.222-225
    • /
    • 2002
  • 소프트웨어 설계 프로세스는 일반적으로 두 가지 활동을 통해 수행되는 데, 한 가지는 소프트웨어 시스템을 적절한 크기의 기능모듈로 분해해 나가는 것이며, 다른 한가지는 분해된 모듈을 구조적 패턴 위에 매핑 하는 것이다 본 논문의 관점은 분해된 기능모듈을 매핑 하는 구조적 패턴을 개발하는 데 있으며, 이러한 패턴들이 체계화하여 기능모듈을 구조화하는 작업을 보다 효율적으로 추진하여 높은 품질의 소프트웨어를 효율적으로 개발할 수 있도록 하고자 한다.

설계 패턴을 활용한 라시지 시스템의 소프트웨어 아키텍처 접근법 식별 및 평가 (Architectural Approach Identification and Evaluation of Message System Using Design Pattern)

  • 고현희;궁상환;박재년
    • 인터넷정보학회논문지
    • /
    • 제6권4호
    • /
    • pp.9-20
    • /
    • 2005
  • 성공적인 소프트웨어 아키텍처의 설계를 위해서는 아키텍처 설계의 기반이 되는 아키텍처 접근법의 선정이 우선 이루어져야 한다. 이 때 다양한 아키텍처 스타일 즉, 아키텍처 접근법들 중 어떤 것을 선택 할 것인가는 완성될 시스템이 어떤 기능적, 비 기능적 품질요구사항을 만족시켜야 하는지에 따라 달라지게 된다. 본 논문에서는 아키텍처 접근법 선정을 위한 평가 모델을 제안하고 다양한 인터넷 활용과 엔터프라이즈 어플리케이션 통합에 활발히 사용되고 있는 메시지 시스템의 소프트웨어 아키텍처 접근법을 선정하고자 한다. 즉 여러 아키텍처 접근법 대안들이 존재할 경우 평가를 통해 시스템의 요구사항 만족 여부를 분석하여 대안들 중 가장 효율적이고 최적화 된 아키텍처 접근법을 선정하여 메시지 시스템의 아키텍처 설계 시 활용할 수 있도록 하고자 한다. 또한 아키텍처 접근법 식별시 스레드 기반의 설계 패턴을 활용하여 상세 설계와 구현 시 개발자들이 아키텍처를 바로 연계 시킬 수 있도록 하고자 한다.

  • PDF

층위구조 아키텍처의 복구 및 일치성 검사를 위한 프로그램 분석 방법 (A Program Analysis Technique for Recovery of Layered Architecture and Conformance Checking)

  • 박찬진;홍의석;강유훈;우치수
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제32권8호
    • /
    • pp.730-741
    • /
    • 2005
  • 층위 구조 아키텍처는 프로그램을 일반성에 따라 분할하는 모듈 구성의 방법이다. 본 논문은 객체지향 프로그램으로부터 층위 구조 아키텍처를 복구하고 아키텍처 문서와의 일치성을 검사하는 방법을 제시한다. 객체지향 프로그램에서의 층위구조 스타일 규칙을 기술하기 위해, 모듈 간 사용 관계에 기반한 모듈들의 부분 순서 집합을 구성하며, 재정의 관계를 통해 모듈 간 층위 관계를 정의한다. 또한, 층위 관계의 의미를 설계 패턴에서의 예를 통해 설명한다. 프로그램으로부터 층위 구조 아키텍처를 복구하기 위한 절차를 기술하며, 복구를 위한 메타 모델을 제시한다. 이를 기반으로 공개 소스 프로젝트를 통해 개발된 소프트웨어의 소스코드들로부터 층위 구조 아키텍처를 복구하고, 복구된 아키텍처로부터 발견된 층위 관계의 의미와 아키텍처 문서와의 불일치 부분들에 대해 논의한다. 검사를 통해 아키텍처 문서와 일치하지 않는 부분들이 발견하였고, 이를 조사한 결과 이들이 층위 구조 아키텍처에서 허용 가능한 예외로 여겨지지만 아키텍트가 이들 부분에 대한 변경을 주의 깊게 관리할 필요가 있다는 것을 지적하였다.

인터페이스와 뷰 분석을 이용한 소프트웨어 아키텍처 설계방법 (Software Architecture Design based on Interface and View Analysis)

  • 궁상환
    • 한국산학기술학회논문지
    • /
    • 제11권12호
    • /
    • pp.5072-5082
    • /
    • 2010
  • 본 논문은 소프트웨어 아키텍처의 설계를 위한 방법론을 제안한다. 논문의 제안하는 아이디어는 시스템에 존재하는 액터(actor)나 모듈, 통신요소 간의 인터페이스를 식별하면, 이 인터페이스에 연결된 모듈을 단계적으로 탐색해 나가는 방식을 활용한다. 그리고 설계범위의 인터페이스와 모듈을 점차 확장해 나감으로써 아키텍처의 설계가 완료될 때까지 설계를 점진적으로 진행해 간다. 이 방법은 기본적인 아키텍처 설계의 접근을 인터페이스로부터 출발하여, 이 인터페이스의 입력을 기다리는 모듈, 그리고 다시 이 모듈로부터 출력 인터페이스를 확인하는 방법을 통해, 설계의 원인과 결과가 서로 연관되게 함으로써 자연스러운 설계를 유도한다고 할 수 있다. 또한, 제안 방법은 아키텍처 설계에 필요한 5개의 아키텍처 뷰를 정의하고, 설계과정에서 아키텍처 패턴의 활용하도록 하고 있다. 특히, 이 방법은 아키텍처 설계를 처음 습득하는 설계자들에게 설계방법에 대한 구체적인 이해를 도모한다는 장점을 제공한다.