소프트웨어 공학 Lecture #7: 상세 설계와 UI 설계 안 병 익 강의 블로그 Mobilecom.tistory.com.

Slides:



Advertisements
Similar presentations
일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
Advertisements

프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
컴퓨터와 인터넷.
Class 4: 설계.
설 계 4.1 소 개 4.2 설계의 원리 4.3 구조적 설계 4.4 소프트웨어 구조 4.5 프로그램 설계
설 계 (Design) - Software Engineering -.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System
최윤정 Java 프로그래밍 클래스 상속 최윤정
Entity Relationship Diagram
Windows Server 장. Windows Server 2008 개요.
윤 홍 란 다이알로그(대화상자) 윤 홍 란
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
연결리스트(linked list).
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
5장 Mysql 데이터베이스 한빛미디어(주).
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
FTP 프로그램 채계화 박재은 박수민.
Error Detection and Correction
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
D / K / I / T / E / C / H / N / O / L / O / G / Y
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
5장 Mysql 데이터베이스 한빛미디어(주).
10장. 예외처리.
제 1장. 멀티미디어 시스템 개요.
CHAP 12. 리소스와 보안.
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
JA A V W. 03.
자바 5.0 프로그래밍.
프로그래밍 개요
SAS Statistical Analysis System 통계패키지 실습 (2011년 1학기)
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
그래픽 모듈 편집.
윈도우 컨트롤.
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
Chapter 03. 관계 데이터베이스 설계.
LabVIEW WiznTec 주임 박명대 1.
기말 프로젝트 계획 MVC 패턴 기반 웹 애플리케이션 개발 프로젝트명 : 팀명 : 팀원 :
웹사이트 분석과 설계 (화면 설계) 학번: 성명: 박준석.
CHAP 21. 전화, SMS, 주소록.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
알고리즘 알고리즘이란 무엇인가?.
컴퓨터 구성요소와 사용 컴퓨터 문서 작업 인터넷 활용
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
웹 사이트 분석과 설계 [디자인 리서치] 학번: 이름 : 홍지애.
발표자 : 이지연 Programming Systems Lab.
.Net FrameWork for Web2.0 한석수
CHAP 15. 데이터 스토리지.
 6장. SQL 쿼리.
6 객체.
프로그래밍 설계 0. 설계의 종류 1) Data Base 설계 2) 파일 설계 3) 입출력 화면 설계 4) 보고서 설계
Presentation transcript:

소프트웨어 공학 Lecture #7: 상세 설계와 UI 설계 안 병 익 강의 블로그 Mobilecom.tistory.com

학습 목표 2 모듈 내부 설계 클래스 설계 사용자 인터페이스 설계 데이터 설계

아키텍처 설계와 모듈 설계 아키텍처 설계는 시스템 전체의 구조를 설계하는 개념적 모델링 모듈 설계는 구체적인 컴포넌트 내부 설계 3

7.1 모듈 내부 설계 모듈 명세서 모듈의 세부처리 모듈의 세부처리 기능을 기술한 내역 시스템 구조도의 박스에 표현되지 않은 자세한 알고리즘을 기술 모듈의 내부 자료에 대한 설명을 포함 프로그램 구조도와 함께 시스템의 동작 상태를 예측할 수 있는 근거 제공 소수확인 숫자결과 Module 소수 확인 ( 숫자, 결과 ) 내부자료 :.... 처리기능 : 숫자보다 작은 이미 구한 모든 소수로 나누어 나머지가 0 이 아니면 결과는 소수이다. 4

알고리즘 설계 상세설계의 표현 설계의 표현과 코딩이 용이 할 것 수행이 가능할 것 유지보수가 용이할 것 모듈 명세화 기법 흐름도 (flow chart) N-S 도표 (Nassi-Schneiderman Chart) 의사 코드 (pseudo code) 의사 결정표 (decision table) 의사 결정도 (decision diagram) PDL(Program Design Language) 상태천이도 (state transition diagram) 행위도 (action diagram) 5

알고리즘의 선택 정확성 모듈이 정확하게 수행되지 않는 조건을 점검 예 : 음수, 0, 경계값 입력 재사용 효율성 기억 공간 처리 소요 시간 예 : 1 에서 N 까지의 합 SeriesSum = 0 SeriesSum = (1.0 + N)*(N/2.0) for Counter = 1 to N do write "The sum of the integers from 1 to N is", SeriesSum SeriesSum = SeriesSum + Counter write "The sum of the integers from 1 to N is", SeriesSum 6

알고리즘의 선택 효율성 입력 갯수 복잡도 (Order) 이 름 ,000 10, Constant logN Logarithmic N Linear ,000 NlogN NlogN , ,000 N 2 Quadratic ,000 1,000, ,000,000 N 3 Cubic ,000,000 1,000,000, n Exponential x x x 적합성 알고리즘이 주어진 문제를 정확히 기술하였는가 ? machine processible specification 7

NS- 도표 논리 기술의 기본 형태인 순차, 선택, 반복의 표현을 박스로 표현 a. 순차 b. 선택 (if-then-else) action A action B action A action B Decision T F c. 선택 (if-then)d. 다중선택 (case) e. 반복 (while) f. 반복 (repeat-until) Decision T F action A action Baction C action D action E Value 1 Value 2 Value 3 Value 4Value 5 Selector Condition 8

NS- 도표의 표현 규칙 도표는 항상 사각형 도표의 제어흐름은 위에서 아래로 수평으로 그어진 줄은 항상 평행 빈 박스 - null statement 모든 사각형은 다시 하나의 N-S 도표 9

NS- 도표의 예 잡지구독 시스템의 구독 레코드처리에 대한 N-S 도표 While there are records in the correspondence file Read next correspondence Check general format T Errors F Write error message Transaction type New subscriptionRenewal Cancellation Other Call Handle New Subscription Pull sibactiber’s record Pull sibactiber’s record Update expire date Calculate amount of refund Call update Account Call update Account Print error message 10

NS- 도표의 장단점 장점 구조적 프로그램 배우기 쉽고, 읽기 쉬우며 원시 코드로 전환이 쉬움 프로그램의 구조를 쉽게 파악할 수 있다 프로그램의 복잡도, 제어구조를 한 눈에 볼 수 있다. 단점 도표를 그려야 하는 불편함 수정이 용이하지 않음 11

의사 코드 (Pseudo Code) 모듈의 입출력 자료, 내부 자료, 수행 절차 등을 알고리즘의 형태로 기 술 실제 프로그램과 유사하나 특정 프로그래밍 언어에 독립적 전문적 용어의 사용은 가능하지만 프로그래머의 고유한 스타일이나 특성이 무시될 수 있음 의사 코드를 쓰는 방식이 다를 수 있으므로 한 프로젝트 안에서 표준을 만들 필요가 있음 12

의사 코드의 사례 모듈명세서 주급계산 고용자레코드 주급총액 고용자 레코드 = 급여형태 + 성명 + 주간근무시간 급여형태 = [1|2|3] Module 주급계산 ( 고용자 레코드 ; 주급총액 ) Assume 1< 급여형태 <3 0< 주간 근무 시간 <100 End Assume Define Rate: Real /* 시간 당 급료 */ Endefine If ( 급여형태 =1) Then Rate=4.2 Elseif ( 급여 형태 =2) Then Rate=6.0 Else Rate=9.0 Endif Select Using ( 주간근무시간 ) From Case (1-40): 주급총액 = 주간근무시간 *Rate Case (41-50): 주급총액 =( 주간근무시간 *Rate)*0.5 Case (51-99): 주급총액 =( 주간근무시간 *Rate)*1.0 Endselect End Module 13

의사 결정표 (Decision Table) 근속년수연봉저축허용비율 직원저축정책 1 년 미만 $20,000 미만 →5% $20,000 이상 →4% 1 년 이상 $30,000 미만 → 6% $30,000 이상 → 5% 의사 결정표 근속연수 1 년 미만 1 년 이상 1 년 미만 1 년 이상 연봉 ( 천 $) 허용비 (%) <20 >=20<30 >=

7.3 사용자 인터페이스 설계 사용자 분석 대화설계 원리 메뉴 선택 양식 채움 (form-fill) 인터페이스 명령어 방식 직접 조작 화면 설계 시 주의 사항 15

사용자 인터페이스 사용자 인터페이스의 중요성 초기의 컴퓨터 : 알고리즘이 중요 최근의 컴퓨터 : 사용자의 입장이 중요 사용자 인터페이스의 평가 기준 1) 배우기 쉬움 2) 속도 3) 사용 중 오류의 빈도 4) 사용자의 만족 5) 사용법의 유지 16

사용자 분석 시스템의 최종 사용자에 대한 지식 나이, 인원 컴퓨터에 대한 기본 지식, 동기 사용자의 부류 ( 초보자, 능숙하지 못한 사용자, 전문가 ) 다양한 사용자 부류 17

대화설계 원리 일관성이 유지되어야 한다 용어, 문법, 화면설계 메뉴, 시스템 메시지, 설명서에 같은 의미와 용어 오류 메시지 익숙한 사용자에게는 지름길을 사용자에게 유익한 정보는 feedback 시킨다 시스템의 반응 대화의 종결을 표시하도록 설계한다 지시의 종결을 표시 지시의 취소 단순한 오류를 처리하는 기능 undo 시스템에 지시한 것을 바꾸기 쉽도록 사용자 중심의 상호작용이 되도록 설계 18

메뉴 선택 초급이나 중급 사용자에게 적합 메뉴의 구조, 동작, 배치를 고려 계층구조 선형구조 네트워크 구조 메뉴 항목의 분류가 중요 논리적으로 같은 항목은 같은 범주에 모든 경우를 포함하여 분류 중복된 항목은 피한다 익숙하지 않은 항목은 피한다 메뉴의 종류 단일화면 메뉴 풀 다운 메뉴 고정 메뉴 19

양식 채움 (Form-fill) 양식 채움 (Form-fill) 인터페이스 자료 입력에 많이 쓰임 자료 항목, 위치, 길이 어느 정도의 교육이 필요 ( 중급, 고급 사용자에게 적합 ) 화면 설계 관련 항목을 모음 화면 이름 작성 화면의 배치 ( 항목의 순서 ) 입력 자료 항목의 길이 정렬 선택적 항목 항목 간의 이동 오류의 정정 20

명령어 방식 정형적 언어 (formal language) 운영체제, 텍스트 편집기, 모험 게임 등에 자구 사용 고급 사용자에 적합 어휘, 문법규칙, 명령어의 의미를 익혀야 함 융통성 있게 창의적으로 시스템에 지시 vi 의 명령어 ^F 앞으로 한 화면 전진 ^B 뒤로 한 화면 후퇴 ^D 반 화면 내림 ^U 반 화면 올림 G 정해 준 줄로 커서를 옮김 /pattern pattern 과 같은 다음 줄로 커서를 옮김 ?pattern pattern 과 같은 바로 전 줄로 커서를 옮김 21

명령어 설계 시 주의사항 1. 명령어의 개수를 가능하면 적게 한다. 2. 의미 있고 구별되는 이름 3. 약자는 일관성 있게 사용 4. 약자가 사용되더라도 명령어가 제대로 작동 5. 문법 구조는 일관성 6. 초보자를 위하여 문법규칙을 프롬프트로 안내 7. 명령어 메뉴는 중급 사용자에게 도움이 된다. 22

직접 조작 (Direct Manipulation) 간략화 된 작업환경을 보여주고 그 속의 객체를 직접 조작 아이콘으로 객체가 표현 편집기, 비디오 게임, 터치 스크린, 윈도우 시스템 마우스나 조이스틱을 사용 What you see is what you get(WYSIWYG) 설계 시 고려사항 아이콘은 이해하기 쉬워야 잘못된 유추는 피해야 사용자 계층의 관습에 따라 설계 아이콘은 알맞은 목적에 사용되어야 조화 및 일관성, 배치가 중요 23

화면 설계 시 주의 사항 1. 사용자의 특성을 염두에 둔다 2. 논리적으로 관련 있는 항목은 반전, 글자꼴, 색상으로 구별하기 쉽게 한다. 3. 정보를 조직적으로 표현하기 위하여 다양한 정렬 방식 사용 4. 다중화면의 경우 화면사이의 일관성이 중요 24

UI 컨트롤 25

7.4 데이터 설계 기본적인 저장은 파일 시스템이 제공 디렉토리와 파일 애플리케이션에서 데이터를 보는 뷰에 맞게 여러 가지 계층을 제공 26

데이터베이스 설계 단계 1. ERD 를 작성 ERD 초벌 작성 2. 데이터 요소를 엔티티에 배정 MEMBER(MEMBER-NUMBER, NAME, ADDRESS, CITY, ZIP, HOME- PHONE, WORK-PHONE, CREDIT-CARD-CODE, CREDIT-CARD- NUMBER, (VIDEO-ID, TITLE, DATE-RENTED, DATE-RETURNED)) VIDEO(VIDEO-ID, TITLE) 3. 모든 테이블을 3 차 정규형으로 만듦 27

데이터베이스 설계 단계 M:N 의 관계를 1:N 으로 바꿈 MEMBER(MEMBER-NUMBER, NAME, ADDRESS, CITY, ZIP, HOME- PHONE, WORK-PHONE, CREDIT-CARD-CODE, CREDIT-CARD- NUMBER) VIDEO(VIDEO-ID, TITLE) RENTAL(MEMBER-NUMBER, VIDEO-ID, DATE-RENTED, DATE- RETURNED) 28

클래스와 테이블의 매핑 단순 데이터 구조를 가진 클래스는 테이블로 매핑 객체 식별자는 기본 키 다른 클래스의 인스턴스를 속성으로 가지고 있는 클래스는 그 클래스 를 위하여 별도의 테이블을 생성 컨테이너 클래스가 여러 객체를 포함하는 관계에 있을 때 2 개의 필드 를 가진 별도의 테이블을 생성 M 대 N 의 관계는 별도의 테이블 1 대 1 연관은 외부 키 속성으로 구현 29

클래스와 테이블의 매핑 클래스 ( 왼쪽 ) 와 테이블 ( 오른쪽 ) 의 매핑 30