컴퓨터(Computer Science)/소프트웨어공학(Software engineering)

방법론 개념과 특징 [소프트웨어공학]

게임이 더 좋아 2020. 4. 15. 17:42
반응형
728x170

프로세스들을 앞에서 배웠으니까 이제 어떻게 접근할까?? 라는 

방법론에 대해 알아보자

 


 

 

방법론과 프로세스의 비교는 전에도 했지만 서로 다르다.

방법론은 소프트웨어 프로세스의 각 작업을 어떻게 수행하느냐? 라는 것을 알고 가자

방법론은 결국 프로세스를 어떻게 구현할 것이냐? 라고 볼 수 있다.

 

++

프로세스는 각 단계의 입력 자료와 결과물을 제시하지만 그 내용이 어떻게 표현되어야 하는지는 규정하지 않았다.

바로 방법론에 따라 다르게 표현하는 것이다.

 

 

그렇다면 방법론이 뭐가 있는지 보자

 

 


 

 

1. 구조적 방법론

 

복잡한 문제를 쉽게 다루기 위하여 분할과 정복( divide and conquer)원리를 적용한다.

 

맨 처음에는 시스템 전체를 하나의 프로세스로 보고 최상위 레벨의  자료흐름도 (DFD,data flow diagram)를 그린다.

그 다음 나누어나가서 단순한 프로세스가 될 때까지 나눈 다음 그것들을 차례로 구현하면서 다시 올라온다.

 

또한 말단 프로세스의 입력, 출력, 자료구조, 알고리즘을 명시한다. 

 

 

*자료흐름도(DFD)는 현재 업무 프로세스 뿐 아니라 새로 제안된 프로세스까지 나타낼 수 있다. 그렇지만 모듈 사이의 구동관계를 나타내기에는 한계가 있다. 그래서 구조적 설계를 하는 것이다.

 

구조적 설계는 자료 흐름도를 구조도로 변경하는 과정이다. 

구조도는 모듈 사이의 관계를 나타내는 그래프로 각 노드는 모듈을 나타내며 간선은 상위층의 모듈이 서브루틴을 함수로 호출한다는 의미이다.

 

 

 

자료흐름도

 

 

 

 

 

 


 

 

2. 객체지향 방법론

 

객체 사이의 interaction을 모델링 하는 방법이다.

 

다시 말해서 자료와 함수를 같이 정의하여 객체로 묶어두고 호출해서 원하는 기능을 담당하게 하는 것이다.

 

++ 객체지향이라는 말은 java를 배우면 더욱 이해하기 쉽다.

*Object Oriented Program 이란 뜻이다.

 

 

 

 

함수를 시스템 전체에 걸쳐 흩어지도록 하는 것보다 한 곳(class)에 모아두는 것이 시스템을 단순하게 한다.

 

복잡한 대규모 시스템을 클래스로 모듈화 하고 캡슐화하는 것을 객체지향 방법론이 가능하게 했다.

 

다시 말하면 객체지향 방법이란 주어진 작업을 수행하기 위해 객체들을 모아놓은 것들을 시스템화 한 것이다.

 

 

 

 

 


 

 

 

사실 다른 방법론 하나  더 있긴 한뎅...

애자일 방법론..... 생략 ㅎㅎㅎ

나중에 기회가 있겠지

 

 

위에서 했던 것들을 정리한 것이다. 그냥 보기 좋게 정리한 것 빼고 내가 말한 것과 같다. 

 

 

 

 

 

반응형
그리드형