1 / 27

소프트웨어 공학 Lecture #7: 상세 설계

소프트웨어 공학 Lecture #7: 상세 설계. 학습 목표. 모듈 내부 설계 클래스 설계 사용자 인터페이스 설계 데이터 설계. 아키텍처 설계와 모듈 설계. 아키텍처 설계는 시스템 전체의 구조를 설계하는 개념적 모델링 모듈 설계는 구체적인 컴포넌트 내부 설계. 7.1 모듈 내부 설계. 모듈 명세서 모듈의 세부처리 모듈의 세부처리 기능을 기술한 내역 시스템 구조도의 박스에 표현되지 않은 자세한 알고리즘을 기술 모듈의 내부 자료에 대한 설명을 포함

monet
Download Presentation

소프트웨어 공학 Lecture #7: 상세 설계

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 소프트웨어 공학Lecture #7: 상세 설계

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

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

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

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

  6. 알고리즘의 선택 • 선택의 3 원칙: 정확성, 효율성, 적합성 • 정확성 • 모듈이 정확하게 수행되지 않는 조건을 점검 예: 음수, 0, 경계값 입력 • 효율성 • 기억 공간 • 처리 소요 시간 • 적합성 • 알고리즘이 주어진 문제를 올바르게 기술하였는가? • machine processible specification

  7. 나씨-슈나이더만 차트 • 논리 기술에 중점을 둔 도형식 표현방법으로, 4가지 제어 논리 구조[순차(sequence), 선택(if-then-else), 반복(do-while, do-until)]를 사용한다. • NS-도표의 장단점 • 장점 • 구조적 프로그램 • 배우기 쉽고, 읽기 쉬우며 원시 코드로 전환이 쉬움 • 프로그램의 구조를 쉽게 파악할 수 있다 • 프로그램의 복잡도, 제어구조를 한 눈에 볼 수 있다. • 단점 • 도표를 그려야 하는 불편함 • 수정이 용이하지 않음

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

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

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

  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년 이상 >=30 >=20 <30 <20 연봉(천$) 4 5 6 허용비(%) 5

  14. HIPO(Hierarchy plus Input Process Output) • 시스템의분석 및 설계나문서화할 때 사용되는기법으로시스템실행과정인입력, 처리, 출력의기능을나타냄 • 하향식S/W 개발을위한문서화도구로기능과자료의의존관계를동시에표현 • 체계적인문서관리가가능, 기호, 도표등을사용하므로보기쉬우며이해하기도쉬움 • 이 기법은 다음의 3가지 도표를 이용한다. ㉠ 도식 목차(Visual Table of Contents)시스템의 전체 구성과 흐름을 보여주는 계층 구조도 ㉡ 개관(총괄) 다이어그램(Overview Diagram): 전체 계층에서의 입력, 처리, 출력을 설명하는 도표, ㉢ 상세 다이어그램(Detail Diagram): 개관(총괄) 다이어그램을 더욱 상세히 기술하는 도표

  15. HIPO

  16. 자료구조 설계 • 자료구조의 구체적인 설계 <예> 인사기록 마스터 intSawon_no; char Name[10]; int Depart; int Position; ... • 자료구조의 원칙 • 정보은닉 • 중요한 자료구조에 직접 접근하고 변경하는 것을 피함 • 자료 추상화 • 사용자 정의 타입을 사용

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

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

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

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

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

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

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

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

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

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

  27. UI 컨트롤

More Related