본문 바로가기

728x90

ComputerScience/Software Engineering

(26)
소프트웨어공학 - 14. Object-Oriented Paradigm 1. Abstract Data Type - 추상 자료형이다. 최대한 encapsulation한 것을 말한다. - 실제 구현 내용은 생략하고 data, operation만 정의한다. 2. OOP - OOP의 정수 class는 ADT + 상속 + 다형성이라고 정의할 수 있다. - 상속을 통해 코드의 재사용성을 높일 수 있다. - 또한 상속 관계에서 부모 클래스 인스턴스가 자식 클래스 인스턴스들을 가리킬 수 있다. 실제 누구를 가리키고 있는지는 런타임에 결정될 수 있다. (다형성) 3. Inheritance - 자식 클래스는 부모 클래스의 모든 메서드, 데이터를 상속받아 온다. - Y는 X의 모든 것을 사용할 수 있다. - Y is X라고 표현할 수 있다. 즉 X 인스턴스는 X인스턴스 뿐만 아니라 Y 인스턴스..
소프트웨어공학 - 13. Logical Architecture 1. Logical Architecture - non-functional requirement는 주로 supplimentary specification에 속한다. - supplimentary specification이 Logical Architecture에 input으로 들어간다. - 한번 결정되면 번복하기 어려운, 아주 fundamental한 내용들이 Logical Architecture이다. - 이 아키텍쳐 설계에 대한 내용들은 UML package diagram으로 표현한다. - 상위 layer는 하위 layer의 서비스들의 호출이 가능하지만 그 반대는 불가능 하다. - strict layered architecture : 상위 레이어는 인접한 하위 레이어의 서비스만 호출 가능 - relaxed l..
소프트웨어공학 - 12. Sequence Diagram -> Operation Contract 1. System Sequence Diagram - 시스템에 들어오는 input, output 이벤트를 시각화하는데 주로 사용된다. - 시스템의 반응을 묘사하기 용이하다. - 시스템의 api들을 나타내는 그림이다. - 이런걸 만드는 목적은 다 나중에 설계단계에서 class, object를 도출하기 위해서 이다. - UML sequence diagram을 사용한다. 참고) https://jsdysw.tistory.com/334?category=1009344 - 시스템을 black box라고 가정하고 이벤트들의 ordering에 집중한다. (어떻게 동작 하냐에 집중하지 않고 무슨 동작을 하냐에 집중) - POS 시스템에 대한 ssd를 만들어보았다. - 이 ssd는 UP의 elaboration 단계에서 만들어..
소프트웨어공학 - 11. Domain Models - UP의 elaboration 단계에서 Domain Model, Design Model, SW Architecture document, Data Model, Use-case 등의 artifact들이 만들어진다. - 이번 장에서는 Domain Model에 대해 자세히 알아보자. 1. Domain Models - 도메인 모델을 만드는 것은 객체 지향 작업에서 가장 중요한 작업이다. - 도메인 모델을 가지고 설계 단계에서 object, class를 디자인하게 된다. - 반복적으로 수집한 requirement(use cases)에서 해당하는 domain을 추출해서 만든다. 한번에 전체 domain model이 만들어지는 것이 아니라 반복적 단계에서 각 영역에 해당하는 도메인 모델이 만들어져서 확장되는 것이다...
소프트웨어공학 - 10. UML Sequence diagram 1. Interaction Diagram - 특정 상황의 interaction 시나리오를 표현하는데 주로 사용된다. - actor와 시스템, 시스템을 구성하는 서로 다른 파트들 간의 interaction을 묘사한다. 혹은 여러 process간의 소통도 묘사할 수 있을 것이다. - 수평축 : object들 나열하는 축 - 수직축 : 시간축 - interaction diagram의 구성요소들에 대해 자세히 알아보자. 2. Interaction Partners - 상호작용 객체들은 lifeline을 그린다. - lifeline은 header, body로 구성된다. - 직사각형 안에 Role이름, 클래스이름, role이름:class이름을 적을 수 있다. - (d) 여러 partners는 배열로 표현할 수 있다...
소프트웨어공학 - 9. Class diagram -> Code Generation 1. University Information System - 대학 정보 시스템을 만들기 위한 class diagram을 만들어볼 것이다. - 대학은 여러개의 단과대학으로 구성되어있다. - 각 단과대는 여러 기관들로 구성되어 있다. - 각 기관마다 주소가 있다. - 단과대 마다 학장이 있다. - 학장은 직원에 속한다. 직원은 연구직, 행정직으로 분류된다. - 모든 직원은 security number, 이름, 이메일이 있다. - 연구직원은 전공이 있고 최소 1개의 기관에 배정된다. - 연구직원은 프로젝트에 속할 수 있다. 직원마다 기여 시간이 있다. - 일부 연구직원은 lecturer도 겸직한다. - course는 id, 이름, 시간으로 정의된다. 2. Step1. Identifying Classes - ..
소프트웨어공학 - 8. UML Class diagram 1. Object Diagram - 밑줄이 쳐져있다. - 사각형으로 그린다. - instance diagram이라고도 한다. 특정한 순간에 시스템을 구성하는 object들의 snapshot을 나타낸다. - helenLewis:Student , object이름:class이름 을 나타낸다. - object끼리 맺고 있는 관계는 Link로 나타낸다. - object diagram은 class diagram으로 부터 만들 수 있는 instance이다. - 단순히 도메인 파악을 위해 그린 모델은 domain model, 설계를 염두하고 그린 모델은 Design class diagram(DCD)라고 부른다. 2. Class Diagram - public 의 경우 +, private -, protected #로 표현..
소프트웨어공학 - 7. Use case diagram 1. Use case diagram - text 형태의 use case(이게 메인임)를 보조하는 수준으로 쓰일 수 있다. - 간단하고 심플한 그림을 활용한다. - 시스템은 네모를 사용 - use case는 동그라미 사용 - actor는 보통 stick man을 많이 사용한다. - actor와 use case는 반드시 연결되어야 하고 1..3처럼 여러명과의 관계를 나타낼수도 있다. 2. - use cases간에 관계가 존재한다면 표기를 한다. - 서로 다른 두 use cases가 동일한 behavior를 가질 수 있기 때문에 를 활용한다. (중복 제거) - actor가 강의를 공지하고 싶어 한다. : Announce lecture use case를 성공적으로 마치기 위해서는 assign lecturer u..

728x90