/ EXITEM, 정처기

구조적방법론

구조적 방법론(Structured Methodology)

소프트웨어 개발초기 단계에서 요구사항 분석설계를 중심으로 진행되는 소프트웨어 개발 방법론입니다.
개발 과정체계적이고 구조화된 절차에 따라 수행하여, 개발 과정 중 발생할 수 있는 문제를 사전에 예방하고 품질을 향상시킬 수 있습니다.

장점

체계적인 절차에 따라 개발이 이루어지기 때문에, 프로젝트 일정과 예산을 관리하기 용이합니다.
시스템 구조를 명확하게 설계하고 문서화하기 때문에, 소프르웨어의 이해도와 유지보수성이 향상됩니다.
요구사항 분석과 설계를 중심으로 개발이 이루어지기 때문에, 소프트웨어의 품질을 보장할 수 있습니다.

단점

소프트웨어 개발의 초기 단계에서 많은 시간과 노력을 소비하기 때문에, 전체적인 개발 속도가 느려질 수 있습니다.
요구사항 분석과 설계를 토대로 개발이 이루어지기 때문에, 변경사항이 발생하면 전체적인 구조를 변경해야 할 수 있습니다.
개발자의 능력과 경험에 따라 구조가 다르게 설계될 수 있기 때문에, 일관성과 품질의 차이가 발생할 수 있습니다.

결론적으로, 구조적 방법론은 체계적이고 구조와된 절차에 따라 소프트웨어를 개발하는 방법론으로, 소프트웨어의 품질을 보장할 수 있는 장점이 있지만 개발 속도가 느리고 변경사항에 취약한 단점이 있습니다.
따라서 최근에는 애자일 방법론과 같은 빠르고 유연한 개발 방법론이 대세가 되고 있습니다.

구조적 방법론은 크게 3가지로 분류됩니다.

1. 자료지향적 방법론(Data-Oriented Methodology)

소프트웨어 개발의 초창기에 많이 사용되던 방법론으로, 데이터의 흐름과 처리 과정을 중심으로 소프트웨어 시스템을 설계합니다.
데이터의 특성과 유형, 그리고 데이터를 처리하는 방법에 대한 분석을 통해 소프트웨어 시스템을 설계합니다.
주로 데이터 흐름도(Data Flow Diagram)나 자료 구조 다이어그램(Data Stucture Diagram) 등의 도구를 사용하여 시스템 구조를 설계합니다.

2. 구조지향적 방법론(Structured Design Methodology)

구조지향적 방법론은 자료지향적 방법론은 보완하기 위해 개발된 방법론으로, 소프트웨어 시스템을 기능 단위로 나누어 설계합니다.
소프트웨어 시스템을 구성하는 기능들을 순차적으로 나열하고, 이를 조합하여 전체 시스템을 구성합니다.
소프트웨어 시스템의 구조를 설계하기 위해 구조도(Structure Chart)라는 도구를 사용합니다.

3. 객체 지향적 방법론(Object-Oriented Methodology)

객체지향적 방법론은 객체와 클래스를 중심으로 소프트웨어 시스템을 설계하는 방법론으로, 객체와 객체 간의 상호작용에 대한 분석을 통해 소프트웨어 시스템을 구성합니다.
객체 간의 상호작용을 정의하기 위해 UML(Unified Modeling Language)을 사용하며, UML은 객체지향적 방법론에서 사용되는 다이어그램의 표준 언어입니다.
UML에서는 시스템의 구성요소를 객체(Object), 클래스(Class), 상속(Inheritance), 메서드(Method), 관계(Relationship) 등의 요소로 정의하고, 이를 이용하여 시스템 구조를 설계합니다.

객체지향적 방법론은 자료지향적 방법론과 구조지향적 방법론의 한계를 극복하기 위해 개발된 방법론으로, 소프트웨어 개발과 유지보수의 효율성과 생산성을 높이는 데 큰 역할을 합니다.