구조적 분석
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
구조적 분석은 1960년대에서 1980년대 사이 소프트웨어 개발의 복잡성 증가와 개발 프로세스의 비효율성에 대응하기 위해 개발된 일련의 기법이다. 구조적 프로그래밍, 구조적 설계, 구조적 시스템 분석 등을 포함하며, 다이어그램과 데이터 사전을 활용하여 시스템을 분석하고 설계하는 데 사용되었다. 데이터 흐름도, 구조 차트 등의 도구를 통해 시스템을 시각적으로 표현하고, 기능 분해 방식을 통해 시스템을 계층적으로 분해하여 이해를 돕는다. 하지만, 객체 지향 프로그래밍과 같은 새로운 개발 패러다임의 등장으로 활용도가 감소하였으며, 데이터 흐름도의 복잡성과 변경에 대한 취약성 등의 한계점을 가지고 있다.
더 읽어볼만한 페이지
- 소프트웨어 설계 - 지속적 배포
지속적 배포(CD)는 소프트웨어 릴리스 프로세스를 자동화하는 접근 방식이며, 배포 파이프라인을 통해 구현되고 시장 출시 시간 단축, 제품 품질 향상 등의 이점을 제공하지만 테스트 자동화 부족 등의 과제도 존재한다. - 소프트웨어 설계 - 도메인 주도 설계
도메인 주도 설계는 소프트웨어 개발에서 문제 해결 영역인 도메인의 중요성을 강조하며, 도메인 전문가와 개발자의 협력을 통해 도메인 모델을 구축하여 소프트웨어의 복잡성 관리와 일관성 유지를 목표로 하는 방법론이다. - 에츠허르 데이크스트라 - 교착 상태
교착 상태는 둘 이상의 프로세스가 자원을 점유하고 서로의 자원을 요청하여 더 이상 진행할 수 없는 상태를 의미하며, 상호 배제, 점유 대기, 비선점, 순환 대기 네 가지 조건이 모두 충족되어야 발생하고, 운영 체제는 이를 예방, 회피, 무시, 발견하는 방법으로 관리한다. - 에츠허르 데이크스트라 - 세마포어
세마포어는 데이크스트라가 고안한 정수 변수로, P/V 연산을 통해 자원 접근을 제어하고 동기화 문제를 해결하며, 계수 세마포어와 이진 세마포어로 나뉘어 멀티스레드 환경에서 자원 관리 및 스레드 동기화에 기여한다.
구조적 분석 | |
---|---|
개요 | |
명칭 | 구조적 분석 및 설계 |
영어 명칭 | structured analysis and design (SAD) |
정의 | 시스템을 분석하고 소프트웨어 및 하드웨어 구성 요소를 설계하기 위한 방법론 |
역사 | |
개발 시기 | 1970년대 |
개발자 | 래리 콘스탄틴 (Larry Constantine) 및 에드워드 요던 (Edward Yourdon) |
발전 | 톰 드마르코 (Tom DeMarco), 켄 오어 (Ken Orr), 스티븐 맥메나민 (Stephen McMenamin), 존 팔머 (John Palmer) |
방법론 | 자료 흐름도(DFD), 자료 사전(DD), 구조도, 의사 코드, 상태 전환 다이어그램 등의 도구 사용 |
주요 개념 | |
목표 | 문제를 이해하고 해결책을 제시 요구 사항을 체계적으로 분석하고 명세화 |
특징 | 하향식 접근 방식 사용 모듈화 및 분할 통치 전략 적용 그래픽 모델링 도구 활용 |
장점 | 시스템의 복잡성을 줄임 이해하기 쉬운 시각적 표현 제공 유지 보수 용이 |
단점 | 변화하는 요구 사항에 대한 적응성 부족 객체 지향 프로그래밍에 대한 지원 미흡 |
주요 기법 | |
자료 흐름도 (Data Flow Diagram, DFD) | 시스템 내 데이터 흐름을 그래픽으로 표현 |
자료 사전 (Data Dictionary, DD) | 데이터 요소의 정의, 속성, 관계 등을 기술 |
구조도 (Structure Chart) | 프로그램 모듈 간의 계층적 관계를 표현 |
의사 코드 (Pseudocode) | 프로그램 로직을 자연어와 유사하게 표현 |
상태 전환 다이어그램 (State Transition Diagram) | 객체의 상태 변화를 표현 |
적용 분야 | |
소프트웨어 개발 | 시스템 분석 및 설계 단계에서 활용 |
정보 시스템 구축 | 업무 프로세스 모델링 및 시스템 요구 사항 정의 |
시스템 통합 (System Integration, SI) | 기존 시스템 분석 및 새로운 시스템 설계 |
관련 기술 및 방법론 | |
구조적 프로그래밍 | 순차, 선택, 반복 구조를 사용하여 프로그램 작성 |
객체 지향 분석 및 설계 (Object-Oriented Analysis and Design, OOAD) | 객체, 클래스, 상속 등의 개념을 사용하여 시스템 모델링 |
UML (Unified Modeling Language) | 객체 지향 시스템 모델링을 위한 표준 표기법 |
비판 | |
유연성 부족 | 변화하는 요구 사항에 대한 적응이 어려움 |
객체 지향 개념 미반영 | 현대적인 소프트웨어 개발 방법론과의 통합이 어려움 |
문서 중심 | 과도한 문서 작업으로 인해 개발 속도가 느려질 수 있음 |
2. 역사
구조적 분석은 1960년대와 1980년대 사이에 소프트웨어 개발 분야에서 나타난 주요 문제점, 즉 대규모 시스템의 복잡성 증가와 비효율적인 개발 프로세스에 대한 해결책으로 개발되었다.[25] 이 시기에는 코볼, 포트란, C, 베이직과 같은 프로그래밍 언어가 주로 사용되었으며, 체계적인 설계 및 프로그래밍 기법, 표준화된 문서화 방법이 부족하여 소프트웨어 개발이 더욱 어려웠다.[25]
참조
[1]
간행물
FCS Evaluation criterea for technology assessment
http://acast.grc.nas[...]
Tricia Gilbert
2006
[2]
서적
Managing the Structured Techniques: Strategies for Software Development in the 1990s
Yourdon Press
1986
[3]
간행물
FAA System Safety Handbook, Appendix D
http://www.faa.gov/r[...]
FAA
2000-12-30
[4]
문서
Introduction to Structured Analysis and Design
2000
[5]
서적
Essential Systems Analysis
https://archive.org/[...]
Yourdon Press
1984
[6]
서적
Handbook of Industrial Engineering: Technology and Operations Management
2001
[7]
서적
Modern Structured Analysis
https://books.google[...]
Prentice-Hall
1989
[8]
간행물
Achieving buzzword compliance in Object orientation
http://www.ihs.gov/M[...]
Essential Strategies, Inc.
1999
[9]
간행물
DoDAF 1.5 Volume 2
http://www.defenseli[...]
2003-08-15
[10]
간행물
Integrating Automated Structured Analysis and Design with Ada Programming Support Environments
https://ntrs.nasa.go[...]
NASA
1986
[11]
서적
Structured Analysis and System Specification
Yourdon Press, New York
1978
[12]
웹사이트
NDE Project Management
http://projects.osd.[...]
2008
[13]
서적
Systems Engineering: Principles and Practices
2003
[14]
간행물
Data Integration Glossary
http://knowledge.fhw[...]
U.S. Department of Transportation
2001-08
[15]
웹사이트
What is a data dictionary?
http://searchsoa.tec[...]
TechTarget
[16]
간행물
Guidelines for Developing a Data Dictionary
http://library.ahima[...]
AHIMA Practice Brief, Journal of AHIMA
2006-02
[17]
문서
Introduction to Systems Engineering Practices
http://ses.gsfc.nasa[...]
2000-07
[18]
논문
Structured Design
1974
[19]
웹사이트
Configuration Management
https://www.irs.gov/[...]
2008-11-14
[20]
서적
Structured Techniques: The Basis for Case
Prentice Hall
1988
[21]
웹사이트
Structure Charts
http://www.usfca.edu[...]
[22]
논문
Direct Implementation of Abstract Data Types from Abstract Specifications
1986-05
[23]
간행물
FCS Evaluation criterea for technology assessment
http://acast.grc.nas[...]
Tricia Gilbert
2006
[24]
서적
Managing the Structured Techniques: Strategies for Software Development in the 1990s
Yourdon Press
1986
[25]
문서
Introduction to Structured Analysis and Design
2000
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com