티스토리 뷰

정처기 실기

1. 요구사항 확인

Howu 2023. 7. 12. 00:13

CH 01 S/W 개발 방법론

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

  • 폭포수 모델: 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델. 선형 순차적 모형 또는 고전적 생명주기 모형이라고도 함.
  • 프로토타이핑 모델: 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델.
  • 나선형 모델: 점진적으로 위험을 최소화하며 개발해 나가는 모델
  • 반복적 모델: 구축대상을 나누어 병렬적으로 개발 후 통합하거나 반복적으로 개발하여 점증 완성시키는 모델.

* 소프트웨어 개발 방법론

  • 애자일 방법론: 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템 개발.
    • 용기
    • 단순성
    • 의사소통
    • 피드백
    • 존중
  • XP의 12가지 기본원리
    • 짝 프로그래밍
    • 공동 코드 소유: 언제라도 수정 가능
    • 지속적인  통합: 매일 여러 번 s/w를 통합하고 빌드
    • 계획 세우기
    • 작은 릴리즈: 작은 시스템 만들고 짧은 단위로 업데이트
    • 메타포어: 고객과 개발자 간의 의사소통을 원활하게 한다는 원리
    • 간단한 디자인: 단순한 시스템을 설계한다는 원리
    • TDD: 테스트를 먼저 수행하고 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다는 원리
    • 리팩토링: 기능은 바꾸지 않고 중복제거, 단순화 등을 위해 시스템을 재구성하는 원리
    • 40시간 작업: 일주일에 40시간 이상을 일하지 말아야 한다는 원리
    • 고객 상주: 개발자들의 질문에 즉각 대답할 수 있는 고객을 상주시켜야 함
    • 코드 표준: 모든 코드에 대한 코딩 표준 정의로 효과적인 공동 작업
  • SCRUM
    • 백로그: 제품과 프로젝트에 대한 요구사항
    • 스프린트: 2-4주의 짧은 개발 기간동안 반복적 수행으로 개발품질 향상
    • 스크럼 미팅: 매일 15분 정도 미팅으로 to-do list 계획 수립
    • 스크럼 마스터: 문제를 인지 및 해결하는 사람
    • 스프린트 회고: 스프린트 주기를 되돌아보며 규칙 준수 여부와 개선점 등을 확인 및 기록
    • 번 다운 차트: 남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트

* 비용산정, 일정 관리 모형

  • 하향식 산정 방법: 전문가 판단/델파이 기법
  • 상향식 산정 방법: LoC, Man Month, COCOMO, Putnam, FP
    • LoC: 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정하고 비용을 산정하는 방식
    • Man Month: 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 방식
    • COCOMO: 보헴이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방식
      • Organic: 5만 라인 이하의 s/w를 개발하는 유형
      • Semi-Detached Mode: 30만 라인 이하의 s/w를 개발하는 유형
      • Embedded Mode: 30만 라인 이상의 s/w를 개발하는 유형
    • FP: 요구 기능을 증가시키는 인자별로 가중치를 부여하고 요인별 가중치를 합산하여 총 기능의 점수를 계산해 비용 산정
  • 일정관리 모델 종류
    • 주 공정법(CPM): 여러 작업의 수행 순서가 얽혀 있는 프로젝트 일정을 계산하는 방법
    • PERT: 일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법
    • 중요 연쇄 프로젝트 관리(CCPM): 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법

 

CH 02 현행 시스템 분석

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

  • 유스케이스: 다른 뷰를 검증하는데 사용하는 뷰
  • 논리 뷰: 기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰
  • 프로세스 뷰: 자원을 효율적으로 사용하고자 하는 개발 자, 시스템 통합자 관점
  • 구현 뷰: 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰
  • 배포 뷰: 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰

 

* 디자인 패턴

  • 생성(빌프팩추싱)
    • Builder: 객체를 생성하는 방법과 객체를 구현하는 방법을 분리함으로써 서로 다른 표현 결과를 만들 수 있는 디자인 패턴
    • Prototype: 기존 객체를 복제함으로써 객체를 생성
    • Factory Method: 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
    • Abstract Factory: 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
    • Singleton: 한 클래스에 한 객체만 존재하도록 제한
  • 구조
    • Bridge: 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴
    • Decorator: 객체 간의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주어 상속의 대안으로 사용하는 디자인 패턴
    • Facade: 통합된 인터페이스를 제공
    • Flyweight: 클래스의 경량화를 목적으로 하는 디자인 패턴
    • Proxy: 특정 객체로의 접근을 제어하기 위한 용도로 사용
    • Composite: 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 하는 패턴
    • Adapter: 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움
  • 행위(-tor)
    • Mediator: 상호 작용의 유연한 변경을 지원
    • Interpreter: 여러 형태의 언어 구문을 해석할 수 있게 만드는 디자인 패턴
    • Iterator: 내부구조를 노출하지 않고 복잡 객체 원소를 순차적으로 접근 가능하게 해주는 패턴
    • Observer: 상호 작용하는 객체 사이에서 느슨하게 결합하는 디자인 패턴
    • Visitor: 특정 구조를 이루는 복합 객체의 원소 특성에 따라 동작을 수행할 수 있도록 지원하는 행위
    • Memento: 객체를 이전 상태로 복구시켜야 하는 경우 작업취소 요청 가능
    • Template Method: 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않고 특정 단계에서 수행하는 내역을 바꾸는 패턴
    • State: 객체 상태에 따라 행위 내용을 변경
    • Command: 요구사항을 객체로 캡슐화
    • Strategy: 행위 객체를 클래스로 캡슐화해 동적으로 행위를 자유롭게 변환
    • Chain of Responsibility: 한 요청을 2개 이상의 객체에서 처리

 

* OSI 7계층

  • Application: 사용자와 네트워크 간 연결 (HTTP, FTP, 데이터)
  • Presentation: 데이터 형식 설정과 부호교환, 암/복호화 (JPEG, MPEG, 데이터)
  • Session: 연결 접속 및 동기제어 (SSH, TLS, 데이터)
  • Transport: 신뢰성 있는 통신 보장 (TCP, UDP, 세그먼트)
  • Network: 단말기 간 데이터 전송을 위한 최적화된 경로 제공 (IP, 패킷)
  • Data Link: 동기화, 흐름 제어 등의 전송 기능 제공 (이더넷, 프레임)
  • Physical: 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환 (전송단위:비트)

'정처기 실기' 카테고리의 다른 글

9. 소프트웨어 개발 보안 구축  (0) 2023.07.12
8. 서버프로그램 구현  (0) 2023.07.12
4. 통합 구현 | 5. 인터페이스 구현  (0) 2023.07.12
3. 데이터 입출력  (0) 2023.07.12
2. 화면 설계  (1) 2023.07.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함