소프트웨어 요구 사항의 정의 현실 세계의 문제를 해결하기 위해 반드시 제시되어야 하는 특성 사람들이 인식하는 문제점을 해결하기 위해 개발되거나 수정되는 소프트웨어에 반드시 존재해야 하는 필요한 특성 소프트웨어 요구 사항의 특징 검증이 가능해야 함 한정된 자원을 감안한 요구 사항들의 Trade-off를 결정할 수 있는 우선순위가 있어야 함 프로젝트의 진척도를 확인할 수 있는 상태 값이 있어야 함 전체 소프트웨어 라이프사이클을 걸쳐서 형상 관리 대상이 되어야 함 소프트웨어 요구 사항의 구분 제품 요구 사항 : 개발될 시스템에 대한 요구 사항 기능적 요구 사항 : 시스템이 수행해야 할 기능적인 요구 사항(기능) 비기능적 요구 사항 : 해결책을 제어하기 위해 작동하는 제약 조건이나 품질 요구 사항 (성능, 유지..
분석 모델의 목표 고객 요구 사항 도출 소프트웨어 설계를 위한 기초 생성 소프트웨어 구축 시 검증해야 할 사항 정의 분석 모델의 구조 데이터 사전(Data Dictionary) 정의 소프트웨어가 소비하거나 생산하는 모든 데이터 객체들에 대한 명세를 포함하는 저장소(Repository) 요구 사항을 분석하는 동안에 발견된 데이터들에 대한 항목을 정의하기 위한 모델링 도구로서, 개발할 시스템에서 필요로 하는 모든 데이터들의 목록을 저장 장점 이름을 관리하기가 편리함 조직화된 정보 저장소의 역할을 함 표현 정보 명칭, 별칭(Alias), Where-used/How-used, 항목 명세, 보충 정보 객체-관계 다이어그램(ERD; Entity-Relationship Diagram) 데이터 객체들 사이의 관계성 데..
데이터 모델링의 목적 시스템에 의해 처리되는 주요 데이터 개체(Entity) 도출 각 데이터 개체의 구성 및 속성 파악 객체의 현존 위치 및 개체들간 관계 파악 개체와 개체를 처리하는 프로세스간의 관계 도출 데이터 개체, 속성, 관계 데이터 모델 구성 요소 개체, 속성,관계 연관화 개체, 슈퍼 타입/서브 타입 데이터 개체 소프트웨어가 이해해야 할 합성 정보, 즉 다수의 다른 성질(속성)을 갖는 대상에 대한 표현 예) 외부 개체, 사물, 이벤트, 역할, 조직 단위, 장소, 파일 등 데이터 개체 서술은 개체와 그 개체의 모든 속성을 포함 속성 데이터 개체의 성질을 정의하며, 세가지 선택적 특성을 가짐 데이터 개체의 한 인스턴스를 명명 인스턴스를 서술 다른 테이블에 있는 다른 인스턴스를 참조 테이블 내의 인스..
정보 흐름 모델 Context Diagram 데이터 흐름도(DFD) DFD의 정의 데이터가 입력되어 출력으로 이동할 때 적용되는 변환과 정보 흐름을 나타내는 그래픽 기법 혹은 모델링 도구 데이터 흐름 그래프, 버블 차트, 워크플로 다이어그램, 기능 모델 DFD의 주요 목적 도메인에 대한 기능적인 측면을 모델링하기 위함 정보의 흐름을 분석하기 위함 표기법 외부 개체(터미널;Terminal) 모델화할 시스템과 통신하는 외부 개체 사람, 그룹, 조직, 부서, 외부 시스템 등 프로세스(버블;Bubble) 모델화할 시스템 내부에 존재하는 정보 변형자(기능) 입력 데이터 흐름을 출력 데이터 흐름으로 변형 시킴 데이터 흐름(데이터 객체) 시스템의 한 부분에서 또 다른 부분으로의 정보 이동을 표현 데이터 저장소(Sto..
상태 천이도(STD) STD의 정의 시스템이 외부 사건들의 결과로서 어떻게 작용하는가, 즉 시스템 행위의 다양한 모드(즉, 상태)를 표현하고 상태 천이가 이루어지는 방법을 나타냄 시스템의 상태와 상태를 변화시키는 사건들을 묘사함으로써 시스템에 대한 행위를 모델링 하는 도구 STD의 목적 시스템의 행위를 모델링하기 위한 기초 역할 표기법 상태(State) - 시스템을 관찰할 수 있는 행위 천이(Transition) 시스템의 상태를 변화시키는 사건 조건(Condition)과 행위(Action)를 포함 조건(Condition), 사건(Event) 상태의 변화를 야기 시스템이 감지할 수 있는 외부 환경에 있는 사건, 신호, 인터럽트 등 행위(Action) 시스템이 상태를 변경할 때 취하는 행위(출력 생성, 메시..
단계 1 : ERD(Entity-Relation Diagram) 생성 정보를 생산하고 소비하는 외부 개체들과 입.출력 데이터 개체들을 식별/목록화 개체들 간에 존재하는 연계성에 대해 관계를 정의 관계에 대해 카디널리티와 모달리티를 정의 단계 2).3) 을 반복하여 빠진 사항을 식별 간 개체와 관계의 속성을 정의 ERD의 정형화 및 검토 단계 2 : DFD(Data Flow Diagram) 생성 레벨 0 의 데이터 흐름도는 시스템을 하나의 프로세스로 표현 주요한 입력 및 출력 데이터가 신중히 식별되어 표현 데이터 흐름도 분할 시 프로세스, 데이터 흐름, 저장소를 세분화 프로세스, 데이터 흐름, 저장소, 외부 개체에 대해 의미 있는 이름을 명시 상위 레벨의 데이터 흐름이 하위 레벨에서도 지속되어야 함 한 번..
서론 : 소프트웨어 목적 서술 시스템 참조 전체 개요 소프트웨어 프로젝트 제약 조건 정보 서술 : 소프트웨어가 해결해야 하는 문제에 대해 상세하게 서술 정보 내용 표현 정보 흐름 표현 데이터 흐름 제어 흐름 기능 서술 : 문제 해결을 위해 요구되는 각 기능에 대한 서술 기능 분할(Functional Partitioning) 기능 서술(Functional Description) 처리 시나리오 제한/제약 조건 성능 요구 사항 설계 제약 조건 지원 다이어그램 제어 서술(Control Description) 행위 서술 : 외부 사건들의 결과와 내부적으로 발생한 제어 특성 서술 시스템 상태 사건(Event)와 행위(Action) 확인(Validation)과 확인 기준(Criteria) : 요구 사항 명세중 가장 ..
프로젝트 규모 추정 개요 프로젝트 규모 추정 개념 컴퓨터 기반 시스템에서 소프트웨어는 가장 비싼 요소 소프트웨어 비용, 노력 추정 변수 : 인산, 기술, 환경, 정치 비용과 노력을 추정하기 위한 방법 프로젝트 후반부까지 추정을 지연시킴 : 실질적이지 못함 분해 기술(Decomposition Technique) 이용 : 주요 기능들과 관련된 소프트웨어 공학 활동에 의해 분해되어 활동 별로 추정 경험적 모델을 이용 : 과거 경험/프로젝트 테이터를 바탕으로 추정 Y = f(x) Y=추정값(비용,노력), x= LOC(Line of Code), FP(Function Point) 자동 추정 도구를 구입하여 이용 소프트웨어 규모 산정 방법 하향식 산정 방법 경험적 단어(시스템을 이해한 후), 개발자 합의(인력, 시스..
SOA의 개념 분산 환경의 소프트웨어 요구 조건 개발 언어에 상관없이 서비스를 제공할 수 있어야 하고, 컴포넌트가 특정 플랫폼에 종속되지 않아야 하며, 제공되는 서비스의 유지보수가 용이해야 함 분산 개발 환경으로 SOA의 재조명 1996년 등장한 SOA는 CORBA, DCOM 등 분산 객체 환경으로 발전했으나 시스템 감의 호환성 문제로 더 이상 발전하지 못하고 2004년 Web Service 개념의 등장으로 다시 주목 받게 됨 SOA의 정의 및 특징 SOA의 정의 독자적인 서비스들이 효과적으로 통합되어 비즈니스 프로세스를 형성할 수 있도록 하는 아키텍처 혹은 소프트웨어 설계 방법 서로 다른 운영체제와 프로그래밍 언어에 구애 받지 않고 애플리케이션 간에 데이터와 프로세스를 교환할 수 있도록 하는 기업의 소..
소프트웨어 개발 방법론의 필요성 개발 경험 축적 및 재활용을 통한 개발 생산성 향상(작업의 표준화/모듈화) 효과적인 프로젝트 관리(수행 공정의 가시화 포함) 정형화된 절차와 표준 용어의 제공으로 의사소통 수단 제공 각 단계별 검증 및 종결 승인을 통한 일정 수준의 품질 보증 소프트웨어 개발 방법론의 구성 요소 구성요소 내용 비고 작업절차 프로젝트 수행 시 이루어지는 작업 단계의 체계 단계별 활동 및 활동별 세부 작업 열거, 활동의 순서 명시 단계.활동.작업 작업방법 각 단계별로 수행해야 하는 일 절차/작업 방법(누가, 언제, 무엇을 작업하는지를 기술) 작업방법 산출물 각 단계별로 만들어야 하는 산출물의 목록 및 양식 설계서 등 관리 프로젝트의 진행 기록 계획 수립, 진행 관리, 품질, 외주, 예산, 인력..