구조적 분석 및 설계 정보공학 분석기초 구조적 분석 1,2,3 설계원리 구조적 설계 1999.8 S/W Engineerin_YE Han
교육 목적 소프트웨어 공학과 정보공학의 연관성을 이해한다 분석과 설계의 기초원리를 이해한다 구조적 분석과 설계의 기법을 학습한다 1999.8 S/W Engineerin_YE Han
구조적 분석 및 설계 정보공학 분석기초 구조적 분석 1,2,3 설계원리 구조적 설계 1999.8 S/W Engineerin_YE Han
정보 공학 과 소프트웨어 공학 정보 공학 분석기법 설계기법 소프트웨어 공학 Re-Engineering 프로그램 작성 테스트 1999.8 S/W Engineerin_YE Han
정보 공학 기업의 전략적 목표를 달성하는데 가장 적합한 정보시스템을 찾아내기 위하여 일련의 통합된 절차,기법 및 툴을 사용한다 기업 전체에 먼저 초점을 맞추고, 그 다음 업무분야에 초점을 맞춘다 기업모델, 데이터 모델, 프로세스 모델을 개발한다 정보관리 체제의 분산과 통제를 위한 기본구조를 개발한다 1999.8 S/W Engineerin_YE Han
정보공학의 장점(Benefits) 정보시스템이 전략적 차원에서 경쟁력 향상을 위한 도구로 사용될 수 있는 방안을 제공한다 정보시스템의 초점을 경영목표에 맞추게 한다 정보시스템의 장기적 발전을 위한 기초를 확립한다 변경하기 쉬운 정보시스템 구조를 형성한다 1999.8 S/W Engineerin_YE Han
정보공학의 단계 정보전략 계획 수립(Information System Planning) 업무분야 분석(Business Area Analysis) 업무시스템 설계(Business System Design) 업무시스템 구축(Business System Construction) 1999.8 S/W Engineerin_YE Han
정보전략 계획 수립 - 고려요소 관리적 측면 - 전략적 경영 목표를 정의한다 - 핵심적인 성공요인을 찾아낸다 - 정보기술이 경영에 미치는 영향을 분석한다 - 전략적 기업모델을 개발한다 기술적 측면 - 최상위 데이터 모델을 개발한다 - 업무기능과 조직을 Clustering 한다 - 데이터 모델과 Cluster를 정련한다 1999.8 S/W Engineerin_YE Han
제1단계: 기업 모델 개발 업무 모델을 개발 한다 - 조직단위를 정의한다 - 업무기능을 식별한다 . 업무기능을 분해한다 . 업무프로세스를 정의한다 * 업무기능: - 사업을 영위하는데 필요한 지속적인 활동 - 명사 또는 동명사로 표현 * 업무 프로세스: - 입력자료를 출력자료로 변환시키는 반복적인 행위 - 동사로 표현 1999.8 S/W Engineerin_YE Han
업무기능 분활(Function Decomposition) - 업무기능(Business Function) - 업무 하위 기능(Business Subfunction) - 업무 프로세스(Business Process) - 하위 프로세스(Subprocess) - 작업(Task) * 제품 개발 및 엔지니어링(업무기능) - 영업(업무 하위 기능) . 시장조사.분석(업무프로세스) . 고객정의 . 판매예측 . 가격결정 . 제품사양 결정 - 제품 엔지니어링(업무 하위 기능) . 기술조사 . 신제품 개발(업무프로세스) . 제품설계(하위 프로세스) . 하위 시스템 엔지니어링 . 시제품 생산 및 평가 . 기존 제품 지원 1999.8 S/W Engineerin_YE Han
제1차 엔티티(객체) 식별 고객(Customers) 종업원(Employees) 판매자(Vendors) 장비/설비(Equipments) 영업정보(Sales Information) 주문(Orders) 제품(Products) 원자재(Materials) 부품(Components) 1999.8 S/W Engineerin_YE Han
엔티티(객체)가 요구하는 서비스 식별 @ 엔티티(객체) 고객(Customers) 종업원(Employees) @ 서비스 판매자(Vendors) - 구입 장비(Equipments) - 설치 영업정보(Sales Information) - 운영 주문(Orders) - 유지보수 제품(Products) 1999.8 S/W Engineerin_YE Han
엔티티와 업무기능의 연결 - MATRICS - 엔티티1 엔티티2 엔티티3 엔티티4…... 업무기능 업무기능1 업무기능2 업무기능3 …………. * * * * * * * * 1999.8 S/W Engineerin_YE Han
엔티티와 업무기능의 연결 - ER Diagram - 사용된다 엔티티 업무기능 사용한다 1999.8 S/W Engineerin_YE Han
ISP: 방향 및 목표 설정 목적 (방향) 목표2 목표1 Goal-2 Objective Goal-1 목적: 제조원가를 절감한다 목표: 재고비를 2% 절감한다 인건비를 3% 절감한다 1999.8 S/W Engineerin_YE Han
목표와 업무기능의 연결 목표 목표1 목표2 목표3 ……………. 업무기능 업무기능1 업무기능2 업무기능3 …………. * * * 목표1 목표2 목표3 ……………. 업무기능 업무기능1 업무기능2 업무기능3 …………. * * * 1999.8 S/W Engineerin_YE Han
ISP: 핵심 성공요인 식별 목적(Objective): 제조원가를 절감한다 핵심 성공요인(CSF): - 전사적 품질관리를 실시한다 - 작업자를 훈련시키고 동기를 부여한다 - Just-in-Time 재고관리를 실시한다 1999.8 S/W Engineerin_YE Han
ISP: 기술 영향도 분석 기업의 목적(방향), 목표 및 성공요인에 어떤 기술이 직간접적으로 영향을 미치는가 ? 영향의 심각성은 어느 정도인가 ? 기술의 발전 주기는 얼마인가 ? 1년, 2년, 3년, 5년….. 다가오는 변화를 수용하기 위해서 기업의 목적(방향)과 목표를 어떻게 확대시켜나가야 하는가 ? 1999.8 S/W Engineerin_YE Han
ISP: 업무기능의 계층구조 분석 업무기능 업무 하위 기능 업무기능을 하향식 계층구조로 분석한다 1999.8 S/W Engineerin_YE Han
ISP: 엔티티 관계 모델링(ERM) 엔티티1 엔티티2 엔티티5 엔티티3 엔티티6 엔티티4 개별 응용소프트웨어를 개발할 때 더 자세히 정련한다 1999.8 S/W Engineerin_YE Han
업무분야 분석(BAA) 업무기능과 엔티티가 상호 연관성이 많은 것끼리 그룹으로 묶어서 업무분야를 구성한다 업무분야별로 새로운 모델을 개발한다 기존의 정보시스템을 파악하여 새로운 모델과 비교한다 1999.8 S/W Engineerin_YE Han
업무분야 분석(BAA) - 그룹화 엔티티 업무기능 업무분야 1999.8 S/W Engineerin_YE Han
업무분야 분석(BAA) 프로세스 업무분야 영업 엔지니어링 품질관리 업무기능/데이터 관련도 일반 관리 유통관리 재무관리 프로세스 모델 데이터 모델 업무기능 분해도 1999.8 S/W Engineerin_YE Han
구조적 분석 및 설계 분석기초 정보공학 구조적 분석 1,2,3 설계원리 구조적 설계 1999.8 S/W Engineerin_YE Han
소프트웨어 요구분석 개요 고객과 함께 소프트웨어의 요구사항을 협의한다 분석 모델을 개발한다 불확실한 분야에 대해서 시제품(Prototype)을 만든다 설계의 지침이 될 사양서를 작성한다 공식적 기술검토를 실시한다 1999.8 S/W Engineerin_YE Han
소프트웨어 요구분석 프로세스 시제품 구축 문제 요구사항 수집 사양서 작성 공식적 기술검토 분석모델 개발 1999.8 S/W Engineerin_YE Han
소프트웨어 요구분석시의 문제점-면담방식 고객의 요구사항이 막연한 아이디어 수준이다 개발자는 막연한 아이디어로 개발을 진행하려고 한다 고객은 계속해서 요구사항을 변경한다 개발자는 계속되는 변경으로 인해서 혼란에 빠지고, 실수하고, 오류를 범하고, 부작용을 일어킨다 1999.8 S/W Engineerin_YE Han
소프트웨어 요구분석시의 문제점-문서방식 소프트웨어 요구명세서에 중요한 요구사항이 빠질 수 있다 기능과 성능에 대한 요구사항이 서로 상반될 수 있다 문제점의 경계가 명확하게 설정되지 못하고 막연하게 기록될 수 있다 설계상의 제약사항 또는 시스템 인터페이스에 부정확한 정보 및 부적절한 정보가 포함될 수 있다 1999.8 S/W Engineerin_YE Han
요구분석 기법 - FAST Facilitation Application Specification Technics 소프트웨어 요구사항 개발자 고 객 - 요구사항을 상세하게 정의한다 - 팀웍(Team Work)을 개발한다 JAD - Joint Application Development 1999.8 S/W Engineerin_YE Han
FAST 역할 분담 후 원 자: 경영자 중의 한 사람으로서 팀 요원의 참여를 독려한다 팀 리 드: 공정한 성격을 가진 사람으로서 FAST 회의를 리드하고 조정한다 서 기: 회의의 진행사항과 결과를 기록한다 참 가 자: 고객과 개발자로서 요구사항을 정의한다 전 문 가: 정보기술 분야와 업무 분야의 전문가로서 참가자의 질문에 자문한다 1999.8 S/W Engineerin_YE Han
FAST의 단계 정의 단계 조사 단계 준비 단계 회의 단계 문서화 단계 1999.8 S/W Engineerin_YE Han
FAST - 정의 단계 목적 및 범위 요구되는 기능 및 성능 제약사항 및 가정사항 미해결 현안 * 업무상의 기본 요구를 정의한다 1999.8 S/W Engineerin_YE Han
FAST - 조사 단계 현재의 업무처리 방식 기존의 업무기능, 데이터, 프로세스 새로운 요구사항 1999.8 S/W Engineerin_YE Han
FAST - 준비 단계 회의 의제 작성 정의 단계와 조사 단계의 내용을 문서화 미해결 현안 정리 1999.8 S/W Engineerin_YE Han
FAST - 회의 단계 회의 의제 설명 참석자 소개 그룹별로 문제해결 전체 팀이 모여서 최종 결정 * 사무실에서 멀리 떨어지고, 문서화 작업을 쉽게 할 수 있는 장소에서 실시한다 1999.8 S/W Engineerin_YE Han
FAST - 회의의 초점 기존의 데이터 변경된 데이터 새로운 데이터 입출력 - 화면, 보고서, 사건 1999.8 S/W Engineerin_YE Han
FAST - 회의 지침 사전 준비를 철저히 한다 회의장소는 사무실에서 멀리 떨어진 한적한 곳이 좋다 모든 참석자는 직급에 관계없이 동등한 자격을 갖는다 회의 참가자는 회의의 시작부터 끝까지 참석한다 회의의 의제를 정의하고 끝까지 유지한다 기술적으로 너무 깊이 빠져들지 않는다 1999.8 S/W Engineerin_YE Han
FAST - 이로운점 단순화(Simplify) 식별화(Identify) 계량화(Quantify) 명확화(Clarify) 통일화(Unify) 만족화(Satisfy) 1999.8 S/W Engineerin_YE Han
전형적인 FAST-예비회의 단계 고객과 개발자가 합동으로 실시 제품 요구서(Product Request) 작성 회의 장소, 날짜, 시간 결정 회의 리드(Facilitator) 선정 회의 참석자 선정 및 초청장 발송 참석자에게 제품요구서 배포 1999.8 S/W Engineerin_YE Han
전형적인 FAST-준비단계 데이터 목록(Object List) 작성 업무기능 목록 작성 프로세스 목록 작성 제약사항(예산,기간..) 및 성능기준(속도, 정확성..) 작성 1999.8 S/W Engineerin_YE Han
전형적인 FAST-회의단계1 신제품의 필요성 및 타당성 토의 참석자가 준비한 목록 설명 참석자가 설명하는 동안 비판과 토론을 금한다 주제별로 결합 목록 작성(데이터, 업무기능,제약사항..) 주제별 결합 목록에 대해서 토론 결합 목록이 개발될 제품을 적절하게 표현하도록 목록의 내용을 줄이거나, 늘이거나, 표현방법을 변경한다 주제별로 합의 목록 작성 1999.8 S/W Engineerin_YE Han
전형적인 FAST-회의단계2 팀을 몇 개의 서브 팀으로 나눈다 서브 팀별로 Mini-Spec 작성 해결되지 않은 사항에 대해서 문제점 목록 작성 제품 검증기준 토의 및 목록 작성 1999.8 S/W Engineerin_YE Han
분석 원칙 1 - 데이터의 모델화 데이터(Data Object)를 정의한다 데이터간의 관계를 설정한다 데이터의 흐름을 표현한다 데이터의 내용을 명기한다 ** Data Object: Paycheck 1999.8 S/W Engineerin_YE Han
분석 원칙 2 - 업무기능의 모델화 데이터를 변환시키는 기능을 식별한다 식별된 기능을 분해한다 1999.8 S/W Engineerin_YE Han
분석 원칙 3 - 사건.반응의 모델화 시스템의 상태를 변화 시키는 사건을 명기한다 사건에 반응하는 시스템의 서로 다른 상태를 나타낸다 1999.8 S/W Engineerin_YE Han
분석 원칙 4 - 모델의 분활 각 모델이 하위 수준의 추상화를 나타내도록 정련핟다 데이터의 정련(Refine) 업무기능의 분해(Decomposition) 상세 수준의 사건.반응 모델 작성 1999.8 S/W Engineerin_YE Han
분석 원리 5 - 논리적 vs 물리적 논리적: 고위 수준의 추상화 “ 가격을 읽는다 ” What should be done ? 물리적: 하위 수준의 추상화 “ 바코드를 통해서 가격을 읽는다 “ How could be done ? 1999.8 S/W Engineerin_YE Han
구조적 분석 및 설계 정보공학 분석기초 구조적 분석 1,2,3 설계원리 구조적 설계 1999.8 S/W Engineerin_YE Han
구조적 분석 모델 ERD DFD PSPEC 엔티티 관계도 자료 흐름도 처리 명 세 서 상태 변화도 자료 사전 STD DD 1999.8 S/W Engineerin_YE Han
구조적 분석 모델 - ERD ERD DFD PSPEC 엔티티 관계도 자료 흐름도 처리 명 세 서 상태 변화도 자료 사전 STD 1999.8 S/W Engineerin_YE Han
분석 모델링 - 어디서부터 시작하는가 ? FAST의 작업문서가 소프트웨어의 범위 내역(Statement of Scope)을 제공한다 FAST의 작업문서를 문법적으로 해부해서 데이터와 처리기능을 추출한다 1999.8 S/W Engineerin_YE Han
소프트웨어 범위 내역서 구축하려고 하는 시스템에 대해서 간략하게 기술해 놓은 것 시스템의 입출력 데이터 및 기본 처리기능 고위 수준의 조건별 프로세스 강요사항 및 제약사항 1999.8 S/W Engineerin_YE Han
데이터 및 처리기능의 식별 소프트웨어 범위 내역서의 모든 명사에 밑줄을 그어서 데이터(엔티티)를 정의한다 데이터의 생산자 및 소비자 데이터가 저장되는 장소 데이터 아이템의 합성체 소프트웨어 범위 내역서의 모든 동사에 밑줄을 그어서 처리기능을 정의한다 데이터의 변환 업무 프로세스 그외에 데이터(엔티티)가 필요로 하는 “서비스”를 고려한다 1999.8 S/W Engineerin_YE Han
데이터 모델링 이란 ? 데이터 모델링 이란 데이터 (엔티티) 와 데이터간의 관계를 도형으로 표현한 것 1999.8 S/W Engineerin_YE Han
왜 데이터 모델링을 하는가 ? 프로세스와는 별도로 데이터(엔티티)를 조사한다 데이터(엔티티)의 영역에 초점을 맞춘다 고객수준의 추상화 모델을 만든다 어떤 데이터(엔티티)가 있으며, 그들이 어떻게 서로 관련되고 있는가를 나타낸다 1999.8 S/W Engineerin_YE Han
데이터(엔티티)란 ? 데이터 엔티티란 일련의 속성(데이터 아이템)에 의해서 묘사되는 어떤 것으로서 시스템 내에서 조작된다 데이터 엔티티의 실례(Instance)는 유일하게 식별된다 ( 학생:학생번호) 데이터 엔티티의 실례는 속성(데이터 아이템)에 의해서 묘사된다 데이터 엔티티의 실례는 시스템에서 필요한 역할을 수행한다 (시스템은 데이터 엔티티의 실례를 Access하지 않고는 처리기능을 수행할 수 없다) 1999.8 S/W Engineerin_YE Han
전형적인 데이터 엔티티(객체) 외형적 엔티티: PC, OHP, BLACK BOARD…. 사물(실체): 시험지, 성적표, 출석부…. 사건: 개강, 시험…. 역활: 학생, 교수, 조교…. 조직: 전산학과, 교무처, 사무국…. 장소: 강의실, 실습실, 사무실…. 구조(구성): 학생기록부…. 1999.8 S/W Engineerin_YE Han
데이터 엔티티 및 속성 데이터 엔티티: 자동차 속성: 제작회사 모델 가격 선택 옵션 속성:엔티티의 외관, 특성,품질 속성: 제작회사 모델 가격 선택 옵션 속성:엔티티의 외관, 특성,품질 1999.8 S/W Engineerin_YE Han
관계(Relationship)란 ? 관계란 엔티티들이 서로 연결되어 있는 방식 하나의 관계에 여러 개의 실체(Instance)가 연결될 수 있다 엔티티들은 여러 가지 다른 방식으로 연결될 수 있다 1999.8 S/W Engineerin_YE Han
엔티티 관계도(ERD) 표기법 (0,m) 엔티티1 관계 엔티티2 (1,1) 속성 관계 엔티티2 엔티티1 (0,m) (1,1) 1999.8 S/W Engineerin_YE Han
엔티티 관계도(ERD) - 예제 (0,m) 제작된다 제작회사 자동차 제작한다 (1,1) - 모델명 - 제작회사명 - 색 상 - 가 격 - 제작회사명 - 공 장 번 호 1999.8 S/W Engineerin_YE Han
엔티티 관계도(ERD) 작성단계 제 1 단계: 모든 엔티티와 그들의 관련사항을 모델화 제 2 단계: 모든 엔티티와 엔티티간의 관계를 모델화 제 3 단계: 모든 엔티티,엔티티간의 관계 및 엔티티의 속성을 모델화 1999.8 S/W Engineerin_YE Han
제1단계 ERD 작성 책 서점 출판사 구매자 저자 - 엔티티를 식별해서 이름을 부여한다 - 엔티티 간의 관련여부를 정의한다 1999.8 S/W Engineerin_YE Han
제2단계 ERD 작성 (0,m) (1,1) 팔린다 판 다 책 서점 (1,1) (1,1) (0,K) (0,n) 진열된다 진열한다 판 다 책 서점 (1,1) (1,1) (0,K) (0,n) 진열된다 진열한다 주문된다 주문한다 - 엔티티와 엔티티 사이의 관계에 이름을 부여한다 - Cardinality를 정의한다 1999.8 S/W Engineerin_YE Han
제3단계 ERD 작성 책 도서번호 책명 출판사 출판일자 가격 - 엔티티의 속성을 정의한다 - 관계의 속성을 정의한다 1999.8 S/W Engineerin_YE Han
엔티티 관계도(ERD): SUB 엔티티 책 엔티티 타입 교과서 참고서 소설 SUB 엔티티 1999.8 S/W Engineerin_YE Han
엔티티 관계도(ERD): Cardinality 1 : 1 일 대 일(One to One) 1 : n 일 대 다(One to many) n : 1 다 대 일(Many to One) m : n 다 대 다(Many to Many) 1999.8 S/W Engineerin_YE Han
앤티티 관계도(ERD): 예제 1999.8 S/W Engineerin_YE Han
엔티티 관계도(ERD)에 대한 주석 ERD에서 관계는 양방향이다 - 어느 방향으로 든지 읽을 수 있다 Cardinality는 항상 나타난다 ERD는 계층적으로 도출된다 ERD는 검토되고 필요에 따라서 편집된다 1999.8 S/W Engineerin_YE Han
엔티티 연합형 관계(AOT) AOT(Associative Object Type): 정보를 포함하고 있는 관계 엔티티 연합형 관계에 포함되는 정보는 사후에 도출될 수 없다 엔티티 연합형 관계는 이 관계가 연결하는 엔티티에 의존되어 있다 즉 엔티티가 없이는 존재하지 못한다 1999.8 S/W Engineerin_YE Han
엔티티 연합형 관계(AOT) 표기법 고객 책 구매 구매 엔티티의 속성 구매일자 등록번호 점원ID 1999.8 S/W Engineerin_YE Han
엔티티 관계도(ERD) 검토 하나의 엔티티에 특별한 실체(Instance)들이 있다면 이 엔티티는 Subtype 구조로 확장한다 엔티티간의 관계를 데이터로 부터 도출할 수 있다면 이 관계는 ERD상에 나타낼 필요가 없다 관계에 대한 정보가 포함되어 있다면 이 관계는 AOT로 표현한다 새로운 엔티티로 정의할 수 있는 “속성 부분집합(Attribute Subset)”을 찾는다 1999.8 S/W Engineerin_YE Han
구조적 분석 모델 - DFD ERD DFD PSPEC 엔티티 관계도 자료 흐름도 처리 명 세 서 상태 변화도 자료 사전 STD 1999.8 S/W Engineerin_YE Han
자료흐름 모델(Flow Model) 컴퓨터 시스템 모든 컴퓨터 시스템은 자료를 변환한다 입력자료 출력정보 1999.8 S/W Engineerin_YE Han
자료흐름 모델 표기법 외부 엔티티 처리 자료흐름 자료저장소 1999.8 S/W Engineerin_YE Han
외부 엔티티(External Entity) 컴퓨터 시스템 외부 엔티티 외부 엔티티 - 자료의 생산자 또는 소비자 (예: 사람, 장치,컴퓨터 시스템….) - 자료는 항상 어떤 곳에서 부터 발생되어서 어떤 곳으로 보내져야 한다 1999.8 S/W Engineerin_YE Han
처리(Process) - 자료 변환기 - 입력자료를 출력자료로 변경한다 밑변 삼각형의 면적을 계산한다 면적 높이 - 자료 변환기 - 입력자료를 출력자료로 변경한다 (예: 세금을 계산한다, 보고서를 작성한다, 그라프를 보여 준다…) - 자료는 시스템의 기능을 달성하기 위해서 항상 어떤 방식으로 처리되어야 한다 1999.8 S/W Engineerin_YE Han
자료흐름(Data Flow) 밑변 면적 삼각형의 면적을 계산한다 높이 1999.8 S/W Engineerin_YE Han
자료저장소(Data Store) 학생번호 학생의 학과, 성적... 학생정보 조회 학생 기록부 1999.8 S/W Engineerin_YE Han
자료흐름도의 관례(Conventions) 모든 심볼에는 명확한 이름을 부여한다 Level 0 도면에는 항상 외부 엔티티를 나타낸다 Level 0 도면에는 자료저장소를 나타내지 않는다 시스템으로 들어가는 자료흐름은 반드시 처리를 통과해야 한다 통제흐름은 나타내지 않는다 1999.8 S/W Engineerin_YE Han
자료흐름도의 관레 자료 저장소 자료흐름 3 자료흐름 1 처리 1 처리 2 자료흐름 2 자료흐름이 자료 저장소에 의해서 연결된다 자료흐름이 자료 저장소에 의해서 연결된다 외부 엔티티 자료 저장소 외부 엔티티 처리 자료 저장소 허락되지 않는다 1999.8 S/W Engineerin_YE Han
자료흐름도(DFD) 작성 - 1 시스템의 범위를 결정한다 외부 엔티티를 결정한다 외부 엔티티에서 시스템으로 입력되는 자료흐름과 시스템에서 외부 엔티티로 출력되는 자료흐름을 찾아낸다 Level 0 자료흐름도(배경도)를 작성한다 1999.8 S/W Engineerin_YE Han
Level 0 자료흐름도 - 예제 User Digital Video Processor Monitor Video Source Processing Request User Requested Video Signal Digital Video Processor Monitor Video Source NTSC Video Signal 1999.8 S/W Engineerin_YE Han
자료흐름도(DFD) 작성 - 2 자료흐름을 변환시키는 처리기능을 찾아낸다 자료흐름의 연속성이 유지되도록 자료흐름과 처리기능을 연결시킨다 Level 1 자료흐름도를 작성한다 처리기능의 확장비율은 1:5를 유지한다 1999.8 S/W Engineerin_YE Han
자료흐름도(DFD)의 계층 구조 a b x p y Level 0 c p2 f a p1 p4 Level 1 g d p3 e b 1999.8 S/W Engineerin_YE Han
자료흐름도 작성 노트 각 처리기는 하나의 기능을 수행하게 될 때까지 단계적으로 세분된다 자료흐름도의 Level의 숫자가 증가함에 따라서 확장비율은 감소한다 대부분의 시스템은 3 - 7 Level의 자료흐름도로 표현된다 하나의 자료흐름은 확장될 수도 있다 1999.8 S/W Engineerin_YE Han
자료흐름도 예제 Manufacturing cell software controls a robot by generating position coordinates that are transmitted to the robot. An operator inputs commands that cause the manufacturing cell software to read positioning and control commands from an NC command file. Components to be assembled are held in parts fixtures… a part ID is input for each component… an operator display is output to a monitor... 1999.8 S/W Engineerin_YE Han
Level 0 자료흐름도 작성 Position coordinator Part fixture Part ID Robot Manufacturing cell software operator Operator commands Operator display Monitor 1999.8 S/W Engineerin_YE Han
Level1 자료흐름도로 세분화 1999.8 S/W Engineerin_YE Han Raw position data coordinator Monitor fixture status Part priority Part ID Construct robot command Compute position data Computed block PGM ID NC record Operator commands Read operator input Read command blocks PGM ID Format monitor display Control status display NC command file 1999.8 S/W Engineerin_YE Han
Level 2 자료흐름도로 세분화 1999.8 S/W Engineerin_YE Han Raw position data coordinator Compute position data Raw position data Position coordinator g,x,y,z,t,s, eof Compute position x,y,z Format position Transmit position 1999.8 S/W Engineerin_YE Han
구조적 분석 모델 - STD ERD DFD PSPEC 엔티티 관계도 자료 흐름도 처리 명 세 서 상태 변화도 자료 사전 STD 1999.8 S/W Engineerin_YE Han
행동 모델(Behavioral Modeling) 사건(Event) 행동(Behavior) 시스템 1999.8 S/W Engineerin_YE Han
시스템의 상태(States of System) 밝히는 일련의 환경 상태변화(State Transition): 하나의 상태로부터 다른 상태로 옮겨 가는 것 사건(Event): 시스템으로 하여금 어떤 예측할 수 있는 행동을 일으키게 하는 것 행동(Action): 변화가 일어남으로 인해서 발생하는 처리기능 1999.8 S/W Engineerin_YE Han
행동 모델 작성 시스템의 상태 목록을 만든다 시스템이 어떤 상태에서 다른 상태로 변화되는 사건과 행동을 찾는다 상태변화도(State Transition Diagram)을 그린다 1999.8 S/W Engineerin_YE Han
상태변화도(STD) 표기법 상태 변화를 유발하는 사건 발생되는 행동 새로운 상태 1999.8 S/W Engineerin_YE Han
상태변화도(STD) 예제 Full and start Reading operator commands Invoke manage-copying Full Copies done Invoke read op input Invoke read op input Making copies Reloading paper Empty Invoke reload paper Jammed Invoke problem diagnosis Not jammed Invoke read op input Problem state 1999.8 S/W Engineerin_YE Han
상태변화도(STD)의 분활 S1 S2 S3 S4 S2.1 S2.2 S2.5 S2.3 S2.6 S2.4 Level 1 STD 1999.8 S/W Engineerin_YE Han
상태변화도 검토 모든 상태가 정의되고 표현되었는가 ? 각 상태에는 어떤 경로를 통해서든지 도달할 수 있는가 각 상태로부터 빠져 나오는 것은 가능한가 ? 각 상태에서 시스템은 모든 발생 가능한 사건에 대하여 정확하게 반응하는가 ? 1999.8 S/W Engineerin_YE Han
구조적 분석 모델 - PSPEC ERD DFD PSPEC 엔티티 관계도 자료 흐름도 처리 명 세 서 상태 변화도 자료 사전 STD DD 1999.8 S/W Engineerin_YE Han
처리 명세서(Process Specification) 입력 자료흐름 출력 자료흐름 처리 처리 명세서(PSPECS) - 서술형 - 구조적 언어 - 방정식 - 의사 결정도 - 의사 결정표 1999.8 S/W Engineerin_YE Han
처리명세서 - 예제 급여총액 세금을 계산한다 세금 PSPECS: 세금을 계산한다 - IF 급여총액 > 1,000,000 THEN 세금 = 급여총액 * 0.1 ELSE 세금 = 급여총액 * 0.05 1999.8 S/W Engineerin_YE Han
처리명세서 와 시스템 구조도 처리명세서 - 서술형 시스템 구조도 모듈 모듈 모듈 모듈 모듈 모듈 모듈 모듈 1999.8 입력 자료흐름 출력 자료흐름 처리 처리 명세서(PSPECS) - 서술형 - 구조적 언어 - 방정식 - 의사 결정도 - 의사 결정표 시스템 구조도 모듈 모듈 모듈 모듈 모듈 모듈 모듈 모듈 1999.8 S/W Engineerin_YE Han
처리명세서 와 시스템 명세서 처리명세서 처리명세서 처리명세서 시스템 명세서 1999.8 S/W Engineerin_YE Han
구조적 분석 모델 - DD ERD DFD PSPEC 엔티티 관계도 자료 흐름도 처리 명 세 서 상태 변화도 자료 사전 STD 1999.8 S/W Engineerin_YE Han
자료사전(Data Dictionary) 모든 자료흐름과 자료저장소의 내용이 상세하게 정의되는 곳 모든 엔티티(Data Object)가 정의되는 곳 데이터 항목(Data Item)이 어디에서 어떻게 사용되는 가를 알 수 있는 곳 1999.8 S/W Engineerin_YE Han
자료사전의 표기법 = is composed of + and [a l b ] a 와 b 중에서 선택 { }n 반복(n회) *…Text…* Comment 1999.8 S/W Engineerin_YE Han
자료사전의 구조 데이터 항목명(Data Item Name) 동의어(Alias) 사용되는 곳/사용되는 방법 데이터 항목 설명(Formal Description) 1999.8 S/W Engineerin_YE Han
자료사전 - 예제 데이터 항목명: 전화번호 동의어: 전화 사용되는 곳/사용되는 방법: 데이터 항목 설명: Read.phone.number(input) Display.charge(input) Analyze.lg.dist.calls(input) 데이터 항목 설명: 교환기의 회선에 부여되는 고유한 번호 1999.8 S/W Engineerin_YE Han
자료사전과 자료흐름도/자료저장소와의 관계 모든 자료흐름과 자료저장소는 자료사전에 정의되어야 한다 자료사전에 정의된 모든 데이터 항목은 자료흐름도에 나타나야 한다 자료사전의 사용되는 곳 에 기록된 모든 Entry는 각각이 하나의 처리이므로 자료흐름도에 나타나야 한다 엔티티 관계도(ERD)에 기록된 모든 엔티티는 자료사전에 나타나야 한다 자료사전에 기록된 모든 Entry는 자료흐름도, 다른 자료사전 Entry 혹은 처리명세서에 의해서 참조되어야 한다 1999.8 S/W Engineerin_YE Han
구조적 분석 및 설계 정보공학 분석기초 구조적 분석 1,2,3 설계원리 구조적 설계 1999.8 S/W Engineerin_YE Han
설계의 단계(Design Pyramid) 데이터 설계 절차 설계 구조 설계 인터페이스 설계 인터페이스 설계 절차 설계 구조 설계 데이터 설계 잘 못된 접근법 1999.8 S/W Engineerin_YE Han
시스템 설계 시스템의 품질은 설계단계에서 결정된다 시스템의 설계 과정을 서둘러서 끝내면 시스템의 테스트 과정은 그만큼 더 길어진다 1999.8 S/W Engineerin_YE Han
시스템 설계의 현실적 문제 설계에 투입하는 시간이 너무 적다 : 너무 빨리 코딩을 시작하고 싶어한다 분석에 투입하는 시간이 너무 적다 : 분석은 좋은 설계를 위한 기초이다 설계할 때 가끔 초점을 잘 못 맞춘다 : 구조적 프로그램 대부분의 개발자들이 높은 수준의 품질을 달성하는데 도움을 주는 설계의 규범(Criteria)을 인식하지 못한다 1999.8 S/W Engineerin_YE Han
시스템 설계 “What” 을” How”로 변경시키는 것 데이터 모델 설계서 설계 방법론 기능 모델 - 데이터 설계 행동 모델 - 데이터 설계 - 구조 설계 - 인터페이스 설계 - 절차 설계 행동 모델 1999.8 S/W Engineerin_YE Han
시스템 설계의 목적 소프트웨어의 요구사항을 만족시키는 모델을 만든다 소프트웨어의 성능을 만족시키는 모델을 만든다 설치하려고 하는 시스템에 순응하는 모델을 만든다 개발일정, 비용등과 같은 프로젝트의 제약사항을 만족시키는 모델을 만든다 1999.8 S/W Engineerin_YE Han
시스템 설계: 품질과의 연관성 소프트웨어를 단계적으로 추상화 한다 : 철저한 검토를 할 수 있다 검토 절차와 방법 (Review Mechanism)을 마련해서 구현할 때의 불일치, 모호함, 생략된 것을 찾아내게 한다 : 코드의 변경과 변경에 따르는 부작용을 최소화 한다 더 좋은 유지보수성에 도달하게 한다 : 변경하기 쉽고 부작용을 최소화 한다 테스트 케이스 설계를 위한 지침을 제공한다 : 철저하게 테스트 할 수 있고 많은 결함을 찾아낸다 1999.8 S/W Engineerin_YE Han
시스템 설계를 위한 기초 개념 추상화(Abstraction) 단계적 정련(Stepwise Refinement) 정보은익(Information Hiding) 모듈화(Modularity) 응집도(Cohesion) 결합도(Coupling) 설계척도(Design Metrics) 1999.8 S/W Engineerin_YE Han
추상화 출입문 들어간다 - 제조회사 - 모델번호 - 형태 - 열리는 방향 - 무게 - …… - …... - 문 앞으로 간다 - 손잡이를 잡는다 - 문을 연다 - 안으로 걸어간다 - 문을 닫는다 자료 절차 1999.8 S/W Engineerin_YE Han
단계적 정련 들어간다 - 문 앞으로 걸어간다 - 손잡이를 잡는다 - 문을 연다 - 안으로 걸어 간다 - 문을 닫는다 - 문이 열릴 때까지 반복한다 - 손잡이를 시계방향으로 돌린다 - if 손잡이가 돌아가지 않으면 - 키를 찾는다 - 구멍에 끼운다 - 시계방향으로 돌린다 - End if - 문을 당긴다 - 옆으로 제친다 -End Repeat 1999.8 S/W Engineerin_YE Han
정보 은익 인터페이스 프로그램1 프로그램2 - 알고리즘 - 자료구조 프로그램3 - 인터페이스 방식 비밀 - 자원활당 1999.8 S/W Engineerin_YE Han
정보은익의 이유 부작용이 발생할 가능성을 감소시킨다 설계단계의 결정이 전체 소프트웨어에 영향을 미치지 않게 한다 통제되는 인터페이스를 통해서만 컴뮤니케이션 하도록 강조한다 설계의 품질을 높여 주는 켑슐화를 가능하게 한다 고품질의 소프트웨어를 개발할 수 있게한다 1999.8 S/W Engineerin_YE Han
모듈이란 ? - Subprogram Procedure Function - Cluster of Subprogram Subroutine - Subprogram Procedure Function - Cluster of Subprogram - Classes and Objects 1999.8 S/W Engineerin_YE Han
모듈화의 이유 이해하기 쉽다 변경하기 쉽다 재사용이 쉽다 1999.8 S/W Engineerin_YE Han
모둘화: Trade-off 소프트웨어 비용 모듈 개발 비용 모듈 통합 비용 모듈의 수 최적 모듈 수 1999.8 모듈 통합 비용 모듈의 수 최적 모듈 수 1999.8 S/W Engineerin_YE Han
모듈의 크기 무엇이 있는가 ? 얼마나 큰가 ? 모듈 1999.8 S/W Engineerin_YE Han
모듈의 응집도 하나의 모듈이 잘 정의된 단일 기능을 수행하는 정도 모듈의 응집도는 높을 수록 좋다 모듈안에 있는 모든 행위(Activity)들은 기능적으로 서로 연관되어 있다 응집도가 높은 모듈은 절차적 추상화를 이루고 있다 모듈은 하나의 자료 추상화에만 작용한다 모듈의 응집성은 그 모듈의 인터페이스를 조사해 봄으로서 알 수 있다 1999.8 S/W Engineerin_YE Han
모듈의 결합도 하나의 모듈이 다른 모듈 및 외부 환경과 연결된 정도 모듈의 결합도는 낮을 수록 좋다 상호 연결성의 정도는 최소화 되어야 한다 정보은익의 개념이 가장 좋은 특성이다 단순한 인터페이스들이 사용되고 있다 환경과의 인터페이스는 고립된다(제외된다) 1999.8 S/W Engineerin_YE Han
설계 척도 기술적 특성을 활용하여 설계의 품질을 측정할 수 있다 이 척도들은 설계하고 있는 동안에 결정되고 구조적 척도: IEEE의 설계구조 척도 모듈의 척도: Cyclomatic complexity(Mc Cabe) 모듈간의 척도: Fan-out & Fan-in(Henry/Kafura) 이 척도들은 설계하고 있는 동안에 결정되고 공식적 기술 검토(FTR)에서 검토된다 1999.8 S/W Engineerin_YE Han
구조적 분석 및 설계 정보공학 분석기초 구조적 분석 1,2,3 설계원리 구조적 설계 1999.8 S/W Engineerin_YE Han
설계의 단계(Design Pyramid) 데이터 설계 절차 설계 구조 설계 인터페이스 설계 인터페이스 설계 절차 설계 구조 설계 데이터 설계 잘 못된 접근법 1999.8 S/W Engineerin_YE Han
데이터 설계 ERD와 DD를 이용하여 자료관리 시스템을 선정한다 각 엔티티(Data Object)에 대하여 자료구조를 정의한다 프로그램언어의 선택에 의해서 야기될 수 있는 제약사항을 고려한다 자료구조를 조작할 알고리즘을 선정한다 1999.8 S/W Engineerin_YE Han
설계수준에서의 엔티티 자료사전 엔티티 - Naming attributes - Descriptive “ - Referential “ 자료구조 1999.8 S/W Engineerin_YE Han
자료구조와 설계 Contiguous Data Structure data element data vectors table arrays files Non-Contiguous Data Structure linked lists stack queues doubly linked list binary trees Algorithms sorting searching look-ups re-ordering comparision building 1999.8 S/W Engineerin_YE Han
구조설계 고객의 요구사항: 침실 4개, 욕실 3개, 창문을 많이….. 구조설계 1999.8 S/W Engineerin_YE Han
시스템 내에 있는 모듈들이 서로 연결되는 통제계층을 정의한다 프로그램 구조 프로그램 모듈과 모듈간의 관계를 나타내는 모델 기능 분활 모델 모듈 계층 모델 m a b c d e f g h 시스템 내에 있는 모듈들이 서로 연결되는 통제계층을 정의한다 1999.8 S/W Engineerin_YE Han
수직적 분활 m a b c d e f g h 기능간의 컴뮤니케이션을 조정하기 위하여 통제모듈을 사용한다 기능 1 기능 2 기능 3 1999.8 S/W Engineerin_YE Han
수평적 분활 의사결정자 m a b c d e f g h 작업자 - 의사결정자와 작업자가 모두 만족하도록 설계한다 - 의사결정자는 구조의 최상위에 위치해야 한다 1999.8 S/W Engineerin_YE Han
분활구조의 장점 테스트하기 쉬운 소프트웨어를 만들게 한다 유지보수하기 쉬운 소프트웨어를 만들게 한다 부작용의 발생을 적게 한다 확장이 쉬운 소프트웨어를 만들게 한다 1999.8 S/W Engineerin_YE Han
분활구조의 범위 m * 영향범위는 통제범위 내에서 유지되어야 한다 a b c d e f g h r 영향범위: e,g,,h,r 1999.8 S/W Engineerin_YE Han
구조적 설계 목적: 접근법: 표기법: 분활된 프로그램 구조를 도출한다 DFD는 프로그램 구조로 Mapping 된다 PSPEC과 STD는 모듈의 내용으로 사용된다 표기법: 구조도 1999.8 S/W Engineerin_YE Han
구조적 Mapping DFD의 흐름유형(Flow Type)을 결정한다 흐름유형에 적합한 흐름경계(Flow Boundary)를 설정한다 흐름경계를 지침으로 사용하여 구조도로 Mapping한다 설계 품질지침을 사용하여 Mapping한 구조도를 정련한다 1999.8 S/W Engineerin_YE Han
DFD의 흐름유형 - 변환흐름 입력흐름 변환흐름 출력흐름 1999.8 S/W Engineerin_YE Han
DFD의 흐름유형 - 거래흐름 거래입력 행동경로 Action Path 1999.8 S/W Engineerin_YE Han
변환흐름 Mapping 입력흐름 변환흐름 출력흐름 ctl ctl ctl ctl 1999.8 S/W Engineerin_YE Han
변환 구조도에서 자료흐름 ctl ctl ctl ctl 입력 출력 1999.8 S/W Engineerin_YE Han
거래 Mapping 거래입력 행동경로 Action Path 거래 통제 구조 1999.8 S/W Engineerin_YE Han
거래 구조도에서 자료흐름 발송자(Dispatcher) 1999.8 S/W Engineerin_YE Han
거래 Mapping 단계 입력흐름 경로를 분리한다 차바퀴 쐐기(Spokes of the Wheel)를 찾음으로서 행동경로를 정의한다 각 행동경로상의 흐름을 조사한다 발송(Dispatch)과 통제(Control)의 구조를 정의한다 각 행동경로 흐름을 개별적으로 Mapping한다 1999.8 S/W Engineerin_YE Han
프로그램 구조가 Mapping 되면.. 설계원칙을 적용해서 설계의 품질을 평가한다 구조도를 검토한다 각 모듈의 처리기술서를 작성한다 각 모듈의 인터페이스를 정의한다 모듈 내부의 자료구조를 설계한다 설계 검토회(Walkthroughs)를 실시한다 1999.8 S/W Engineerin_YE Han
절차 설계(Procedural Design) 구조 설계 s 침실의 배선도 s 절차 설계 1999.8 S/W Engineerin_YE Han
절차 설계(Procedural Design) 코딩에 가까운 설계 작업 접근법: 모듈 설계 기술서를 검토한다 단계적 정련 기법을 사용한다 구조적 프로그램 기법을 사용한다 공식 기법을 사용한다 품질 평가를 위해서 Walkthrough를 수행한다 1999.8 S/W Engineerin_YE Han
단계적 정련(Refinement) 들어간다 - 문 앞으로 걸어간다 - 손잡이를 잡는다 - 문을 연다 - 안으로 걸어 간다 - 문을 닫는다 - 문이 열릴 때까지 반복한다 - 손잡이를 시계방향으로 돌린다 - if 손잡이가 돌아가지 않으면 - 키를 찾는다 - 구멍에 끼운다 - 시계방향으로 돌린다 - End if - 문을 당긴다 - 옆으로 제친다 -End Repeat 1999.8 S/W Engineerin_YE Han
한정된 논리구문(Logical Constructs)을 사용한다 절차 설계를 위한 구조적 프로그래밍 한정된 논리구문(Logical Constructs)을 사용한다 순서구문: 조건구문: If-then-else, Select-case 반복구문: Do-while, Repeat-until 읽기 쉽고, 테스트하기 쉬운 코드를 작성하게 한다 고품질의 소프트웨어를 개발하는데 중요한 역할을 한다 1999.8 S/W Engineerin_YE Han
절차 설계를 위한 모델 Flowchart Box diagram Pseudo code(e.g PDL) Programming language Decision table 1999.8 S/W Engineerin_YE Han