Architecture Style 유형과 품질속성

반응형

2. Architecture Style 유형과 사용시 효과를 얻는 품질속성

1.Architecture Style은

1) SW System의 근본적 구조적조직스키마(structural organization schema)

- 기정의된 subSystem의 집합이 제공되며

- 그들의 역할이 확정되며

- 그들간의 관계를 조직하는데 필요한 rules와 guidelines을 포함한다.

2) SW architecture를 구성하는 template

- specify the system-wide structural properties of an application

- fundamental design decision when developing a software system

2. Design pattern은 SW설계시 subsystem 설계시에 자주 사용되는 sub scheme

3. Idiom은 programming language를 명확하게 하는 low level pattern, components, implement단계

4. Hierarchical Software Architecture

 - Main subroutine : subroutines를 재사용하고 독립적으로 개인 subroutine 개발, DFD

   장 : top down으로 으로 task를 정의하며 시스템을 분해하기 용이, OO design의 subsystem으로 활용

   단 : globally shared data가 취약점을 가짐. tight coupling이 발생하여 ripple effect등으로 변경에 취약

 - Master-slave : fault tolerance, system reliability, slave는 master의 replication, matesms invocations를 slave로 주며 slave는 다른일을 수행할수도 같은 일을 수행할 수도 있음

                parallel computing, accuracy of computataion,replication of server

 - Layerd : TCP/IP, 여러개의 layer로 구성 각 layer는 관련 class들의 그룹으로 구성, layer별 하나의 responsibility를 갖음, interface of each layer

            specific role and responsibility, abstraction, separation of concerns, isolation concept(변경시 다른 layer에 영향을 주진않는다)

    장 : increaing levels of abstraction기반 개발, layer간 독립성, 유연성, component based 기술에 적합, 이식성이 좋음

    단 : runtime 성능이 낮음..layer가 많아서..

 - Virtual machine : virtual abstraction, a set of attributes/operations, language와 환경을 실행 플랫폼과 분리 

    장 : 이식성, 개발단순성, 장애모델에 대한 시뮬레이션 용이

    단 : interpreter의 본질로 인해 수행 이 느림, 새로운 layer추가로 추가 overhead

 - Microkernel : 플러그인특징, additional application feature를 core application에 추가, 확장성, 

                 core system(최소의 기능만을 수행), plug-in modules(독립적,단독컴포넌트, 특수한수행, 추가 특성, 공통코드,)

    장 : portability, flexibility, separation of policy and mechanism

    단 : scalability, reliability, transparency, performance, complexity of design and implementation

5. Implicit Asynchronous Communication Software Architecture

 - non-bufferd event based implicit invocations Architecture Style : event, publisher/subscriber

   장 : framework availability, reusability of components, system maintenance and evolution, independency and flexible connectivity, paralle execution

   단 : test and debug 어려움, event source 간에 tightly coupling

 - Bufferd Message Based Architecture Style : message/queue, independency of components, message format맞아야함

   장 : 익명성, concurrency, scalability, reliability of message delivery, supports batch processing ,loose coupling

   단 : capacity limit of message queue, 시스템설계 개발 복잡성 증가

 

6. Distributed Architecture

 - Client-Server Architecture Style

   장 : responsibility의 분리, 서버 components재사용성

   단 : 이기종 인프라에 대해 요구 만족 어려움, 보안위험, server availability and reliability, testability and scalability

 - Multi-tier : 엔터프라이즈 application에 많이 사용, 프론트/미들/백엔드 티어 , 1tier(메인프레임), 3티어

 - Proxy : proxy object 가 surrogate(대리자)/delegate역할을 함, interface/superclass사용, transparency(신뢰성,은닉)

    장 : access control to originals, 메모리절약, 성능이득(cache proxy)

    단 : 잠재적 위험성/복잡한기능성

 - Dispatcher(Load Balancer) : availability(복구), scalability(확장,성능)

 - Broker:invoke , foward, process, 이기종 시스템을 독립적으로 협력적으로 동작, 서버와 client decouple, CORBA, proxy based system

   장 : server 투명성, 변경/확장용이성, client 단순성, 서버 이식성, 재사용성, 서버변경용이성

   단 : proxies의 부하, 낮은 fault tolerance, proxy가 많아 테스트 어려움

 - Message Broker: publishing, subscribing

   장 : reusability, maintainability, flexibility

   단 : overhead, inderection complexity, debugging and testing어려움

 - Service Oriented Architecture


7. Data Flow Software Architectures

  - Batch Sequential : data flow carries a batch of data as a whole from one subsystem to another

    the data is batch sequential.

    reading and writing I/O files drive the data flow explicitly.

    cause bottlenecks because it requires batched data as input and output.

    장 : simple divisions on subsustems, 각 subsystem은 stand-alone programming

    단 : Implementation requires external control, concurrency is not supported, high latency

  - Pipe and Filter : process a stream of data, processing step은 filter에 encapsulated, data는 pipe로 이동, active filter/ passive filter

    장 : concurrency, reusability, Modifiability(low coupling of filter, new filter adding), simplicity(pipe/filter로 구역정리가 단순), flexibility(sequential/parallel execution지원)

    단 : dynamic interaction에 부적합, 동적으로 pipe and filter에 configure적용 어려움

  - Process Control : embedded에 적합(가전,차량), control unit, executor processing unit


8. Data-Centered Software Architectures

 - Repository : 중앙에 데이터 저장소가 있고 sw component로 주변에서 공유, 수동적 데이터, Repository/Client

   장 : data integrity(백업,복구용이), system scalability, reusability, transient data overhead감소

   단 : data 저장소 reliability availability 보장필요, data store와 agents간의 높은 의존성, 분산데이터인경우 데이터 이동에 높은 비용발생

 - Blackboard : 결정론적결과 없이 어떤 문제를 풀때, 공통 데이터구조를 위해 협동적으로 일하는 독립프로그램들 집합

                AI, recognition application, 날씨예측, expert system

                blackboard(가정과 사실저장), knowledge source(domain specific knowledge저장), Controller

                rule based , self activated system, approximate solution

    장 : scalability(knowlege source 추가확장용이), concurrency(parallel수행), 가정실험지원, Reusability(knowledge source agents)

    단 : blackboard변경시 agent들에 큰 영향, 부분/대략적 해답만 기대됨, 언제 끝나는지를 알수 없음, Mutiple agents의 동기화 문제,debugging/testing어려움


9. Interaction-Oriented Software Architectures

 - MVC : look and feel 특성이 있는 GUI 시스템에 사용

   장 :많은 MVC기반 framework toolkits 사용가능

       새로운 인터페이스 뷰의 변경이나 추가가 용이, 시스템 영향없이 새로운 기술적용 용이

       각 분야(화면,프로그램,데이터)전문가가 같이할때 높은 효율성/생산성

   단 : agent-oriented application에는 부적합함(interactive mobie, robotics application)

        View, Controller 가 명확하게 영역구분이 되지 않을 수 있음

 - PAC(Presentation-Abstraction-Control):mutiple agents, cooperating agents분석

   장 : multitasking, multiviewing지원, agent reusability, extensibility, plug/replace 용이, agent 병행수행 지원

   단 : agent간 Communication비용이나 Presentation, Abstraction간의 연결관리 비용발생

        agent간의 loose coupling과 높은 독립성은 정확한 수의 agent수를 산정하기 어려움

        



반응형

'T-prj > 1.SW공학' 카테고리의 다른 글

설계방법론(UP,ADD)  (0) 2017.09.01
99회 결과  (0) 2013.03.29
[소공144]소프트웨어 취약점 보완  (0) 2012.08.20

Top