본문 바로가기

자격증/정처기

1과목 소프트웨어 설계_1

반응형

1. 소프트웨어 생명주기

    - Software Life Cycle

      소프트웨어 개발 방법론의 바탕이 되는것.

      정의, 운용, 유지보수 등의 과정을 단계별로 나눈것.

      폭포수 모형, 프로토타입 모형, 나선형 모형, 애자일 모형이 있다.

 

    - 폭포수 모형(Waterfall Model)

일방형이며 단계가 순차적으로 진행된다.

 

    - 프로토타입 모형(Prototype Model, 원형 모형)

      원형모형.

      유저-시스템사이의 인터페이스에 중점을 둔 시제품 제작.

      이미 구현된 코드는 추후 골격 코드로 이용.(챗바퀴처럼 수정만)

 

    - 나선형 모형(Spiral Model, 점진적 모형)

      보헴(Boehm)이 제안.

      위험 관리 최소화를 목적. 피드백이 주기적으로 이루어짐.(눈덩이 처럼 점점 커짐)

 

    - 에자일 모형(Agile Model)

      요구사항 적용 용이. 일정주기(Sprint 또는 Iteration) 반복.

      (예 : Scrum, XP, Kanban, Lean, Crystal, ASD, FDD, DSDM, DAD등).

 

      (cf.)

  폭포수 모형 애자일 모형
새로운 요구 반영 X 지속적
고객과 의사소통 적음 지속적
테스트 마지막 1회 반복 주기가 끝날 때 마다
개발 중심 계획 & 메뉴얼 고객

 

2. 소프트웨어 생명주기

    - 팀 구성 및 협력

    - 제품 책임자(PO), 스크럼 마스터(SM), 개발팀(DT)로 구성

       1) PO : 백로그(우선 순위) 작성

       2) SM : 팀 리더

       3) DT : PO, SM외의 모든 인원, 스토리(서술형  요구사항) 작성가능

    - 백로그 : 우선 순위가 적용된 요구사항 목록

    - 스프린트 계획 회의 : 요구사항 Task단위로 분할

    - 스프린트 : 실제 개발 과정. 할일, 진행중, 완료로 표현

    - 일일 스크럼 회의 : 매일 15분 정도 회의. 남은 작업시간은 소멸차트로 확인. SM은 장애요소 해결 노력.

    - 스프린트 검토 회의 : 1주 1시간내 진행. PO의 개선사항 피드백

    - 스프린트 회고 : 스프린트 종료시점 or 일정주기로 수행

 

3. XP기법

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

 

4. 현행 시스템 파악

    - 파악절차

       1) 시스템 구성, 기능, 인터페이스 파악

       2) 아키텍쳐, S/W 구성파악

       3) H/W, Network파악

    - 시스템 구성 파악 : 기간업무, 지원업무 파악 후 기술

    - 시스템 기능 파악 : 주요기능, 하부기능, 세부기능 : 계층형으로 표현

    - 시스템 인터페이스 파악 : 단위 시스템간의 Data 종류, Type, Protocol, Connection, 주기 등

    - 아키텍쳐 구성 파악 : 기간업무 수행 단계에 따른 사용 기술 요소들 : 계층형을 확인

    - S/W 구성 파악 : 단위업무시스템별, S/W제품명, 용도, 라이센스 수, 라이센스 적용방식 등

    - H/W 구성 파악 : 서버 사양, 수량, 이중화 적용여부등 명시

    - Network 구성 파악 : 서버 위치, 네트워크 연결 방식 : 구성도로 표현

 

5. 개발 기술 환경 파악

    - 개발 기술 환경의 정의 : OS, DBMS, 미들웨어등 기술

    - 운영체제 (OS) : PC사용의 S/W적 환경

    - OS관련 요구사항 식별시 고려사항

       1) 가용성 : 사용 편의성

       2) 성능 : 동시 작업

       3) 기술지원 : A/S

       4) 주변기기 : 타 기기와 호환성

       5) 구축비용 : TCO(Total Cost of Ownership)

    - DBMS : DataBase 구성, 접근방법, 유지관리 등 모두 관리

    - DBMS 관련 요구사항 식별시 고려사항

       1) 가용성 : 사용 편의성

       2) 성능 : 동시 작업

       3) 기술지원 : A/S

       4) 상호 호환성 : 설치 가능 운영체제와 호환여부

       5) 구축비용 : TCO(Total Cost of Ownership)

    - 웹어플리케이션서버(WAS) : DB서버와 연동사용 / Data접근, 세션관리, 트렌젝션관리등 라이브러리 제공

    - WAS관련 요구사항 식별시 고려사항

       1) 가용성 : 사용 편의성

       2) 성능 : 동시 작업

       3) 기술지원 : A/S

       4) 구축비용 : TCO(Total Cost of Ownership)

    - 오픈소스 사용에 따른 고려사항 : 라이센스 종류, 사용자 수, 기술의 지속가능성 등 고려

 

6. 요구사항 정의

    - 개념, 특징 : 필요한 기준 & 근거 제공, S/W 전반적 내용 내포 : 의사소통 원할

    - 유형

       1) 기능 요구사항

           ㅁ 시스템이 어떤 작동?, 어떤 기능 수행?

           ㅁ 입출력시 포함되야 하는 것? 어떤 data 사용 or 저장?

           ㅁ 반드시 수행해야 하는 기능

           ㅁ 사용자가 요구하는 기능

       2) 비기능 요구사항

           ㅁ 장비 구성요소(S/W, H/W, Network등 시스템 장비 구성)

           ㅁ 성능 요구사항 : 처리속도 & 시간 / 처리량 / 동적, 정적 적용량

           ㅁ SI, UI의 요구사항

           ㅁ 데이터 요구사항 : 초기자료, 보안적용 자료등 데이터 구축 요구사항

           ㅁ 품질 요구사항 : 가용성, 정합성, 상호 호환성 등 품질에 대한 필요한 사항

           ㅁ 제약사항 : 시스템 설계, 표준, 법·제도 등 제약조건

           ㅁ 프로젝트 관리 요구사항

           ㅁ 프로젝트 지원 요구사항

       3) 사용자 요구사항

           ㅁ 사용자관점 시스템에 요구하는 요구사항

           ㅁ 사용자에게 친숙한 표현으로 작성

      4) 시스템 요구사항 

           ㅁ 개발자 관점에서 시스템 -> 사용자 & 다른 시스템 제공

           ㅁ 사용자 요구사항보다는 전문적, 기술적 용어 표현

           ㅁ S/W 요구사항이라고도 함

    - 요구사항 개발 프로세서 : '도출→분석→명세→확인'의 과정

    - 요구사항 도출

       1) 효율적 의사소통 필요

       2) SDLC동안 지속적 반복

       3) 인터뷰, 설문, 브레인스토밍, 워크샵, 프로토타입, 유스케이스등

    - 요구사항 분석 : 요구사항중 명확X, 이해X인 부분 걸러내는 과정

    - 요구사항 명세 : 기능 요구사항 반드시 전부 작성, 비기능 요구사항 필요한 부분만 명확히 작성

    - 요구사항 확인 : 개발자원 할당전 요구사항 명세서 정확 & 완전 한지 검토

 

7. 요구사항 분석 기법

    - 요구사항 분류, 개념 모델링, 요구사항 할당, 요구사항 협상, 정형분석등이 있다.

    - 요구사항 분류 : 기능, 비기능 / 우선순위 / 개발할 제품 / 개발과정 등으로 분류하는 것

    - 개념 모델링 : 현실 세계의 상황을 단순화 → 개념적 표현 모델

    - 요구사항 할당 : 요구사항을 만족시키기 위한 구성요소 식별

    - 요구사항 협상 : 요구사항이 충돌하는 경우, 우선순위를 작성하여 해결

    - 정형분석 : 요구사항을 수학적으로 표현

 

8. 요구사항 확인 기법

    - 자원 배정전 문제파악을 위한 검증 수행

    - 요구사항 검토 : 시스템 정의서, 시스템 사양서, 소프트웨어 요구사항 명세서 완성 시점에 검토 수행

    - 프로토타이핑

       1) 프로토타입 제작후 개발중 지속적 요구사항 반영하여 재작성

       2) 장점 : 빠른 개발, 지속적 보완 & 피드백 => 발전된 개발품

       3) 단점 : 핵심보다 프로토타입 제작에 관심 집중 가능성이 있다. 반복적 제작이 야기하는 비용에 대한 부담도 있다.

    - 모델 검증 : 분석도구를 이용한 정적 분석수행이 유용 (cf)직접수행 : 동적 분석)

    - 인수테스트 : 각각 요구사항 확인 방법 고려

 

9. UML(Unified Modeling Language)

    - 개요

       1) 시스템 구조 : 6개의 구조 다이어그램

       2) 시스템 동작 : 7개의 행위 다이어그램

       3) 구성 요소 : 사물, 관계, 다이어그램등 있음

    - 사물(Things)

       1) 구조사물 : 시스템의 개념적, 물리적 요소 표현

       2) 행동사물 : 시간과 공간에 따른 요소들의 행위 표현

       3) 그룹사물 : 요소들을 그룹으로 묶어서 표현

       4) 주해사물 : 부가적인 설명이나 제약조건 등을 표현

    - 관계

       1) 연관 관계 : 2개 이상의 사물이 서로 관련

           ㅁ 사물사이 : 실선 연결, 방향성 : 화살표

           ㅁ 양방향 관계 : 실선 표현

           ㅁ 다중도 : 1 / n / 0..1 /  0..* 또는 * / 1..* / n..* / n..m

       2) 집합관계 : Part ------◇ whole (실선으로 그려야함)

       3) 포함관계 : Part ------ whole (실선으로 그려야함)

       4) 일반화관계 : 하위 ------▷ 상위 (실선으로 그려야함) / 일반적 개념 : 상위(부모) , 구체적 개념 : 하위(자식)

       5) 의존관계 : 영향을 주는 것(이용자) ------> 영향을 받는 것(제공자) / 연관 이 있으나 필요에 의한 영향인 경우

       6) 실체화관계 : 사물 ------▷ 행위(:기능, 인터페이스)

    - 다이어그램

       1) 사물과 관계를 도형으로 표현

       2) 정적 모델링 : 구조적 다이어그램 / 동적 모델링 : 행위 다이어그램

       3) 구조적 다이어그램 : 클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램, 배치 다이어그램,

                                    복합체 다이어그램, 패키지 다이어그램

       4) 행위 다이어그램 : 유스케이스 다이어그램, 시퀀스 다이어그램, 커뮤니케이션 다이어그램, 상태 다이어그램,

                                  활동 다이어그램, 상호작용 개요 다이어그램, 타이밍 다이어그램

반응형

'자격증 > 정처기' 카테고리의 다른 글

정보처리기사 합격 후기  (3) 2022.07.10
1과목 소프트웨어 설계_3  (0) 2020.07.11
1과목 소프트웨어 설계_2  (0) 2020.07.06
2020 정보처리기사 필기 정리  (0) 2020.07.05
정처기 3차 준비  (2) 2020.07.03