-
정보처리기사[실기 핵심 정리] - 소프트웨어 설계 기본 원칙용어 정리 2024. 4. 3. 12:31
소프트웨어 설계
- 요구사항 명세서를 바탕으로 소프트웨어의 구체적인 설계서를 작성하는 단계
- 시스템이 물리적으로 구현될 수 있도록 구체적으로 정의하며, 소프트웨어의 전반적인 구조와 세부 구현 방법을 표함한다.
소프트웨어 설계의 종류
상위 설계(High-level Design)
종류 설명 아키텍처 설계 시스템의 전체적인 구조를 설계 데이터 설계 시스템에 필요한 정보와 데이터베이스 구조를 설계 인터페이스 정의 시스템의 구조와 서브시스템들 사이의 인터페이스를 명확하게 정의 사용자 인터페이스 설계 사용자의 편의를 고려하여 인터페이스를 설계 하위 설계(Low-Level Design)
종류 설명 모듈 설계 각 모듈의 내부를 알고리즘 형태로 표현 자료구조설계 데이터의 저장 구조와 변수 등에 대한 상세한 정보를 설계 알고리즘 설계 업무의 처리 절차와 알고리즘의 설계 소프트웨어 설계의 원리
분할과 정복(Devide & Conquer)
- 큰 소프트웨어를 여러 개의 작은 서브시스템으로 나누어 각각을 완성하는 방법
추상화(Abstraction)
- 실세계의 복잡한 상황을 간결하고 명확하게 핵심 위주로 단순화한다.
- 추상화 기법
추상화 기법 설명 과정 추상화 상위 수준에서 수행 흐름만 설계 데이터 추상화 데이터 구조를 간단한 표현으로 대체 제어 추상화 명령들을 간단한 표현으로 대체 단계적 분해(Stepwise Refinement)
- 기능을 점차적으로 작은 단위를 나누고 구체화하는 방법
- 설계를 단계별로 세분화하여 각 단계의 복잡성을 관리한다.
모듈화(Modulization)
- 시스템을 개별적으로 개발 가능한 작은 모듈로 나눈다.
- 각 모듈을 독립적으로 개발, 테스트 및 유지보수할 수 있게 한다.
정보은닉(Information Hiding)
- 객체가 자신의 정보를 숨기고, 외부의 접근을 제한한다.
- 캡슐화와 밀접하게 연관되어 있으며, 데이터와 기능을 안전하게 보호한다.
결합도와 응집도
- 결합도를 낮추고, 응집도를 높이는 것이 좋은 설계이다.
설계 모델링
개념
- 소프트웨어의 구조와 기능을 그래픽적으로 표현한것
- 소프트웨어에 대한 공통된 이해를 촉진하고, 개발 과정을 계획한다.
- 여러 작업자들이 공유할 수 있는 공통된 개념을 제공한다.
원칙
- 설계에 변경이 용이하도록 구조화되어야 한다.
- 특정 기능을 수행하는 데 필요한 자료만을 사용한다.
- 요구사항 분석 결과를 기반으로 명확하게 표현한다.
- 시스템을 모듈 단위로 나누어 설계한다.
유형
1)구조 모델링
- 시스템의 구성요소와 그 사이의 구조적 관계를 모델링한다.
- UML 정적 다이어그램
2) 행위 모델링
- 소프트웨어 구성요소의 기능 수행 순서와 방식을 모델링한다.
- UML 동적 다이어그램
소프트웨어 설계 절차 및 유형
유형 설명 아키텍처 설계 시스템의 전체적인 구조와 서브시스템 간의 관계를 설계한다 데이터베이스 설계 시스템에 필요한 정보와 데이터의 구조를 설계한다 서브시스템 설계 각 서브시스템의 기능과 제약사항을 명세한다. 컴포넌트 설계 기능을 수행하는 컴포넌트들을 설계하고, 그들 간의 인터페이스를 명세한다. 자료구조 알고리즘 설계 데이터 저장 방식과 연산 방법을 설계한다. 협약에 의한 설계 클래스에 대한 선행 조건, 결과 조건, 불변 조건을 명세한다.
● 선행 조건 : 컴포넌트 오퍼레이션 사용 전에 참이 되어야 할 조건
● 결과 조건 : 사용 후 만족되어야 할 결과 조건
● 불변 조건 : 오퍼레이션이 실행되는 동안 만족되어야 할 조건'용어 정리' 카테고리의 다른 글
정보처리기사[실기 핵심 정리] - UML (0) 2024.04.04 정보처리기사[실기 핵심 정리] - 소프트웨어 아키텍처 (1) 2024.04.03 정보처리기사[실기 핵심 정리] - 요구사항 분석 (0) 2024.04.03 정보처리기사[실기 핵심 정리] - 프로젝트 계획 (0) 2024.03.30 정보처리기사[실기 핵심 정리] - IT 서비스 관리 (0) 2024.03.28