CS/소프트웨어개발방법론

소프트웨어 설계 원리

씩씩한 IT블로그 2022. 2. 10. 15:49
반응형

추상화(abstraction)

- 상세한 수준의 구현 고민이 아닌, 상위수준에서 제품의 구현을 먼저 생각하는것(필수적인 것만). 

- data 추상화, control 추상화, procedure 추상화로 나뉨.

- 시스템을 분할하여 컴포넌트가 어떻게 상호작용 하는지, 컴포넌트의 구현 방법을 생략하고, 외부 인터페이스에 초점을 맞추는 것이 추상화의 개념

- ex) print()라는 함수가 있을 때, print함수의 내부 구조 및 내부적인 동작과정을 생각하지 않고, print()함수가 "출력함수이다" 라고 이해하는 것.

 

정보은닉(information hiding)

- 각 모듈의 내부 내용을 감추고, 인터페이스를 통해서 메세지를 전달할 수 있도록 하는 개념

- 내부 정보 접근을 제한하여 한 모듈이 다른 모듈의 구현에 영향 맏지 않게 설계하는것.

- 구성 요소 간의 독립성을 유지시켜 준다

 

단계적 정제(stepwise refinement)

- 프로그램 구조에서 점차 모듈에 대한 세부사항으로 내려가며 구체화

- 설계(높은 추상화 단계에서 낮은 추상화 단계라 가는 것) 도 일종의 단계적 정제

- 요구사항 분석 -> 설계 -> 프로그래밍 으로 이어지는 엔지니어링의 흐름 도 단계적 정제의 일종

 

모듈화

- 시스템을 지능적으로 관리할 수 있도록 해주며, 복잡도의 문제를 해결해 준다.

- 시스템 유지보수를 용이하게 해준다.

- 모듈의 수가 과도하게 많아지면 모듈간 상호 교류가 증가하고, 시스템 성능이 떨어지고 과부하 발생.

 

 

반응형