스파게티 코딩
1960년대
- 작고 간단한 응용 시스템을 만듦
* 제한된 시스템 자원하에서 최대한의 효과를 보고자 노력함
- 개발자들의 창조적인 능력에 의해 소프트웨어가 개발됨
- 스파게티 코드 생성
- 수많은 GOTO 구문은 소프트웨어 시스템을 보수 / 관리하기 어렵게 함
구조적 설계와 분석
1970년대
- AI Constantine과 Ed Yordon의 접근 방법
* 함수(function)들을 빌딩 블록(building block)으로 하여 소프트 웨어 시스템을 만들고자 함
특징
- 모듈화 프로그래밍으로 발정을 가져 옴
- 함수는 언제나 변화할 수 있음
* 거의 변하지 않는 자연 법칙에 따라 작성되는 '과학 프로그램'에는 적합하나, 사용자의 요구가 계속정으로 바뀌는 현실 세계의 응용에는 부적합함
- 함수와 프로시저(procedure)는 생성되는 응용 프로그램에 대해 추상화를 제공함
* 함수는 다른 응용에서 재사용 가능함
* 프로시저는 반복적인 작업을 줄여 줌
- 높은 결합도(coupling)와 낮은 응집도(cohesion)에 의한 시스템의 복잡도 증가
* 결합도
- 특정 코드 부분의 다른 코드나 데이터 저장소에 대한 의존성 정도
- 구조적 방법론은 높은 결합도를 보여 줌
*응집도
- 서로 관련된 일련의 코드와 데이터가 얼마나 적합하게 관련을 맺고 있는가에 대한 정도
- 명령형 언어에서 변수는 공통 영역에 존재하면 모든 함수에서 공유가 가능함
- 구조적 방법론은 낮은 응집도를 보여 줌
'자바 > JAVA...Spring' 카테고리의 다른 글
자바공부하기 30] 객체지향(3) (0) | 2015.04.09 |
---|---|
자바공부하기 29] 객체지향(2) (0) | 2015.04.09 |
자바공부하기 27] 클래스구조 (0) | 2015.04.07 |
자바공부하기 26] 클래스 (0) | 2015.04.02 |
자바공부하기 24] 자바 실행단계 (0) | 2015.04.02 |