2017-03-31 10 views
0

소프트웨어 커플 링 및 응집력에 대한 아이디어 아이디어를 쓰려고합니다. 그러나 실용적인 의미가 있는지 확신 할 수 없습니다. 그래서 당신은 간단한 대수식을 사용하시기 바랍니다 예제와 함께 답을 설명하려면 그 대수를 상상하는 것은¿ 커플 링의 의미는 맞습니까?

Read about it in wikipedia

그래서 여기 그래서 우리 모두가 얘기 기쁘지 이해할 수있는 순차적 인 프로그래밍 언어입니다 ... 내가 믿고 싶은 것입니다 (¿이 맞습니까?) :

'Implementation of A with Low Cohesion 
'(Coincidental cohesion because there is no 
' good reason or need to group the functions 
' in this way) 
a(x) = 2x + 1 
b(x) = 3x + 2 
r(x) = a(x) + b(x) 

...

'Implementation of A with High Cohesion (Almost Atomic) 
r(x) = 5x + 3 
,

...

'Implementation of A with Low Cohesion too 
a(x) = 2x + 1 
r(x) = a(x) + 3x + 2 

...

'Implementations of A with Functional Cohesion 
a(x, y) = x * y 'Groups multiplication 
b(x, y) = x + y 'Groups addition 
r(x) = b(a(5,x), 3) 

답변

0

흥미로운보기 당신은 더 큰 개념을 이해하는 올바른 경로에 있습니다. Wikipedia 기사를 인용 한 이래로, 귀하의 예가 나열된 10 가지 유형 중 하나를 대표한다고 생각합니까?

예를 들어 데이터 및/또는 메시지 커플 링을 나타낼 수 있지만 기본 대수 명령문이 상태 (즉, 스토어 값)를 유지하지 않기 때문에 문제가 발생하는 것 같습니다.

이 간단한 대수학이 결국 소프트웨어 개발에서 모든 중요한 연결 패턴을 나타 내기에는 너무 단순해진다는 것을 깨달을 수 있습니다. 지금 당장은 함수에 하나 이상의 변수를 추가하고 다른 변수 이름 등을 사용하여 함수가 컨벌루션 될 수있는 방법을 늘릴 것을 제안합니다.

다른 커플 링 패턴을 설명하기 위해 값을 저장하고 이전에 저장된 값을 참조 할 수있는 방법이 필요합니다 ... 대수 문제를 해결하는 동안 우리 모두가하지만 보편적 인 구문이나 구조로는 가르쳐주지 않은 것 . (스크래치 용지와 작업 문제를 생각해 보면 문제를 해결할 수 있습니까? 아마 아무도이 작업을 수행하는 엄격한 시스템이나 모든 사람이 따르는 시스템을 배웠지 않을 것입니다.) 이러한 종류의 기능을 예제에 추가하기 시작하면 서로 다른 커플 링을 보여주기 때문에, 당신은 결국 자신의 프로그래밍 언어와 동등한 것으로 끝날 것입니다. 당신의 의도가 무엇인지에 따라 그것은 가치 있고 즐거운 운동이지만, 기존 언어로 커플 링 유형을 표현하여 개념을 학습하는 것이 더 효율적이라는 것을 알 수 있습니다.

0

좀 더 자세히 읽고 (덕분에 Cade Perkins), 나는 틀렸어.

예는 실제로 약 cohesion (according to wikipedia)했다 :

'Implementation of A with Low Cohesion 
'(Random cohesion because there is) 
' no reason to group the functions 
' in this way) 
a(x) = 2x + 1 
b(x) = 3x + 2 
r(x) = a(x) + b(x) 

...

'Implementation of A with High Cohesion (Almost Atomic) 
r(x) = 5x + 3 

...

'Implementation of A with Another Random Cohesion 
a(x) = 2x + 1 
r(x) = a(x) + 3x + 2 

...

'Implementation of A with Functional Cohesion 
a(x, y) = x + y  ' Groups Addition 
b(x, y) = x * y  ' Groups Multiplications 
r(x) = a(b(5, x), 3)