CS 지식/소프트웨어 공학

소프트웨어 개발 과정 (정보처리기사)

윤씅 2024. 8. 9. 23:15

🧾 소프트웨어 생명주기 모델 프로세스

  1. 요구사항 분석
  2. 설계
  3. 구현
  4. 테스트
  5. 유지보수



🧾 소프트웨어 생명주기 모델 종류

  • 폭포수 모델
  • 프로토타이핑 모델
  • 나선형 모델
  • 반복적 모델



🧾 소프트웨어 개발 방법론 종류

  • 구조적 방법론 : 기능을 중심으로 나눠서 개발, 나씨-슈나이더만 차트 사용
  • 객체지향 방법론(OOD) : Object-Oriented Development
  • 컴포넌트 기반 방법론(CBD) : Component Based Development
  • 애자일 방법론



🧾 객체지향 설계 원칙 (SOLID)

    • Single Responsibility Principle : 단일 책임의 원칙
    • Open-Closed Principle : 개방 폐쇄 원칙
    • Liskov Substitution Principle : 리스코프 치환의 원칙 (하위 클래스는 상위 클래스로 변환가능)
    • Interface Segregation Principle : 인터페이스 분리의 원칙 (사용하지 않는 인터페이스는 구현하지 말기)
    • Dependency Inversion Principle :  의존성 역전의 원칙 (추상을 매개로 메시지를 주고받기)



🧾 객체지향 방법론 종류

  • OOSE : (야콥슨 개발) 유스케이스를 기준으로 사용
  • OMT : (럼바우 개발) 객체 모델링-> 동적 모델링(상태 다이어그램) ->기능 모델링(DFD자료 흐름도)
  • OOD : 부치개발



🧾 애자일 방법론의 종류

  • XP : 의사소통의 개선을 위함
  • 린 : 낭비를 막기위함
  • 스크럼 : 매일 정해진 시간, 장소에서 짧은 개발을 하기 위함



🧾 프로젝트 관리 - 비용산정

  • 델파이 기법 : 전문가의 경험적 지식 이용
  • LoC
  • Man Month
  • COCOMO
    • Organic (5만 라인 이하)
    • Semi-Detached (30만 라인 이하)
    • Embedded (30만 라인 이상)
  • 푸트남 : 단계별 인력 분포 가정



🧾 현행 시스템 파악 절차

구성,기능,인터페이스 파악 -> 아키텍처, 소프트웨어 구성 파악 -> 하드웨어, 네트워크 파악



🧾 소프트웨어 아키텍처

소프트웨어 구성요소와 특성, 구성요소 간의 관계를 표현하는 구조

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

1 : 유스케이스 뷰
4 : 논리 뷰, 구현 뷰, 프로세스 뷰, 배포 뷰

 

4개의 관점에서 요구사항 시나리오를 분석

 

 소프트웨어 아키텍처 패턴 종류

  • MVC 패턴
  • 클라이언트-서버 패턴
  • 파이프 필터 패턴
  • 브로커 패턴 : 컴포넌트들의 브로커 역할
  • 계층화 패턴 : 상위, 하위의 상호작용



🧾 디자인 패턴 (소프트웨어 설계시 해결법)

 생성 패턴

  • Builder
  • Prototype
  • Singleton : 객체를 하나만 생성
  • Factory Method : 상위 클래스를 상속받아 하위 클래스에서 사용
  • Abstract Factory : 클래스 말고 인터페이스를 통해 팩토리 생성

 

 구조 패턴

  • Adapter : 재사용할 수 있도록 중간에 추가해주는것
  • Proxy : 실제 객체에 직접 접근하지 않고, 대리 객체를 생성하여 접근
  • Bridge : 추상 계층과 구현 계층 분리
  • Decorator : 필요한 기능 추가
  • Composite : 단일 객체들을 트리로 묶어서 한번에 사용 가능
  • Facade : 사용자에게 간단한 인터페이스 제공

 

 행위 패턴

  • Strategy : 추상 클래스를 자유롭게 행위를 변형해 사용할 수 있다.
  • Observer : 객체의 상태가 바뀌면 연결되어 있는 객체에도 연락이 감
  • State : 상태를 클래스화해서 사용
  • Iterator : 컬렉션 자체를 노출시키지 않고 반복자를 사용하여 접근
  • Template Method : 서브 클래스를 만들어 유지보수 용이하게 함
  • Mediator : 객체들간에 중재자를 두어 통신
  • Visitor : 여러 클래스들을 돌아다니며 기능을 사용할 수 있게함
  • Command : 요구사항을 캡슐화해서 해결



🧾 미들웨어 - WAS

웹 서버를 다른 시스템 어플리케이션과 연결해 다양한 기능 수행을 가능하게 함



🧾 요구사항

  • 기능적 요구사항 : 기능에 대한 요구사항들
  • 비기능적 요구사항 : 제약조건에 대한 요구사항들
  • 요구사항 개발 단계
      1. 도출 : 인터뷰, 델파이 기법, 설문조사
      2. 분석
      3. 명세
      4. 확인 : 동료 검토, 워크 스루(오류 검출), 인스펙션(다른 전문가가 검사)