1과목 소프트웨어 구축

2024. 4. 16. 00:18·정보처리기사
목차
  1. 01 소프트웨어 공학 개념
  2. 소프트웨어 공학의 3R
  3. 소프트웨어 개발단계
  4. 소프트웨어 개발 방법론
  5. 소프트웨어 개발모델
  6. 애자일 방법론
  7. 02 프로젝트 계획 및 분석
  8. 프로젝트 핵심 관리대상 (3P)
  9. 개발비용산정
  10. 개발일정산정
  11. 요구사항 분석 / 현행시스템 분석
  12. 미들웨어 종류
  13. 요구공학
  14. 요구사항 분석 도구 (CASE 도구)
  15. 요구사항 분석 모델링
  16. 03 소프트웨어 설계
  17. 소프트웨어 아키텍처
  18. UML
  19. 04 화면 설계
  20. 감성공학

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. 01 소프트웨어 공학 개념
  2. 소프트웨어 공학의 3R
  3. 소프트웨어 개발단계
  4. 소프트웨어 개발 방법론
  5. 소프트웨어 개발모델
  6. 애자일 방법론
  7. 02 프로젝트 계획 및 분석
  8. 프로젝트 핵심 관리대상 (3P)
  9. 개발비용산정
  10. 개발일정산정
  11. 요구사항 분석 / 현행시스템 분석
  12. 미들웨어 종류
  13. 요구공학
  14. 요구사항 분석 도구 (CASE 도구)
  15. 요구사항 분석 모델링
  16. 03 소프트웨어 설계
  17. 소프트웨어 아키텍처
  18. UML
  19. 04 화면 설계
  20. 감성공학
'정보처리기사' 카테고리의 다른 글
  • 운영체제 기초
전예방
전예방
  • 전예방
    예방이의 개발일기
    전예방
  • 전체
    오늘
    어제
    • All (125)
      • Info & Tip (2)
      • 유용한 사이트들 (5)
      • Mark Up & StyleSheet (23)
        • HTML (6)
        • CSS & SCSS (10)
        • 반응형 (6)
      • Frontend (66)
        • 전체 (10)
        • JavaScript & Jquery (18)
        • TypeScript (0)
        • React (26)
        • Next.js (3)
        • 성능최적화 (2)
        • 웹접근성 (2)
      • Backend (13)
        • Python (1)
        • JAVA (2)
        • node.js (0)
        • PHP (7)
        • 패키지매니저 (3)
      • Markdown (0)
      • SCM (1)
        • Git&Github (1)
        • SVN (0)
      • IDE (4)
        • VSCode (2)
        • IntelliJ (1)
        • Ecplise (1)
      • 취미생활 (3)
      • 정보처리기사 (2)
      • 코딩자율학습단 (5)
        • 12기 (파이썬) (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • velog
    • github
  • 공지사항

  • 인기 글

  • 태그

    swiper.js
    TypeScript
    코딩자율학습
    yarn berry
    리액트
    회원가입
    React Swiper
    Admin
    코딩자율학습단
    Chart.js
    php
    NPM
    react
    관리자 페이지
    반응형
    나도코딩
    Python
    frontend
    CSS
    파이썬
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
전예방
1과목 소프트웨어 구축

개인정보

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

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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