컴퓨터 공학

2장. 객체지향 개발 절차와 UML

혼새미로 2015. 11. 27. 02:16
반응형

2. 객체지향 개발 절차와 UML

소프트웨어 개발 과정 : 폭포수 모델. 문제정의,요구사항 분석(사용자 요구사항 분석, 기능/비기능요구사항 분석,사용 시나리오 분석,사용자 인터페이스 분석, 데이터 분석), 설계(OOD:클래스도출, 클래스간 관계 설정, 스퀸스 다이어그램), 구현, 통합, 시험/평가(구현전에 방법 결정 또는 테스트 프로그램 개발), 배포(최근 오픈 마켓 때문에 학생 때 배포/운영이 용이함), 유지보수

) --> 

반복적 개발 방법론 : 반복이라고 하는 일련의 짧은 고정된 길이의 작은 프로젝트 단위로 전체 개발을 나누어 진행하며, 각 반복은 독립적으로 테스트하며, 통합되어 실행될 수 있는 전체 시스템의 부분 요소임

장점 : 능동적으로 대응하기 쉬움

) --> 

에자일 개발 방법론 : 기존 전통 방법이 너무 계획에 의존적이고 형식적인 절차를 따르는데 필요한 시간과 비용이 많이 소모되는 문제점을 극복하기 위해 개발된 방법론. 문서중심에서 코드중심으로. 일정한 주기를 가지고 끊임없이 프로토타입을 만들며 그때 그때 필요한 요구를 더하여 수정하여 더큰 규모의 소프트웨어를 개발해 나가는 적응적 개발방법론임.

리펙토링 방법을 적용하기 쉬운 개발방법론

) --> 

폭포수모델은 순차적 진행

한단계 완료 후 다음 단계 진입

실제 모든 단계를 완벽하게 완료하는 것은 불가능

요구사항이 진행 과정에서 변경될 수 있다는 것을 고려하지 못함

) --> 

에자일 개발

점진적 접근

각 작은 단위에 대한 개별 검증

에자일의 경우에도 설계를 전혀하지 않는 것은 아님

) --> 

Kanban Board: 프로젝트 진행 현황을 관리하기 위한 모드

Backlog : 모든 할 일

To Do : 진행할 업무

In Progress : 작업이 시작된 업무

Done : 완료된 업무

) --> 

) --> 

) --> 


분석 : 분석은 해결책을 찾는 것이 아니라 문제와 요구사항을 조사하는 것임

분석과정 : 문제 정의, 요구사항 분석, 사용 시나리오 분석, 사용자 인터페이스 분석, 데이터 분석

) --> 

요구사항은 향후 검증이 가능해야 함

우선순위

Must Have : 의무기능

Should Have : 필요 사항

Could Have : 선택 사항

Want to Have : 차기버전에 고려할 사항

) --> 

사용 시나리오 분석

사용 시나리오의 구성 요소

시나리오가 시작될 때 사용자 또는 시스템이 기대하는 것

시나리오를 시작하는 외부개체

일반적인 동작 흐름

대안흐름

동시에 수행될 수 있는 다른 행위들

시나리오가 끝났을 때 시스템 상태

) --> 

) --> 

Use case 모델 : 사용 시나리오 기반의 요구사항을 보충하여 주는 도구

Actor : 시스템을 사용하는 사람이나 장치의 역할

Scenario : 일련의 Actor와 시스템 간에 상호작용 또는 actor와 시스템의 행동

Use case : 액터들이 시스템을 이용하여 할 수 있는 것

) --> 

) --> 

Use case 모델링

시스템 내부요소와 외부요소를 구분한다.

액터를 찾는다. (역할이 중요하다. 액터는 항상 직접적으로 시스템과 상호작용을 한다.)

) --> 

 

) --> 

사용자 인터페이스 분석 : 개발하고자 하는 소프트웨어의 사용자가 소프트웨어와 상호작용할 인터페이스를 분석함. 초기에는 인터페이스 종류, 각 인터페이스마다 필요한 입력과 출력에 대한 검토가 중요함.

) --> 

데이터분석 : 요구사항 분석, 사용 시나리오 분석, 사용자 인터페이스 분석으로부터 어떤 데이터가 언제 필요하며 어디에 유지되어야 하고, 어떤 과정을 통해 생성, 갱신되는지 분석해야 함.

분석의 종류 : 프로그램 내에 유지해야 되는 데이터,외부 저장공간에 유지해야 하는 데이터(데이터베이스, 파일시스템 및 파일),통신메시지

) --> 

 

) --> 

그 외의 표현은 따로 책을 사서 볼 것

) --> 

시퀸스 다이어그램 : 시간 흐름에 따른 객체들간의 상호작용 순서를 보여줌

) --> 

구현

테스트 기반 프로그래밍

예외 처리, 오류 처리 전략 수립

클래스 관계도를 이용한 클래스 정의

시퀸스 다이어그램 이용한 메소드 정의

짝 프로그래밍

리펙토링

) --> 

반응형