🧩 BE
home

1. 요구사항 확인

1. 소프트웨어 생명주기 (SDLC)

SDLC

프로젝트 계획 → 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수

생명주기 모델 종류

폭포수
프로토타입
나선형
애자일(Agile)

2. 프로젝트 계획

비용 산정 모형

하향식 산정 방법
전문가 감정 기법
델파이 기법 : 한 명의 조정자와 여러 전문가의 의견을 종합
상향식 산정 방법
LoC : 코드 라인 수의 낙관치(o), 중간치(m), 비관치(p)를 측정 (o + 4m + p / 6)
MM(Man Month) : 한 사람이 1개월 동안 할 수 있는 일의 양
COCOMO : 보헴이 정의. 프로그램 규모에 따라 비용 산정
Putnam : 개발 주기의 단계별 요구
기능점수(FP) : 요구사항을 증가시키는 인자별로 가중치 부여

일정 관리 모형

주 공정법(CPM) : 임계경로 계산 (프로젝트 시작과 종료까지 가장 긴 시간이 걸리는 경로를 계산)
PERT: 비관치, 중간치, 낙관치의 3점 추정방식으로 일정 관리
중요 연쇄 프로젝트 관리(CCPM)

WBS

Work Breakdown Structure. 프로젝트 목표 달성을 위한 활동과 업무를 세분화

3. 요구사항 분석

요구사항 개발 프로세스

도출 → 분석 → 명세 → 확인 (도분명확)
도출 : 요구사항 식별, 인터뷰, 브레인스토밍, 워크샵
분석 : 개념 모델링, 정형 분석, 요구사항 할당
명세 : 문서화, 시스템 요구사항 명세서, 시스템 정의서
확인 : 프로토타이핑, 모델 검증, 인수 테스트

구조적 분석 도구

데이터/자료 흐름도 (DFD, Data Flow Diagram)
자료 사전 (DD, Data Dictionary)

객체 지향 분석 방법론

OOSE - 야콥슨
OMT - 럼바우
객체 모델링 → 동적 모델링 → 기능 모델링 (객동기)
객체 모델링 : 정보 모델링이라고도 함. 객체 간의 관계를 정의하여 ER 다이어그램을 만드는 과정. 객체 다이어그램으로 표현
동적 모델링 : 객체들 사이의 동적인 행위를 표현. 상태 다이어그램으로 표현
기능 모델링 : 자료 흐름을 중심으로 프로세스를 표현. 자료흐름도(DFD)로 표현
OOD - 부치

4. 소프트웨어 설계

현행 시스템 파악 개념

현재 개발하고자 하는 시스템의 개발 범위를 설정하기 위해 구성과 기능, 연계정보, 소프트웨어, 하드웨어, 네트워크의 구성을 파악하는 과정

현행 시스템 파악 절차

구성/기능/인터페이스 파악
시스템 구성 파악
시스템 기능 파악
시스템 인터페이스 현황 파악
아키텍처 및 소프트웨어 구성 파악
아키텍처 파악
소프트웨어 구성 파악
하드웨어 및 네트워크 구성 파악
시스템 하드웨어 현황 파악
네트워크 구성 파악

소프트웨어 아키텍처

여러 소프트웨어 구성요소와 외부 특성, 구성요소 간의 관계를 표현하는 시스템 구조나 구조체

소프트웨어 아키텍처 프레임워크

소프트웨어 집약적인 시스템에서 아키텍처가 표현해야하는 내용 및 이들 간의 관계를 제공하는 아키텍처 표준 기술

소프트웨어 아키텍처 4+1 뷰

고객의 요구사항을 정리해둔 시나리오를 4개의 관점에서 바라보는 소프트웨어적 접근 방법
유스케이스 뷰 : 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는데 사용 (사용자, 설계자, 개발자, 테스트 관점)
논리 뷰 : 시스템의 기능적 요구사항이 어떻게 제공되는지 설명 → 클래스 다이어그램
프로세스 뷰 : 시스템의 비기능적 속성. 병행 실행, 비동기, 이벤트 처리 등을 표현
구현 뷰 : 정적인 소프트웨어 모듈의 구성 → 컴포넌트 뷰, 컴포넌트 다이어그램
배포 뷰 : 물리적인 노드의 구성 → 시스템 아키텍처

소프트웨어 아키텍처 패턴

소프트웨어를 설계할 때 참조할 수 있는 전형적 해결 방식. 일반화되고 재사용 가능한 솔루션
계층화 패턴 : 추상화, 계층 간 연결
클라이언트-서버 패턴 : 하나의 서버와 다수의 클라이언트
파이프-필터 패턴 : 데이터 스트림을 생성하고 처리하는 시스템. 데이터 파이프라인
브로커 패턴 : 분리된 컴포넌트로 이루어진 분산 시스템. 컴포넌트 간 라우팅
MVC 패턴 : 대화형 애플리케이션을 모델, 뷰, 컨트롤러로 구조화

5. UML

고객/개발자 간 원활한 의사소통을 위해 표준화한 대표적 객체지향 모델링 언어. 여러 객체지향 방법론의 장점 통합.

UML 구성요소

사물, 관계, 다이어그램(6개의 구조, 7개의 행위 다이어그램) (사과다)
사물 : 구조(개념, 물리적 요소), 그룹, 행동, 주해(제약조건)
관계
연관 관계 : 2개 이상의 사물 서로 관련
집합 관계 : 하나의 사물이 다른 사물에 포함
포함 관계 : 포함되는 사물에게 영향 미침
일반화 관계 : 사물끼리 일반/구체적인지 표현
의존 관계 : 연관은 있으나 서로 영향을 줄 때만 연관을 유지
실체화 관계 : 행위, 인터페이스로 서로 그룹화할 수 있는 관계
구조 다이어그램 (클객컴패복패)
클래스 - 구조
객체 - 객체 간 관계
컴포넌트 - 구현, 인터페이스
배치 - 물리적 위치
복합체 구조 - 내부 구조
패키지 - 그룹화
행위 다이어그램 (유시커상활타상)
유스케이스 - 모델링
시퀀스 - 메시지
커뮤니케이션 - 메시지 + 연관관계
상태 - 상태 변화
활동 - 로직 흐름
타이밍 - 시간 제약
상호작용 개요 - 제어 흐름