[ Design Process ]
▪ Design : 고객의 요구에 기반하여 소프트웨어 컴포넌트와 그들의 관계를 정하는 생산적인 활동
▪ Implementation : 프로그램으로 만드는 과정
▪ Design과 Implementation은 연속적으로 나타난다. Design 할 때 Implementation issue를 고려 해야 한다.
[ 객체 지향 설계 프로세스 ]
System context (Class Diagram) & Interactions (Use Cases Diagram) |
▪ 시스템 배경과 시스템 사용에 대한 모델을 이해하고 정의한다. ▪ System context model(시스템 배경 모델과) : 시스템 배경 모델은 환경내에 있는 다른 시스템을 기술하는 정적인 모델이다. 시스템 배경모델은 전체적인 시스템 구조에 대한 간단한 블록 다이어그램이 생성되는 곳에서 연관을 사용하여 표현할 수 있다. ▪ System Interaction model(시스템 사용 모델) : 시스템 사용 모델은 시스템이 환경과 실제로 상호작용하는 방법을 기술하는 동적인 모델이다. 상호작용에 대해 너무 상세한 내용을 포함하지 않는 추상 기법을 사용해야 한다. |
Architectural design (Package Diagram) |
▪ 설계 대상 소프트웨어 시스템과 시스템의 환경 사이의 상호작용이 정의되면, 시스템 아키텍처 설계의 기초로서 이 정보를 사용할 수 있다. 물론 이것을 아키텍처 설계의 원리에 대한 일반적인 지식 그리고 더욱 상세한 도메인 지식과 결합할 필요가 있다. ▪ 주요 컴포넌트와 상호작용을 나타낸다. |
Object identification (Class Diagram) |
▪ 시스템의 주요 객체를 식별한다. 시스템내의 필수적인 객체에 대해 확실히 한다. ▪ 객체들이 설계 프로세스 동안 드러나지만 대개는 다른 적절한 객체들을 찾아내고 문서화하여야 한다. ▪ 비록 ‘객체 식별’이라는 용어를 많이 사용하지만, 실제로는 객체 클래스를 식별하는 것이며 설게는 이런 클래스들을 사용하여 기술된다. ▪ 초기에 식별된 객체 클래스들은 정제되어야 하며, 설계 작업이 점차 진행될수록 프로세스의 이 단계를 다시 수행해야 한다. |
Model development |
▪ 객체 인터페이스를 명세화한다. ▪ 설계 모델은 시스템 내의 객체 혹은 객체 클래스, 그리고 이 객체 사이의 관계를 보여준다. 설계 모델은 본질적으로 설계에 해당하므로, 시스템의 요구사항과 시스템의 구현 사이의 연결이다. ▪ 불필요한 세부 내역이 설계 모델과 시스템 요구사항 사이의 관계를 가리지 않도록 추상화되어야 한다. ▪ Structural model(정적 모델 : Class Diagram) : 시스템의 정적인 구조를 시스템 객체 클래스와 객체 클래스간의 관계로서 묘사한다. 이 단계에서 문서화될 수 있는 중요한 관계는 일반화 관계, 사용/피사용 관계, 결합 관계 등이다. ▪ Dynamic model(동적 모델 : Sequence Diagram) : 시스템의 동적인 구조를 묘사하고, 시스템 객체(객체 클래스가 아님) 사이의 상호 작용을 보여준다. 문서화될 수 있는 상호작용으로는 객체에 의해 만들어지는 서비스 요청의 순서, 시스템의 상태가 이런 객체 상호작용과 관련되는 방식 등을 들 수 있다. |
Interface specification (Class Diagram) |
▪ 객체들과 서브시스템들이 병행해서 설계될 수 있도록 인터페이스를 명세화할 필요가 있다. ▪ 표현은 감추고, 데이터에대한 접근과 갱신을 위한 객체 오퍼레이션을 제공해야한다. 만일 표현이 감추어지면, 이 속성을 사용하는 객체에게 영햐을 미치지 않고 변경될 수 잇어 유지 보수가 더욱 용이한 설계를 유도한다. |
댓글이나 공감 남겨주는 사람 착한사람
'학사 그리고 석사 > 소프트웨어공학' 카테고리의 다른 글
Host-target development (0) | 2019.10.28 |
---|---|
Implementation Issues (0) | 2019.10.28 |
Requirements Management (0) | 2019.10.28 |
Requirements Validation (0) | 2019.10.28 |
Requirements Specification (0) | 2019.10.28 |