유튜브 영상/흥달쌤_정보처리기사 실기 기출해설
라이브 특강 1
book_lover
2024. 4. 20. 21:07
소프트웨어 공학이란
- 품질 높은 소프트웨어를 효율적으로 개발하기 위한 학문
소프트웨어 공학의 3R
- 역공학(Reverse Engineering) - 산출물(문서)가 없을 시 소스를 보고 산출물 생성
- 재공학(Re-Engineering) - 분석 -> 재구성 -> 역공학 -> 이관
- 재사용(Reuse) - 다시 다른곳에서 사용
모듈의 독립성 높이기 위해서 응집도 높임 / 결합도 낮춤
소프트웨어 개발 단계
- 계획
- 분석 - 요구사항 분석
- 설계 - 모델링(그림그리기)
- 구현 - 실제 개발
- 테스트 - 한번걸러 한번씩 나옴
- 유지보수
소프트웨어 개발 방법론
- 폭포수 모델 - 선형 순차, 원형 복귀 불가
- 프로토타이핑 모델 - 시제품 제작
- 나선형 모델 - 계획 - 위험 분석 - 개발 - 고객평가, 반복(점진적 발전)
- RAD 모델
도구를 이용하여 빠르게 개발 - V 모형
폭포수 모델 + 테스트에 초점 맞춤 - 4세대 기법
애자일 방법론
- XP : 의사소통, 용기, 피드백, 존중, 단순성
- 스크럼 : 스프린트, 백로그
- 크리스털 : 규모에 따른 방법론 제공
- FDD : 기능주도 개발
프로젝트 관리
- 프로젝트 핵심 관리대상
사람, 문제, 프로세스 - 3P - PMBOK
프로젝트 관리 프로세스 및 지식체계
착수, 계획, 실행, 통제, 종료
비용산정
- 하향식
전문가 판단 기법, 델파이 기법 - 상향식
원시코드 라인 수, 단계별 노력 - 수학적
- COCOMO : 조직형, 반분리형, 내장형
- Putnam : Rayleigh-Norden, SLIM
- FP : 내부 논리 파일(ILF), 외부 연계 파일(EIF), 외부 입력(EL), 외부 출력(EO), 외부 조회(EQ)
일정산정
- WBS
- CPM 네트워크 작성
- 임계경로 계산
- 간트 차트 표현
플랫폼
- CPND
- Contents : 텍스트, 이미지, 오디오, 비디오 등
- Platform : 웹사이트, 애플리케이션 등
- Network : 통신 시스템
- Device : 스마트폰, 콤퓨터 태블릿 등
미들웨어
- 원격 프로시저 호출
- 메시지 지향 미들웨어
- ORB
- DB 접속 미들웨어
- TP 모니터
- 웹 애플리케이션 서버
- 엔터프라이즈 서비스 버스
요구사항 개발 프로세스
- 도출 : 인터뷰, 설문조사, 브레인스토밍, 워크샵 등
- 분석 : DFD, Data Dictionary, Mini-Spec, ERD, STD, UML
- 명세 : 정형/비정형, 기능/비기능
- 확인 및 검증
HIPO
- 하향식 소프트웨어 개발을 위한 문서화도구
- HIPO Chart 종류
- 가시적 도표
- 총체적 도표
- 세부적 도표
객체지향 분석 방법론
- 럼바우(Rumbaugh) 방법
- 객체 모델링 : 객체 다이어그램
- 동적 모델링 : 상태 다이어그램
- 기능 모델링 : DFD
- Booch(부치) 방법 : 미시적 및 거시적 개발 프로세스
- Jacobson 방법 : Use case를 중심으로 한 분석 방법론
- Coad와 Yourdon 방법 : E-R 다이어그램을 사용
- Wirfs-Brock 방법 : 분석과 설계의 구분 없음
설계의 종류
- 상위 설계 : 아키텍처, 데이터 등
- 하위 설계 : 모듈, 자료구조, 알고리즘
- 협약에 의한 설계 : 선행조건, 결과조건, 불변조건
소프트웨어 아키텍처 4+1뷰
- 논리 뷰 : 시스템의 기능적 요구사항
- 구현 뷰 : 모듈의 구성과 개발자의 관점을 반영
- 프로세스 뷰 : 프로그램 실행 시의 시스템을 표현
- 배치 뷰 : 시스템의 물리적 배치
- 유스케이스 뷰 : 아키텍처 설계 및 검증을 주도
소프트웨어 아키텍처 패턴 종류
- 계층화 패턴
- 클라이언트-서버 패턴
- 마스터-슬레이브 패턴
- 파이프-필터 패턴
- 브로커 패턴
- 피어 투 피어 패턴
- 이벤트-버스 패턴
- 모델-뷰-컨트롤러 패턴
- 블랙보드 패턴
- 인터프리터 패턴
UML
시스템의 구조와 동작을 명세하는 표준화된 모델링 언어
UML 특징
- 가시화 언어
- 명세화 언어
- 구축 언어
- 문서화 언어
UI 설계
- UI : 정보 기기와 사용자 간의 상호작용을 가능하게 하는 매개체
- UX : UI를 통해 경험하는 모든 것
- UI 유형
- CLI
- GUI
- NUI
- OUI
- VUI
UI 설계 도구
- 와이어프레임
- 스토리보드
- 프로토타입
- 목업 - 정적 모형
- 유스케이스
UI 설계 원칙
- 직관성
- 유효성
- 학습성
- 유연성
협업도구
- 여러 사람들이 프로젝트를 동시에 수행할 수 있도록 도와주는 소프트웨어
- 특수 게시판
형상관리도구
- 소프트웨어 개발과정에서발생하는 모든 변경을 통제하고 관리하는 방법
- 변경관리 / 버전관리/ 형상관리
- 형상관리 절차
- 형상 식별 : 관리 항목 구분
- 형상 통제 : 변경 요청을 검토하고, CCB의 승인을 거쳐, 베이스라인에 반영
- 형상 감사 : 검토
- 형상 기록 : 기록 - 형상관리 도구
- CVS, SVN, GIT