반응형
소프트웨어 설계는 사용자의 비기능적 요구사항을 기반으로 제약을 반영하며, 기능적 요구사항을 구현할 구체적인 방법을 찾는 해결 과정입니다.
모듈화 (Modularity)
- 정의: 시스템 기능을 모듈 단위로 분리하여 소프트웨어 성능과 재사용성을 높이는 기법
- 모듈 크기
- 큰 모듈: 모듈 수가 적고 통합 비용이 낮지만, 개별 모듈의 개발 비용이 큼
- 작은 모듈: 모듈 수가 많아져 통합 비용이 높아질 수 있음
- 장점: 모듈 단위의 관리가 가능해 성능 향상 및 유지보수가 용이함
추상화 (Abstraction)
- 정의: 큰 개념을 설계한 후 이를 점차 구체화해 세부적인 설계로 발전시키는 방법
- 유형
- 과정 추상화: 전체 흐름만을 파악하고 수행 절차를 세세하게 정의하지 않음
- 데이터 추상화: 데이터의 세부 속성을 생략하고 대표 표현으로 대체
- 제어 추상화: 이벤트 발생의 절차를 정의하지 않고, 대표적인 절차 표현으로 대체
- 장점: 복잡성을 줄이고, 전체적인 시스템 설계 시 효율적임
단계적 분해 (Stepwise Refinement)
- 정의: 소프트웨어 기능에서 출발해 절차적이고 점진적으로 구체화하는 하향식 설계 방법
- 특징: Niklaus Wirth가 제안한 기법으로, 추상화의 반복을 통해 점차적으로 세부 사항을 설계
- 장점: 상세한 내역을 마지막 단계에서 결정하여 설계 변경이 용이함
정보 은닉 (Information Hiding)
- 정의: 모듈 내부의 정보나 자료가 다른 모듈에 노출되지 않도록 숨기는 기법
- 특징: 각 모듈이 독립적으로 기능을 수행하며, 외부 모듈이 접근하지 못하도록 제어
- 장점: 모듈 변경 시 다른 모듈에 영향을 주지 않아 유지보수와 수정이 수월함
반응형
'정보처리기사 > SW설계' 카테고리의 다른 글
[정처기-SW 설계] 결합도와 응집도 (2) | 2024.11.03 |
---|---|
[정처기-SW 설계] 객체지향 (Object-Oriented) (3) | 2024.11.02 |
[정처기-SW 설계] UI 사용자 인터페이스 (12) | 2024.10.31 |
UML (Unified Modeling Language) 구성 요소 정리 (5) | 2024.10.30 |
[정처기-SW 설계] 개발 기술 환경 파악 (8) | 2024.10.29 |