JAVA - UML

Mkim4·2023년 12월 14일
post-thumbnail

UML 의 탄생과 특징

UML은 표준화된 통합 모델링 언어

UML (Unified Modeling Language)
시스템 개발을 위한 시각적인 설계 표기 제공
객체 지향 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화하는데 사용
개발하는 시스템을 이해하기 쉬운 형태로 표현하여 분석가, 설계자, 의뢰인이 효율적으로 의사소통할 수 있게 해줌

데이터베이스에서 가장 중요한 것은 무결성과 동시성 트랜잭션 기술에 대한 알고리즘을 작성하였고 프로시져를 활용해서 블라블라

시각화

명세화(문장화시켜 정리한 것 Specification)

구축

문서화(요구사항명세서, 분석명세서)

(오류없는 원활한 의사소통 가능) 시스템과 의뢰자 사이를 연결해주는 언어이다.

모델링은 개발하고자 하는 프로그램을 시각적으로 표현하는 것
(협업을 해야만 )
의뢰자의 요구에 맞도록 쉽게 수정해서 결과적으로 유지보수 기간을 줄여 생산성을 높이는데 목적이 있다.
129624
모델링은 언제 해야할까?
1) 개인이 제어할수 없는 작업을 할때
2) 협업이 필요한 프로젝트를 할때
3) 다양한 관점의 설계도가 있어야할 때
결론: UML 이용하여 설계도를 만들 수 있다.

Object - Oriented (객체 지향 모델링)
-시스템을 객체(Object)의 관점으로 봐야한다.
-객체지향시스템을 가시화, 명세화하고 문서화 하는 것이 UML의 목적이다.

객체 지향이 개념

C++, 자바 등의 언어를 사용해 자료 구조를 중심으로 객체를 설계한 다음 이들의 흐름을 설계하는 방식
객체 object, 클래스class, 메시지message를 기본요소로 함

객체와 클래스란?
객체는 현실에 존재하는 모든 것(구체적), 객체란 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별 가능한 것.
객체는 속성과 동작으로 구성. 자바는 이러한 속성과 동작을 각각 필드와 메소드라고 부름.

클래스는 개념적으로 객체를 생성할 수 있는 틀(개념적)

Object-Oriented Programming(OOP), 객체 지향 프로그래밍

제품
부품(객체) -> 부품 조립 -> 완성품(프로그램)
c가 a에 강하게 종속되어있다.
생성자나 setter 방식으로 객체를 넘겨줌
부품을 제공할 spring framework
조립은 spring container가 조립해줌
상호작용한다,통신한다 : 메소드를 통해서 데이터를 처리한다.

파라미터 - 객체가 전달하고자 하는 데이터이며, 메소드 이름과 함께 괄호 안에 기술
리턴값 - 메소드의 실행의 결과이며, 호출한 곳으로 돌려주는 값
파라미터(매개변수)는 함수 혹인 메서드 정의에서 나열되는 변수명입니다. 반면 아규먼트(인자)는 함수 혹은 메서드를 호출할때 전달 혹은 입력되는 실제값입니다.

파라미터의 실체는 변수이고 아규먼트의 실체는 값입니다.
상속관계는 집합관계. 자식이 부모에게 상속을 요청하는 것. 부모는 상속하는 자식이 뭔지 알 필요가없다.

객체 관의 관계

  1. 집합 관계: 완성품과 부품의 관계
  2. 사용 관계: 다른 객체의 필드를 읽고 변경하거나 메소드를 호출하는 관계
  3. 상속 관계: 부모와 자식 관계. 필드, 메소드를 물려받음(먼저 선언 후, 유산처럼 내려받아서(자식이 부모에게 요청해서, private 하면 내 자식한테만, publice 전체 다)공통된 것을 여러 번 사용할 일이 있을 때

캡슐화: 객체의 데이터(필드), 동작(메소드)를 하나로 묶고 실제 구현 내용을 외부에 감추는 것
상속: 부모 객체가 자기 필드와 메소드를 자식 객체에게 물려줘 자식 객체가 사용할 수 있게함
코드 재사용성 높이고 유지 보수 시간 최소화
ex) overiding 재정의 기법

다형성: 사용 방법은 동일하지만 실행 결과가 다양함

필드를 읽고 메소드를 호출하는 것을 사용관계라고 할 수 있음

객체 지향 프로그래밍 특징
1. 캡슐화 : 객체의 데이터(필드), 동작(메소드)를 하나로 묶고 실제 구현 내용을 외부에 감추는 것
2. 상속 : 코드의 재사용(중복 코딩 최소화), 유지보수 시간 최소화, 부모 객체가 자기가 가지고 있는 필드, 메소드를 자식객체가 사용할 수 있도록 클래스를 설계한 것
3. 다형성 : 다형성을 구현하기 위해서는 자동타입변환(프로모션), 재정의(오버라이딩) 기술 필요.
객체에 내가 원하는 부품을 바꾸면 객체의 끝판왕은 프레임워크, 람다
사용방법은 동일하지만 실행 결과가 다양하게 나오는 성질

클래스로부터 객체를 만드는 것을 인스턴스화라고 함


객체 지향 프로그래밍에서도 객체를 생성하려면 설계도에 해당하는 클래스가 필요

클래스 선언

객체를 생성하고 객체가 가져야할 데이터(필드)가 무엇이고, 객체의 동작(메소드)는 무엇인지를 정의
클래스 명은 첫 문자를 대문자로 하고 캐멀 스타일로 작성, 숫자를 포함해도 되지만 첫 문자는 숫자가 될 수 없고 특수 문자 중 $, _ 를 포함할 수 있음

정적 팩토리 메소드 (static factory method)

public static Boolean valueOf(boolean bol){
	return b? BoolwN.TRUE : Boolean.FALSE;
}
profile
귀요미 개발자

0개의 댓글