정보처리기사

1과목 소프트웨어 구축

전예방 2024. 4. 16. 00:18

01 소프트웨어 공학 개념

위기를 극복하고 품질 높은 소프트웨어를 효율적으로 개발하기 위한 학문

소프트웨어 공학의 3R

1. 역공학 : 이미 개발된 시스템 분석해 문서를 추출

2. 재공학 : 기존 소프트웨어를 기능 개선하고나 재활용하는 공법

분석 -> 재구성 -> 역공학 -> 이관

3. 재사용 : 이미 개발된 SW 일부 또는 전체 다시 사용

- 합성 중심 : 모듈을 만들어 조합해 SW 완성

- 생성 중심 : 추상화 형태 구체화해 프로그램 만들기

소프트웨어 개발단계

계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수

- 요구사항 분석 : 요구사항 분석서

- 설계 : 모델링, DFD, DD, Mini-spec, ERD, STD(상태전이도)

- 구현 : IDE, 형상, 배포, 협업

- 테스트 : 단위, 통합, 시스템, 인수 (단통시인)

- 유지보수 : 수정, 향상, 적응, 예방

소프트웨어 개발 방법론

- 구조적 방법론 : 절차지향적 (하향식) 소프트웨어 개발 방법론

데이터 흐름도(DFD), 자료사전(DD), 상태전이도(STD), 소단위명세서(Minispec)

- 정보공학 방법론

테이터 중심 접근 방식

- 객체지향 개발 방법론

캡슐화, 정보은닉, 상속, 다형성(오버로딩, 오버라이딩), 추상화

- CBD 

합성 중심, 컴포넌트 개발 & 조합

- 애자일 방법론

빠르고 유연, 민첩, 효율성 강조

XP (의사소통, 피드백, 존중, 용기, 단순성) / SCRUM / FDD (기능중심 반복적 개발 방식) / Crystal 방법론

소프트웨어 개발모델

- 폭포수 모델

- 프로토타이핑 모델

- 나선형 모델 : 계획 및 요구분석 -> 위험분석 -> 개발 -> 사용자평가

- RAD : CASE 도구 활용 (상위 : UML, 알고리즘 / 하위 : 문서화 / 통합 : 형상관리)

- V 모형 : 검증과 테스트 중점적, 테스트 단계 존재

단(정적, 동적) -> 통(상향식:드라이버 / 하향식:스텁 / 빅뱅 / 백본) -> 시(기능, 비기능) -> 인(베타, 알파)

- 4세대 기법

애자일 방법론

빠르게 제공, 고객과의 협력

- XP 5가지 핵심가치 : 의존용피단

- 12가지 실천사항 : 짝프로그래밍 / 계획 세우기 / 테스트 기반개발(Test Driven Dev~) / 고객 상주(On-site Customer) / 지속적인 통합(Continuous Integration) / 코드 개선(refactoring) / 작은 릴리즈 / 코딩 표준 / 공동 코드 소유(Collective Code Ownership) / 간단한 디자인 / 시스템 메타포어 / 작업시간 준수(Sustainable Pace)

- 스크럼 : 매일 15분 정도의 회의

제품 백로그(제품 요구사항 목록) / 스프린트 / 스프린트 백로그(스프린트 목표 작업목록)

- 크리스털

- FDD / ASD / Lean (도요타-낭비요소제거)

IT 서비스 관리

1. SLM : 서비스 레벨 매니지먼트, 관리, SLA(명세서) 기준으로 품질 관리 개선

2. SLA : 서비스 레벨 Agreement, 명시문서

3. ITSM : 정책과 관행

4. ITIL : 가이드 or 프레임워크

02 프로젝트 계획 및 분석

한정된 기간, 예산, 자원 활용해 제품이나 서비스 개발하는 기술적, 관리적 활동

프로젝트 핵심 관리대상 (3P)

사람 (Peolple) / 문제 (Problem) / 프로세스 (Process)

- PMBOK : PMI에서 제작한 프로젝트 관리 프로세스, 지식체계

프로젝트 착수 -> 계획 -> 실행 -> 통제 -> 종료 

개발비용산정

- 하향식 산정기법 : 사람이 하는 것 : 전문가 판단기법, 델파이 기법

- 상향식 산정기법 : 원시코드라인수(LOC), 개발단계별 노력기법

추정 LOC 계산법 = (낙관치 + (4 X 기대치) + 비관치) / 6

- 수학적 산정기법 :

COCOMO : 조직형 (오가닉) 5만 / 반분리형(SemiDetached) 30만 이하 / 내장형 (임베디드) 30만 이상

PUTNAM : 렐리노든곡선 / SLIM (자동화추정도구)

FP (기능점수) : 내부논리파일 (ILF) / 외부연계파일 (EIF) / 외부입력(EI) / 외부출력 (EO) / 외부조회 (EQ) / ESTIMACS (자동화추정도구)

개발일정산정

- 작업분해 (WBS)

- PERT : 미사일개발, 낙관치(최소시간), 기대치(가장 가능성 높은 시간), 비관치(최대시간) / CPM : 최소비용, 시간단축

임계경로 : 경로상 가장 오래 걸리는 시간을 임계 경로로 정함

- MM 계산

- 간트차트

요구사항 분석 / 현행시스템 분석

- CPND : Content / Platform / Network / Device

미들웨어 종류

1. 원격 프로시저 호출 (RPC) : 클라이언트, 원격 프로시저 호출

2. 메세지 지향 미들웨어 (MOM) : 실시간 처리불가, 메세지 모아두고 한가할 때 처리, 비동기식 미들웨어

3. ORB : 객체지향, 요청하고 전송하는 브로커 역할

4. DB 접속 미들웨어 : JDBC, ODBC, 애플리케이션과 DB 서버 연결해주는 미들웨어

5. TP 모니터 : 트랜잭션 관리

6. 웹 애플리케이션 서버 : 동적인 컨텐츠 만들때 사용 (게시판 등)

7. 엔터프라이즈 서비스 버스 (ESB) : 기업 안팎 모든 시스템 환경 연동하는 미들웨어

요구공학

도분명확 : 도출 -> 분석 -> 명세(문서화) -> 확인

- 요구사항 분석 : 도메인 분석

구조적 분석 도구 : DFD, DD, Mini-spec, ERD(개체관계도), STD

객체지향 분석 도구 : UML, 모델링 

- 요구사항 명세 : 명세서 형태로 정리

정형 명세 기법 : 수학, 논리학

비정형 명세 기법 : 자연어, 그림중심 (문서화)

요구사항 분류 : 기능(어떤 기능 수행?) / 비기능(성능, 보안, 유지보수 등)

- 요구사항 확인, 검증

분석 기법 : 인터뷰, 브레인스토밍, 원인-효과(casue-effect) 다이어그램, 프로토타이핑, 사용사례(유스케이스), 요구사항검토

요구사항 분석 도구 (CASE 도구)

- 상위 CASE 

계획과 요구분석, 설계, 분석 설계

- 하위 CASE

구현, 테스트, 코드의 작성과 테스트, 문서화

- 통합 CASE

소프트웨어 생명주기(SDLC) 포함되는 전체과정

- HIPO : 하향식 (구조적) 소프트웨어 개발, 문서화 도구

가시적 도표 : 입력, 처리, 출력 없음 ex) 사이트맵

총체적 도표 : 입력, 처리, 출력 정보제공

세부적 도표 : 기본 요소 상세히 기술

요구사항 분석 모델링

- 기능적 : 기능표현

유스케이스 다이어그램, 액티비티 다이어그램

- 정적 : 구조를 클래스 단위로 표현

클래스 다이어그램

- 동적 : 상호작용 및 동작 표현

순서, 상태, 커뮤니케이션 다이어그램

분석 모델 종류

- 구조적 분석(절차, 하향)

처리과정, 자료흐름, 자료저장소, 단말

자료사전, 소단위명세서, ERD, STD

- 객체지향 분석(객체, 상향)

럼바우의 객:객체/동:상태/기능:DFD 

Booch 방법, Jacobson(유스케이스중심), Coad와 Yourdon, Wirfs-Brock(분석설계 구분없이) 

- 정보공학 분석

- 정형화 분석

03 소프트웨어 설계

소프트웨어 설계 종류 : 분설구테

소프트웨어 아키텍처

4+1 View Model 구성요소

논리적관점, 구현관점, 프로세스 관점, 배치관점 + 유스케이스 관점

UML

가시화언어, 명세화 언어, 구축언어, 문서화언어

- 사물 : 구조사물, 행동사물, 그룹사물, 주해사물

- 관계 : 일반화, 연관, 의존, 실체화 , 집합-집약(부분객체는 독립적), 집합-합성(부분객체는 의존적)

- 다이어그램

구조 : 클래스, 객체, 컴포넌트, 배치(Deployment), 복합체구조, 패키지

행위 : 유스케이스, 순차(Sequence), 커뮤니케이션, 상태, 활동, 상호작용, 타이밍

04 화면 설계

UX : 사용자가 UI를 통해 경험하는 모든 것 포함

UI 유형 : CLI / GUI / NUI / OUI (현실 모든것이 입출력장치) / VUI (음성) / ARUI (증강현실)

UI 설계원칙 : 직유학유

- 직관성 (쉽게이해, 사용) / 유효성 (목적달성) / 학습성 (쉽게배움) / 유연성 (수용, 오류최소화)

감성공학

인간의 감성을 물리적 설계 요소로 번역하고 구현

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

운영체제 기초  (0) 2024.07.10

'정보처리기사'의 다른글

  • 현재글 1과목 소프트웨어 구축

관련글