4과목 소프트웨어 공학 강사 이 민 욱.

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

I. 프로젝트 동기 II. 프로젝트 목표 III. 파일시스템 IV. 암호화 및 복호화 V. 인터페이스 VI. FBR READ/WRITE VII. 프로그램 흐름도 VIII. 미 구현 사항 IX. 프로젝트 기대효과 X. 프로그램 요구사항 및 팀원 역할분담 XI. 시연 XII.
컴퓨터와 인터넷.
학 과 : 토목공학과 담당교수 : 김 수 용 분반,조 : 301분반,4조 조 이 름 : 다 크 호 스
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
순차, 조건, 반복 이점숙 농대 뒷편 언덕을 넘어가며 같은 문제 다르게 해결 순차, 조건, 반복 이점숙
순차, 조건, 반복 이점숙 같은 문제 다르게 해결하기 순차, 조건, 반복 이점숙
뇌를 자극하는 Windows Server 2012 R2
Power Java 제3장 이클립스 사용하기.
Entity Relationship Diagram
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
시스템집적반도체 설계 검증 환경과 기법 Ch 7.
잠재력의 발견
FTP 프로그램 채계화 박재은 박수민.
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
7장 소프트웨어 공학과 IPT 7.1 소프트웨어 공학 7.2 소프트웨어 개발 주기 7.3 IPT 기법 7.4 HIPO 기법
이동식 다 관절 로봇팔 Removable Articulated robot arm
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
10장. 예외처리.
제 1장. 멀티미디어 시스템 개요.
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
자바 5.0 프로그래밍.
프로그래밍 개요
소비자 감성과 사용성을 고려한 인간공학적 의자설계 및 디자인 인터페이스 개발 한양 대학교 산업공학과 김정룡 외 4명
27장. 모듈화 프로그래밍.
SAS Statistical Analysis System 통계패키지 실습 (2011년 1학기)
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Lesson 2. 기본 데이터형.
ERP의 구축방법과 장·단점 1조 김두환 김수철 가민경 김정원.
Mobile braille system for the blind
USN(Ubiquitous Sensor Network)
그래픽 모듈 편집.
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 05
Chapter 03. 관계 데이터베이스 설계.
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
기상 레이더 정보를 이용한 획기적인 LID시설 제어 방법 GIST대학 물리학부 정희원 GIST대학 기초교육학부 박연준, 기태윤
LabVIEW WiznTec 주임 박명대 1.
웹사이트 분석과 설계 (화면 설계) 학번: 성명: 박준석.
Kangwon National Univ. | Computer Science
영상인식분야 개발계획서 ○ ○ 대학교 팀명 제13회 현대자동차그룹 미래자동차 기술공모전
강의 제목 강사 이름 | 강의 번호.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
회로해석 및 논리회로실험 (정승기 교수님, 김신아 조교님)
주요 패턴 (한)문화방송 14 HY울릉도M 13 [ Bottom-Up ] 휴먼새내기체 12 [ Top-Down ]
3장, 마케팅조사의 일번적 절차 마케팅 조사원론.
AT MEGA 128 기초와 응용 I 기본적인 구조.
아두이노와 충격감지센서, GPS를 활용한 자전거 주행 중 응급 상황 발생 시 자동 신고 시스템
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
Coding for Kids.
멀티미디어시스템 제 4 장. 멀티미디어 데이터베이스 정보환경 IT응용시스템공학과 김 형 진 교수.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
학습내용 프로토콜 계층화 OSI 모델의 용어 및 기능 개체 서비스 접근점 (N) 프로토콜과 (N) 서비스 서비스 프리미티브
디지털논리 회로 1차설계 예비보고서 2006 송만성 2007이상진 2007배정준 2007김효진.
.Net FrameWork for Web2.0 한석수
제 4 장 Record.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
교량 구조물의 개념 설계 및 프로토타입 제작 과정
현지조사 방법 및 보고서 작성법 현지조사(field working)란?
X-13-ARIMA 프로그램 사용법.
오늘의 강의 제목을 입력하세요 소 속 : 인문대학 국어국문학과 이 름 : 홍길동 교수 1.
알렌 인지 수준 판별검사와 한국판 간이 정신상태 판별검사의 상관관계
소프트웨어 설계 및 실습 강기준.
생산성 증대 효율성 향상 측정 수행 능력.
Presentation transcript:

4과목 소프트웨어 공학 강사 이 민 욱

요구분석 1. 요구 분석 (1) 요구 분석의 정의 요구 분석(Requirements analysis)이란 개발 요청자(사용자)의 하드웨어나 소프트웨어 에 대한 외부적 요구를 받아들여 개발하고자 하는 소프트웨어의 특성을 기술하는 단계 이다. (2) 요구 분석의 목적 ① 의사 교환 수단  ② 개발에 필요한 기본적인 자료를 제공  ③ 갖추어야 할 사항들을 정의 ④ 사용자와의 H/W, S/W 운영 상의 계약이다. (3) 요구 분석 단계의 특징 ① 사용자가 처음으로 참여 ② 가장 전문 인력을 필요 ③ 자연 언어  ④ 제어 구조가 포함되어서는 안 된다. (4) 요구 분석의 일반적인 순서 Needs 분석 → 개발자 준비 분석 →  자료 흐름도 작성 → 자료 사전 작성 → 미니 명세서 작성 → 요구 명세화 (5) 요구 분석가의 능력 ① 오랜 경험   ② 해박한 지식   ③ 요구를 정확히 수용   ④ 자료 제공 능력   ⑤ 프로그램 능력은 없어도 된다. (6) 요구 분석의 문제점 ① 대화의 장벽 ② 소프트웨어의 복잡성  ③ 요구의 변화   ④ 요구 명세화의 어려움  ⑤ 요구 분석에 대한 인식 부족  ⑥ 방법론 부족

2. 구조적 분석 구조적 분석의 기본 모형 3가지 :  ① 자료 흐름도(DFD)     ② 자료 사전(DD)     ③ 소단위 명세서(Mini-spec) (2) 구조적 분석의 세부 작업 순서 ① 배경도 작성 : 문제의 추상적인 개관만을 그린다.(대략적인 그림만 그린다.) ② 상위 자료 흐름도 작성 : 기본 모형을 그린다.(입력 → 처리 → 출력) ③ 하위 자료 흐름도 작성 : 하향식으로 자료 흐름도를 상세화한다. ④ 자료 사전 작성 : 자료를 구체적으로 정리한다. ⑤ 소단위 명세서 작성 : 자료 흐름도의 부족한 부분을 간략하게 서술한다. (3) 자료 흐름도(DFD)의 표기법 ① 외부 입출력(직사각형) : 자료의 생성지와 종착지, 정보의 생성지와 소비자 ② 처리 과정(원 모양) : 변환 과정, 모듈, 프로시저, 함수 ③ 자료 흐름(화살표) : 자료의 흐름, 인터페이스, 매개 변수  ④ 자료 저장소(두 줄) : 자료 저장, 파일, 데이터베이스, 디스크

(4) 자료 흐름도(DFD)의 작성 방법 ① 자료 흐름은 4가지의 기본 기호로 표시   ② 개별적인 상세화                         ③ 변환(처리)과정이 버블로 표현            ④ 한 페이지 단위                         ⑤ 단계마다 약 6~7개의 절차 버블           ⑥ 페이지 당 버블의 수가 12개 ⑦ 페이지의 단계는 2~3 단계    ⑧ 2~3 단계로 커지면 설계에 임할 수 있을 정도로 구체화한다. ⑨ 최종 단계의 버블은 프로그램으로 코딩이 가능   ⑩ 한번에 한 개의 버블만 세분화 (5) 자료 사전 표기법 ① 자료의 정의 : =  ② 자료의 연결 : +  ③ 자료의 선택 : [ | ]   ④ 자료의 반복 :{}n  ⑤ 자료의 생략 : (  )  ⑥ 자료의 설명 : ** (6) 요구 분석용 자동화 도구(CASE) ① SADT : SoftTect사에서 개발된 대규모 프로젝트용 요구 분석 방법론이다. ② PSL/PSA : 미시간 대학의 ISDOS 프로젝트에서 개발된 요구 분석용 자동화 도구이다.    ③ SREM(RSL/REVS) TRW사가 미 국방성의 의뢰에 의하여 개발한 실시간 시스템용 요구 분석 방법론 및 자동화 도구이다.

(7) 구조적 설계 표기법 ① N-S(Nassi-Schneiderman Chart) 도표   ․논리적 기술에 중점을 둔 도형   ․그리기가 어렵다.   ․연속, 선택, 다중 선택, 반복의 표현   ․ 임의의 제어 이동이 어렵다.             ․그래픽 설계 도구이다.              ․ 상자 도표라고도 한다.   ․프로그램으로 구현이 쉽다.               ․조건이 복합되어 있는 곳의 처리를 명확히 식별하기에 적합하다. ② HIPO 도표    ․도식 목차(가시적 도표) : 전체적인 흐름과 구조를 나타내는 도표    ․총괄 도표(총체적 도표) : 입력, 처리, 출력 등의 기능을 명확히 표현한 도표 (사용자 관점)    ․상세 도표(세부적 도표) : 총괄 도표를 구체적으로 표현한 모듈 도표(개발자 관점) ■ HIPO의 특징 ․분석 및 설계 도구로 사용된다. ․기본 시스템 모델은 입력, 처리, 출력으로 구성된다. ․하향식(Top-Down) 개발에 적당하다. ․문서가 보기 좋게 체계화된다.(보고서 용) ․기능과 자료의 관계를 동시에 표현할 수 있다. ․수정 및 유지 보수 시에 좋다. ․소규모 프로젝트에 적당하다.

3. 소프트웨어 설계 (1) 소프트웨어 설계 절차 DFD, DD 분석 → 외부 설계 → 내부 설계(기본 설계 → 상세 설계) → 설계 명세서     (2) 구조적 설계의 기본 원칙 ① 모듈화(Modularization)     전체 프로그램을 한 번에 설계하지 않고 단일 기능을 갖출 수 있도록 부분적으로 묶어서 처리하는 기술을 말하며 단위 프로그램, 함수, 서브 프로그램을 작성하기 위한 설계 기법이다. ② 추상화(Abstraction)     세부적인 설계를 배제하고 전체 흐름과 구조를 한눈에 알아볼 수 있도록 개괄적인 설계부터 점차 세부적으로 진행하는 설계 기법이다. ③ 구조화(Structured)      모듈의 수행하기 위한 위치나 시기를 전체 구조에 적절하게 배치시키는 설계 기법이다. ④ 정보 은닉(Information hiding)     모듈 내부의 정보들이 노출이 되고 모듈 간에 정보를 공동으로 사용하게 될 경우 모듈 변경 시 정보를 공동으로 사용한 모든 모듈에 부작용을 주게 되므로 소프트웨 어의 견고성은 유실된다. 따라서 정보의 은익은 부작용을 최소화하는 기술이다.

(3) 추상화의 3가지 기법 ① 기능 추상화 : 입력 자료를 출력 자료로 변환하는 과정을 추상화하는 경우 ② 제어 추상화 : 제어의 정확한 알고리즘은 정의하지 않고 원하는 효과만을 정의하는 경우 ③ 자료 추상화 : 자료와 자료에 적용될 수 있는 기능을 함께 정의하는 경우 (4) 바람직한 설계의 기준 ① 요구 사항을 모두 구현           ② 이해하기 쉬어야 한다. ③ 구현 관점에서 데이터, 기능, 행위 영역을 설명하는 완전한 그림을 제공 ④ 모듈적이어야 한다.                ⑤ 독립적인 기능의 특성을 갖는 모듈 ⑥ 계층적 조직이 제시                ⑦ 특정한 기능과 부 기능을 수행하는 요소들로 분할 ⑧ 자료와 프로시저에 대한 분명하고 분리된 표현 ⑨ 데이터와 제어 추상화를 모두 포함 ⑩ 복잡도를 감소시키는 인터페이스