Certificate/정보처리기사

[velog] 정보처리기사 실기 요약 [1] 요구사항 확인 (애자일 ~ 전체)

Walker_ 2024. 3. 10. 13:04

https://velog.io/@dlsdk2526/%EC%A0%95%EC%B2%98%EA%B8%B0-%EC%8B%A4%EA%B8%B0-%EC%9A%94%EC%95%BD-1-%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD-%ED%99%95%EC%9D%B8

 

정처기 실기 요약 [1] 요구사항 확인

소프트웨어 생명주기(SDLC)시스템의 전 공정을 체계화한 절차SDLC 모델 종류폭포수 모델 : 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어감, 선형 순차적 모형(고전적 생명주기 모형)프로토

velog.io

좋은 공부자료를 공유해주시는 분들 감사합니다.


SCRUM : 매일 정해진 시간, 장소에서 짧은 시간의 개발

 - 백로그 : 제품과 프로젝트에 대한 요구사항 

 - 스프린트 : 2~4주의 짧은 개발 기간 반복적 수행

 - 스크럼 미팅 : 매일 15분 정도 미팅

 - 스크럼 마스터 : 프로젝트 리더

 - 스프린트 회고 : 스프린트 주기 되돌아보며 규칙 준수 여부, 개선점 확인

 - 번 다운 차트

LEAN : 도요타, 낭비 요소를 제거하여 품질 향상

 - 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화

 

비용산정 모형

하향식

 - 델파이 기법 : 전문가의 경험적 지식을 통한 문제 해결 및 미래예측을 위한 기법

상향식

 - LoC(Line of Code) : 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정해 예측치를 구해 비용을 산정하는 방식

 - Man Month : 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용 산정하는 방식

 - COCOMO : 보헴이 제안, 프로그램 규모에 따른 비용 산정

  - 조직형 : 5만 라인 이하

  - 반 분리형 : 30만 라인 이하

  - 임베디드형 : 30만 라인 이상

 - 푸트남 : 개발주기의 단계별로 요구할 인력의 분포를 가정하는 방식, 생명주기 예측 모형

 - 기능점수 : 요구 기능에 따른 가중치 부여

 

일정관리 모델

 주 공정법 : 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정 계산(임계 경로는 가장 오래 걸리는 경로)

 PERT : 일의 순서를 계획적으로 정리하기 위한 수렴 기법, 비관치, 중간치, 낙고나치의 3점 추정방식 이용

 주 공정 연쇄법 : 자원제약사항을 고려해 일정 작성

 

현행 시스템 파악

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

 

소프트웨어 아키텍처

 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체

 

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

 고객의 요구사항을 정리해 놓은 시나리를 4개의 관점에서 바라보는 소프트웨어적인 접근방법

  - 유스케이스 뷰 : 유스케이스 또는 아키텍처 도출, 다른 뷰를 검증하는데 사용

  - 논리 뷰 : 시스템의 기능적인 요구사항

  - 프로세스 뷰 : 시스템의 비기능적 요구사항

  - 구현 뷰 : 모듈의 구성을 보여줌

  - 배포 뷰 : 어떻게 배치되는가

 

소프트웨어 아키텍처 패턴 유형

 - 계층화 패턴 : 서로 마주 보는 두 개의 계층 사이에서만 상호작용

 - 클라이언트-서버 패턴 : 하나의 서버와 다수의 클라이언트

 - 파이프-필터 패턴 : 데이터 스트림을 생성하고 처리하는 시스템에서 사용

 - 브로커패턴 : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 원격 서비스 실행을 통해 상호작용이 가능 

 - MVC패턴 : 모델(핵심기능, 데이터 보관), 뷰(사용자에게 정보 표시), 컨트롤러(사용자로부터 요청 입력 받아 처리)

 

소프트웨어 아키텍처 비용 평가 모델 종류

 - SAAM : 변경 용이성, 기능성에 집중

 - ATAM : 아키텍처 품질 속성을 만족시키는지 판단

 - CRAM : 경제적 의사결정에 대한 요구를 충족하는지

 - ADR: 응집도 평가 모델

 - ARID : 특정 부분 품질 요소

 

디자인패턴 *중요*

SW설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설꼐 방법을 정리한 패턴

 

생성 패턴

 - 빌더 : 복잡한 인스턴스를 조립해 만드는 구조

 - 프로토타입 : 처음부터 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정해 사용하는 패턴

 - 팩토리 메소드 : 상위 클래스에서 인터페이스 정의, 하위클래스에서 인스턴스 생성

 - 앱스트랙트 팩토리 : 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공

 - 싱글톤 : 전역 변수 사용하지 않고 객체 하나만 생성, 그 객체는 어디서든지 참조할 수 있음

 

구조 패턴

 - 어댑터 : 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할

 - 브릿지 : 기능 계층과 구현 계층을 연결, 구현부에서 추상 계층 분리

 - 콤포지트 : 객체들의 관계를 트리 구조로 구성

 - 데코레이터 : 기존에 구현되어 있는 클래스에 필요한 기능 추가해 나감

 - 패케이트 : 복잡한 시스템에 대해 단순한 인터페이스 제공, 시스템 구조에 대한 파악 쉽게

 - 플라이웨이트 : 메모리 절약, '클래스의 경량화' 목적

 - 프록시 : 실체 객체에 대한 대리 객체

 

행위 패턴 

 - 메디에이터 : 중간에 통제, 중재자

 - 인터프리터 : 언어의 다양한 해석, 구문의 해석을 맡는 클래스 각각 작성

 - 인터래터 : 컬렉션 구현 방법 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공

 - 템플릿 메소드 : 상위 클래스-추상, 하위 클래스-구체

 - 옵저버 : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락

 - 스테이트 : 상태에 따라 다르게 처리할 수 있도록 행위 내용 변경

 - 비지터 : 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업 수행

 - 커멘드 : 명령이 들어오면 그에 맞는 서브 클래스 선택되어 실행

 - 스트레테지 : 알고리즘 군 정의, 행위를 클래스로 캡슐화해 동적으로 행위 자유롭게 변환

 - 메멘토 : Undo 기능 개발

 - 체인 오브 리스폰시블 : 정적으로 어떤 기능에 대한 처리의 연결이 하드 코딩 되어 있을 때, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결한 디자인

 

운영체제

컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스 담당

 

 - 윈도우즈 : 중/소규모 서버, 일반 PC

 - 유닉스 : 대용량처리, 엔터프라이즈 급 서버

 - 리눅스 : 중/대규모 서버 대상, 높은 보안성, 비용 가장 적음

 - 안드로이드 : 리눅스 위에서 구동, 자바와 코틀린으로 작성

 - IOS : 높은 보안성, 고성능

 

운영체제 현행 시스템 분석 고려사항(신성기주구)

 신뢰도, 성능, 기술 지원, 주변 기기, 구축 비용

 

미들웨어 

 응용 프로그램과 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 SW

 

 - WAS : 서버계층에서 애플리케이션이 동작할 수 있는 환경 제공, 트랜잭션 처리, 이기종 시스템 연동

 

요구공학

 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 활동

 

요구사항

 - 기능적 요구사항 : 시스템이 제공하는 기능, 서비스에 대한 요구사항(사용자UI)

 - 비기능적 요구사항 : 시스템이 수행하는 기능 이외의 사항(백엔드)

 

요구사항 개발 단계(도분명확)

 도출

 - 인터뷰, 설문조사, 브레인스토밍, 델파이 기법, 롤 플레잉, 워크숍

 

 분석

 - 청취 기술, 인터뷰와 질문 기술

 

 명세

 - 비정형 명세 기법(자연어 기반, 이해 용이, 명확성 검증 문제), 정형 명세 기법(수학적, 표현간결, 기법 이해 어려움)

 

확인 및 검증

 - 정형 기술 검토