2020정보처리기사 요구사항 확인 정리

요구사항 확인
소프트웨어 개발 절차 : 요구사항 분석 – 설계 – 구현 – 테스트 – 유지보수

요구분석 *캡쳐3

  • 도출된 요구사항들간의 상충을 해결하고 SW 범위를 파악하며 SW가 환경과 어떻게 상호작용하는지 분석하는 과정
  • 외부사용자와의 인터페이스 및 내부시스템 구성 요소간의 인터페이스를 정확히 분석해 시스템을 계층적이고 구조적으로 표현
    요구분석 기법
  • 사용자 그룹 인터뷰, 이해관계자 설문조사, 문헌 조사(개발팀은 업무 도메인 교육이나 튜토리얼에 참가한다)
  • 프로토타이핑(기본적인 기능만 빠르게 구현), 사용자 스토리텔링(애자일 방법)

객체지향 개발

  • 현실 세계를 프로그램에 반영
  • 소프트웨어 재사용, 유지보수 향상 -> 소프트웨어 위기 해결 방안
  • 관련 용어 : 객체, 클래스 메시지 / 캡슐화, 정보은폐, 추상화, 상속성, 다형성

객체

  • 클래스의 인스턴스, 객체들 간의 상호작용은 메시지를 통해 이루어짐
  • 데이터 : 객체가 가지고 있는 상태(속성, 변수)
  • 연산자 : 객체의 데이터를 처리하는 행위(메소드, Operation, 함수)

클래스

  • 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화
  • 공통된 속성과 연산을 갖는 객체의 집합(객체의 일반적 타입)
  • 인스턴스 : 클래스에 속한 각각의 객체

캡슐화(Encapsulation)

  • 속성과 메소드를 하나로 묶어서 객체로 구성하는것, 재사용 용이, 외부에서 변경 불가능

정보은폐(Information Hiding)

  • 객체는 다른 객체로부터 자신의 자료를 숨기고 자신의 연산만을 통하여 접근을 허용
  • 고려되지 않은 영향들을 최소화

상속(Inheritance)

  • 상위 클래스의 메소드와 속성을 하위 클래스가 물려받는 것 -> 재사용이 가장 큰 이점

다형성(Polymorphism)

  • 한 메시지가 객체에 따라 다른 방법으로 응답하는 것
  • 많은 클래스들이 동일한 메소드명을 이용하는 것

UML (OMG에서 발표)

  • 객체지향 소프트웨어 개발과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 표준화된 범용 모델링 언어

UML 특징

  • 가시성 : 반복/점진적으로 구체화하여 소프트웨어의 가시성 제공
  • 문서화 : 개발규모나 프로세스 및 언어와 무관하게 개발자간 의사소통 도구 제공
  • 명세화 : 단순 표기법이 아닌 구현에 필요한 개발적 요소 및 기능에 대한 명세 제공

UML 구성요소

  • View : 모델화된 시스템의 서로 다른 모형 제공(관리자, 사용자, 개발자 등 서로 다른 관점)
  • Diagram : View의 내용을 나타내기 위한 9가지 다이어그램 제공
  • Model Element : 객체지향 개념을 표현하기 위해 사용되는 요소(클래스, 속성, 오퍼레이션)
  • General Mechanism : 모델 요소에 대하여 주석과 의미 제공

UML 다이어그램 종류 책 참고

  • Use Case : 사용자의 입장에서 본 시스템의 행동 , 시스템의 기능적인 요구 정의
  • Class : 시스템 내 클래스들의 정적 구조 표현, 속성과 동작으로 구성
  • Object : 객체 사이의 정적인 관계를 파악하기 위해 작성, 클래스 다이어그램 구체화
  • Component : 코드 컴포넌트에 바탕을 둔 코드의 물리적 구조, 실질적인 프로그래밍 작업에 사용
  • Deployment : 시스템 HW와 SW간의 물리적 구조 표현, 실질적 컴퓨터와 Device간 관계 표현, 컴포넌트 사이의 종속성 표현
  • Activity : 행위의 순서적 흐름 표시, 순서도나 병렬적인 처리
  • State : 클래스의 객체가 가질 수 있는 모든 가능한 상태와 상태간의 전이 표현, 진입과 탈출 조건 등 자세히 기술, 둥근 직사각형으로 상태 표현
  • Sequence : 객체와 객체간의 상호작용을 메시지 흐름으로 표시, 시간 또는 순서가 중요
  • Collaboration : 오브젝트간의 연관성을 표현(네트워크 형태), 내용이 중요, 상위버전에선 Communication

Agile(기민한, 좋은것을 빠르고 낭비없게 만드는 것)

  • 전체 개발 단계에서 변화에 대한 신속한 대응으로 요구사항을 지속적으로 분석, 반영하여 배포 시간차를 최소화하는 개발방법론

애자일선언문 (가치있게 여기기)

  • 개인과 상호작용 > 공정화 도구
  • 작동하는 소프트웨어 > 포괄적인 문서
  • 고객과의 협력 > 계약 협상
  • 변화에 대응하기 > 계획을 따르기

XP (Extreme Programming)

  • 의사소통 개선과 즉각적인 패드백에 의한 단순한 코딩으로 SW 품질 높이는 방법론
  • 1~3주 고객과 함께 반복 (고객만족 강요)
  • 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존경
  • 12개 실천 항목

SCRUM

  • 매일 정해진 시간 정해진 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리중심 방법론
  • 30일마다 동작 가능한 제품을 제공하는 Sprint 반복 중심
  • 백로그 : 제품과 프로젝트에 대한 요구사항들간의
  • 스크럼미팅 : 매일 스크럼(15분 정도)미팅으로 오늘과 내일 해야 할 일 계획 수립
  • 스크럼마스터 : 프로젝트 리더

Lean (낭비=결함라는 철학적인 접근 방식)

  • 린시스템의 품질기법을 소프트웨어 개발 프로세스에 적용하여 프로세스의 낭비요소를 제거 후 결과를 측정, 성과를 분석해 소프트웨어의 품질을
    향상시키는 개발방법론
  • 도요타의 생산방식( 낭비 발견하고 제거 -> 고객에게 가치 빠르게 제공 )
  • 7가지 원칙 : 낭비제거, 품질 내재화, 지식창출, 늦은확정, 빠른 인도, 사람 존중, 전체 최적화
    애자일과 전통 방법론 비교
  • 폭포수 기법 vs 애자일 기법 *캡쳐4

문제1 자료사전, 데이터 사전

  • 데이터를 설명하는 데이터(메타 데이터)
  • 기호 =(정의), +(연결), |, { }(반복), **(주석), ( )(생략)

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

홈서버 IT 커뮤니티 SVRFORUM
Link