객체지향 2

[객체지향] OOP와 객체지향 패턴, Grasp 패턴 정리

프로그래밍 문제를 분석해 문제를 해결하는 방법과 과정. (Problem Solving) 조직화하는 것을 '설계'라 함. 구조적 프로그래밍에서의 분할기준은 프로시저(절차, 함수). 절차지향과 차이점은 캡슐화, 다형성, 상속 지원, 데이터 접근 제한을 걸 수 있는지 여부. 효율적으로 하기 위한 방법론 중 하나가 객체지향. 알고리즘은 수학적인 풀이. 하지만 이로 모든 문제를 해결 할 수 없음. 객체지향은 어떤 문제를 잘게 나눠서 각각의 능동적인 주체로 만들기 위함. 잘게 나눈 객체들을 조합해 큰 문제를 해결하는 Bottom-Up 지향 큰 문제를 10개로 나눠 할당하고 각 주체가 자기가 맡은 책임에 대해 해결을 위해 '자율적'으로 노력하고 '협업'하기 위한 패러다임. 즉 객체지향에서 우리가 배워야 할 것은 '협..

[SW 공학] 방법론

방법론 어떻게 접근할 것인가? 소프트웨어 프로세스의 각 작업을 어떻게수행하느냐? 프로세스는 각 단계의 입력자료와 결과물은 제시하지만 그 내용의 표현방법에는 규정되어 있지 않다. 바로 방법론이 표현의 차이를 만드는 것이다. 1. 구조적 방법론 복잡한 문제를 다루기 위해 분할정복 원리를 적용한다. 최초 시스템 전체를 하나의 프로세스로 보고 최상위 레벨의 자료흐름도(DFD)를 그린다. 그 다음 단순한 프로세스가 될 때까지 나눈다음 그것을 차례로 구현하면서 다시 올라온다. 말단 프로세스의 입렵, 출력, 자료구조, 알고리즘을 명시한다. DFD는 현재 업무 프로세스뿐 아니라 새로 제안된 프로세스까지 나타낼 수 있지만 모듈 사이의 구동관계를 나타내기는 한계가 있다. 때문에 구조적 설계를 한다. 구조적 설계는 자료 흐..