셤숌셤/정보처리기사 필기 오답노트

1과목: 소프트웨어 설계

moonday 2021. 7. 18. 21:26
Linear 절차지향
객체지향 분석의 방법론 중 하나인 럼바우 : 객체모델, 동적모델, 기능모델로 나눠 수행하는 방법
디자인패턴 + 객체언어 = 효율성 증가
소프트웨어 하위설계 : 모듈설계
자료사전에서 기호의 의미 : [ ] = 선택, ( ) = 생략, { } = 반복 , + = 연결, ** = 설명
개발 및 테스트 => 소스코드 분석 및 오류 복구
비정형-자연어, 정형-Z기법
유지보수 => 개발비용 높음
애자일(민첩, 소통, 주기반복) : 기능, 스크럼, XP
설계 및 코딩 => 구현단계
디자인패턴 :
1.생성패턴(Creational Pattern): 추상팩토리, 빌더, 팩토리메소드, 프로토타입, 싱글톤

2.구조패턴(Structural Pattern): 어탭더, 브리지, 컴포지트, 데코레이터, 퍼싸드, 플라이웨이트, 프록시
- 브리지 : 구현부에서 추상층을 분리하여 서로 독립적으로 확장할 수 있도록 구성한 패턴

3.행위패턴(Behavioral Pattern): 책임연쇄, 커맨드, 인터프리터, 반복자, 중재자, 메멘토, 옵서버, 상태, 전략, 템플릿 메소드, 방문자
- 방문자패턴 : 각 클래스들의 데이터 구조에서 처리기능을 분리하여 별도의 클래스로 구성하는 패턴
- 옵서버패턴: 한 객체의 상태변화에따라 상속되어있는 다른 객체들에게도 변화된 상태를 전달하는 패턴
인스턴스화(서브클래스 결정) => Factory Method
LSP리스코프 = 자식이 부모상속 (부모껀 다 가능해야지) 같은 개념
자료흐름도 : 구조적 분석 기법, 버블 차트
자료 흐름도 구성요소 표기법
1) 프로세스 : 원이나 둥근 사각형 표시, 자료 변환 시스템의 한 부분을 나타냄, 버블
2 )자료 흐름: 화살표위에 이름기입, 자료이동 연관관계
3) 자료 저장소: 도형 안에 자료 저장소 이름 기입
4) 단말 : 도형 안에 이름 기입, 시스템과 교신하는 외부개체, (정보의 생산자와 소비자) 입력데이터 만들고 출력데이터 받음
*자료 사전 : 자료흐름도에 있는 자료를 더 자세히 정의/기록, 메타데이터, 자료 흐름도를 체계적/조직적
=> 자료 흐름도 구성요소 표기법은 아님
인터페이스 요구사항 검토는 검토 담당자들이 수작업으로 결함여부를 분석하는 방법 : 동료검토, 워크스루, 인스펙션
GoF 디자인 패턴 종류 : 행위패턴(예: visitor)
데이터 추상화, 단위 = 클래스
객체지향 기법에서 클래스들 사이의 '부분-전체관계' 또는 '부분'의 관계로 설명되는 연관성을 가진 용어 : 집단화, 집합, 집단
Code와 Yourdon 방법 = > ER다이어그램, 객체 행위 모델링, 객체/구조식별, 주제정의, 속성-인스턴스연결 정의, 연산-메세지 연결 정의 등
순차코드 : 일정한 일련번호
표의 숫자코드 : 물리적 수치를 그대로 코드에 적용
서버튜닝 = 서버성능개선
워크스루 : 요구명세서 미리배포->검토회의->오류검출
Case : 소프트웨어 생명주기 전 단계 연결, 그래픽지원, 소프트웨어 개발모형 지원
HIPO : 시스템 분석 및 설계의 문서화 도구, “하향식(위->아래)”
-유지/보수 용이
-기능/자료 의존관계 동시표현 가능
-기호/도표 사용=> 이해도 높고 보기쉬움
-문서관리
데이터흐름도(=자료흐름도) DFD : 프로세스, 자료흐름, 자료 저장소, 단말
UML 확장모델에서 스테레오 타입 객체를 표현하는 기호 : << >>
트랜잭션 올바르게 처리하는지 데이터 감시,제어하는 미들웨어 = TP-Monitor
애자일모형: 최소한 몇 주 단위로 실행되는 sw제공
XP:릴리즈기간 짧게 반복
포함: 포함하는게 포함되는 것에 미치는 "영향" // 집합: 다른사물에 “포함”됨
와이어프레임: 진행상태 공유 // 유스케이스 : 요구사항정리 기록
아키텍쳐순서 : 1.목표설정 -> 2. 시스템타입결정-> 3. 표준아키텍쳐적용 ->4. 인터페이스 정의
스크럼 개발 프로세스
1. 제품 백로그 : 우선순위 나열 목록
2. 스프린트 계획회의 : 단기일정수립
3. 스프린트 : 개발작업 진행(2~4주)
4. 일일 스크럼 회의 : 15분 정도에 매일 진행상황 점검
5. 스프린트 검토회의 : 사용자 포함된 참석자 앞 테스팅
6. 스프린트 회고 : 되돌아보며 문제점 파악 및 해결방안 모색
E-R 다이어그램(객체식별, 구조식별, 주체정의, 속성 및 관계 정의, 서비스 정의)
럼바우 - 객체 동적 기능
부치 - 미시적, 거시적
제이콥슨 - use case
wirfs브룩 - 고객명세서 평가, 작업까지 연속수행
미들웨어 솔루션 유형
- WAS(Web Application Server) : 사용자 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위한 미들웨어
- RPC(Remote Procedure Call) : 응용프로그램의 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 방식의 미들웨어
- ORB(Object Request Broker) : 객체지향 미들웨어, 코바(표준 스펙을 구현한 미들웨어)
Web Server는 웹페이지 저용량 자료 등의 처리를 담당하는 서버로 미들웨어에 속하지 않음
협약에 의한 설계 => 클래스의 여러 가정을 공유 명세, SW 컴포넌트에 대한 인터페이스 명세
1. 선행조건 : 오퍼레이션 호출 전 참
2. 결과조건: 오퍼레이션 수행 후 만족
3. 불변조건: 오퍼레이션 실행 동안 항상 만족
코드의 기본 기능 => 식별, 분류. 배열
CASE(Computer Aided Sofrware Engineering)
- 소프트웨어 생명주기 전체 단계연결
- 다양한 소프트웨어 개발 모형, 그래픽 지원 등
요구사항 검토(수작업)
- 동료검토 : 내용설명, 동료(이해관계자)들이 검토
- 워크스루 : 미리배포, 짧은 검토회의
- 인스펙션 : 전문가들(작성자 제외) 명세서확인
요구사항 분석 : 비용 /일정 제약 설정, 타당성 조사, 요구 사항 정의 문서화
요구사항 명세: 설계 명세서 작성
UML : 통합 모델링 언어
소프트웨어 개발 과정에서 명세화, 시각화, 문서화 할 때 쓰는 모델링 언어
UML 은 1. 구조 다이어그램, 2. 행위 다이어그램
1. 구조 다이어그램
- 클래스 다이어그램
- 객체
- 패키지 : UML다양한 모델 요소를 그룹화
- 컴포넌트 : 컴포턴트 끼리 구조관계 표현
- 배치 : 시스템의 물리적인 구조 나타냄

2. 행위 다이어그램
- 쓰임새 다이어그램(use): 사용자 관점
- 활동 : 여러 활동 수행 상황
- 상태 : 상호작용에 따라 변화 표현
- 순서(sequence): 상호작용을 시간 순서에 따라서 표현
- 커뮤니케이션 : 객체 간의 관계나 메세지