상세 컨텐츠

본문 제목

요구사항 확인 01. 소프트웨어 개발 방법론

[TIL] 오늘의 공부/정보처리기사

by 개발소연자 2025. 2. 11. 02:38

본문

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

소프트웨어 생명주기 모델 프로세스 요설구테유

  1. 요구사항 분석: 이해관계자
  2. 설계
  3. 구현: 특정 프로그래밍 언어로 코딩
  4. 테스트
  5. 유지보수

소프트웨어 생명주기 모델 종류 폭프나반

  • 폭포수모델(Waterfall): 각 단계를 확실히 마무리 
  • 프로토타이핑모델(Prototyping): 프로토타입 = 시제품
  • 나선형 모델(Spiral): 위험 최소화 
    위험 = 일정이 늦어짐, 돈 부족, 기능 변경
    계획 및 정의 -> 위험 분석 -> 개발 -> 고객 평가 계위개고
  • 반복적 모델(Iteration)

소프트웨어 개발 방법론(SDM)

SDM != SDLC 비슷하지만 다른 개념

  • 구조적 방법론(Structured): 분할과 정복 접근 방식의 방법론
  • 정보공학 방법론(Information Engineering)
  • 객체지향 방법론(Object-Oriented): 객체
  • 컴포넌트 기반 방법론(CBD: Component Based)
  • 애자일 방법론(Agile): 사람이 중심
  • 제품 계열 방법론(Product Line)

애자일 방법론 유형

  • XP(eXtreme Programming): 5가지 가치와 12개의 실천항목, 사용자 스토리
  • 스크럼(SCRUM): 짧은 시간 개발, velocity(기간 내 처리 가능 수)
  • 린(LEAN): 칸반보드

XP의 5가지 가치

  • 용기(Courage)
  • 단순성(Simplicity)
  • 의사소통(Communication)
  • 피드백(Feedback)
  • 존중(Respect)

XP의 12개의 기본원리

  • 짝 프로그래밍(Pair Programming)
  • 공동 코드 소유(Collective Ownership)
  • 지속적인 통합(CI: Continous Integration)
  • 계획 세우기(Planning Process)
  • 작은 릴리즈(Small Release)
  • 메타포어(Metaphor)
  • 간단한 디자인(Simple Design)
  • 테스트 기반 개발(TDD: Test Driven Development)
  • 리펙토링(Refactoring)
  • 40시간 작업(40-Hour Work)
  • 고객 상주(On Site Customer)
  • 코드 표준(Coding Standard)

스크럼 주요 개념

  • 백로그(Backlog)
  • 스프린트(Sprint)
  • 스크럼 미팅(Scrum Meeting)
  • 스크럼 마스터(Scrum Master)
  • 스프린트 회고(Sprint Retrospective)
  • 번 다운 차트(Burn Down Chart)

객체 지향 분석 방법론

객체 지향 구성요소

  • 클래스(Class)
  • 객체(Object)
  • 메서드(Method)
  • 메시지(Message)
  • 인스턴스(Instance)
  • 속성(Property)

객체 지향 기법 캡상다추정관

  • 캡슐화(Encapsulation)
  • 상속성(Inheritance)
  • 다형성(Polymorphism)
    오버로딩: 같은 이름 다른 매개변수의 여러 메서드
    오버라이딩: 부모 메서드 무시하고 재정의
  • 추상화(Abstraction)
  • 정보은닉(Information Hiding)
  • 관계성(Relationship)

데이터를 참조하는 관계 종류

  • 연관화(Association): is-member-of, 홍길동씨는 회계팀이다.
  • 집단화(Aggregation): is-part-of, 엔진과 바퀴는 자동차의 구성이다.
  • 분류화(Classification): is-instance-of, 홍길동씨와 임꺽정씨는 사람이다.
  • 일반화(Generalization): is-a
  • 특수화(Specialization): is-a, 버스와 기차는 교통수단이다.

객체 지향 설계 원칙(SOLID) 

SOLID

  • 단일 책임의 원칙(SRP: Single Responsibility)
  • 개방 폐쇄 원칙(OCP: Open Close): 확장에는 열려있고, 변경에는 닫혀있어야 한다.
  • 리스코프 치환의 원칙(LSP: Liskov Substitution): 상위 개념으로 교체 가능해야 한다.
  • 인터페이스 분리의 원칙(ISP: Interface Segregation): 사용하지 않으면 구현하지 마라.
  • 의존성 역전의 원칙(DIP: Dependency Inversion)

객체 지향 분석 (OOA)

객체 지향 분석 방법론 종류

  • OOSE - 야콥슨: 기능적 요구사항 중심
  • OMT - 럼바우: 그래픽 표기법
  • OOD - 부치
  • 코드-요든 방법론
  • 워프-브록 방법론

럼바우 분석절차 객동기

  • 객체 모델링: ERD
  • 동적 모델링: 상태 다이어그램
  • 기능 모델링: 자료 흐름도(DFD)

프로젝트 관리

프로젝트 관리 대상

  • 계획 관리
  • 품질 관리
  • 범위 관리

프로젝트 관리 3대 요소(3P)

  • 사람(People)
  • 문제(Problem)
  • 프로세스(Process)

비용산정 모형

비용산정 모형 분류

하향식 산정방법

  • 델파이 기법

상향식 산정방법

  • 코드 라인 수(LoC): 낙관치1: 중간치4: 비관치1
  • Man Month
    Man Month = LoC / 프로그래머의 월간 생산성
    프로젝트 기간 = Man Month / 프로젝트 인력
  • COCOMO 모형: 조직형, 반분리형, 임베디드형
  • 기능점수(FP) 모형

일정 관리 모델

일정 관리 모델 종류

  • 주 공정법(CPM: Critical Path Method)
  • PERT(Program Evaluation and Review Technique)
  • 중요 연쇄 프로젝트 관리(CCPM: Critical Chain Project Management)

위험 관리

위험의 종류

  • 알려진 위험
  • 예측 가능한 위험
  • 예측 불가능한 위험

위험 대응 전략

  • 회피(Avoidance)
  • 전가(Transference)
  • 완화(Mitigation)
  • 수용(Acceptance)

관련글 더보기