다이어그램과 애자일

석준수·2022년 7월 4일
0

소프트웨어 설계

목록 보기
2/2

객체지향 분석

1) 개념: 동적 모델링 기법이 사용 될 수 있으며, 데이터와 행위를 하나로 묶어 객체를 정의 내리고 추상화 시키는 작업이라고 할 수 있음

2) 럼바우(OMT) 기법
소프트웨어 구성요소들을 그래픽 표기법을 이용해 객체들을 모델링하는 기법

  • OMT 3단계
    1) 객체 모델링: 일대다의 객체 의존 관계를 정의한 것
    2) 동적 모델링: 시간 흐름에 따라 변화하는 것을 보여주는 상태 다이어그램을 작성함
    3) 기능 모델링: 시스템 내에서 데이터가 변하는 과정을 나타내며 자료 흐름도 이용

UML

1) 정의
객체지향 분석/설계용의 모델링 언어, 종래의 객체지향 방법론과 함께 제안되어 모델링 언어 표기법의 표준화를 목적으로 한 것

2) 특성
시스템의 정적인 측면: Class Diagram
시스템의 동적인 측면 : Sequence Diagram, State Diagram
시스템의 기능적 측면: Use Case Diagram

3) UML 다이어그램 종류
구조적 다이어그램 : 클래스,객체,컴포넌트,배포,패키지 다이어그램 등
행위 다이어그램: 유스케이스,시퀀스,활동 다이어그램 등

4) UML의 기본 구성요소
사물: 모델을 구성하는 가장 중요한 요소로 다이어그램안에서 관계가 형성될 수 있는 대상들을 말함
관계: 사물과 사물사이의 연관성을 표현하는 것
다이어그램: 사물과 관계를 도형으로 표현한 것

5) UML 스테레오 타입

  • UML에서 표현하는 기본 기능외에 추가적인 기능을 표현하기 위해 사용
  • 기호 << >> 사이에 표현할 형태를 기술하며 길러멧이라고 부름

유스케이스 다이어그램

  • 시스템이 어떤 기능을 수행하고 주위에 어떤 것이 관련되어 있는지를 나타낸 모형
  • 시스템의 기능을 나타내기 위해 사용자의 요구를 추출하고 분석하는데 사용
  • 외부에서 보는 시스템의 동작으로 외부 객체들이 어떠헥 시스템과 상호 작용하는지 모델링한것
  • 엑터는 시스템 범위 바깥쪽에 있고 유스케이스는 엑터에게 보이는 시스템의 기능

1) 구성요소
액터: 시스템과 상호작용하는 시스템 외부의 사람이나 다른 시스템 혹은 시스템환경, 하드웨어
유스케이스: 액터의 요청에 의해 수행하게 되는 시스템의 기능으로 완전하고 의미 있는 이벤트의 흐름을 나타냄
시나리오: 유스케이스는 시스템의 기능을 나타내는 모든 가능한 시나리오를 추상화 한것
시나리오는 실제 일어나는 일들을 기술한 유스케이스의 인스턴스

2) 관계
통신관계 : 액터와 유스케이스 사이의 관계를 선으로 표시, 기능에 접근하여 사용 가능
포함관계 : 중복된 것을 줄이기 위한 방법으로, 함수의 호출 처럼 유스케이스를 호출하는 의미
확장관계 : 예외 사항을 나타내는 관계, 이벤트를 추가하여 다른 사례로 확장
일반화 : 유스케이스의 상속을 의미하며, 유사한 유스케이스를 모아 일반적인 유스케이스 정의함

시퀀스 다이어그램

정의 : 객체간의 메시지 통신 분석하기위한 것으로, 시스템의 동적인 모델을 아주보기 쉽게 표현하고 있기 때문에 의사소통에 매우 유용함

1) 구성요소
액터: 시스템과 상호 작용하는 시스템 외부의 사람이나 다른 시스템
객체 : 메시지를 주고받는 주체
생명선: 객체가 메모리에 존재하는 시간
실행: 객체가 메시지를 주고받으며 실행되고 있음을 표현
메시지: 객체가 상호작용을 위하여 주고받는 것

애자일

정의

  • 애자일 소프트웨어 개발 모형 혹은 애자일 개발 프로세스는 소프트웨어 엔지니어링에 대한 개념적인 얼개로, 프로젝트의 생명 주기동안 반복적인 개발 촉진
  • 애자일 개발 프로세스란 어느 특정 개발 방법론을 가리키는 말이 아니고 애자일 개발을 가능하게 해주는 다양한 방법론 전체는 일컫는 말

특성

  • 프로세스 중심이 아닌 사람 중심
  • 전반적인 문서화보다는 제대로 작동하는 소프트웨어를 만들어야 함
  • 계약 협상보다는 고객협력이 중요
  • 계획을 따르기보다는 변화에 대응
  • 모든 경우에 적용되는 것이 아니고 중소형,아키텍처 설계, 프로토타이핑에 적합

종류 : 익스트림프로그래밍(XP), 스크림,크리스털패밀리,기능주도개발,ASD등

익스트림 프로그래밍 (XP)

1) 개요

  • 켄트 벡 등이 제안한 소프트웨어 개발 방법
  • 애자일 프로세스 의 대표적 개발 기법이며 비즈니스 상의 요구가 시시각각 변동이 심한 경우에 적합한 개발 방법
  • 개발자,관리자,고객이 조화를 극대화 하여 개발 생산성을 높이고자 하는 접근법

2) 5가지 핵심 가치

  • 존중: 팀 활동 중 팀원간의 상호존중
  • 단순성: 사용되지 않는 구조와 알고리즘 배제
  • 의사소통: 개발자,관리자,고객 간 원활한 의사소통
  • 피드백 : 지속적인 테스트와 통합, 반복적 결함 수정, 빠른 피드백
  • 용기: 고객의 요구사항 변화에 능동적인 대처

익스트림 프로그래밍의 실천사항 : 계획세우기, 소규모 릴리즈, 상징, 단순한 디자인, 테스트기반 개발, 리팩토링, 짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 40시간 작업, 고객 상주, 코드 표준

profile
석준수 입니다.

0개의 댓글