728x90
반응형
SMALL

구조적 방법론 (1970년대)

구분 설명
정의  - 구조적 프로그래밍이란 코드가 계층적인 형식과 제한된 구조로, 작성된 순서 
    대로 순차적으로 실행함.
 - 알고리즘을 기술하는 데는 순차,선택,반복 구조면 충분하다. (NS차트)
 - 단일입구/단일출구의 처리구조를 가짐.
등장배경 GOTO문을 쓰지말자라는 주장이 호응을 얻으면서 분석과 설계도 구조적으로 
하자라는 의견으로 확대대면서 구조적 방법론의 틀이 완성.
특징  - 데이터 흐름지향. 즉 프로세스 위주의 분석과 설계방식 (DFD/ERD)
 - 모듈의 분할과 정복에 의한 하향식(TopDown) 설계방식
 - 모듈의 구조화를 통한 재사용/유지보수성 제고 
- SDLC 구조를 가진 폭포수 모델이 기본
중점  - 기능중심
단점  - 어플리케이션은 여전히 기능적 설계
 - 기능의 유지보수, 재사용은 낮음. - 데이터의 구성에 대한 설계 방안이 부족
 - 프로젝트의 관리 및 조직,역할등 방법론적 다른 요소들의 정의가 없음.
 - 이것들은 단순한 소프트웨어 개발을 목표로 한다는 점에게 기인 
     -> 정보공학적 개발 방법론  등장.
 - 데이터가 정보 은닉이 안됨.
 - 유지보수, 재사용성 낮음



정보공학적 방법론 (1980년대)

구분 설명
정의 기업정보시스템에 공학적 기법을 적용하여 시스템의 계획,분석,설계 및 구축을 하는 데이터 중심의
방법론
등장배경 정보시스템은 소프트웨어 개발과는 달리 하드웨어, 네트워크 등 여려 소프트웨어와 복잡하게 연결되는 대규모시스템이기 때문에 이러한 시스템을 개발하기 위해서는 장기간, 많은 인력이 소요되므로 철저한 계획,팀워크에 따른 프로젝트 관리, 이의 진행을 위한 잘 짜여진 방법론이 필요
특징 - 일반적인 소프트웨어 개발이 아닌 기업의 Biz전략에 따라 수립된 ISP에 
  따라 정보시스템 통합에  그 초점이 맞추어짐.
 - 따라서 ISP수립 -> 업무영역분석 -> 업무시스템설계 -> 업무시스템구축 
   순서를 가진다.
 - Process는 변하지만 Data는 불변이기 때문에 프로그램 로직은 데이터 
   구조에 종속(CRUD)적이며 데이터 안정성을 추구하기 위한 데이터 
   구조에 중점을 둔다.
 - 기본적으로 정보공학은 공학적 개발방법론이며 자동화도구,CASE Tool을
   이용하여 코드의 자동생성을 목표
중점 데이터 구조 (자료구조)
단점  - 어플리케이션은 여전히 기능적 설계
 - 기능의 유지보수, 재사용은 낮음.



객체지향 방법론 (1990년대)

항목 설명
정의  - 복잡한 현실세계를 모델링
 - 추상화,캡슐화,상속,정보은닉 등 객체를 중심으로 프로그래밍 구조를
   단순화하고 재사용성을 강화
등장배경  - 구조적 방법론이나 정보공학 방법론 모두 프로세스와 데이터를 분리
   하여 처리한다는 단점은 이를 통합하여 처리하는 객체지향의 등장에 
   가장 큰 배경
    * 구조적,정보공학 - Process 와 Data분리
       객체지향           - Process 와 Data 통합 -> Class
특징  - 재사용이 강점 (Whitebox 재사용)
 - 추상화,상속성,다형성,캡슐화
 - 상속이 많으면 상속은 저하되는 단점.
 - 다형성이 많으면 유지보수가 어려워진다.
 - 분석 설계간 Gap 없음.
 - 고도의 모듈화
 - 데이터와 로직을 통합 (객체)
중점  객체중심
단점  - 전문가 부족
 - 기본 SW기술 필요
RUP
원리 개념 역할 특징
추상화
(Abstraction)
현실세계의 사실을 그대로 객
체로 표현하기 보다는 문제의
중요한 측면을 주목하여 상세
내역을 없애 나가는 과정임.
복잡한 프로그램
을 간단하게 해주고 분석의 초점을 명확히 함
클래스를 이용함으로써
데이터와 프로세스를
함께 추상화구조에 넣
어 보다 완벽한 추상화
를 실현함
캡슐화
(encapsulation)
객체의 상세한 내용을 객체
외부에 숨기고 단순히 메시지
만으로 객체와의 상호작용을
하게 하는 것.
객체의 내부구조와 실체를 분리함으로써 내부의 변경이 프로그램에 미치는 영향을 최
소화하여 유지보수 용이하게 함
Public과 Private 
상속성
(Inheritance)
수퍼클래스가 갖는 성질을
서브클래스에 자동으로 부여
하는 것.
프로그램을 쉽게 확장할 수 있도록 해주는 강력한 수단.  
다형성 
(polymorphism)
하나의 인터페이스를 이용하
여 서로 다른 구현 방법을
제공하는 것.
특정지식을 최소화한 관련된 클래스들을 위한 일관된 매개체를 개발 하는 수단을 제공 특정지식을 최소화한 관련된 클래스들을 위한 일관된 매개체
를 개발 하는 수단을 제공



CBD 방법론 (2000년대)

 - 재사용이 가능한 Component의 개발 또는 상용 컴포넌트들을 조합하여 어플리케이션 개발

항목 설명
특징  - BlackBox 재사용 : 인터페이스를 이용해서 재사용
 - 추상화,캡슐화 - Input과 Output만 있음.
 - 표준화된 UML을 통한 모델링 및 산출물 작성
 - 반복 점진적 개발 프로세스 제공
 - 표준화된 산출물 작서잋 컴포넌트 제작 기법을 통한 재사용성 향상.
중점  - 컴포넌트 중심  
컴포넌트
구성요소
1. 컴포넌트 Context - 컴포넌트 기능과 역할
Interface - 기능을 외부에 제공
  2. 컨데이너 컴포넌트를 구현하기 위한 서비스 런타임 환경
컴포넌트 생성 및 소멸 관리
  3. 어플리케이션 서버  
개발순서 도메인 분석 -> 도메인 설계 -> 컴포넌트 추출 -> 컴포넌트 설계 -> 컴포넌트 구현
컴포넌트 방법론 
품질 측정 지료
1. 기능에 대한 이해의 용이성
2. 변경에 대한 용이성
3. 컴포넌트들 간의 결합도 (응집도는 이미 고려되어 컴포넌트가 만들어진 상태임)

CBD방법론

 

728x90
반응형
LIST
728x90
반응형
SMALL

RAD (Rapid Application Development)

- 조직이 전략적으로 중요한시스템을 빠르게 개발하면서도 개발비용을 줄이고 
   품질을 유지할 수 있게 해주는 방법론.
 - 제한된 범위의 단독시스템을 CASE를 사용하여 신속하게 개발하는 방법.
 - CAST Tool을 이용해서 고객과 같이 개발
 - 1~3개월 정도 소요
 - 위험이 낮은 Project에 적합
 - 단계 : JRP(분석) -> JAD(설계) -> 구축.운영
 - 필수요건 : ① SWAT
                  ② Database (Repository)
                  ③ Timebox (요구사항 관리)
                  ④ CASE ( 상위CASE - 요구사항 분석,설계
                                  중위CASE - 설계
                                  하위CASE - 소스코드)

정의/분석 JRP (Joint Requirement Panning)  현업관리자와 개발관리자간 공동요구정의
설계 JAD (Joint Application Design) 사용자참여 공동설계
구현 CASE (Computer Aided Software Engineering)  
이전 Curover Curover운영에 필요한 지침서를 작성하고 현업 부서로 이전



RUP (Rational Unified Process)

UML을 기반으로 한 객체지향 소프트웨어 프로세스 모델
 - 예정된 일정과 예산에서 고객이 만족할 수 있는 소프트웨어 개발
 - Jacobson의 UseCase Driven 방법을 도입한 방법론이다.
 - 소프트웨어 개발의 전체 생명주기를 지원하는 프로젝트 FrameWork 이다.
 - 각 단계를 반복하면서 위험요소를 줄일 수 있다.
 - 반복을 하기 때문에 개발도중 요구사항 변경,환경변화등에 유연하게 대처가 가능
 - UseCase기반 , 아키텍쳐 중심 , 반복 점진적 개발 프로세스
 - 게발기간이 길고 대규모 시스템에 적합
단점 : 내용자체가 방대해서 처음 객체지향 방법론을 접하는 사람에게는 어렵다

단계 설명 비고
인식 (Inception/도입)  - 시스템의 최종 목표와 업무사례 규정
 - 프로젝트 범위 정의
목표,착수,범위
구체 (elaboration/정련)  - 구체적인 계획 수립
 - Architecture 설계 및 구현
 - 요구사항 명세화 
계획,위험분석
Arch검증, Pjt예측가능
구축(Construction)  - 시스템 구축
 - 사용자 인도 준비
 
전이 (Transition)  - 운영으로 전환 (Cutover)
 - 사용자 교육
 - 사용자의 사용후 발생한 문제점 수정
 

                       * 인식,정련,구축,전이 단계는 각각 반복을 할 수 있다.

workflows 설명
Core Process Workflows ㅍBusiness Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Core Supporting Workflows Configuration & Change Management
Project Management
Environment

 

RUP 단계



Clean Room Model

 - 시스템의 가장 핵심이 되는 부분을 최초 Increment(실행 가능한 프로토타입) 
   로 개발하여  사용자에게 피드백을 하여 새로운 요구를 끄집어 내거나 개발
   계획 자체를 다시 고쳐서 반복해서 증가분 소프트웨어를 개발시스템에 
   추가하여 가는 생각을 기초로 하고있다.
 - 소트프웨어를 정형적으로 명세화하고 여러 증분 (Increment)으로 나누어
   별도로 개발하고 검증하되 신뢰성을 결정하기 위해 통계적으로 테스트 한다.

특징  - Bug가 있으면 안된다.
 - 개발된 증분을 엄격한 검사를 이용하여 정적으로 검사함으로써 시스템의
   단위시험을 대체할 수 있다.
 - 정적 검증을 기반으로 한 소프트웨어 개발철학
 - 반도체 공정에서 사용하는 용어
 - 결함의 수정보다는 회피하는 것을 목표로 한다.

 

728x90
반응형
LIST

+ Recent posts