소프트웨어 개발 방법론 - Software Development Methodology


 

방법론은 소프트웨어를 개발하기위해 개발조직환경과 소프트웨어 및 시스템을 사용할 사

용자의 환경에 적합한 소프트웨어 개발 방법을 의미한다. 소프트웨어 개발방법은 소프트

웨어 공학의 대가에 의해 소프트웨어 개발방법론이라는 학문형태로 자리를 잡고 있다. 따

라서 방법이라는 것은 일반적으로 개발 방법론이라 볼 수 있다. 세계적인 소프트웨어 개

발방법론은 크게
구조적 분석 및 설계(Structured A/D ), 정보공학(Information

Engineering), 그리고 최근에 각광받고 있는
객체지향 방법론(Object_

OrientedMethodology)이 있다. 실제적으로 보면 현재 기업이나 조직에서 사용하는 방법론

은 이들을 적절하게 혼합하여 사용하고 있다. 구조적 방법론의 프로세스모델링과 정보공

학의 데이타 모델링을 동시에 사용하고 있다. 이는 조직의 환경이나 개발환경에 맞게 적

절하게 기본적인 방법론을 변형시켜 적용시키는 것으로 볼 수 있다.

  • 구조적분석 및 설계(Structured A/D): 1970년대 중반 ~ 1980년대 중반
  • 정보공학(Information Engineering) : 1980년대 후반 ~ 1990년대 중반
  • 객체지향 방법론(Object_ OrientedMethodology): 1990년대 초반 ~ 현재

구조적 분석 및 설계

구조적 방법론은 1970년대 이후 현재 까지 가장 널리 사용되어오던 방법론으로

구조적 분석, 구조적 설계, 구조적 프로그래밍으로 이루어져 있다. 구조적 방법

론은 하향식 기능 분할(Fuctional Decomposition)에 기반 둔 프로세스 중심의

방법론으로 단순한 업무처리시스템의 개발에는 효과적이지만 데이터 분석 및 설계
부분이 취약하며, 분석, 설계, 구현에서 상의한 모델을 사용하므로 단계 간의 변

환에 많은 노력이 소요된다. 따라서 대규모의 복잡한 시스템 개발에는 적합하지

않다.


구조적 방법론은 크게
자료구조 중심적 방법론자료흐름 중심적 방법론로 분류

할 수 있다("객체지향소프트웨어공학", 최영근/허계범).

데이터 구조적 방법은 업무나 기능에 의한 데이터의 변환에 관점을 둔다. 반면에
처리지향 방법은 기능을 분할하는 방법으로 문제를 독립적으로 분해하여 재검토되

어 진다. 데이터 구조적 방법론이 문제에 관심을 둔것이라면 처리 지향적 벙법론

은 해결에 촛점을 맞춘 것이라 할 수 있다. 구조적 방법론을 지원하고 있는 기법

은 대표적으로
DFD(Data Flow Diagram), DD(Data Dictionary), Mini- Spec

(Mini-Specification)이 있다.



정보공학


정보공학 방법론은 1980년대 후반에 조직 전반에 걸친 정보 모형화 전략을 채택

하며 대두되었다. 정보공학 방법론은 전사적인 차원에서 정보시스템 기획을 통하

여 단위시스템을 식별하고  이를 CASE 도구를 이용하여 분석, 설계, 구현하는 방

법론으로 기획단계가 대폭강화되고 CASE를 이용한 생산성 향상 등의 장점으로 인

하여 대규모의 시스템 개발에 적합하다. 즉
전체의 계획과 모델 작성을 하고 이

에따라 연관관계를 가지고 각각의 시스템을 개발한다.
그러나 정보공학 방법론은
복잡한 시스템의 모델링에 부적합하여 현재는 객체지향 방법론으로 대치되고 있는

추세이다.


정보공학 방법을 지원하고 있는 기법은 대표적으로 ERD(Entity Relation

Diagram), PHD(Process Hierachy Diagram), 프로세스대엔티티 Matrix 등이다.
각 기법에 대한 자세한 사항은 기법을 참조한다. 이러한 정보공학의 특징은 아래

와 같다.("객체지향소프트웨어공학", 최영근/허계범)

 

● 정보공학은 전체를 고려하여 시스템을 개발할 수 있도록 돕는다.

 정보공학은 정보전략계획, 업무영역분석, 시스템설계, 제작, 구현의 단계를 통하여 하향식으로 개발한다.

정보공학은 각 단계에 맞춰 기업의 정보, 데이터모델, 프로세스모델, 시스템 설계에 대한 정보를 리파지 토리에 축적할 수 있도록 돕니다.

정보공학은 기업전체의 정보시스템화를 실현하기 위해 틀을 만들고, 개개의 시스템은 그 틀에 맞춰 개발된다.


 

객체지향 방법론


소프트웨어와 관련된 방법론, 도구 등은 우수한 소프트웨어 구현을 위하여 지금

까지 많이 연구개발되어 왔다. 그러나 현재 소프트웨어에 있어 가장 심각한 문제

점은 수요가 확대되는 반면에 공급이 부족하여 소프트웨어 개발이 수요를 따라가

지 못하고 있으며, 유지보수 비용의 비약적인 증가로 소프트웨어 개발 비용이 급

증하고 있다는 것이다. 이러한 문제점은 근본적으로 우수한 소프트웨어 개발방법

이 없었다고 할 수 있다. 이러한 문제점을 해결하기 위향 제안된 방법론이 객체

지향적 접근법이다. 객체지향 접근법은 소프트웨어의 확장이나 변화를 용이하게

해줄 뿐만 아니라 기존 소프트웨어의 재사용성을 증가시켜 준다. 객체지향 시스

템에서는 데이터를 다루는 프로시저를 하나로 묶어 객체라는 개념을 사용하여 실

세계를 표현하고 모델링한다. 객체지향의 개념은 객체(Object), 메시지

(Message), 상속(Inheritance)의 세가지 요소가 근간이 된다. 실세계의 엔티티

들은 시스템 내에서 객체로 모델링되어 각 엔티티들은 인스턴스로 표현되고 공통

된 특성을 가진 인스턴스들이 모여 하나의 클래스로 구성하게 된다. 즉, 객체지

향 방법은 시스템을 연산과 데이터를 함께 갖는 객체의 집합체로 보고, 문제영역

에서 데이터와 함수를 분리할 수 없는 것으로 취급한다. 함수들과 함수의 처리

대상이 되는 데이터는 문제 범위내에 있는 객체로 취급함으로써 문제 영역의 엔

티티가 모델 세계로의 객체로 직접 사상이 가능하기 때문에 응용 영역의 구조와

밀접하게 대응하여 개발 비용의 감소를 가져오며, 시스템을 쉽게 이해할 수 있

다. 객체지향 방법론을 발전시켜온 삼인방(Booch, Rumbaugh, Jacobson)에 의해

90년대 중반에 표기법을 통일되었는데, 최근에 객체지향 하면 떠오르는 것이 UML

(Unified Modeling Language)이다. 이는 객체지향 방법론이 아닌 이를 지원하는
표기법(Modeling Language)이다. 객체지향을 지원하고 있는 기법으로는 Class

Diagram, Use Case Diagram 외에 6개정도의 UML표기법에 의한 다이어그램이 있

다. Class Diagram과 Use Case Diagram에 대한 사항은 기법(Technique)을 참조

한다.

이상으로 구조적 방법, 정보공학, 객체지향 방법을 서로 비교해 보면 아래 표와

같다("객체지향소프트웨어공학", 최영근/허계범)


 
정보공학 방법론
객체지향 방법론
분석
1.현 물리적 모형화
2.현 논리적 모형화
3.신논리적 모형화
4.구조적 설계
1.업무 문맥 결정
2.업무기능 파악
3.업무 결과 모형화

정보전략계획
데이터모델 작성
액티비티 모델 작성
현행시스템작성
현행시스템분석
확인
업무시스템정의

문제 정의
요구 명세화
객체와 객체특성 추출
객체의 속성 식별
객체의 연산 식별
객체의 연관성 정의
설계
1.상세 DFD
2.자료흐름 유형변환
3.자료흐름 트랜잭션
4.개략적 프로그램구조도
5.프로그램구조도 평가 및개선
6.검토
7.상세설계
1.데이터 구조 특성평가
2.데이터 기본형태 표현
3.자료구조를 SW제어계층구조로 Mapping
4.SW 계층구조 개선
5.SW프로시저 기술
1. 프로시저 정의
2.다이얼로그 설계
레이아웃설계
4.온라인 대화의 프로토타이핑
5. 프로시저 로직 설계
1. 객체의 인터페이스설정
2.객체들간의 가시성설정
접근방법
Top_Down Top_Down Bottom_Up Bottom_Up
DBMS
전통적인DB와 RDB 전통적인DB와 RDB 전통적인DB와 RDB
CASE의 저장소
전통적인 DB와 OODB
CASE
상위레벨(다이어그램) 상위레벨(다이어그램) 통합레벨지원 통합레벨지원
방법제시자
Yourdon Jackson
Warnier_Orr
Martin Booch
Rumbaugh
Jacobson외

Posted by 알 수 없는 사용자
,