2011년 6월 2일 목요일

소프트웨어 설계

PLT 15 소프트웨어 설계
정의
  • 정해진 일정과 목표를 성취하기 위해서 명세화된 요구사항을 만족시키는 방법을 결정하는 과정
  • 분석단계의 요구명세를 기초로 어떻게 시스템으로 구현할 것인가를 기술하는 과정

필요성
  • 소프트웨어의 잘못된 설계에서 발생하는 Overhead 최소화하여, 시스템 구현, 유지보수 단계에서의 관리 효용성 필요
  • 유지보수 단계에서 기하급수적으로 증가되는 변경비용을 설계단계에서 줄이기 위해

기본원리
  • 추상화 : 복잡한 문제를 이해 또는 기술시 문제의 핵심부분만 개념화
    • 기능추상화 : 함수, 메소드
    • 자료추상화 : 자료형, 클래스
    • 제어추상화 : 명령, 이벤트
  • 정보은닉 : 모듈을 사용하기 위한 최소한의 접근 정보만 외부에 표시하고, 자세한 내용과 기능은 모듈의 내부에 숨김
  • 구조화 : 분할의 원리, 복잡한 문제영역을 기능모듈 별로 세분화, 모듈관계 구조화, 세분화는 이해를 용이하게 하고 유지보수성을 향상시킨다.
  • 모듈화 : 소프트웨어 구성요소를 서브루틴, 서브시스템, 작업단위 등으로 분류, 모듈의 결합도가 낮고, 응집도가 높을수록 모듈의 독립성이 보장됨

댓글 없음:

댓글 쓰기

시스템 부팅시 도커 컨테이너 자동 실행

Docker 컨테이너를 운용중인 시스템이 Reboot 되버리면 컨테이너가 자동으로 올라오지 않아 불편해서 시스템 리붓시 컨테이너를 자동으로 시작되게 init 데몬에 등록하기로 했습니다. 서버는 Ubuntu 17.10 Docker는 17.0...