폭포수 모형
이전 단계로 돌아갈 수 없다는 전제 하에 각 단계를 확실히 매듭짓고 그 결과를 철저하게 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론
프로토타입 모형
실제 개발될 소프트웨어에 대한 견본품을 만들어 최종 결과물을 예측하는 모형
나선형 모형
여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발하는 모형 (보헴이 제안)
계획 수립, 위험 분석, 개발 및 검증, 고객 평가 (계분개고)
나선형 모델의 4가지 주요 활동의 순서? 예: 위험 분석, 고객 평가, 계획 수립, 개발 및 검증
애자일 모형
고객의 요구사항에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발하는 모형
소프트웨어 공학
소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문, 여러가지 방법론과 도구, 관리 기법들을 통하여 소프트 웨어의 품질과 생산성 향상을 목적으로 함
XP(eXtreme Programming)
고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
요구사항
소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건
기능 요구사항
시스템이 무엇을 하는지, 어떤 기능을 하는지 등의 기능이나 수행과 관련된 요구사항
비기능 요구사항
품질이나 제약사항과 관련된 요구사항
사용자 요구사항
사용자 관점에서 본 시스템이 제공해야 할 요구사항
시스템 요구사항
개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항
자료 흐름도 (DFD, Data Flow Diagram)
요구사항 분석에서 자료 흐름 및 변환 과정과 기능을 도형 중심으로 기술, 자료흐름 그래프 혹은 버블 차트라고도 함
자료 흐름도 기본 기호: ㅇ, →, =, ㅁ
자료 사전(DD, Data Dictionary)
자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것
자료 사전에서 사용되는 표기 기호: =, +, (), [ | ], {}, **
UML (Unified Modeling Language)
시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
사물 (Things), 관계 (Relationships), 다이어그램 (Diagram)
UML의 구성 요소 3가지
컴포넌트
문서, 소스코드, 파일, 라이브러리 등과 같은 모듈화된 자원으로, 재사용이 가능함
인터페이스
클래스나 컴포넌트의 전체 또는 일부분의 동작을 모아 놓은 것으로, 클래스가 외부적으로 가시화되는 행동을 표현
관계
UML에서 사물과 사물 사이의 연관성을 표현하는 것
연관 관계 (Association)
UML에서 2개 이상의 사물이 서로 관련되어 있는 관계
집합 관계 (Aggregation)
UML에서 하나의 사물이 다른 사물에 포함되어 있는 관계
포함 관계 (Composition)
UML에서 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
일반화 관계 (Generalization)
UML에서 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계
의존 관계 (Dependency)
UML에서 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간동안만 연관을 유지하는 관계
실체화 관계 (Realization)
UML에서 사물이 할 수 있거나 해야하는 기능으로, 서로를 그룹화 할 수 있는 관계
다이어그램
UML에서 사물과 관계를 도형으로 표현한 것
클래스 다이어그램
UML 구조적 다이어그램 중 하나로 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현
객체 다이어그램
UML 구조적 다이어그램 중 하나로 클래스에 속한 사물(객체)들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
컴포넌트 다이어그램
UML 구조적 다이어그램 중 하나로 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현
배치 다이어그램
UML 구조적 다이어그램 중 하나로 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
복합체 구조 다이어그램
UML 구조적 다이어그램 중 하나로 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
패키지 다이어그램
UML 구조적 다이어그램 중 하나로 유스케이스나 클래스 등 모델 요소들을 그룹화한 패키지들의 관계를 표현
유스케이스 다이어그램
UML 행위 다이어그램 중 하나로 사용자 요구를 분석하여 기능 모델링 작업에 사용, 사용자와 사용 사례로 구분
순차 다이어그램
UML 행위 다이어그램 중 하나로 시간의 흐름에 따라 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현
커뮤니케이션 다이어그램
UML 행위 다이어그램 중 하나로 동작에 참여하는 객체들이 상호작용 하는 과정과 객체들 간의 연관을 그림으로 표현
상태 다이어그램
UML 행위 다이어그램 중 하나로 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 어떻게 변화하는지 표현
활동 다이어그램
UML 행위 다이어그램 중 하나로 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
상호작용 개요 다이어그램
UML 행위 다이어그램 중 하나로 상호작용 다이어그램간의 제어 흐름을 표현
타이밍 다이어그램
UML 행위 다이어그램 중 하나로 객체 상태 변화와 시간 제약을 명시적으로 표현
《》
UML 스테레오 타입에서 사용하는 기호
스테레오 타입
UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하는 것
구조적 방법론
1960년대 많이 적용되었던 소프트웨어 개발 방법론으로 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
정보공학 방법론
계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료 (Data) 중심의 방법론
객체지향 방법론
현실 세계의 객체를 기계의 부품처럼 하나의 객체로 만들어 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
컴포넌트 기반 방법론 (CBD, Component Based Design)
기존 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
CASE (Computer Aided Software Engineering)
소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 정체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화 하는 것
LOC (source Line of Code)
각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
COCOMO (COnstructive COst Model)
원시 프로그램의 규모인 LOC(원시 코드 라인 수)에 의한 비용 산정 기법
조직형 (Organic Mode)
COCOMO 소프트웨어 개발 유형 중 기관 내부에서 개발된 중, 소규모의 소프트웨어를 개발하는데 적합한 방식으로 5만 라인 이하의 소프트웨어를 개발하는 유형
반분리형 (Semi-Detached Mode)
COCOMO 소프트웨어 개발 유형 중 하나로 조직형과 내장형의 중간형 소프트웨어에 적합, 30만 라인 이하의 소프트웨어를 개발하는 유형
내장형 (Embedded Mode)
COCOMO 소프트웨어 개발 유형 중 초대형 규모의 소프트웨어에 적합하며 30만 라인 이상의 소프트웨어를 개발하는 유형
Putnam 모형
소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상하는 모형
기능 점수 (FP) 모형
소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여하고 총 기능 점수와 영향도를 이용하여 기능 점수를 구현한 후 이를 이용해서 비용을 산정하는 기법
PERT
프로젝트에 필요한 전체 작업의 상호 관계를 표시하는 네트워크로 노드와 간선으로 구성, 낙관치, 기대치, 비관치를 간선에 표시함
CPM (Critical Path Method)
프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용하는 기법
간트 차트
프로젝트의 각 작업들이 언제 시작하고 언제 종료되는지에 대한 작업 일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표
ISO/IEC 12207
ISO에서 만든 표준 소프트웨어 생명 주기 프로세스
CMMI (Capability Maturity Model Integration)
소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
SPICE (Software Process Improvement and Capability dEtermination)
소프트웨어 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준 (== ISO/IEC 15504)
스키마
데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것
외부 스키마
사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
개념 스키마
데이터베이스의 전체적인 논리구조, 모든 응용프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재함
내부 스키마
물리적 저장장치의 입장에서 본 데이터베이스 구조
개념적 설계
데이터베이스 설계 과정 중 하나로 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
논리적 설계
데이터베이스 설계 과정 중 하나로 현실세계에서 발생하는 자료를 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환(mapping) 시키는 과정
물리적 설계
데이터베이스 설계 과정 중 하나로 논리적 구조로 표현된 데이터를 물리적 저장장치에 저장할 수 있는 데이터로 변환하는 과정
데이터베이스 구현
데이터베이스 설계 과정 중 하나로 논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정
제약 조건, 연산, 구조
데이터 모델에 표시할 요소 3가지
구조
데이터 모델에 표시할 요소 중 하나로 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현한 것
연산
데이터 모델에 표시할 요소 중 하나로 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
제약 조건
데이터 모델에 표시할 요소 중 하나로 데이터베이스에 저장될 수 있는 실제 데이터의 논리적 제약 조건
개체, 속성, 관계
데이터 모델의 구성요소 3가지
개체
데이터 모델의 구성요소 중 하나로 데이터베이스에 표현하려는 것, 개념이나 정보 단위같은 현실 세계의 대상체
속성
데이터 모델의 구성요소 중 하나로 데이터베이스를 구성하는 가장 작은 논리적 단위
관계
데이터 모델의 구성요소 중 하나로 개체와 개체 사이의 논리적 연결을 의미
E-R 모델 (Entity-Relationship)
개념적 데이터 모델의 가장 대표적인 것으로, 1976년 피터 첸에 의해 제안됨
개체, 관계, 속성, 다중값 속성, 기본키 속성, 개체 타입과 속성을 연결
기호의 의미
관계형 데이터베이스
2차원적인 표를 이용해 데이터 상호 관계를 정의하는 데이터베이스
릴레이션
데이터들을 표 형태로 표현한 것으로 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성
튜플
릴레이션을 구성하는 각각의 행
카디널리티 (기수)
튜플의 수를 의미
속성
데이터베이스를 구성하는 가장 작은 논리적 단위
도메인
데이터베이스에서 하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합
후보키
릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합, 유일성과 최소성을 모두 만족
기본키
후보키 중에서 특별히 선정된 메인 키, 중복된 값이나 NULL 값을 가질 수 없음
대체키 (Alternate Key)
후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미
슈퍼키
한 릴레이션 내에 있는 속성들의 집합으로 구성된 키, 유일성은 만족하지만 최소성은 만족하지 못함
외래키
다른 릴레이션의 기본 키를 참조하는 속성 또는 속성들의 집합
무결성
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성
개체 무결성
기본 테이블의 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질수 없다는 규정
참조 무결성
외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함, 참조할 수 없는 외래키 값을 가질 수 없다는 규정
도메인 무결성
주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
사용자 정의 무결성
속성값들이 사용자가 정의한 제약조건에 만족되어야 한다는 규정
관계대수
데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술한 절차적인 언어
관계해석
관계 데이터의 연산을 표현하는 방법, 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 가짐
σ
SELECT를 나타내는 기호
π
PROJECT를 나타내는 기호
Project
주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만듦, 수직 연산이라고도 함