본문 바로가기
정보처리기사/(1) 소프트웨어 설계

소프트웨어 설계 / UML / DFD / ER / SRP / OCP / LSP / ISP / DIP

by java나유 2023. 4. 16.

소프트웨어 설계는 소프트웨어 개발 생명주기에서 가장 중요한 단계 중 하나로, 시스템의 기능, 구조, 인터페이스, 데이터 구조 등을 결정하는 과정이다. 이를 위해 소프트웨어 설계에서는 다양한 기법과 모델을 사용한다.

먼저 소프트웨어 설계는 크게 아키텍처 설계와 세부 설계로 나눌 수 있다.

 

아키텍처 설계 : 전체 시스템의 구조를 결정한다.

세부 설계 : 모듈 단위로 기능을 구체화한다.

 

소프트웨어 설계에서는 아키텍처 설계와 세부 설계를 통해 시스템의 구조와 기능을 구체화하고 구현할 수 있는 계획을 수립하는 것이 중요하다.

 

소프트웨어 설계에서 사용하는 기법과 모델

 

UML(Unified Modeling Language): 객체지향 설계에 많이 사용되는 표준화된 모델링 언어로, 클래스 다이어그램, 시퀀스 다이어그램, 활동 다이어그램 등 다양한 다이어그램을 제공

DFD(Data Flow Diagram): 시스템의 데이터 흐름을 그래픽적으로 표현하는 기법으로, 입력, 출력, 처리, 저장 등의 구성 요소로 구성된 시스템의 데이터 흐름을 표현

ER(Entity-Relationship) 모델: 데이터 모델링에서 가장 일반적으로 사용되는 모델 중 하나로, 개체와 개체 간의 관계를 표현하는 모델

 

소프트웨어 설계 원칙


SRP(Single Responsibility Principle): 클래스나 모듈은 단 하나의 책임을 가져야 한다.

OCP(Open-Closed Principle): 확장에는 열려 있고, 수정에는 닫혀 있어야 한다.

LSP(Liskov Substitution Principle): 상위 타입의 객체가 하위 타입의 객체로 대체되어도 시스템의 동작에는 문제가 없어야 한다.

ISP(Interface Segregation Principle): 클라이언트는 사용하지 않는 인터페이스에 의존하지 않아야 한다.

DIP(Dependency Inversion Principle): 추상화에 의존하며, 구체화에 의존하지 않아야 한다.

 

728x90

댓글