실기 모음zip

2022. 6. 29. 08:51정보처리기사

1과목 소프트웨어 설계

 

상용 소프트웨어

 - 상업적 목적으로 생산되는 프로그램

 - 원시 코드 제공 x

 - 산업 특화 소프트웨어, 산업 범용 소프트웨어로 구분됨

 - 기업용 소프트웨어 : 오피스웨어(회사, 단체 조직), ERP(경영), SCM(부품업자), BI(수집된 데이터), CRM(고객 특성)

 

시스템 소프트웨어

 - 시스템: 하나의 공통적인 목적을 가지고있는 구성 요소들을 상호 결합한 형태

 - 시스템 기본 요소 : 입력, 출력, 처리, 제어, 피드백 ( 입출처제피)

 - 개념 : 운영체제와 같은 의미를 가짐, 응용 소프트웨어 실행하기 위한 환경 제공, 하드웨어 동작 및 관리

 

플랫폼

 - 하드웨어와 소프트웨어 환경의 총칭

 - 소프트웨어 개발과 하드웨어의 운영을 편안하게 할 수 있도록 서비스 지원

 - 동일한 플랫폼에서 개발된 소프트웨어는 호환성 뛰어남

 - 특징 : 소프트웨어 개발비용 줄임, 동일 플랫폼 간의 공통 시스템 네트워크 구성 효율적, 소프트웨어 개발 생산성 향상

 - 성능 평가 기준 : 사용성, 응답시간, 정확성, 사용률

 

프레임워크

 - 개념 : 응용 소프트웨어 개발을 수월하게 하기 위해 설계, 구현 등을 재사용이 가능한 형태로 제공하는 소프트웨어 환경

 - 특징 : 모듈화, 재사용성, 확장성, 제어의 역 흐름

 - 기대 효과 : 개발 용이성, 품질 보증, 변경 용이성, 유지보수 용이성, 재사용성 향상, 표준화율 향상, 상호 운용성 향상

 

컴포넌트

 - 개념 : 모듈 - 부품화된 프로그램, 라이브러리 - 관련된 모듈, 패키지들의 집합, 컴포넌트 - 라이브러리 집합

 - 선행조건, 결과 조건, 불변조건

 

소프트웨어 공학

 - 개념 : 소프트웨어 개발의 품질과 생산성 향상을 연구하는 학문

 

 

소프트웨어 개발 방법론

 - 소프트웨어의 생산성과 품질 향상에 목적

 

구조적 방법론

 - 정형화된 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론

 - 절차 : 타당성 검토 - 계획 - 요구사항 - 설계 - 구현 - 시험 - 운용/유지보수

 

정보공학 방법론

 - 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화하는 것

 - 절차 : 정보 전략 계획 수립 - 업무 영역 분석 - 업무 시스템 설계 - 업무 시스템 구축

 

객체지향 방법론

 - 현실 세계의 개체를 객체화하여, 각각의 객체가 서로 통신을 통해 정보를 처리하는 형태의 소프트웨어 구현

 - 기본 원칙 : 캡슐화, 정보은닉, 추상화, 상속성, 다형성

 - 절차 : 요구분석 - 설계 - 구현 - 테스트 및 검증 - 인도

 

컴포넌트 기반 방법론(CBD)

 - 재상용이 가능한 컴포넌트 기반의 개발 방법론

 - 절차 : 개발 준비 - 분석 - 설계 - 구현 - 테스트 - 전개 - 인도

 - 단계별 산출물

 -- 분석단계 : 사용자 요구사항 정의서, 유스케이스 명세서, 요구사항 추적표

 -- 설계단계 : 클래스 설계서, 사용자 인터페이스 설계서, 컴포넌트 설계서 등..

 -- 구현단계 : 프로그램 코드, 단위시험 결과서, 데이터베이스 테이블

 -- 시험단계 : 통합시험 결과서, 시스템시험 결과서, 사용자 지침서 등..

 

애자일 방법론

 - 고객의 요구사항 변화에 민첩하고 유연하게 대응할 수 있도록 진행

 - 일정한 주기를 반복

 - 소규모 프로젝트, 숙력된 개발자, 급변하는 요구사항 적합

 - XP, Scrum, 기능 중심 개발, 동적 시스템 개발방법, 경량 개발, kanban

 

재품 계열 방법론

 - 특정 제품의 공통된 기능을 중심으로, 새롭게 특화된 기능을 구현하여 조합

 - 임베디드 소프트웨어 개발에 적합

 

테일러링 방법론

 - 개발하려는 소프트웨어 특성에 맞도록, 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 것

 - 방법론 최적화를 위해 프로젝트 분석, 커스터마이징 반복

 - ISO/IEC 12207, CMMI, SPICE 등의 소프트웨어 개발 프레임 워크 사용

 - 내부적 요건 : 목표환경, 요구사항, 프로젝트 규모, 보유 기술

 - 외부적 요건 : 법적 제약사항, 표준 품질 기준

 

보안 개발 방법론의 종류

 

MS-SDL

 - MS사가 자체적으로 수립한 SDLC

 

Seven Tochpoints

 - 실무적으로 검증된 개발 보안 방법론 중 하나

 - 소프트웨어 보안의 모법 사례를 SDLC에 통합한 소프트웨어 개발 보안 생명 주기 방법론

 - 모범 사례 : 코드검토, 아키텍처 위험 분석, 침투 테스트, 위험 기반 보안 테스트, 악용사례, 보안 요구, 보안 운영

 

CLASP

 - 소프트웨어 개발 생명 주기 초기 단계의 보안을 강화하기 위해 정형화된 절차

 

CWE

 - 소프트웨어의 보안 취약점을 유발하는 원인을 7가지로 정리한 방법론

 - 입력 데이터 검증 및 표현, 보안 기능, 시간 및 상태, 에러 처리, 코드 오류, 캡슐화, API 오용

 

비용 산정 기법 

 

소프트웨어 비용 결정 요소

 - 프로젝트 요소 : 제품 복잡도, 시스템 크기, 요구되는 신뢰도

 - 자원 요소 : 인적, 하드웨어, 소프트웨어 자원 등

 - 생산성 요소 : 개발자의 능력, 개발 기간 등

 

하향식 비용 산정 기법

 - 과거 경험을 바탕으로 전문 개발자들이 참여한 회의를 통해 비용 산정

 - 전문가 측정 기법

 - 델파이 측정 기법 : 주관적인 판단 보완을 위해 중재자와 많은 전문가가 비용 산정

 

상향식 비용 산정 기법

 - 프로젝트 세부적인 작업 단위별로 비용을 산정한 후에 전체 비용을 측정

 

LOC기법

 - 각 기능의 원시 코드 라인 수를 예측하여 생산성, 개발 기간 등의 비용 산정

 - 예측치 측정 공식 : (낙관치 + (4 x 기대치) + 비관치) / 6

 

단계별 인월수 기법

 - 개발 단계별 중요도에 따른 가중치 부여

 

소프트웨어 비용 추정 모형

 

COCOMO모델

 - 보헴이 제안한 LOC에 의한 비용 산정 기법

 - Organic : 5만라인 이하

 - Semi-Detached : 30만 라인 이하

 - Embedded : 30만라인 이상

 

Putnam모델

 - 생명 주기 예측 모형

 - 시간에 따른 함수로 표현되는 Rayleigh-Norden곡선의 노력 분포도를 가짐

 - SLIM : Putnam모델을 기초로한 소프트웨어 비용 산출 자동화 측정 도구

 

기능 점수 모델

 - 소프트웨어의 기능을 증대시키는 요인별로 가중치 부여

 - 비용 산정 요소 : 입력 유형의 수, 출력 유형의 수, 사용자 명령어 수, 데이터 파일의 수, 인터페이스의 수

 

소프트웨어 개발 표준

 

ISO/IEC 12207

 - 국제표준화기구에서 만든 표준 소프트웨어 생명 주기 프로세스

ISO/IEC 12119

  - 패키지 소프트웨어의 제품 품질 요구사항 및 테스트를 위한 국제 표준

ISO/IEC 29119

 - 소프트웨어 테스트 관련 국제 표준

ISO/IEC 9126 -> 25010

 - 소프트웨어 품질 특성과 평가에 관한 표준 지침서 

- 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성

 

CMM

 - 소프트웨어 유지보수, 개발에 대한 프로세스 개선과 능력 향상을 위한 프레임 워크

 - 단계 : 초기화, 반복, 정의, 관리, 최적화

 - 평가기준 : 혼돈적 관리, 경험적 관리, 정성적 관리, 정량적 관리, 최적화 관리

 - 한계 : 등급 판정 비효율적, 비현실적

 

CMMI

 - 후속모델

 

SPICE

 - 소프트웨어 품질 및 생산성 향상을 위한 소프트웨어 프로세스 평가하는 국제 표준

 - 불안정, 수행, 관리, 확립, 예측, 최적화

 

소프트웨어 생명주기

 

폭포수 모델

 - 개발 이전 단계로 돌아갈 수 없다는 전제하에  각 단계 확실히 매듭

 - 과거 많이 사용된 생명주기 모형

 

프로토타입 모델

 - 사용자 요구사항 파악을 위해 견본품을 만들어 결과물을 예측

 

나선형 모델

 - 점진적으로 개발

 - 단계 : 계획 및 초기 요구 분석 - 1차 위험 분석 - 1차 프로토타입 개발 - 1차 고객 평가 = 반복

 

애자일 모델

 - 유연하게 대응할 수 있도록 일정 주기 반복

 - 고객과의 소통에 중점

 

스크럼 모델

 - 팀을 중심으로 개발을 진행하여 개발의 효율성 높임

 - 제품 책임자, 스크럼 마스터, 개발팀으로 구성

 - 스크럼의 가치 : 확약, 전념, 정직, 존중, 용기

 

스크럼 모델 개발 프로세스

 - 제품 백로그 : 제품 개발에 필요한 User Story를 우선순위에 나열한 목록

 - 스프린트 계획 회의 : 제품 백로그 중 이번 스프린트에서 수행할 작업을 댓상으로 짧은 일정을 수립

 - 스프린트 : 실제 개발 진행 과정

 - 일일 스크럼 회의 : 15분동안 회의

 - 스프린트 검토 회의

 - 스프린트 회고

 

XP모델

 - 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법

 - 짧고 반복적인 개발 주기

 - xp의 가치 : 의사소통, 단순성, 용기, 존중, 피드백

개발 프로세스

 - 사용자 스토리

 - 릴리즈 계획 수립

 - 스파이크

 - 이터레이션

 - 승인검사

 - 소규모 릴리즈

기본 원리(실천항목)

 

PERT 네트워크

 - 소요 기간의 예측이 어려운 경우에 적합

 - 프로젝트 개발기간을 결정하는 임계경로를 알 수 있음

 

CPM 네트워크

 - 소요 기간이 확실한 경우에 적합

 

위험관리

 

형상관리

 - 소프트웨어 개발의 전 과정에서 발생하는 산출물들의 버전 관리

 - 형상 식별, 변경제어, 형상 상태 보고, 형상 감사

 

-------------------------------------------------------------------------------------------------------------------------------------------------

 

시스템 인터페이스 파익

 - 단위 업무 시스템 간에 주고 받게 되는 데이터에 대한 속성 파악

시스템 아키텍처 구성 파악

 - 

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

정처기 헷갈리는 것들  (0) 2022.03.04