학교강의필기장/OOP

UP Process? 소프트웨어를 반복/점진적 개발 단계는 도입 - 고심 - 구현 - 전이가 반복된다. 이 단계들에 요구/분석/설계/구현/테스트/배포 작업을 병렬적으로 진행한다. 시간이 지나며 집중해야하는 작업은 바뀌게 되는데, Inception: 비즈니스 모델링, 프로젝트 관리 Elaboration: 요구사항, 디자인, 환경설정 Construction: 구현, 구성 변경 관리 Transition: 구현, 테스트, 배포, 구성 변경 관리 따위로 나눌 수 있다.
GRASP Pattern? General Responsibility Assignment Software Pattern, OO 디자인의 핵심은 각 객체에 책임을 부여하는 것으로, 책임을 부여하는 원칙을 말하는 패턴이다. 총 9가지의 원칙을 가지고 있다. Information Expert 책임을 수행할 수 있는 데이터를 가지고 있는 객체에 책임을 부여한다. 정보 은닉을 통해 자신의 데이터를 감추고 오직 메소드로만 데이터를 처리하고 외부에는 그 기능(책임)만 제공한다. Creator B 객체가 A 객체를 포함 B 객체가 A 객체의 정보를 기록 B 객체가 A 객체를 긴밀히 사용 B 객체가 A 객체의 생성에 필요한 정보 가짐 위 관계 중 하나라도 포함되면 A의 생성을 B의 책임으로 부여한다. Controller ..
State Machine Diagram? 모든 객체들은 생성부터 삭제되기까지 유한 개의 상태를 지니는데, 그러한 객체의 상태를 표현하기 위해서 사용된다. State(객체의 상태) Transition(객체의 상태를 바꾸는 이벤트) 위 그림에서 다이어그램은 점, initial state에서 이어진 created State부터 시작한다. created 상태일 때, start 트리거가 발생하면 master.ready() 라는 메소드가 호출되고 ready 상태가 된다. ready 상태에서 poll 트리거가 발생하면 master.ack() 메소드가 호출되고 상태는 바뀌지 않는다. ready 상태에서 stop 트리거가 발생하면 final state로 Sequence가 종료된다. 두개 이상의 계층으로 나누어서 표현할 ..
Class Diagram? 클래스 다이어그램이란 클래스 내부 구성요소 또는 클래스 간의 관계를 도식화한 것이다. 이로써 시스템의 특정 모듈, 일부 및 전체를 구조화한다. 클래스 간의 의존성을 파악할 수 있다. 클래스 클래스 다이어그램은 세로로 이름/속성/메소드 순으로 나열된다. 각 속성은 접근제어자 이름:자료형 으로 나타나고, 그 뒤로 추가 속성 (readonly 등) 을 더한다. 추가 정보 + public - private # protected ~ default {readonly} final underline static [ X ] 변수에 지정된 사이즈, X가 *이면 정해지지 않음. [0..1] 의 경우 0개거나 1개이다. 메소드는 접근제어자 메소드명(파라미터타입): 반환타입 으로 나타낸다. 추상 클래..
Sequence Diagram? Interaction Diagram에는 커뮤니케이션 다이어그램과 시퀀스 다이어그램이 있었다. 커뮤니케이션 다이어그램과 달리, 시간의 흐름에 집중한다. 시간은 위에서부터 아래로 진행하며, 개체 사이를 선으로 연결하여 메시지를 표현한다. 점선은 생명선이라 부르고, 네모는 작동중인 상태를 뜻한다. Register 객체는 doX 메시지를 받았다면 Sale 객체에게 doA 메시지를 보낸다. Sale 객체가 doA에 대한 작업이 완료됐다면 doB 메시지를 보내고 이어서 doC메시지를 보낸다. Sale 객체는 doC에 대한 작업을 하는동안 Register에게 doD라는 메시지를 보낸다. 이 때, Register는 doD에 대한 작업을 추가로 하게된다. 반환은 점선으로 표현한다. doX..
Interaction Diagram? 인터랙션(동적) 다이어그램은 객체가 통신하는 방법과 같은 동적 측면에서 다이어그램을 그린다. 이러한 다이어그램은 커뮤니케이션 다이어그램과 시퀀스 다이어그램이 있다. Communication Diagram? 커뮤니케이션 다이어그램이란, 객체간의 상호작용에 중점을 둔 다이어그램이다. 다시 말해, 공간에 집중한다. 클래스/객체 표현 클래스는 그냥 이름만 적는다. 익명 객체는 이름 앞에 " : "을 붙인다. 이름이 붙은 객체는 이름 앞에 이름과 클론을 붙인다. Link Link란, association과 같은 개념으로 실선으로 나타낸다. Car는 클래스로, 1개 이상의 Driver 클래스와 연관되어 있다. ferarri:Car는 ferrari라는 이름의 객체로 tom 객체와..
Domain Model? 개발해야하는 도메인의 개념 클래스 또는 실제 객체들을 시각적으로 표현한 것이다. 도메인 모델은 소프트웨어 클래스나 객체 따위를 나타내는 것이 아닌 실제 세계의 개념 클래스의 표현이다. 네모박스로 도메인 모델 혹은 객체를 나타내고, 네모 아래에 객체의 속성을 적는다. 각 선은 연관 관계를 뜻한다. 위와 같은 도메인 모델이 있다고 할 때, Person과 Company는 인스턴스이다. Works-for는 association name이고, employee와 employer는 role name이다. 또, 1..*은 1개 이상을 뜻하고, *는 0개 이상을 뜻한다. 이를 다중성이라 한다. *, 0..* zero to many 1..* one to many 0..1 zero or one 1 ..
System Sequence Diagram? 이하 SSD는 개발 중인 시스템의 I/O 이벤트 표현에 집중한다. 즉, 외부 액터가 시스템과 상호작용하는 시스템 이벤트 시나리오를 표현하고, 무엇을 하는지만 보여주며 어떻게 하는지는 보여주지 않는다. 인스턴스는 이름 앞에 : 을 붙여서 나타낸다. 액터가 시스템에게 요청할 때는 실선 화살표, 시스템이 액터에게 반환할 때는 점선 화살표를 사용한다. loop를 사용하여 반복 작업을 표현할 수도 있다. 시스템 이벤트 및 관련 이벤트의 작명 규칙은 추상적으로 가장 높은 수준으로 표현되어야 한다. 그리고 add, enter, make 등의 동사를 활용한다.
푸더기
'학교강의필기장/OOP' 카테고리의 글 목록