프로그래밍[Univ]/소프트웨어 공학론

[소프트웨어공학론] System modeling

Cloud Travel 2012. 5. 12. 22:18

* System modeling

 - 시스템을 서로 다른 관점에서묘사한 추상적 모델(Abstract models)

 - 사용처

  > Analysts : 시스템의 기능 이해

  > 고객과 의사소통

 - 일반적으로 UML(Unified Modeling Language)를 통해서 묘사


* 시스템 관점

 ⓐ An external perspective(외부적 관점) : 어디까지가 시스템인지를 구분

 ⓑ An interaction perspective(상호적 관점) : 시스템의 상호 작용을 정의

 ⓒ A structural perspective(구조적 관점) : 시스템의 구조를 표현

 ⓓ A behavioral perspective(행동적 관점) : 시간에 따라 어떻게 움직이는 가를 표현


* UML diagram 

 - Type

 ⓐ Activity Diagram : 행동이 포함하고 있는 프로세서 또는 데이터 접근을 나타냄

 ⓑ Usecase diagram : system과 환경 사이의 상호교환을 나타냄

 ⓒ Sequence diagram : actor와 system이 system component와 어떻게 상호 교환하는지 나타냄

 ⓓ class diagram : object, class를 보여줌

 ⓔ state diagram : system이 내/외부 이벤트에 어떻게 반응하는지를 보여줌

 - UML의 장점

 ⓐ 회의 진행이 잘된다.

 ⓑ 존재하는 System에 대한 문서화 방법으로 사용된다.(model은 정확해야 하지만, 완벽할 필요는 없다.)

 ⓒ System 개발에 대한 기초가 된다.


* Models

 - Context model

 - Process model

 - Interaction model

 - Structural model

 - Behavioral model

 - Model-driven engineering(MDE)

 ⓐ Context model

  - 시스템의 기능적 model을 표현하는데 좋다.

  - 어떤 것이 System의 내부에 있고, 어떤 기능이 System의 외부에 있는지 파악하기 쉽다.

  ex) portal site의 context model (이 포탈 사이트의 특징은 로그인이 필수이다)

  

 ⓑ Process model

  - UML의 Activity diagram으로 정의하며, 각 Activity에 사용되는 System을 정의한다.

  - 시스템 외부와 System이 어떻게 연결되는 지를 보여준다. Business model이 첨가 된다.

    ex) portal site의 activity diagram

    

 ⓒ Interaction model

  - 사용자와 System, System과 System, Component와 Component간의 상호 관계를 나타냄.

  - Usecase diagram과 Sequence diagram을 사용한다.

    ex) 사용자의 Usecase 와 login Sequence diagram

 ⓓ Structural model

  - Component와 그들의 관계 구성을 보여주는 모델 방식

  - static model과 dynamic model로 나뉘며, class diagram으로 보여준다.

  - class diagram에는 cardinality를 표현할 수 있다. 이는 System이 몇대 몇으로 연결되는지를 나타낸다.

  ex) cardinality와 class diagram의 예

  

 ⓔ Behavioral model

  - 데이터의 흐름, 이벤트 실행에 따라서 정의

  - 데이터가 어떻게 흐르는지(결과값이 어떤 것의 input이 되는지), 이벤트가 어떻게 흘러가는지에 따라서 정의

  - Data흐름에 따라 작성된 것은 business system을 잘 보여준다.

    UML로 저으이 된 것은 없으며, 자유롭게 흐름도를 나타내면 된다.

    ex) data driven behavioral model

    

  - Event흐름에 따라 작성되는 것은 실시간 System(ex>핸드폰)을 표현하는데 적합하다.

    외부/내부 이벤트를 나눠서 보여주며 state chart를 이용해서 보여준다.

    추가로 이해를 돕기 위해서 각 event가 하는 일을 표로 작성해준다. 

    또한, Event를 계층적으로 표현하면 더 간단하게 표현할 수 있다.

    img) Event driven behavioral model(state chart) Symbol

   

 ⓕ Model-driven engineering(MDE)

  - 프로그램보다 Model에 중점을 둔 접근 방식

  - 장점

   > 높은 단계의 추상화로 프로그램의 detail한 부분을 알 필요가 없다.

   > 새로운 플랫폼을 적용하기 용이하다.(시간이 빠르고, 싸다. cost 절감)

   

  - 단점

   > Implementation에 가깝게 구현해야 한다.

   > translator(Platform 변환기) 구현 비용이 비싸다.

  ※ MDA(model-driven architecture) : 프로그램의 아키텍쳐까지 생각

  - MDE에서 발생하는 model type

   1) A computation independent model(CIM) : 독립적인 계산 모델

   2) A Platform independent model(PIM) : CIM + Domain specification, 플랫폼에 관계없는 model

   3) Platform specific model(PSM) : PIM + Platform specification, 플랫폼에 대한 의존성이 생김

   ※ PSM + Language Specification = Executable Code