1과목 소프트웨어 설계
요구사항 명세 기법
- 정형 명세 기법, 비정형 명세 기법
정형 명세 기법
- 수학적 원리 기반, 모델 기반
- 수학적 기호, 정형화된 표기법
- 요구사항을 정확하고 간결하게, 일관성, 완전성 검증 가능, 사용자 이해 어려움
비정형 명세 기법
- 상태, 기능, 객체 중심
- 자연어 기반 서술, 다이어그램
- 일관성 떨어짐, 해석이 달라질 수 있음. 의사소통 용이
자료 흐름도 (Data Flow Diagram)
- 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술
- 자료 흐름 그래프, 버블 차트
- 자료의 흐름과 처리 중심
- 요소 : process(원), data flow(화살표), data store(직선), terminator(사각형)
자료 사전
- 자료 흐름도의 자료를 더 자세히 정의
- 기호 : = (정의), + (연결), () (생략), [] (선택), {} (반복), **(설명)
요구사항 분석을 위한 CASE(자동화 도구)
- SADT : SoftTech 개발, 블록 다이어그램
- SREM: TRW 개발, 실시간 처리 소프트웨어 시스템, RSL, REVS
- PSL/PSA : 미시간 대학 개발
- TAGS : 자동 접근 방법, 개발 주기의 전 과정에 이용
HIPO
- 시스템의 분석 및 설계, 문서화, 입력, 처리, 출력으로 시스템 모델 구성
- 하향식, 체계적 문서 관리, 기호·도표 사용
- 기능과 자료의 의존 관계 동시 표현
- 변경, 유지보수 용이
- 차트 : 가시적 도표 (전체의 기능, 흐름, 트리 구조), 총체적 도표 (구성 기능, 입력처리 출력 정보제공)
,세부적 도표 (기능을 구성하는 기본 요소를 상세히)
UML
- 구성 요소 : 사물, 관계 , 다이어그램
- 사물 : 구조 사물(클래스), 행동 사물 (상호작용), 그룹 사물 (패키지), 주해 사물 (노트)
관계
- 연관 : 서로 관련이 있음 / 표시 : ->, - (양방향)
- 집합 : 포함되어 있음
- 포함 : 집합 중 영향을 미침
- 일반화
- 의존 : 필요할 때만 연관 유지
- 실체화
다이어그램
- 구조적 다이어그램 : 클래스, 객체(럼바우-객체 모델링), 컴포넌트, 배치 ,패키지 ,복합체 구조
- 행위 다이어그램 : 유스케이스 , 시퀀스, 커뮤니케이션, 상태, 활동, 상호작용 개요, 타이밍
스테레오 타입
- <<include>>, <<extend>>, <<interface>>, <<exception>>, <<constructor>>
시퀀스 다이어그램 구성요소
- 액터, 객체, 생명선, 실행 상자, 메시지
프로토 타입 : 와이어 프레임 + 인터랙션
협약에 의한 설계
- 명세 포함 : 선행 조건 , 결과 조건, 불변 조건
객체지향 분석 방법론
- 럼바우 방법 : 객체는 단 하나의 책임, 응집도 높을수록, 결합도 낮을수록
- 개방 폐쇄 원칙 : 기존 코드 변경 없이 기능 추가
- 리스코프 치환 원칙 : 지식 클래스는 최소한 부모 클래스에서 가능한 행위 수행 + 확장
- 인터페이스 분리 원칙 : 사용하지 않는 인터페이스와 의존 관계나 영향을 미치면 안됨
- 의존 역전 원칙 : 추상성이 높은 클래스와 의존 관계 맺기
결합도
- 자료 결합도 : 모듈 당 인터페이스가 자료 요소로만 구성
- 스탬프 결합도 : 자료 구조가 전달
- 제어 결합도 : 제어 신호를 이용해 통신, 제어 요소 전달
- 공통 결합도 : 공유되는 공통 데이터 영역을 여러 모듈이 사용
- 내용 결합도 : 한 모듈이 다른 모듈의 내부 기능, 자료를 직접 참고·수정
응집도
- 강할수록 품질 높음, 약할수록 품질 낮음
공통 모듈
- 명세 기법 : 정확성, 명확성, 완전성, 일관성, 추적성
- 재사용 : 외부 모듈과 결합도 낮고, 응집도 높을수록 (함수와 객체, 컴포넌트 , 애플리케이션)
디자인 패턴
- 참조할 수 있는 전형적인 해결 방식, 예제
- 한 패턴에 변형을 가하거나 특정 요구사항을 반영하면 유사한 형태의 다른 패턴으로 변화
- GOF 디자인 패턴
- : 생성패턴 (추상 팩토리 , 빌터, 팩토리 메소드, 프로토 타입, 싱글톤)
: 구조 패턴 (어뎁터, 브리지, 컴포지트, 데코레이터, 퍼싸드, 플라이웨이트, 프록시)
: 행위 패턴 (책임 연쇄, 커맨드, 인터프리터, 반복자, 중재자, 메멘토, 옵서버, 상태, 전략, 템플릿 메소드, 방문자)
소프트웨어 아키텍처 설계 과정
1. 요구사항 분석
2. 타입 결정
3. 표준 아키텍처 설계
4. 인터페이스 정의
요구사항 검증 방법
- 동료 검토 : 요구사항 명세서 작성자가 직접 설명, 들으면서 결함 발견
- 워크 스루 : 미리 배포, 사전 검토, 검토 회의
- 인스펙션 : 다른 검토 전문가들이 확인
인터페이스 요구사항 검증 항목
- 완전성, 일관성, 명확성, 기능성, 검증 가능성, 추적 기능성, 변경 용이성
인터페이스 통계 유형
- 단방향, 동기, 비동기
미들웨어
- DB, RPC, MOM, TP-Monitor, ORB, WAS
상위 설계 : 구조 설계, DB 설계, 인터페이스 설계 (아키텍처)
하위 설계 : 컴포넌트 설계, 자료구조 설계, 알고리즘 설계 (모듈)
기능적 요구사항 : 입·출력, 데이터 저장, 연산
비기능적 요구사항 : 구성, 관리
인수 테스트 : 사용자가 실제로 사용할 환경에서 요구사항들이 모두 충족되는지
시스템 구성 요소 : Input, Process ,Output, Control, Feedback
시스템 품질 속성 : 가독성, 변경용이성, 성능, 보안성, 사용편의성, 시험용의성
'정보처리기사' 카테고리의 다른 글
정보처리기사 5과목 (0) | 2023.01.31 |
---|---|
정보처리기사 4과목 (0) | 2023.01.30 |
정보처리기사 3과목 (0) | 2023.01.30 |
정보처리기사 2과목 (0) | 2023.01.30 |
댓글