소프트웨어 생명주기 SDLC
: 시스템이 개발될 때부터 요구분석, 유지보수 등 생애를 마칠 때 까지의 작업 프로세스
1. 요구사항분석 | 2. 설계 | 3. 구현 | 4. 테스트 | 5. 유지보수 |
소프트웨어 생명주기 모델 종류
폭포수 모델 | 각 단계를 확실히 마무리 짓고 다음 단계로 넘어가는 모델이며, 과거 사례가 많고 단계별 정의와 산출물이 명확 순차적 접근이기 때문에 관리가 편리하지만 요구사항 변경이 어렵다는 단점 |
프로토타이핑 모델 | 고객 요구사항을 프로토타입으로 구현하고 피드백을 반영해서 소프트웨어 개발 요구분석이 용이하고 타당성 검증이 가능하나, 프로토타입 폐기에 따른 비용 증가가 단점 |
나선형 모델 | 위험성 분석으로 인한 위험감소, 반복개발로 유연한 대처가 강점 단계를 반복하기 때문에 관리가 어려움 |
반복적 모델 | 증분반식으로 병행 개발을 해서 일정 단축이 가능하지만 관리 비용이 단점 |
소프트웨어 개발 방법론
: 소프트웨어 개발 과정에 적용되는 방법, 절차, 기법
구조적 방법론 | 기능에 따라 나누어 개발하는 하향식 방법론, 통합하는 분할과 정복 접근 방식 |
정보공학 방법론 | 정보시스템 개발에 필요한 관리절차와 작업기법 체계화 |
객체 지향 방법론 | 복잡한 현실 세계를 사람이 이해하는 방식으로 시스템에 적용하는 방식, 객체/클래스/메시지 사용 |
컴포넌트 기반 방법론 | 컴포넌트를 조립하여 응용 프로그램을 작성하며 개발 기간 단축으로 생산성과 재사용이 용이함 |
애자일 방법론 | 절차보다 사람이 중심이 되어 변화에 유연하게 개발하는 신속 적응적 경량 개발 방법론 |
제품 계열 방법론 | 특정 제품에 적용하고 싶은 공통 기능을 정의하여, 임베디드 소프트웨어 개발에 유용 |
애자일Agile 방법론
: 절차보다 사람이 먼저이고 개발과 동시에 피드백을 받아 유동적으로 개발하는 방식
XP, 스크럼, 린 이렇게 세 방식이 있음
XP | 1~3주의 반복 개발주기로 즉각적 피드백이 특징임 5 가치: 용기/단순성/의사소통/피드백/존중 12 기본원리: pair programming/collective ownership/continuous integration/metaphor/TDD/refactoring/on site customer 등등 |
스크럼 | 매일 정해진 시간, 장소에서 개발하는 방법론 프로젝트에 대한 요구사항인 Backlog, 2~4주의 짧은 기간동안 개발품질 향상하는 Sprint가 주요 개념이다 |
린 LEAN | 도요타의 린 시스템 품질기법을 개발 프로세스에 적용한 방법론 |
객체지향 Object Oriented
: 실세계의 개체를 속성과 메소드가 결합한 형태의 객체로 표현
구성요소
- 클래스: OOP에서 데이터 추상화 단위, 유사한 객체를 믂어서 공통된 특성을 표현하는 틀
- 객체: 각각의 상태와 식별성을 가져 식별가능한 대상이고 메모리에 할당됨
- 메소드: 객체가 메시지를 받아 실행해야 할 객체의 연산, 객체를 사용하는 방법
- 메시지: 객체에게 행위를 하도록 지시하는 방법, 상호작용 수단
- 인스턴스: 클래스에 속한 각각의 객체
- 속성: 한 클래스 내에 있는 객체들의 데이터 값(성질, 식별, 현재 상태)
객체지향 기법
캡슐화 | 외부와 경계를 만들고 필요한 인터페이스만 밖으로 노출하여 정보 은닉과 관계 깊음 |
상속성 | 상위 클래스의 속성과 메서드를 하위 클래스가 물려받음 |
다형성 | 하나의 메시지에 상속받은 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용, 오버로딩/오버라이드 |
추상화 | 공통 성질을 추출해서 추상 클래스 설정 |
정보 은닉 | 코드 내부 데이터와 메서드를 숨기는 코드 보안 기술 |
관계성 | 데이터 참조 관계 표현 기법, 연관화/집단화/분류화/일반화/특수화 |
- 오버로딩: 같은 이름의 메서드를 매개변수 유형, 개수를 다르게해 여러개 가지는 기법
- 오버라이드: 상위 클래스 메서드를 하위 클래스에서 재정의
객체지향 설계 원칙 SOLID
단일 책임의 원칙 | 하나의 클래스는 하나의 목적을 위해서 생성 |
개방 폐쇄의 원칙 | 소프트웨어 구성요소는 확장에는 열려있고 변경에는 닫혀있음 |
리스코프 치환 원칙 | 서브 타입은 어디서나 자신의 기반 타입으로 교체 가능 |
인터페이스 분리 원칙 | 클래스 자신이 사용하지 않는 인터페이스는 구현 X |
의존성 역전 원칙 | 어떤 클래스를 참조 사용할때, 그 대상의 상위 요소를 참조해야 함 |
객체지향 분석 방법론
- OMT: 객체모델링→동적모델링 →기능모델링 순서로 진행하고 럼바우가 만들었음
- OOD: 설계 문서화를 강조하여 다이어그램 중심으로 개발하는, 부치가 만든 방법론
- Coad-Yourdon: E-R 다이어그램으로 객체 행위 모델링
- Wirfs-Brocks: 분석과 설계 간의 구분 X
프로젝트 관리- 비용산정 모형
하향식 - 전문가 판단, 델파이 기법
상향식 - Loc, Man Month, COCOMO, Putnam, FP
Loc | 원시 코드 라인수의 낙관치, 중간치, 비관치를 이용해서 비용 산정 (낙관치+4*중간치+비관치)/6 |
Man Month | Man month = LoC/프로그래머 월간 생산성 |
COCOMO | Man Month 기준으로 조직형<반 분리형<임베디드형으로 나뉨 |
Putnam | 소프트웨어 개발주기 단계별로 필요한 인력 분포 가정 |
FP | 가중치 부여해서 비용 산정 총 기능점수*[0.65+(0.1*총 영향도)] |
'정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 6. 프로그래밍 언어 활용 - C언어 (2) | 2025.07.18 |
---|---|
[정보처리기사 실기] 4. 통합 구현 - 연계 메커니즘 구성, 내외부 연계 모듈 구현 (2) | 2025.07.16 |
[정보처리기사 실기] 3. 데이터 입출력 구현 - 데이터 저장소 (1) | 2025.07.07 |
[정보처리기사 실기] 2. 화면 설계 - UI 요구사항 확인, UI 설계 (1) | 2025.07.06 |