Akashic Records

소프트웨어 설계 본문

오래된글/소프트웨어공학

소프트웨어 설계

Andrew's Akashic Records 2018. 4. 19. 10:56
728x90

PLT 15 소프트웨어 설계

정의

  • 정해진 일정과 목표를 성취하기 위해서 명세화된 요구사항을 만족시키는 방법을 결정하는 과정

  • 분석단계의 요구명세를 기초로 어떻게 시스템으로 구현할 것인가를 기술하는 과정


필요성

  • 소프트웨어의 잘못된 설계에서 발생하는 Overhead 최소화하여, 시스템 구현, 유지보수 단계에서의 관리 효용성 필요

  • 유지보수 단계에서 기하급수적으로 증가되는 변경비용을 설계단계에서 줄이기 위해


기본원리

  • 추상화 : 복잡한 문제를 이해 또는 기술시 문제의 핵심부분만 개념화

    • 기능추상화 : 함수, 메소드

    • 자료추상화 : 자료형, 클래스

    • 제어추상화 : 명령, 이벤트

  • 정보은닉 : 모듈을 사용하기 위한 최소한의 접근 정보만 외부에 표시하고, 자세한 내용과 기능은 모듈의 내부에 숨김

  • 구조화 : 분할의 원리, 복잡한 문제영역을 기능모듈 별로 세분화, 모듈관계 구조화, 세분화는 이해를 용이하게 하고 유지보수성을 향상시킨다.

모듈화 : 소프트웨어 구성요소를 서브루틴, 서브시스템, 작업단위 등으로 분류, 모듈의 결합도가 낮고, 응집도가 높을수록 모듈의 독립성이 보장됨

728x90
Comments