ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [모각코 23-1] 3회차- OOAD
    학교생활/23-1 '모여서 각자 코딩' 2023. 4. 4. 09:23
    728x90

    목차

    Introduction

    Use Case

    소프트웨어 개발 프로세스

    UP의 구조물


    Introduction

     

    • 객체지향 분석(OOA): 문제를 정의하고 이 정의로부터 개념 모델(객체에 대한 추상적 정의)을 사용하여 객체, 관계 및 동작을 식별한다. 요구사항을 찾아낸다?
    • 객체지향 설계(OOD) : 객체를 정의하고, 요구사항을 충족하기 위한 객체들의 속성(attribute), 동작(behavior), 상호작용(interaction)을 설명한다.

     

     

    Use Case


    : 시스템의 동작을 사용자의 입장에서, 유용한 일을 달성하기 위한 시나리오의 집합

    • 사용자, 외부 시스템, 다른 요소들이 시스템과 상호작용하는 방법을 기술함
    • 요구사항을 알아내는 과정이다
    • 사용자 시점에서 시스템을 모델링하는 역할

     

     
    소프트웨어 개발 프로세스


    waterfall model

    더보기

    waterfall model 은 일련의 연결된 순차적인 활동으로 라이프 사이클을 구성한다.

     : 요구사항 명세화 - 디자인 - 구현 - 통합 - 테스트 - 설치 - 유지보수

    이후 스텝에서 이전 스텝으로 피드백(수정)이 가능하다.

     

    iterative model
      UP, the well known iterative process

    더보기

    UP는 반복적이고 점진적인 개발 방식을 채택하여 요구사항 분석, 설계, 구현, 테스트 등의 개발 활동을 반복적으로 수행하면서 소프트웨어를 개발하는 방법이다. 시스템은 매 반복마다 점진적으로 커진다.

     

    4 단계 : Inception, Elaboration, Construction, Transition

    Use Case 는 각 반복마다 목표이며, 가장 큰 위험을 먼저 해결하도록 반복순서가 정해진다.

    프로젝트가 끝날때까지 waterfall model 을 n 번 하게 된다.

     

    Inception(도입): 비즈니스 모델링, 요구 사항 정의, 개발 범위, 목표, 실현가능성 분석 등

    (=/= requirements phase. already beyond it)
    Elaboration(구체화): high risk 있을 부분 만들기 so that 완화됨, 요구사항 상세분석, 가장 중요한 요구사항과 범위 상세 분석, 현실적인 계산 등으로 핵심 아키텍쳐의 반복적 구현을 하고, elaboration 이 끝나면 코어 아키텍쳐가 나옴! (이 이후에는 구조를 크게 바꾸지X)

    이 단계에서도 프로그램이 돌아감? ㅇㅇ

    Construction(구축): 나머지 위험이 낮고 쉬운 요소인 경우 반복적인 구현 및 배치 준비. module 별로 아웃소싱함

    Transition(전이): 베타 테스트 등

     

     

     

    • Benefits of Iterative Development of the UP:

      변경에 대한 대처력: 반복적 개발은 작은 주기로 개발을 진행하므로 변경 사항에 대한 대처력이 뛰어나다. 변경 요구사항이 생기면 다음 주기에 적용할 수 있도록 수정할 수 있다.

      고객 요구사항 충족: 반복적 개발은 고객 요구사항을 우선적으로 고려하므로 최종 결과물이 고객의 요구사항을 충족할 가능성이 높다.

      품질 향상: 반복적 개발은 작은 주기로 테스트를 수행하므로 결함을 조기에 발견하고 수정할 수 있다. 이는 전체 프로젝트 품질을 향상시키는데 도움이 된다.

      개발 속도 향상: 반복적 개발은 작은 주기로 개발을 진행하므로 전체 개발 기간을 단축시킬 수 있다.

      위험 감소: 반복적 개발은 작은 주기로 개발을 진행하므로 전체 프로젝트가 실패할 가능성이 낮아진다. 만약 실패할 경우에도 손실이 적다.

    에자일

    더보기

    Agile 방법론 ( 스크럼, 익스트림, 크리스탈 클리어

    일단 빠른 요구사항 accept 와 빠른 피드백

    UP의 특성을 갖고 있음 (모두 점진적이고 반복적)

    - 개발자와 고객의 밀접한 협력

    - self organizing team(소공 관련 교수님께서 말했었던..)

    - 변화하는 환경에 적응하는

    => 팀워크, 협력, 적응성 *

    model-driven developement

    더보기

    특정 문제와 관련된 모든 주제의 개념적 모델인 도메인 모델을 만들고 이용하는데 초점을 둔 소프트웨어 개발 방법론이다. 

     

     

     

    UP의 구조물

     

    Business Modeling - 도메인 모델

    더보기

    응용프로그램 범위에서 주목할 만한 개념을 시각화

    작은 응용프로그램 만들 땐, 도메인 객체 모델링을 포함  
    큰 스케일의 분석이나 대규모 리엔지니어링 시에는, 대규모 동적 모델링(클래스의 상호작용이나 상태변화등 시스템 내부 동작) 을 포함

     

    * 도메인 객체 모델링

     

    도메인 모델에 대한 표현을 코드로 나타낸다면 이를 '도메인 객체 모델' 이라고 한다. 

    이를테면 위 도메인 모델의 상품 도메인을 Item 클래스로, 회원 도메인을 User 클래스로 표현할 수 있을 것 이다. 

    그리고 이것이 인스턴스화 된 것을 우리는 '도메인 객체' 라고 부를 수 있을 것 이다.

     

    요구사항 - Use Case& func-non-functional 요구사항

    디자인 - 디자인 모델

    더보기

    소프트웨어 개체를 설계하기 위한 설계 모델 아키텍쳐

    전체 아키텍처, 객케, 데이터베이스, 네트워킹 등을 포함한 설계의 모든 측면

     

    OOAD 는 Inception 과 Elaboration 단계를 강조

    728x90
Designed by Tistory.