25.01.10(interface, 요구사항 도출, 객체지향 분석, 다이어그램)

은구야노올자·2025년 1월 10일

🤯지식주머니🤯

목록 보기
61/98
post-thumbnail

인터페이스(interface)

정의

  • 컴퓨터 과학 : 두 시스템 간 상호작용을 정의하는 경계
  • 프로그래밍 : 객체 간의 상호작용을 정의하는 추상적인 계약

목적

  • 구현을 숨기고 상호작용의 방식만 명시하여 느슨한 결합을 유지
  • 다형성(polymorphism) 구현

주요 특징

  • 인터페이스에 선언된 메서드는 구현 없이 형태만 정의
  • 다중 상속 가능(자바 기준)
  • 객체 간 의존도를 낮춰 확장성과 유지보수성 향상
public interface Animal {
    void sound();
}

public class Dog implements Animal {
    public void sound() {
        System.out.println("Bark");
    }
}

public class Cat implements Animal {
    public void sound() {
        System.out.println("Meow");
    }
}

요구사항 도출

정의

  • 시스템이 사용자 및 다른 시스템과 어떻게 상호작용할지에 대한 명확한 정의를 추출

목적

  • 프로젝트 성공의 기반을 다지는 작업
  • 고객의 기대와 요구를 반영

프로세스

  • 이해 : 문제를 명확히 정의
  • 수집 : 사용자의 요구와 기대를 문서화
  • 정제 : 모호하거나 충돌하는 요구사항을 정리
  • 우선순위 결정 : 필수 기능과 추가 기능 분리
  • 검토 및 확인 : 이해관계자와 합의

산출물

  • 기능 요구사항 : 시스템이 수행해야 할 기능
  • 비기능 요구사항 : 성능, 보안, 확장성 등 품질 기준

객체지향 분석(Object-Oriented Analysis; OOA)

정의

  • 객체지향 프로그래밍의 개념(클래스, 객체)을 사용해 시스템 요구사항을 분석하는 과정

목적

  • 현실 세계의 문제를 객체로 추상화
  • 재사용성 높은 설계 제공

주요 활동

  • 객체 식별 : 시스템에서 중요한 객체를 식별
  • 객체 관계 정의 : 객체 간의 관계와 상호작용 정의
  • 객체 행동 정의 : 객체의 책임과 동작 정의

장점

  • 자연스러운 문제 해결 방식(현실 세계와 유사)
  • 코드 재사용성 및 확장성 증가

다이어그램

정의

  • 시스템의 구조와 동작을 시각적으로 표현하는 도구

목적

  • 복잡한 시스템을 이해하기 쉽게 설명
  • 팀 간 의사소통 및 설계의 기준 제공

활용

  • 다이어그램은 설계 및 구현의 기초 자료로 사용
  • 팀 간 명확한 의사소통 지원

주요 UML 다이어그램

  • 클래스 다이어그램
    • 시스템의 구조와 클래스 간의 관계를 표현
    • 속성, 메서드, 접근제어자 등 명시
  • 시퀀스 다이어그램
    • 객체 간의 상호작용과 메시지 교환을 시간 순서로 표현
    • 예 : 사용자 -> 로그인화면 -> 인증 서버 -> 결과 반환
  • 유스케이스 다이어그램
    • 시스템의 기능과 액터(사용자)의 관계를 표현
    • 예 : 사용자가 "로그인", "회원가입", "게시글 작성" 기능 사용
  • 활동 다이어그램
    • 시스템의 동작 흐름을 표현
    • 예 : "회원가입" -> 입력 검증 -> 데이터 저장 -> 성공/실패 반환

0개의 댓글