[정보처리기사] I.요구사항 확인 - 현행 시스템 분석 정리

2024. 7. 11. 14:56·책/2024 수제비 정보처리기사
목차
  1. 소프트웨어 생명주기 모델
  2. 애자일 방법론
  3. 객체지향 구성요소
  4. 객체 지향 기법

소프트웨어 생명주기 모델

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

애자일 방법론

더보기
  • 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론
  • 예시) XP, 스크럼, 린

애자일 방법론 - XP

       가치 (5가지)

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

      기본원리 (12가지)

더보기
  •  짝 프로그래밍(Pair Programming)
    • 개발자 둘이서 짝으로 코딩하는 원리
  • 공동 코드 소유(Collective Ownership)
    •  시스템에 있는 코드는 누구든지 언제라도 수정 가능하다는 원리
  • 지속적인 통합(CI; Continuous Integration)
    • 매일 여러 번씩 소프트웨어를 통합하고 빌드해야 한다는 원리
  • 계획 세우기(Planning Process)
    • 고객이 요구하는 비즈니스 가치를 정의하고, 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려주어야 한다는 원리
  • 작은 릴리즈(Small Release)
    • 작은 시스템을 먼저 만들고, 짧은 단위로 업데이트한다는 원리
  • 메타포어(Metaphor)
    • 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자간의 의사소통을 원활하게 한다는 원리
  • 간단한 디자인(Simple Design)
    • 현재의 요구사항에 적합한 가장 단순한 시스템을 설계한다는 원리
  • 테스트 기반 개발(TDD; Test Driven Development)
    • 작성해야 하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다는 원리
  • 리팩토링(Refactoring)
    • 프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 통해 시스템을 재구성한다는 원리
  • 40시간 작업(40-Hour work)
    • 개발자가 피곤으로 인해 실수하지 않도록 일주일에 40시간 이상을 일하지 말아야 한다는 원리
  • 고객 상주(On Site Customer)
    • 개발자들의 질문에 즉각 대답해 줄 수 있는 고객을 프로젝트에 풀타임으로 상주시켜야 한다는 원리
  • 코드 표준(Coding Standard)
    • 효과적인 공동 작업을 위해서는 모든 코드에 대한 코딩 표준을 정의해야 한다는 원리

애자일 방법론 - 스크럼 

더보기
  • 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
  • 주요 개념 : 백로그, 스프린트, 스크럼 미팅, 스크럼 마스터, 스프린트 회고, 번 다운 차트...

애자일 방법론 - 린

더보기
  • 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론
  • JIT(Just In Time), 칸반(Kanban) 보드 사용

 

객체지향 구성요소

 

클래스

더보기
  • 특정 객체 내에 있는 변수와 메서드를 정의하는 일종의 틀
  • 객체 지향 프로그래밍에서 데이터를 추상화하는 단위
  • 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현
  • 속성은 변수의 형태로, 행위는 메서드 형태로 선언

객체 (Object)

더보기
  • 물리적, 추상적으로 자신과 다른 것을 식별 가능한 대상
  • 클래스에서 정의한 것을 토대로 메모리에 할당됨
  • 객체마다 각각의 상태와 식별성을 가짐

메서드 (Method)

더보기
  • 클래스로부터 생성된 객체를 사용하는 방법
  • 객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산
  • 전통적 시스템의 함수(Function) 또는 프로시저(Procedure)에 해당하는 연산 기능

메시지 (Message)

더보기
  • 객체 간 상호 작용을 하기 위한 수단
  • 객체에게 어떤 행위를 하도록 지시하는 방법
  • 객체 간의 상호 작용은 메시지를 통해 이루어짐
  • 메시지는 객체에서 객체로 전달됨

인스턴스 (Instance)

더보기
  • 객체 지향 기법에서 클래스를 통해 만든 실제의 실형 객체
  • 클래스에 속한 각각의 객체
  • 실제로 메모리상에 할당

속성 (Property)

더보기
  • 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의
  • 성질, 분류, 식별, 수량, 현재 상태 등에 대한 표현 값

객체 지향 기법

캡슐화(Encapsulation)

더보기
  • 서로 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 기법
  • 결합도 낮아지고 재사용이 용이
  • 정보 은닉과 관계가 깊음
  • 변경 발생 시 오류의 파급 효과가 적음

상속성(Inheritance)

더보기

상위 클래스의 속성과 메서드를 하위 클래스에서 재정의 없이 물려받아 사용하는 기법

다형성(Polymorphism)

더보기
  • 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
  • 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질
    • 오버로딩(Overloading)
    • 오버라이딩(Overriding)

 

추상화(Abstraction)

더보기

공통 성질을 추출하여 추상 클래스를 설정하는 기법

정보 은닉(Information Hiding)

더보기
  • 코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술
  • 필요하지 않은 정보는 접근할 수 없도록 하여 한 모듈 또는 하부 시스템이 다른 모듈의 구현에 영향을 받지 않게 설계됨
  • 모듈 사이의 독립성을 유지하는 데 도움을 줌

관계성(Relationship)

더보기

두 개 이상의 엔터티 형에서 데이터를 참조하는 관계를 나타내는 기법

객체 지향 설계 원칙(SOLID)

-      단일 책임의 원칙(SRP; Single Responsibility Principle)

더보기
  •  하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중되어 있어야 한다는 원칙
  •  객체 지향 프로그래밍의 5원칙 중 나머지 4원칙의 기초원칙

-      개방 폐쇄 원칙(OCP; Open Close Principle)

더보기

소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고, 변경에는 닫혀있어야 한다는 원칙

-      리스코프 치환의 원칙(LSP; Liskov Substitution Principle)

더보기

서브 타입(상속받은 하위 클래스)은 어디서나 자신의 기반 타입(상위 클래스)으로 교체할 수 있어야 한다는 원칙

-      인터페이스 분리의 원칙(ISP; Interface Segregation Principle)

더보기
  • 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙
  • 객체 설계 시 특정 기능에 대한 인터페이스는 그 기능과 상관없는 부분이 변해도 영향을 받지 않아야 한다는 원칙

-      의존성 역전의 원칙(DIP; Dependency Inversion Principle)

더보기

객체에서 어떤 클래스를 참조해서 사용하는 경우, 그 클래스를 직접 참조하는 것이 아니라 그 대상의 상위 요소인 추상 클래스나 인터페이스로 참조하라는 원칙

 

객체지향 분석 방법론

 

-      OOSE(Object Oriented Software Engineering)

더보기
  • 야콥슨(Jacobson)
  • 유스케이스에 의한 접근 방법으로 유스케이스를 모든 모델의 근간으로 활용하는 방법론
  • 분석, 설계, 구현 단계로 구성
  • 기능적 요구사항 중심의 시스템

-      OMT(Object Modeling Technology)

더보기
  • 럼바우(Rumbaugh)
    • 그래픽 표기법을 이용하여 소프트웨어 구성요소를 모델링하는 방법론
    • 분석 절차는 객 -> 동 -> 기 순서로 진행
      • 객체 모델링(Object Modeling) = 정보 모델링(Information Modeling)
        • 시스템에서 요구하는 객체를 찾고 객체들 간의 관계를 정의하여 ER 다이어그램을 만드는 과정까지의 모델링
        • 객체 다이어그램을 활용하여 표현
      • 동적 모델링(Dynamic Modeling)
        • 시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위를 표현하는 모델링
        • 상태 다이어그램을 활용하여 표현
      • 기능 모델링(Functional Modeling)
        • n프로세스들의 자료 흐름을 중심으로 처리 과정 표현하는 모델링
        • 자료 흐름도(DFD)를 활용하여 표현

-      OOD(OObject Oriented Design)

더보기
  • 부치(Booch)
    • 설계 문서화를 강조하여 다이어그램 중심으로 개발하는 방법론
      • 분석과 설계의 분리가 불가능
      • 분석하는 데 이용된 객체 모델의 설계 시 적용

 

비용산정 모형

분류 설명 종류
하향식
산정방법
경험이 많은 전문가에게 비용 산정을 의뢰하거나 여러 전문가와 조정자를 통해 산정하는 방식 - 전문가 판단
- 델파이 기법
상향식
산정방법
세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식 - 코드 라인 수(LoC)
- Man Month
- COCOMO 모형
- 푸트남 모형
- 기능점수(FP) 모형

LoC(Lines of Code) 모형

 

더보기

 Man Month 모형

더보기
  • 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 방식
  • (Man Month) = (LoC) / (프로그래머의 월간 생산성)
  • (프로젝트 기간) = (Man Month) / (프로젝트 인력)

COCOMO

더보기
  • 보헴(Boehm)이 제안
  • 프로그램 규모에 따라 비용을 산정하는 방식
  • 규모에 따라 조직형, 반 분리형, 임베디드형으로 나뉨

푸트남 모형

더보기
  • 생명주기 예측 모형
  • 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함

기능점수(FP; Function Point) 모형

더보기

FP = 총 기능점수 x [0.65 + (0.1 x 총 영향도)]

 

일정관리 모델

더보기

프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델

-      주 공정법(CPM; Critical Path Method)

더보기
  • 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법
  • 모든 자원 제약사항을 배제한 상태로 프로젝트의 시작과 끝을 나타내는 노드와 노드 간의 연결을 통해 공적을 계산하기 위한 액티비티 표기법
  • 가장 긴 시간이 걸리는 경로를 계산.

-      PERT(Program Evaluation and Review Technique)

더보기

일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법

-      중요 연쇄 프로젝트 관리(CCPM; Critical Chain Project Management)

더보기

주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법

 

출처: 2024 수제비 정보처리기사 실기 ( 6판 ) 

'책 > 2024 수제비 정보처리기사' 카테고리의 다른 글

[정보처리기사] 서버 인증 및 접근 통제  (0) 2024.10.17
[정보처리기사] SW 개발 보안을 위한 공격기법의 이해  (5) 2024.10.14
[정보처리기사] CHAP 02 데이터베이스 기초 활용  (0) 2024.10.04
[정보처리기사] 내/외부 연계 모듈 구현  (4) 2024.10.02
[정보처리기사] 디자인 패턴  (2) 2024.07.13
  1. 소프트웨어 생명주기 모델
  2. 애자일 방법론
  3. 객체지향 구성요소
  4. 객체 지향 기법
'책/2024 수제비 정보처리기사' 카테고리의 다른 글
  • [정보처리기사] SW 개발 보안을 위한 공격기법의 이해
  • [정보처리기사] CHAP 02 데이터베이스 기초 활용
  • [정보처리기사] 내/외부 연계 모듈 구현
  • [정보처리기사] 디자인 패턴
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
개발 꿈나무좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    jsp
    어노테이션
    MVC
    멘토씨리즈 자바
    스프링 프레임워크
    Di
    정보처리기사
    @repository
    생성자
    객체지향
    Spring
    수제비
    상속
    정처기 실기
    ViewResolver
    오블완
    오버로딩
    html
    DispatcherServlet
    codeup 4891 : 행복
    recoverabledataaccessexception
    이벤트 스케줄러
    2-layered 아키텍처
    java
    aop
    정처기
    @Component
    티스토리챌린지
    @service
    정보처리기사 실기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
[정보처리기사] I.요구사항 확인 - 현행 시스템 분석 정리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.