정보처리기사_1과목_소프트웨어설계(0)

2021. 2. 1. 17:45공부/정보처리기사

728x90
반응형

정보처리기사 시험 준비하며 그냥 기출문제만 풀려고 했다가 2020년도부터 ncs기반 문제로 바뀌고 그냥 천천히 기본이론도 인터넷으로 봐보자 하고 보며 정리하는 글입니다.!

시험보는 과목이 틀려졌다고 알고 있고 조금더 어려워졌다고하네요!

 

인터넷강의에서 알아두면 좋다고하는 내용 제가 공부하며 정리한내용 입니다.

 

 

1과목으로 소프트웨어설계

 

소프트웨어 공학의 개념

CASE(Computer Aided Sofrware Engineering)

1. 소프트웨어 공학의 자동화를 의미하며, 소프트웨어 공학작업 중 하나의 작업을 자동화한 소프트웨어 패키지를 CASE 도구라 한다. 이러한 도구를 한데 모아놓은 것을 소프트 웨어 공학환경(Software Engineering Environment)이라 한다.

2. CASE 도구들은 소프트 웨어 관리자들과 실무자들이 소프트 웨어 프로세스와 관련된 활동을 지원한다. 즉 , 프로젝트 관리 활동을 자동화하고, 프로세스에서 생산된 결과물을 관리하며, 엔지니어들의 분석, 설계 및 코딩과 테스트 작업을 도와준다.

3. CASE의 주요 기능 : 다양한 소프트 웨어 개발 모형 지원, 그래픽 지원, 소프트웨어 생명주기 전 단계의 연결

일반적인 소프트웨어 생명주기

1. 정의단계
- 무엇(Whar)을 개발할 것인지를 명확히 밝히는 단계
- 시스템 정의와 프로젝트 계획 및 사용자 요구분석을 하는 단계
- 관리자와 사용자의 참여가 가장 높은 단계
2. 개발단계
- 어떻게(How) 개발할 것인지에 대한 절차를 밝히는 단계
- 설계와 구현, 시험 단계
- 설계는 품질에 많은 영향을 미치는 단계
3. 지원단계
- 수정 및 변경에 관한 문제를 다루는 단계
- 가장 오랜 시간이 들며 비용이 가장 많이 들어가는 단계
- 유지보수의 유형 : 완전, 수정, 적응, 예방 유지보수

소프트웨어 수명 주기 모형(폭포수 모형(선형순차모형, 전형적인 생명주기 모형 : Boehm, 1979))

단계(순서 중요 외우고 있으면 다른 기본이론 볼때 편하다고 함)

1. 계획단계 (문제제기,예측(비용,일정),팀구성)
- 문제를 파악하고 시스템의 특성을 파악하여 비용과 기간을 예측한다
- 개발의 타당성을 분석하고 전체 시스템이 갖추어야 할 기본기능과 성능 요건을 파악한다.

2. 요구분석단계 (요구사항 분석(파악) => *기능, 비기능 요구)
- 사용자 요구를 정확히 분석, 이해하는 과정으로 구현될 시스템의 기능이나 목표, 제약사항 등 정확히 파악한다.
- 소프트웨어의 기능, 성능, 신뢰도 등 목표 시스템의 품질을 파악하는 것이다.
- 개발자(분석가)와 사용자간의 의사소통이 중요하며, 명확한 기능 정의를 해야한다.

3. 설계단계 (기본설계 => 개략설계, 상세설계 => 구조,알고리즘)
- 요구사항을 하드웨어 또는 소프트웨어 시스템으로 분배하는 과정이다
- 모든 시스템의 구조를 결정하게 되는데, 소프트웨어 설꼐는 프로그램의 데이터 구조, 스포트웨어구조, 인터페이스 표현, 알고리즘의 세부 사항들에 초점을맞춰 진행한다.
- 한 개 이상의 실행 가능한 프로그램으로 변환할 수 있는 형태로 소프트웨어의 기능을 표현한 것이다.

4. 구현단계 (코딩,프로그래밍)
- 설계의 각 부분을 실제로 프로그래밍 언어를 이용하여 코드화하는 단계이다
- 각 모듈(module) 단위로 코딩을 한다.

5. 시험단계 (오류발견 *디버깅 오류제거)
- 각 프로그램 단위의 내부적으로 이상 여부 및 입력에 따라 요구되는 결과로 작동하는지의 여부를 확인한다.

6. 운용(operation) 및 유지보수(maintenance) 단계
- 사용자에게 전달되어 실제로 사용되며, 전달 이후에 발생하는 변경이 있다면 변경 요구를 수용하고 계속적인 유지를 해주어야 한다.

****각 단계의 순서를 정확히 파악하고 내용을 간략히 외우고 있으면 좋음

요구사항 확인(요구사항 분석 기능, 비기능이 있다)

플랫폼 기능 분석
 - 플랫폼의 성능 특성 분석에 사용되는 측정 항목으로 응답시간(Response Time), 가용성(Availability), 사용률(Utilization)
운영체제의 분석 
 - 운영제체의 구성 
    제어프로그램(Control Program) => 컴퓨터 전체의 동작 상태를 감시, 제어하는 기능을 수행하는 프로그램을 말한다.
                                                   감시 프로그램, 데이터 관리 프로그램, 작업 관리 프로그램, 통신제어
DBMS 분석
 - DBMS분석의 특성 => DBMS 분석시 고려사항으로는 성능, 가용성, 상호 호환성 등이 있다.
요구분석기법의 특성
 - 기능요구
     사용자가 필요로 하는 정보처리 능력에 대한 것으로 절차나 입.출력에 대한 요구이다.
 - 비기능 요구
     요구 기능 외에 전체 시스템의 동작을 평가하는 척도를 정의하며, 안정성, 확장성, 보안성, 성능 등이 포함된다.
요구분석기법의 종류
1. 회의
2. 인터뷰
3. 설문조사 -불특정 다수에게 기본적인 요구 사항
4. 프로토타이핑
※워크스루(walk-through) : 검토회의전에 요구사항 명세서를 미리 배포하여 사전 검토한 후 짧은 검토회의를 통해 오류를 조기에 검출하는데 목적을 두는 요구사항 검토방법
       워크스루 : 오류발견
       인스펙션(보다강한 검토회의) : 오류발견 + 해결 방안모색
구조적 분석 - 구조적 분석도구(DFD, DD, mini-spec)
 - 자료흐름도(Data Flow Diagram, DFD)
      자료 흐름도의 구성 : 프로세스(process), 흐름, 자료 저장소(data store),  단말(terminator)
                
               외우기 기호 => 프로세스 ○,
                                    흐름 →,
                                    자료저장소 =,
                                    단말 □
  
- 자료사전(DD)
 자료 사전 기혹
 = 항목의 정의
 + 그리고, 순차(and)
 ( ) 선택사양, 생략가능
 { } 반복
 [ ] 여러 대안중 하나 선택
 ** 주석

- 프로세스 명세서 (Mini-spec)
 최하위 , 하위도 설명문 
객체지향 분석
1. Rumbaugh의 OMT(Object Modeling Technique) 기법 - 분석특화
   
     객체 모형화(object modelling) 객체식별
       - 객체들을 식별하고 객체들간의 관계를 정의
     동적 모형화(dynamic modelling) 객체의 상태변환 관찰
       - 시스템이 시간 흐름에 따라 변화하는 것을 보여주는 상태 다이어그램(state diagram)을 작성
     기능 모형화(function modelling) 기술, 정리, 보고서
       - 시스템 내에서 데이터가 변하는 과정을 나타낸다.

2. Booch 의 OOAD(Object Oriented Analysis and Design)
    Ada언어 로만 가능

3. Coad/Yourdon 방법
    E-R 다이어 그램을 사용하여 객체의 행위를 모델링하며 객체식별, 구조식별, 주체정의, 속성 및 관계 정의, 서비스정의 등의 과정으로 구성된다
UML(Unified Modeling Language)

- UML의 특성
   1. 시스템의 정적인 측면 : Class Diagram = 구조
   2. 시스템의 동적인 측명 : Sequence Digtam, State Diagram
   3. 시스템의 기능적 측면 : Use Case Diagram

- UML의 종류
   1. Use Case Diagram 분석용
      - 외부 보는 시스템의 동작으로, 외부객체들이 어떻게 시스템과 상호작용하는지 모델링한 것이다.
   2. ClassDiagram 정적구조 , 만능(분석,설계,구현)
      - Class 다이어그램을 통하여 사용자는 보다 쉽게 원하는 시스템의 구조를 정의할 수 있다
   3. SequenceDiagram   동적
   4. Collaboration Diagram  동적
   5. State Diagram  동적
   6. ActivityDiagram  동적
   7. ComponentDiagram 정적구조
   
   정적구조 = 2,7,Object Diagram
애자일(Agile)
  애자일의 종류
     - 익스트림 프로그래밍(Extreme Programing, XP)
        => 애자일 개발 프로세스의 대표주자로 애자일 개발 프로세스의 보급에 큰 역할을 하였다.
익스트림 프로그래밍(eXtreme Programing, XP)

 XP(eXtreme Programming)의 5가지 핵심가치
 1. 존중(Respect) = 팀 기반의 활동 중 팀원 간의 상호 존중을 강조
 2. 단순성(Simplicity) = 사용되지 않는 구조와 알고리즘 배제
 3. 의사소통(Communication) = 개발자, 관리자, 고객간의 원활한 의사소통
 4. 피드백(Feedback) = 지속적인 테스트와 통합, 반복적 결함 수정, 빠른 피드백
 5. 용기(Courage) = 고객의 요구사항 변화에 능동적인 대처

XP(eXtreme Programming)의 실천사항
 1. 점증적인 계획 수립 = 계획세우기, 우선순위와 기술사항 고려범위결정
 2. 소규모 시스템 릴리스 = 짧은 사이클로 버전 발표
 3. 시험우선 개발 = 테스팅 , 단위테스트를 계속 작성
 4. 리팩토링
 5. 페어pair 프로그래밍 = 가장 좋은 구현 방법 고민, 전략적인 방법 고민
 6. 공동 소유권 = 개발자들 누구나 코드 수정
 7. 지속적 통합
 8. 유지할 수 있는 속도 = 1주에 40시간 작업
 9. 현장의 고객 = 고객의 요구사항을 들어주고 고객을 한자리에..
 10. 표준에 맞춘 코딩

 

728x90