SW Engineering 3

단일 책임 원칙 ( SRP : Single Responsibility Principle )

단일 책임 원칙의 정의 단일 책임 원칙은 '하나의 모듈은 하나의 일만 해야 한다'는 의미로 자주 오해되곤 한다. 이는 흔히 알려진 '하나의 함수는 하나의 일만 해야 한다'는 원칙과의 혼용되어 발생한 문제이다. 위의 원칙은 함수를 설계할 때 사용되는 원칙으로 단일 책임 원칙보다 저수준에서 사용된다. 단일 책임 원칙의 진짜 정의는 아래와 같다. 단일 모듈은 변경의 이유가 하나, 오직 하나뿐이어야 한다. 그렇다면 모듈을 변경하는 이유는 무엇일까? 그것은 바로 사용자가 이 모듈에 기대하는 책임이 변화할 때이다. 만약 사용자가 둘 이상이라 가정하면 모듈이 변화하는 이유는 두 가지 이상이 될 수 있다. A 사용자가 이 모듈에 기대하는 책임이 변화한 경우 B 사용자가 이 모듈에 기대하는 책임이 변화한 경우 즉, 위와..

Architecture와 Programming Paradigm

현재 Programming 패러다임에는 크게 세 가지가 있다. Procedure Programming, Object-Oriented Programming, Functional Programming 이 세 개의 패러다임을 SW Architecture관점에서 정의한다. Procedure Programming 단순한 명령어의 순차적 수행이 아닌 루틴, 서브루틴, 함수 등을 이용한 프로그래밍 패러다임이다. 여기서 'Procedure'은 '절차적인' 이라는 뜻이 아닌 프로그래밍에서 'Procedure'를 의미한다. Procedure : 필요한 작업을 순서대로 수행하기 위해 '명령을 꾸러미로 만든 함수 'Procedure Programming'의 등장 배경은 '수학적 증명'이다. 프로그램은 '순차', '분기', '..

Architecture란?

정의 아래는 우리가 일반적으로 혼용해서 사용하는 두 용어이다. 아키텍처 (Architecture) : 고수준의 구조 또는 결정사항을 의미 설계 (Design) : 저수준의 구조 또는 결정사항을 의미 두 용어는 본질적으로 같은 의미이다. 둘 모두 SW 전체 설계의 구성 요소이며 개별로 존재할 수 없고 경계는 뚜렷하지 않다. 단지, 고수준에서 저수준으로 향하는 의사결정의 연속성만 있을 뿐. 목표 SW Architecture의 궁극적 목표는 무엇일까? "SW Architecture의 목표는 필요한 SW를 만들고 유지보수에 투입되는 인력을 최소화하는 데 있다." 좋은 설계는 처음부터 제품 수명이 다할 때까지 유지보수 비용을 낮게 유지할 수 있다. 요구사항이 변화할 때마다 비용이 증가한다면 그 설계는 나쁜 설계이..