새소식

컴퓨터공학 💻/디지털 시스템 회로 설계

[디지털 시스템 회로 설계] 모듈화와 인터페이스

  • -
모듈화와 인터페이스
소프트웨어 설계

- 소프트웨어 해결책을 위한 문제 해결과 계획 과정

- 요구사항에 대한 구현 방법을 명시하는 것

소프트웨어 설계 원칙

추상화 (Abstraction)

- 복잡한 세부사항을 배제하고 본질적인 부분만 추출함

- 종류 : 기능 추상화, 자료 추상화, 제어 추상화

모듈화 (Modularization)

정제 (Refinement)

- 하향식 방법으로 프로그램 구조를 단순 기능으로  혹은 상세 설명으로 구체화

구조화 (Structured)

- 구성 요소와 그들간의 상호작용방식 정의

- 종류 : 계층구조 (단계적 분해,  분할 정복),네트워크 구조, 관계형 구조, ER 구조 등

정보은닉 (Information Hiding)

- 모듈 내부의 정보와 구현을 숨기고, 인터페이스로만 접근 가능

모듈화

SW 개발에 있어 기능을 분할하고 추상화하여 소프트웨어의 성능을 향상시키고 유지보수를 효과적으로 하기 위한 SW 설계 및 구현 기법

함수 재사용성의 예
객체 지향 프로그래밍 예

모듈화를 잘 하려면

응집도cohesion: 하나의 모듈이 가지는 기능적 집중성

결합도coupling: 두 모듈 사이의 상호 의존성

-모듈 간에는 꼭 필요한 데이터만 주고받도록

-인터페이스의 수를 적게

모듈화의 다양성

 

소프트웨어 모듈의 진화

모듈

응집도, 결합도

속성과 매소드가 결합된 형태의 객체로 표현

캡슐화, 추상화, 다형성, 정보은닉, 상속

독립적인 업무 또는 기능을 수행하는 소프트웨어 모듈인 컴포넌트를 조립하여 어플리케이션을 구현

기존 어플리케이션의 서비스를  조합하고, 네트워크상에서 연동하여, 새로운 어플리케이션을 구현하는 아키텍쳐(WebService, SOAP)

모듈화의 장점

프로그램의 개발 및 관리 쉬움

- 프로그램을 이해 하기 쉽다.

- 분할과 정복(divide and conquer)의 개발 복잡도 감소

- 프로그램에 기능 추가 /삭제 간편

- 프로그램의 시험, 수정, 업그레이드, 유지 보수 쉬움

- 모듈 재사용 가능

- 오류 파급효과 감소

- 확장성, 대체가능성, 다양성

적정한 모듈화 정도

모듈화를 많이 할 수록 좋은 것이 아니라 적정 지점을 찾아 하는 것이 좋다.

인터페이스

서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면

API (Application Programing Interface)

운영 체제나 어떤 프로그램이 제공하는 기능을 다른 응용 프로그램이 사용할 수 있도록 만든 인터페이스

논리회로 블록의 인터페이스

Full adder and four-bit adder
BCD adder
Block diagram of a ROM (Read Only Memory)

 

 

 

자료참조 - Digital Design 6th Morris Mano

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.