정보처리기사 정리
소프트웨어 설계의 기본 원칙
blackmilktea
2024. 4. 15. 02:49
1. 소프트웨어 설계
!) 개념
- 요구사항 명세서를 참조하여 소프트웨어의 구체적인 설계서를 작성하는 단계 (SW Architechture)
- 물리적으로 구현이 가능하도록 시스템을 구체적으로 정의하는 단계 (System Architechture)
2) 종류
상위 설계
- 아키텍처 설계: 시스템의 전체적인 구조 설계
- 데이터 설계: 시스템에 필요한 정보, DB 설계
- 인터페이스 정의: 시스템의 구조와 서브 시스템들 사이의 인터페이스를 명확히 정의
- 사용자 인터페이스: 익숙하고 편리하게 사용하도록 인터페이스 설계
하위 설계
- 모듈 설계: 각 모듈의 실제적인 내부를 알고리즘 형태로 표현
- 자료구조 설계: 자료구조, 변수 등에 대한 상세한 정보
- 알고리즘 설계: 업무의 처리 절차 등
3) 설계 원리
- 분할과 정복(Divide & Conquer): 여러 개의 작은 서브 시스템으로 나누어 하나씩 완성
- 추상화(Abstraction): 필수 정보만 추출, 강조, 관련 없는 세부 사항은 생략해 본질적인 문제에 집중, 자세한 구현 전에 상우레벨에서 제품의 구현을 먼저 생각해 보는 것
- 단계적 분해(Gradual Decomposition): 기능을 작은 단위로 나누어 점차적으로 구체화
- 모듈화(Modulization): 실제로 개발할 수 있는 작은 단위로 나눔
- 정보 은닉(Information Hiding): 다른 객체에게 자신의 정보를 숨기고, 자신의 연산만을 통해 접근 가능, 외부 접근 제어, 캡슐화와 밀접한 관련이 있음.
2. 설계 모델링
1) 개념: 소프트웨어를 구성하는 모듈을 식별, 이들의 연결을 그림으로 표현한 것,
2) 유형
- 구조 모델링: 시스템의 구성 요소들과 이들 사이의 구조적인 관계오 특성들의 모델링, UML 정적 다이어그램
- 행위 모델링: 시스템의 구성 요소들이 언제 어떤 순서로 수행되는가와 같은 동적 특성의 모델링, UML 동적