소프트웨어 개발 방법론 + 요구공학

유동우·2023년 4월 7일
0

소프트웨어 공학

목록 보기
5/11
post-thumbnail

소프트웨어 개발 방법론

소프트웨어 개발 방법론

SW 개발방법론?

  • SW 시스템을 구축하는데 필요한 수행방법과 수행에 따른 각종 기법 및 도구를 소프트웨어 공학 원리와 기업 문화를 바탕으로 체계적으로 정리하여 표준화한 것

개발방법론의 전체 개발 공정 단계는 요구정의, 분석, 설계, 구현, 운영전환 5단계의 공정으로 구성

개발방법론 Meta Model을 기반으로 개발규모 및 적용기술에 따라 최적화된 SW 개발 프로세스를 구축

  • Agile Practice

  • OO/CBD 기반 분석단계 개발 프로세스 및 산출물 목록

  • OO/CBD 기반 분석단계 개발산출물 및 작성가이드 예시

  • OO/CBD 기반 프로세스 단계별 산출물 연관도 예시


소프트웨어 생명 주기 모델

Waterfall

  • Requirements -> Design -> Implementation -> Verification -> Maintenace

  • Prototyping

  • Incremental vs Iterative

  • Spiral Model


소프트웨어 개발 방법론

소프트웨어 개발 방법론 의미

  • 소프트웨어 개발 생명주기 내의 각 단계에서 수행활동과 방법을 구체적으로 정의
  • 소프트웨어를 개발하기 위한 산출물과 수행활동의 기법등을 체계적으로 정리
  • 개발을 표준화 및 체계화하여 제품 개발의 효율성을 향상
  • 사용자 및 개발자간 의사소통을 위한 수단으로 활용

-> 모든 방법론이 현재에도 사용됨

개발 방법론 구성요소

  • 작업절차: 프로젝트의 작업단계, 단계별로 활동정의 및 세부작업과 순서 열거

  • 작업방법: 각 단계별 수행항목 정의, 절차와 작업방법(누가,언제)

  • 산출물: 단계별 만들어야되는 최종 산출물의 목록과 양식

  • 관리: 프로젝트 진행기록, 계획수립, 인력관리 등

  • 기법: 각 단계별로 기술 및 기법 ex) 구조적, 객체지향, ERD

  • 도구: 각 기법 별 지원도구에 대한 구체적인 사용표준 및 방법 ex) CASE


구조적 개발 방법론

구조적 방법론

  • 정형화된 절차 및 도형 중심의 도구 사용
  • Top-Down
  • 기본원리
    추상화, 구조화-수평분리, 구조화-수직분리, 단계적 상세화, 모듈화

객체지향 방법론

CBD 방법론


정보공학 방법론

정보공학 방법론 개요

1) 정보공학 방법론의 정의

  • 기업전체 또는 주요부문 대상, 데이터 중심 방법론
  • 기업에 필요한 정보를 모형화하고, 정보시스템으로 발전시키기 위해 필요한 작업절차를 자동화

2) 정보공학 방법론의 등장배경

  • 환경 변화
    비즈니스의 변화, 정보기술의 발달
  • 구조적 방법론의 한계
    데이터 모델링 방법이 미흡하고 기업 전반의 거시적 관점이 부족하다
    설계와 코딩을 강조한다

3) 정보공학 방법론의 특징

  • 기업업무중심(ISP포함), 자료중심, 도형중심 접근, 고객지향적, 최신 정보기슬의 능동적 수용

  • 정보시스템 개발의 자동화를 지향

  • 프로젝트 각 단계의 명확한 구조기반을 제시

  • 적극적인 사용자 참여를 유도

추진원칙 및 추진단계

1) 추진원칙

  • 프로젝트를 관리 가능한 단위로 모듈화 한 후 분할, 정복
  • 데이터와 프로세스의 균형을 유지한다
  • 모듈화, 하향식 구현

2) 단계별 수행 내용

장단점

1) 장점

일관성있고 통일된 정보시스템 구축 가능
데이터 중심으로 업무절차 및 환경변화에 유연하다

2) 단점

효과를 보기위해 장기간이 필요하다
소규모 자동화 요구에는 시간이 오래걸린다
독립된 시스템 개발에는 부적합하다

문제점 및 개선대책

1) 문제점

구조적 방법의 SDLC 그대로 이용한다
CASE tool 이용이 쉽지않다
중소 규모 프로젝트의 무리한 적용
복잡한 논리, 많은 산출물

객체지향 방법론

1) 객체지향의 정의

  • 현실세계의 개체 = 데이터 + 함수

2) 객체지향의 기본 개념

  • 객체 + 메시지
  • 캡슐화 + 정보은닉
  • 클래스 + 인스턴스
  • 상속 (다중산속, 단일상속)
  • 다형성 (오버라이딩, 오버로딩)

3) 객체지향 설계 방법

  • 전통적 개발방법의 한계: 문제해결을 위한 객체에 대한 이해가 선행되어야하고, 기존의 폭포수 모델과 달리 공정단계와 문서작업을 줄이고 인간의 사고방식과 유사한 분석 및 설계가 가능하다

4) 객체지향 개발 방법론의 이론적 배경

  • Booch : 데이터흐름도(DFD) 사용
  • OMT (Object Modeling Technique) : Rumbaugh, 분석 -> 설계 -> 구현
  • OOSE (Object Oriented Sofrware Engineering) : Jacobson, Use Case 사용

요구공학

profile
효율적이고 꾸준하게

0개의 댓글