소프트웨어 생명주기
소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것
모형 종류
폭포수형 모형 | - 가장 오래된 개발 방법론(고전적) - 한 단계가 끝나야지 넘어갈 수 있음 |
|
프로토타입 모형 | 시제품 | |
나선형 모형 | 보헴이 제안 | 계획 수립 - 위험 분석 - 개발 및 검증 - 고객 평가 순으로 반복 |
애자일 모형 | - 요구사항에 유연하게 대응 - 시제품 끊임없이 제안 - 일정 주기 반복해서 개발 |
스크럼 XP 칸반 Lean 기능 중심 개발(FDD) |
스크럼, 스프린트
개발 프로세스 중 실제 개발 작업을 진행하는 과정으로, 보통 2-4주 정도의 기간 내에 진행하는 프로세스
XP
요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
[ 핵심 가치 ]
- 의사소통
- 단순성
- 용기
- 존중
- 피드백
소프트웨어 공학
소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문
요구사항
기능 요구사항
- 입출력
- 데이터 저장/연산
- 반드시 수행해야하는 기능
- 제공받기 원하는 기능
비기능 요구사항
- 성능
- 인터페이스
- 구축에 필요한 요구사항
- 테스트
- 보안
요구사항 명세 기법
정형 명세 기법
- 수학적 원리 기반
- 수학적 기호 사용
비정형 명세 기법
- 상태/기능/객체 중심
- 자연어 사용
- SADT, ER모델
요구사항 개발 프로세스
도출 - 분석 - 명세 - 확인
분석
개발 대상에 대한 사용자의 요구사항을 이해하고 문서화하는 활동
자료 흐름도(DFD)
- 버블차트 라고도 함
- 구조적 분석 기반
- 화살표, 원, 사각형, 직선을 이용하여 자료 흐름 표시
- 프로세스 O 원
- 자료 흐름 -> 화살표
- 자료 저장소 - 직선
- 단말 ㅁ 사각형
자료 사전
- 자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것
= | 자료의 정의 |
+ | 자료의 연결 |
() | 자료의 생략 |
[] | 자료의 선택 |
{} | 자료의 반복 |
** | 자료의 설명 |
SADT
시스템 정의, 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위한 도구
SoftTech 사에서 개발
구조적 요구분석을 하기 위해 블록 다이어그램을 채택한 자동화 도구
HIPO
시스템 실행 과정인 입력, 처리, 출력의 기능을 표현한 것
하향식 소프트웨어 개발을 위한 문서화 도구
차트 종류 - 가시적 도표, 총체적 도표, 세부적 도표
UML
개발자와 고객간의 원활한 의사소통을 위해 표준화한 객체지향 모델링 언어
구성 요소
- 사물
- 관계
- 다이어그램
관계
- 연관 관계
2개 이상의 사물이 서로 관련되어 있는 관계(사람 / 집)
화살표
- 집합 관계
하나의 사물이 다른 사물에 포함되어 있는 관계(컴퓨터 / 프린터)
빈 마름모
- 포함 관계
집합관계의 특수한 형태
사물의 변화가 포함되는 사물에게 영향을 미치는 관계(문 / 키)
채워진 마름모
- 일반화 관계
하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계(커피 / 아메리카노)
빈 화살표
- 의존 관계
서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계(등급 / 할인율)
점선 화살표
- 실체화 관계
사물이 할 수 있거나 해야하는 기능으로, 서로를 그룹화 할 수 있는 관계(날다 / 비행기)
점선 빈 화살표
다이어그램
- 구조적 다이어그램
클래스 다이어그램
객체 다이어그램 - 럼바우
컴포넌트 다이어그램
배치 다이어그램
복합체 구조 다이어그램
패키지 다이어그램
- 행위 다이어그램
유스케이스 다이어그램
순차 다이어그램 - 주고받는 메시지 표현
커뮤니케이션 다이어그램 - 메시지와 객체들 간 연관관계
상태 다이어그램 - 럼바우
활동 다이어그램
상호작용 개요 다이어그램
타이밍 다이어그램
스테레오 타입
UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하는 것
표현 형태 : << >>
다이어그램 구성 요소
클래스 다이어그램
- 클래스
- 제약조건
- 관계
패키지 다이어그램
- 패키지
- 객체
- 의존 관계
유스케이스 다이어그램
- 시스템
- 액터
- 유스케이스
- 관계
순차 다이어그램
- 액터
- 객체
- 생명선
- 실행 상자
- 메시지
- 객체 소멸
- 프레임
커뮤니케이션 다이어그램
- 액터
- 객체
- 링크
- 메시지
상태 다이어그램
- 상태
- 시작 상태
- 종료 상태
- 상태 전환
- 이벤트
- 프레임
활동 다이어그램
- 액션/액티비티
- 시작노드
- 종료노드
- 조건 노드
- 병합 노드
- 포크 노드
- 조인 노드
- 스윔레인
구조적 방법론
사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
특징) 자료 흐름도, 자료 사전, 소단위 명세서
컴포넌트 기반 방법론
기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
특징) 개발 기간 단축, 새로운 기능 추가 쉬운 확장성, 재사용 가능
소프트웨어 재사용
이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것
CASE
소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
- 생명주기 전 단계 연결
- 다양한 모형 지원
- 그래픽 지원
비용 산정 기법
LOC 기법
원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치 구하고 이를 이용해 비용 산정하는 기법
노력(인월) = 개발기간 * 투입인원
= LOC / 1인당 월평균 생산 코드 라인 수
수학적 산정 기법
경험적 추정 모형, 실험적 추적 모형
COCOMO 모형 |
보헴이 제안 LOC(원시 코드 라인 수)에 의한 비용 산정 기법 |
조직형 - 5만 라인 이하 반조직형 - 30만 라인 이하 내장형 - 30만 라인 이상 |
|
Putnam 모형 | 노력 분포를 예상 Rayleigh-Norden |
기능 점수 모형(FP) | 가중치 부여, 합산하여 비용 산정하는 기법 |
비용 산정 자동화 추정 도구
SLIM - Putnam 자동화 추정 도구
ESTIMACS - FP 자동화 추정 도구
PERT
전체 작업의 상호 관계를 표시하는 네크워크
작업들 간의 상호 관련성, 결정 경로, 결제 시간, 자원 할당 등을 제시하는 프로젝트 일정 계획 기법
CPM
작업을 나열하고 작업에 필요한 소요 기간을 예측하는 데 사용하는 기법
임계 경로 = 최장 경로
간트차트
작업 일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표
ISO/IEC 12207
ISO에서 만든 표준 소프트웨어 생명 주기 프로세스
- 기본
- 자원
- 조직
CMMI
소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
단계
- 초기
- 관리
정의
정량적 관리
최적화
SPICE
소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
수행 능력 단계
0 - 불완전
1 - 수행
2 - 관리
3 - 확립
4 - 예측
5 - 최적화
소프트웨어 개발 프레임워크
소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 제공해주는 반제품 형태의 소프트웨어 시스템, JAVA 기반의 대표적인 소프트웨어 = 스프링(Spring)
특징
- 모듈화
- 재사용성
- 확장성
- 제어의 역흐름
'정보처리기사' 카테고리의 다른 글
정보처리기사, 실기 요약 정리 (5. 정보보안) (0) | 2025.03.26 |
---|---|
정보처리기사, 실기 요약 정리 (4. 네트워크) (1) | 2025.03.26 |
정보처리기사, 실기 요약 정리 (3. 운영체제) (0) | 2025.03.20 |
정보처리기사, 실기 요약 정리 (2. 데이터베이스) (0) | 2025.03.20 |
정보처리기사, 실기 요약 정리 (1. 소프트웨어 구축) (1) | 2025.03.19 |