소프트웨어 공학 (Software Engineering) 상세 설계 (Detailed Design)

Slides:



Advertisements
Similar presentations
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
Advertisements

노인복지론 담당교수 : 최 병태 교수님 학과 : 보건복지경영학과 학번 : 이름 : 김 태인 날짜 :
ㅋㅋ 다른 집단과 명확히 구별되는 가치체계와 지식 그리고 그에 부합하는 기술을 가지고 있어야 한다. 가치체계 - 사회복지사윤리강령, 선서 등 기본요소 완성 지식 - 사회복지사 1 급 자격증 시험으로 완성 기술 - 명확하지 않으나 실습, 보수교육을 통해 완성 Client.
사용자를 위한 효율적인 UI 란 ? 부서 : IT 사업부 디자인팀 발표자 : 현인철. 목 차목 차 1.UI (User Interface) 란 ? 2. UI 를 고려한 디자인의 필요성 3. 성공적인 UI 를 위한 방법 4. UI 분석과 평가법 5. 효과적 UI 제작을 위한방법.
J-Stream part1 (Software streaming service) ▪ 팀명 : Jukdori ▪ 팀원 : 16 th 윤병호 (PL) 15 th 송인규 16 th 김영진.
건축설계 박정훈.
전남행복수업 design 독서ㆍ토론 수업 지원 자료 활용 목포유달초등학교 김미향.
전남행복수업 design, 독서·토론수업 연구의 개요를 말씀드리겠습니다..
운동화 전문 매장 관리 시스템 - 시스템 개발 계획안 - 소프트웨어공학 4조 ‘04 조수민 ‘04 이준희 ‘04 최재원
미국경제의 신용위기가 한국경제에 미치는 영향
오늘 뭐하(조) Software Engineering Team Project APP만들기 팀장 팀원 심중섭
12 프로젝트 실습.
데이터 모델링 방법론 2003년 03월.
실전 데이터모델링 & 데이터베이스 설계와 구축
소비자 만족도 설문조사 결과.
제약 조건 부모 테이블 자식 테이블 입 력 수 정 삭 제  관계형성을 통한 참조 무결성
Chapter 02. 데이터 모델링.
Puzzle 1 To 50 관심분야연구회 박찬수 장진호 최효진.
캡스톤 디자인2 최종발표 유경현 김기윤 Team : 너 지금 어디야.
Java로 배우는 디자인패턴 입문 Chapter 0. UML 과 Design Pattern
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
제 3 장 엔티티-관계(ER) 모델을 사용한 데이타 모델링
Chapter 3. Architecture AI & HCI Lab 김 주 영.
Enterprise Data Warehouse
12. 데이터베이스 설계.
소프트웨어 공학 (Software Engineering)
Network Project (완료 보고서)
화면(UI) 기반 도메인모델 작성 2014년 8월.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
제 2 장 데이터베이스 시스템 개념과 아키텍처 Fundamentals of Database Systems
자격증 모의 테스트 시스템 담당 교수 : 이 상 문 교수님 팀명 : CSCLAB
1장. 데이터베이스 시스템 컴퓨터를 사용하여 정보를 수집하고 분석하는데 데이터베이스 기술이 활용되고 있음
Rhapsody + MFC 개발 가이드.
설계 단계 개념적 설계 ER 다이어그램 논리적 설계
2015. 인문소양교육.
웹 다이어리 완료보고서 이상제 정영석.
Software Engineering 프로젝트 과제물
ER-Win 4.0 Database Modeling Ⅰ. Logical Design
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall
교육지원 시스템 개발 ProjectTeam (매경 2조).
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
소프트웨어 공학 Lecture #7: 상세 설계
국제의료관광 관련 법, 제도.
Java Chapter 4 ~ 주차.
“XXXX” 프로젝트 Briefing 오너: 홍길동 멤버:이몽룡, 성춘향 Advisor: 장길산
학습목표 학습목표 본 장은 데이터베이스를 구성하는 개체, 속성, 관계 등을 다룬다. 특별히 데이터베이스의 구조를 테이블에 기초하여 조직하는 관계 데이터 모델은 개체(entity)와 관계(relationship) 들이 테이블의 집합 형태로 되어 간단하고 이해하기 쉬우며.
UI CDP(Career Design Program) 소개
UX 기반 소프트웨어 및 디지털콘텐츠 UI 설계
데이터베이스 개발 단계.
                              데이터베이스 설계 및 실습 #8 - ER-Win 한국외국어대학교 DaPS 연구실                              
2015년 디지털컨버전스 청년취업아카데미.
남아메리카 선교 김수정, 이하정 전희진, 장성경.
유지보수 제안서 200 Web agency ######.
중등교원 전보시스템 로그인 오류시 해결 해결방안 * 작성일 2016 년 12 월 15일 * 작성자 광주광역시교육청.
Chapter 02. 사용자 중심의 디자인.
POS System(Point-Of-Sales System)
2장 시스템 분석/설계 개요 한빛미디어(주).
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
시스템 분석 / 설계 개요 2장.
상세 개념적 모델링. 상세 개념적 모델링 정규화를 하는 이유 데이터의 중복성 제거 데이터 모형의 단순화 Entity, Attribute의 누락 여부검증 데이터 모형의 안전성 검증.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
ER-관계 사상에 의한 관계 데이터베이스 설계
합성. 그리고 몽타주. 평생교육학과 도은아.
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
산점도 (Scatter Diagram) (1) 개요
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
실습#5 인터랙티브 프로토타입 2011년 2학기 숙명여자대학교 임순범.
Presentation transcript:

소프트웨어 공학 (Software Engineering) 상세 설계 (Detailed Design) 문양세 강원대학교 IT대학 컴퓨터과학전공

In this chapter … (1/2) 디자인 패턴(설계 패턴)이란 무엇이며 어떤 것이 있는가? 상세 설계(Detailed Design) 디자인 패턴(설계 패턴)이란 무엇이며 어떤 것이 있는가? 클래스 인터페이스와 내부를 설계하는 방법은? 사용자 인터페이스를 설계하는 원리와 방법은? 영구적인 데이터를 저장하는 방법은?

In this chapter … (2/2) 상세 설계 목적 패러다임에 따른 작업 설계 모델을 작동하는 소프트웨어로 변환 상세 설계(Detailed Design) 상세 설계 목적 설계 모델을 작동하는 소프트웨어로 변환 아키텍처-모듈 사이의 추상 수준의 갭을 줄이기 위함 패러다임에 따른 작업 구조적 방법: 프로시저 안의 로직 (알고리즘) 설계 객체지향 방법: 클래스 안의 메소드 설계

In this chapter … 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계 상세 설계(Detailed Design) 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계

디자인 패턴 (1/2) 디자인 패턴이란? 디자인 패턴 구성 요소 상세 설계(Detailed Design) 디자인 패턴이란? 소프트웨어 설계에서 자주 발생하는 문제에 대한 일반적이고 반복적인 해결책 여러가지 상황에 적용될 수 있는 일종의 템플릿 디자인 패턴 구성 요소 패턴의 이름과 구분 문제 및 배경 – 패턴이 사용되는 분야 또는 배경 솔루션 – 패턴을 이루는 요소들, 관계, 협동과정 사례 – 적용 사례 결과 – 패턴의 이점, 영향 샘플 코드 – 예제 코드

디자인 패턴 (2/2) 패턴의 분류 (Gamma가 제안한 23개 패턴)  자주 사용되는 9가지 패턴에 대해서 살펴 봄 상세 설계(Detailed Design) 패턴의 분류 (Gamma가 제안한 23개 패턴)  자주 사용되는 9가지 패턴에 대해서 살펴 봄

팩토리 메소드 패턴 객체 생성을 위한 인터페이스( 팩토리 메소드)의 정의 위임(delegation) 형태 상세 설계(Detailed Design) 객체 생성을 위한 인터페이스( 팩토리 메소드)의 정의 위임(delegation) 형태 RequiredClass의 생성을 팩토리 메소드를 가진 MyClass에게 위임 팩토리 메소드는 createObjectOfrequiredClass() 사용 이유: 베이스 클래스에 속하는 객체 중 하나가 필요한데, 그 아래에 있는 자식 객체 중 어떤 것이 필요한지 실행 시간까지 알 수 없을 때

추상 팩토리 패턴 클래스의 집합의 종류를 지정하여 관련된 객체의 집합을 생성할 수 있게 하는 패턴 상세 설계(Detailed Design) 클래스의 집합의 종류를 지정하여 관련된 객체의 집합을 생성할 수 있게 하는 패턴 관련된 객체의 패밀리를 생성하여 추상적인 클래스 패턴을 정의 추상 팩토리 패턴이 필요한 경우: 가전제품을 생산할 때, 여러 업체가 관련되면 호환성 이 취약하다. 여러 생산자가 만든 장치들을 혼합하여 사용할 때 취합이 어려우므로, 추 상 팩토리 패턴을 사용하여 해결한다. TheftApplication은 HouseFactory의 createBulb()와 createBlind()만을 접근한다.

어댑터 패턴(Adapter Pattern) 상세 설계(Detailed Design) 이미 개발된 클래스, 즉 레거시 시스템의 인터페이스를 다른 클래스의 요구에 맞게 인터페이스를 변환해주는 것 이미 만들어져 있는 클래스를 사용하고 싶지만 인터페이스가 원하는 방 식과 일치하지 않을 때 사용 어댑터 패턴 적용은 상속 이용 방법과 위임 이용 방법이 있음 상속을 이용한 어댑터 패턴의 모형 사례 Client가 Target의 Request()를 호출하면 Adapter를 통해 Adaptee의 SpecificRequest()가 호출되도록 한다.

싱글톤 패턴 시스템에서 단 하나의 인스턴스만 갖도록 할 필요가 있는 경우 사용 패턴 사용 요령 상세 설계(Detailed Design) 시스템에서 단 하나의 인스턴스만 갖도록 할 필요가 있는 경우 사용 연결된 프린터는 많아도 프린터 스풀러는 하나임 디스크는 많아도 파일 시스템 관리자는 하나임 패턴 사용 요령 클래스의 유일한 인스턴스를 넣을 위치를 지정 생성자 작성 시, static, final 등을 사용하여 지정 (Java specific한 자세한 내용은 생략)

컴포지트 패턴 객체 집합 속에 또 다시 객체 집합을 갖는 경우 패턴 사용 상세 설계(Detailed Design) 객체 집합 속에 또 다시 객체 집합을 갖는 경우 패턴 사용 집합 속에 포함될 객체와 집합을 가지고 있는 객체, 이들 모두가 자기 자신과 동일한 타 입(메소드와 데이터)의 객체 리스트를 가질 수 있도록 도와준다. 기본 클래스와 이를 포함하는 컨테이너 클래스를 구분하지 않고 처리하는 재귀적 합성 을 이용할 수 있다.

반복자 패턴 시스템의 유사한 객체를 다룰 때, 동일한 인터페이스를 이용하여 반복적 으로 접근할 수 있도록 만드는 패턴 상세 설계(Detailed Design) 시스템의 유사한 객체를 다룰 때, 동일한 인터페이스를 이용하여 반복적 으로 접근할 수 있도록 만드는 패턴 처리하려는 자료구조가 다른 형태로 바뀌더라도 클라이언트가 영향을 받지 않음 자료의 자세한 구조는 모르더라도 반복자가 제공하는 인터페이스를 이용하여 검색하거 나 하나씩 처리할 수 있음

옵서버/상태/파싸드 패턴 옵서버 패턴 상태 패턴 파싸드 패턴 1대다 객체 의존관계를 정의함 상세 설계(Detailed Design) 옵서버 패턴 1대다 객체 의존관계를 정의함 한 객체의 상태가 바뀌면 의존관계의 다른 객체들에게 자동 통지하고 변경 상태 패턴 이벤트 의존 애플리케이션에 적합 시스템이 동작하면서 발생되는 이벤트에 따라 변경이 이루어질 수 있도록 설계 파싸드 패턴 서브시스템 내부가 복잡하여 클라이언트 코드가 사용하기 힘들 때 사용 간단한 인터페이스만 알아도 서브시스템의 주요 기능을 사용 복잡한 것을 단순하게 보여주며, 내부 시스템을 몰라도 사용 가능

In this chapter … 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계 상세 설계(Detailed Design) 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계

클래스 설계 분석 단계에서 아직 확정되지 않은 클래스 내부 부분 중 구현에 필요한 중요한 사항을 결정하는 작업 상세 설계(Detailed Design) 분석 단계에서 아직 확정되지 않은 클래스 내부 부분 중 구현에 필요한 중요한 사항을 결정하는 작업 클래스의 서비스 인터페이스에 대한 정확한 정의, 메소드 내부의 로직 등 객체의 상태 변화와 오퍼레이션의 관계를 상세히 설계해야 함 클래스가 가지는 속성 값에 따라 오퍼레이션 구현이 달라짐 객체의 상태 변화 모델링 필수

클래스 인터페이스의 정의 (1/2) 관점이 다른 개발자들이 클래스 명세의 어떤 부분이 관심이 있는가? 상세 설계(Detailed Design) 관점이 다른 개발자들이 클래스 명세의 어떤 부분이 관심이 있는가? 클래스 구현: 실제 설계로부터 클래스를 구현하려는 개발자 클래스 사용: 구현된 클래스를 이용하여 다른 클래스를 개발하려는 개발자 클래스 확장: 구현된 클래스를 확장하여 다른 클래스로 만들고자 하는 개발자  관점에 따라 관심이 다르므로, 클래스 인터페이스가 중요함 서브시스템의 서비스 인터페이스를 통산 API(Application Program Interface)라 부름

클래스 인터페이스의 정의 (2/2) 상세 설계(Detailed Design) 클래스에 대한 여러 가정을 공유하도록 명세한 것을 협약에 의한 설계 (Design by Contract)라 함 소프트웨어 컴포넌트에 대한 정확한 인터페이스 명세를 위하여 선행조건, 결과조건, 불 변조건을 나타내는 설계 방법 협약에 의한 설계의 세 가지 타입 선행조건(precondition): 오퍼레이션이 호출되기 전에 참이 되어야 할 조건 결과조건(postcondition): 오퍼레이션이 수행된 후 만족하여야 하는 조건 불변조건(invariant): 클래스 내부가 실행되는 동안 항상 만족하여야 하는 조건 (예: 리스트에 있는 노드가 항상 오름차순으로 되어야 함)

클래스 상태 모델링 객체가 가지는 상태와 여러 오퍼레이션 관계를 오토마타(상태변환 다이 어그램)으로 나타냄 상세 설계(Detailed Design) 객체가 가지는 상태와 여러 오퍼레이션 관계를 오토마타(상태변환 다이 어그램)으로 나타냄 클래스에 정의하는 여러 오퍼레이션의 동작 효과를 이해하는데 큰 도움을 줌 객체가 논리적으로 가질 수 있는 상태를 나타냄 예제: 스택의 상태 다이어그램

클래스 재사용 프레임워크 재구성 최적화 재사용 가능한 부분적인 응용 프로그램 상세 설계(Detailed Design) 프레임워크 재사용 가능한 부분적인 응용 프로그램 클래스 라이브러리와 달리, 자료처리, 이동통신, 실시간 항공 등 특수한 기술이나 응용 도메인을 목표로 함 재구성 프레임워크 클래스를 솔루션에 맞게 적용한 후, 목표 시스템에 맞도록 재구성 연관관계 구현, 상속 재검토 등을 통해 재사용도를 높임 최적화 재사용에 의한 비효율 제거를 위해 응용을 고려한 최적화 수행 설계 목표(반응시간, 실행시간, 기억공간 최소화 등) 달성을 위한 최적화

In this chapter … 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계 상세 설계(Detailed Design) 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계

사용자 인터페이스 설계 사용자의 입장을 더욱 중시함 사용자 인터페이스의 평가 기준 상세 설계(Detailed Design) 사용자의 입장을 더욱 중시함 모든 소프트웨어는 사용자의 만족이 큰 목적이 됨 소프트웨어 시스템에 있어서 사용자의 만족 사용자 인터페이스의 평가 기준 배우기 쉬워야 반응 속도가 빨라야 사용 중 오류가 발생하지 않아야 다수의 사용자가 만족할 수 있어야 사용법이 유지되어야 (한번 써보면, 다음에 더 쉽고, 그 다음에 더 쉽고…

사용자 인터페이스 유형 (1/2) 사람과 컴퓨터 사이의 대화를 체계적으로 표현 상세 설계(Detailed Design) 사람과 컴퓨터 사이의 대화를 체계적으로 표현 사람: 컴퓨터 시스템에 명령을 내리고 자료를 전달 컴퓨터: 사람에게 처리된 정보나 처리 상태, 도움말 등을 전달

사용자 인터페이스 유형 (2/2) 그래픽 사용자 인터페이스(Graphic User Interface): 직접 조작형 인터페이스 상세 설계(Detailed Design) 그래픽 사용자 인터페이스(Graphic User Interface): 직접 조작형 인터페이스 웹 인터페이스: 인터넷과 웹 브라우저를 통하여 페이지를 열람하고 조작 하는 인터페이스 명령어 인터페이스: 정해진 명령 문자열을 입력하여 시스템을 조작하는 인터페이스 텍스트 사용자 인터페이스: 자연어에 가까운 문장을 입력하여 시스템을 조작하는 인터페이스

사용자 인터페이스 설계 원리 (1/2) 좋은 사용자 인터페이스 사용자와 시스템 간의 대화설계에서 따라야 할 큰 원칙 상세 설계(Detailed Design) 좋은 사용자 인터페이스 직관적으로 사용 사용하는 도중에 오류가 적음 사용자와 시스템 간의 대화설계에서 따라야 할 큰 원칙 일관성 적절한 사용자 지원 적당한 피드백 최소의 사용자 입력 사용자를 배려하는 사용자 중심의 설계

사용자 인터페이스 설계 원리 (2/2) 사용자 인터페이스 작성 시의 기본 가이드라인 상세 설계(Detailed Design) 사용자 인터페이스 작성 시의 기본 가이드라인 배우기 쉽고 쓰기 쉬운 인터페이스를 만들라. 효율성을 높이는 기능을 제공하라. 사용자가 도움을 받거나 오류를 수정하기 쉽게 하라. 입력 자료의 오류를 최소화하라. 사용자에게 피드백을 제공하라. 끌리는 레이아웃과 설계를 창조하라. 익숙한 용어와 이미지를 사용하라.

화면 설계 (1/3) 화면 설계를 위한 원리 UI 컨트롤의 종류 화면을 설계하는 동안 사용자의 특성을 기억한다. 상세 설계(Detailed Design) 화면 설계를 위한 원리 화면을 설계하는 동안 사용자의 특성을 기억한다. 논리적으로 관련 있는 항목들은 빈 줄 등으로 구별하기 쉽게 한다. 정보를 조직적으로 표현하기 위하여 다양한 정렬 방식을 사용한다. 다중 화면의 경우 화면 사이의 일관성이 중요하다. 여러 가지 다른 배치로 시험한다. UI 컨트롤의 종류 메뉴 바 다이얼로그 박스, 텍스트 박스 명령 버튼, 토글 버튼, 리스트 버튼, 라디오 버튼 드롭 다운 리스트 박스, 체크 박스

화면 설계 (2/3) 상세 설계(Detailed Design) UI 컨트롤 예제

화면 설계 (3/3) 쉽게 배울 수 있고 사용할 수 있는 자료 입력 화면 가이드라인 입력 양식 (양식 채움) 상세 설계(Detailed Design) 쉽게 배울 수 있고 사용할 수 있는 자료 입력 화면 가이드라인 항목의 입력이 끝났음을 알리기 위한 키를 반드시 정한다. 콤보 박스를 사용하여 입력하게 하면 입력 오류를 줄일 수 있다. 입력 양식 (양식 채움) 처리할 자료를 요청하고 모으는데 사용하는 양식

출력물 설계 출력물은 다양한 종류가 있고 다양한 기술이 사용 출력물의 대부분은 인쇄된 리포트 상세 설계(Detailed Design) 출력물은 다양한 종류가 있고 다양한 기술이 사용 출력물의 대부분은 인쇄된 리포트 리포트는 매력적이고 전문적이어야 하며 무엇보다 읽기 쉬워야 한다. 모든 리포트는 머리말과 꼬리말이 있어야 한다. 항목은 논리적인 순서로 표현되고 그룹핑 되어야 한다

In this chapter … 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계 상세 설계(Detailed Design) 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계

데이터 설계 엔티티 관계 다이어그램(Entity-Relationship Diagram) ER 다이어그램 상세 설계(Detailed Design) 엔티티 관계 다이어그램(Entity-Relationship Diagram) 관계형 데이터베이스를 위한 주요 모델링 도구 실세계 데이터를 엔티티와 관계로 모델링 ER 다이어그램 테이블보다는 엔티티를 강조 관계형 데이터베이스 모델링에 가장 널리 사용되는 도구 ( 데이베이스 시간에 자세히 공부함)

데이터베이스 설계 예시 비디오 대여 시스템 ERD를 작성 상세 설계(Detailed Design) 비디오 대여 시스템 ERD를 작성 시스템의 엔티티를 파악하기 위하여 클래스 다이어그램을 리뷰 1:1, 1:M, M:N 관계를 결정 최종 ERD로 부터 테이블(릴레이션)들을 도출하고 정규화 등 작업 진행

객체와 테이블 (1/2) 관계형 데이터베이스를 객체지향 프로그램에서 사용하는 경우 상세 설계(Detailed Design) 관계형 데이터베이스를 객체지향 프로그램에서 사용하는 경우 관계형 데이터베이스 자체를 설계 애플리케이션에서 DBMS와 어떻게 통신하는지 설정 매핑 되는 과정에 테이블 개념 및 정규화 규칙은 클래스와 관계에도 적용 객체의 속성은 테이블의 열(column)에 해당되는 테이블 속성으로 매핑 속성: 객체지향과 관계형 데이터베이스에서 공유하는 단어

객체와 테이블 (2/2) 데이터베이스의 테이블은 항상 기본키를 가져야 함  자세한 내용은 데이터베이스 교과목에서 다룸 상세 설계(Detailed Design) 데이터베이스의 테이블은 항상 기본키를 가져야 함 기본키가 될 수 있는 속성: null이 될 수 없는 값, 자주 변경되지 않아야 함  자세한 내용은 데이터베이스 교과목에서 다룸

In this chapter … 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계 상세 설계(Detailed Design) 7.1 디자인 패턴 7.2 클래스 설계 7.3 사용자 인터페이스 설계 7.4 데이터 설계