1. 소프트웨어 개발 방법론
SDLC : 시스템 요구분석부터 유지보수까지 전 공정을 체계화한 절차
요구사항 분석 - 설계 - 구현 - 테스트 - 유지보수
소프트웨어 생명주기 모델 종류
설명을 해놓고 어떤 모델인지 작성하라는 단답형 문제가 출제될 수 있다!
폭포수 모델(Waterfall Model) : 소프트웨어 개발시 각 단계를 확실히 마무리 지은 후 다음 단계로 넘어가는 모델
특징 : 가장 오래됨, 선형 순차적 모형, 성공 사례가 많음, 단계별 정의와 산출물이 정확함, 요구사항 변경이 어려움
⭐프로토타이핑 모델(Prototyping) : 고객이 요구한 주요 기능을 프로토타입(시제품)으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
특징 : 발주자, 개발자 모두에게 공동의 참조 모델을 제공, 구현 단계의 구현 골격, 비용이 많이 소모되지만 개발자와 사용자 모두 공동의 참조 모델이 만들어진다는 장점이 있다.
나선형 모델(Spiral model) : 위험을 최소화하기 위해서 점진적으로 완벽한 시스템을 개발해 나가는 모 델
⭐절자 : 계획 및 정의 -> 위험분석 -> 개발 -> 고객 평가
반복적 모델(Iteration) : 구축 대상을 병렬적으로 개발 후 통합, 반복적으로 개발하여 점증 완성시키는 SDLC 모델
소프트웨어 개발 방법론
SDLC 모델과 개발 방법론
모델은 요설구테유를 어떻게 할지 설명하는 것
개발방법론은 어떻게 개발을 할지 설명하는 것
관계는? 전 과정에서 영향을 주는 것이 개발방법론이다. ex) 폭포수 모델에 구조적 방법론을 사용할 수 있다.
구조적 방법론 : 기능에 따라 나누어 개발하고 이를 통합하는 분할과 정복 접근 방식의 방법론. 하향식 방법론. 구조적 프로그래밍 표현을 위해 나씨-슈나이더만 차트 사용
약술형으로 나올지도
나씨-슈나이더만 : 논리의 기술에 중점을 둔 도형식 표현 방법. 시각적으로 명확히 식별하는데 적합하다.
구성 : 순차처리, 선택, 반복 구조
정보공학 방법론 : 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
구조적 방법은 기능, 정보 공학은 정보(DB)
⭐객체지향 방법론 개녕 : 객체라는 기본 단위로 시스템을 분석 및 설계하는 방법론. 객체/클래스/메시지 사용
컴포넌트 기반 방법론 : 컴포넌트를 조립하여 하나의 새로운 응용 프로그램을 작성하는 방법. 개발 기간 단축으로 생산성 향상되고 확장성이 있다. 재사용이 가능하다.
⭐애자일 방법론(Agile) : 절차보다 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
제품 계역 방법론 : 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론. 임베디드(Embedded 내장된) 소프트웨어를 작성하는 데 유용한 방법론. 영역공학(domain)과 응용공항(application)으로 구분
애자일 방법론 : 즉시 피드백을 받아서 유동적으로 개발하는 방법
등장 배경 : 기존 개발 방법론의 한계를 극복하기 위해서!
실제 시험에 나왔던 괄호 채우기. 굵은 글자 체크
특징 : 요구사항은 기능 중심으로 정의 / 절차와 도구보다 개인과 소통을 중요하게 생각 / 요구 변화에 유연하고 신속하게 대응 / 소프트웨어가 잘 실행되는 데 가치 / 소객과의 피드백을 중요하게 생각
XP 개념 : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이는 애자일 방법
특징 : 1~3주의 반복 개발 주기, 5가지 가치와 12개의 실천 항목이 존재
⭐5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중
⭐12가지 기본 원리(실천 항목)
짝 프로그래밍 : 개발자 둘이서 짝으로 코딩하는 원리
공동 코드 소유(Collective.. 뭐들라) : 시스템에 있는 코드는 누구든지 언제라도 수정 가능하다는 원리
지속적인 통합(CI) : 매일 여러번 소프트웨어를 통합하고 빌드해야한다는 원리
계획 세우기
작은 릴리즈
메타포어
간단한 디자인
테스트 기반 개발(TDD)
⭐리팩토링 : 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템을 재구성한다는 원리
40시간 작업 : 주 40시간 이상을 일하지 말아야 한다는 원리
고객 상주 : 개발자들의 질문의 즉각 대답할 수 있는 고객을 프로젝트 풀타임으로 상주시켜야 한다는 원리
코드 표준
스크럼 : 매일 정해진 시간, 장소에서 짧은 시간 개발하는 프로젝트 관리 중심 방법론
주요요소 : 백로그(요구사항), 스프린트(반복기간), 스크럼 미팅(=데일리 미팅 약 15분), 스크럼 마스터(리더), 스프런트 회고, 번다운 차트(해야 할 일은 그래프로 표시)
린 : 낭비 요소를 제거하여 품질을 향상시킨 방법
객체 지향 개념 : 실세계의 개체를 속성과 메서드가 결합한 형태의 객체로 표현하는 기법
속성==값
메서드==연산
객체 지향 구성요소
클래스(붕어빵 틀) : 변수와 메서드를 정의하는 틀. 객체를 추상화하는 단위. 공통된 특성을 표현. 속성은 변수/행위는 메서드
객체(붕어빵) : 자신과 다른 것을 식별 가능한 대상
메서드 : 클래스로부터 생성된 객체를 사용하는 방법. 함수 또는 프로시저에 해당하는 연산 기능
메시지 : 객체간 상호작용을 위한 수단. 객체에게 행위를 하도록 지시하는 방법
인스턴스 : 클래스를 통해 만들어진 실제의 실형 객체. 실제 메모리상에 할당
속성(property) : 객체들이 가진 데이터 값들을 단위별로 정
객체 지향 기법
캡슐화(Encapsulation) : 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 기법
상속성(Inheritance) : 상위 클래스의 속성과 메서드를 하위 클래스에서 재정의없이 물려받아 사용하는 기법
다형성(Polymorphism) : 오버로딩, 오버라이딩
추상화(Absraction) : 공통 성질을 추출하여 추상 클래스를 설정
정보은닉(Information Hiding) : 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근 가능하게 하는 코드 보안 기술
관계성(Relationship) :
약자가 시험에 나왔기 때문에 영어 공부 열심히^^
객체 지향 설계 원리(SOLID)
단일 책임의 원칙(SRP)
개방 폐쇄 원칙(OCP)
리스코프 치환의 원식(LSP)
인터페이스 분리의 원칙(ISP)
의존성 역전의 원칙(DIP)
객체 지향 분석 개념 : 사용자의 ㅇ ㅛ구사항을 분석하여 모든 문제와 관련된 객체, 속성, 연산, 관계를 정의하여 모델링(OOA)
객체지향 방법론 종류
OOSE
⭐OMT
OOD
⭐OMT 분석 절차(객동기)
객체 모델링(Object Modeling) : 객체 다이어그램을 활용하여 표현
동적 모델링(Dynamic Modeling) : 상태 다이어그램을 활용하여 표현
기능 모델링(Functional Modeling) : 자료흐름도(DFD)를 활용하여 표현
coad와 yourdon 방법론
wirfs-brock 방법론
데이터 흐름도(DFD) : 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림. 자료 흐름 그래프 or 버블 차트라고도 함
특징 : 구조적 분석 기법. 데이터 흐름에 중점. 제어의 흐름은 중요하지 않고 시간의 흐름을 표현하기 힘듦
자료 사전(DD)
⭐프로젝트 관리 개념 : 주어진 기간 내에 최소 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
프로젝트 관리 대상
계획 관리
품질 관리
범위 관리
비용 관리
일정 관리
위험 관리
프로젝트 관리 3대 요소(3P)
사람(People) : 인적 자원
문제(Problem) : 사용자의 입장에서 문제를 분석하여 인식
프로세스
비용산정 모델 개념 :
분류
하향식 : 전문가의 견해
상향식 : 세부적인 요구사항과 기능에 따라 필요한 비용을 계산
LOC(lines of code) : 원시 코드(소스 코드) 라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용해서 비용을 산정
⭐Man Month : 한 사람이 1개월동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정
Man Month = LOC/프로그래머의월간 생산성
프로젝트 기간 = Man Month/프로젝트 인력
COCOMO(Constructive COst MOdel) : 보헴이 제안. 프로그램 규모에 따라서 비용을 산정. 규모에 따라 유형이 조직형(Organic Mode), 반 분리형(중간형, Semi-detached Mode), 임베디드 형(Embedded Mode)으로 나뉨
푸트남 모형 개념 : 각 단계별로 요구할 인력의 분포를 가정. 생명주기 예측 모형.
기능 점수(Function Point) : 인자별로 가중치를 부여하고 요인별 가중치를 합산하여 총 기능의 점수를 계산
일정관리 모델 : 일정 기한 내에 적절하게 완료될 수 있도록 관리
일정관리 모델 종류
주공정법(CPM)
PERT
중요 연쇄 프로젝트 관리(CPM)
⭐위험관리 : 위험 요소를 인식하고 그 영향을 분석하여 관리하는 활동
종류
알려진 위험 : 발견될 수 있는 위험
예측 가능한 위험 : 과거 경험으로 예측
예측 불가능한 위험 : 예측이 어려운 위험
위험 대응 전략
(회전 완수)회피/전가/완화/수용
'자격증 > 1. 요구사항 확인' 카테고리의 다른 글
03. 요구사항 확인 (0) | 2023.03.03 |
---|---|
02. 현행 시스템 분석 (0) | 2023.03.02 |
1. 요구사항 확인(진행중) (0) | 2023.02.22 |