본문 바로가기

Study/Concepts

(16)
소프트웨어 공학 3R 완성된 소프트웨어를 기반으로 3R을 통해 소프트웨어의 생산성을 극대화 하는 기법 1. 역공학(Reverse Engineering) - 이미 개발된 시스템을 CASE 도구의 도움을 받아서 사양서, 설계서 등의 문서로 추출하는 작업 - 역공학 하는 이유는 이미 운영되고 있는 시스템이 오래되서 문서가 없을 경우, 시스템을 버리기 보다 소스코드를 분석하면서 어떤 설계서가 있었겠고, 어떤 요구사항이 있었겠다 등 문서를 추출한다. - 즉, 유지 운영을 위해서 사용한다. - ex. 은행 시스템 - 상용화되거나 이미 개발된 소프트웨어의 분석을 도와준다. 더보기 * 차세대? -> 기존에 있는 시스템을 재개발(새롭게 만든다.)하면서 기존에 있던 것을 재사용 한다. -> 재개발 + 재사용 * 고도화? -> 기존에 있는 시스..
DAY 76. DB - 물리적 모델링 물리적 모델링 논리적 설계 단계에서 표현된 데이터(ERD)를 실제 컴퓨터의 저장장치에 어떻게 표현할 것인가 ( 관계형 데이터 베이스로 전환 ) 어떤 DBMS를 사용할 것인지를 고려한다. 최종적인 ERD가 그려졌다면 실제 DB를 구축하기 전에 하는 모델링이다. 논리적 DB 설계 (데이터 모델링) —> DBMS의 종류나 제품에 상관없이 진행한다. (why? ERD는 어떤 데이터베이스를 사용해도 적용 가능) 물리적 DB 설계 —> 특정 DBMS를 전제로 진행한다. (적용할 DBMS의 특성을 고려한다.) 사용자 DBMS 결정 (ex. 오라클, Mysql ...) 데이터 타입 크기 결정 및 업무 분석 반정규화 무결정 제약조건 정의 뷰, 인덱스 정의 데이터 베이스 생성 반정규화(De-Nom..
DAY 75. DB - 논리적 모델링 논리적 모델링(데이터 모델링) 개념 설계에서 추상화된 데이터를 구체화하여 개체, 속성을 테이블화하고 상세화 하는 과정 ERD를 가지고 실제 insert한 값을 추가, 삭제, 수정 할 때 데이터 중복과 같은 이상 현상시 정규화 과정을 통해 해소시킨다. 정규화 과정에 초점을 맞춘다. 정규화(DB normalization) 데이터 모델링 목적 데이터가 증가 → 데이터 중복도 증가 → 애플리케이션으로 해결 데이터가 증가 → SQL 응답 속도 저하 → SQL 튜닝으로 해결 그러나 근본적인 문제를 해결하지 않으면 큰 문제를 초래할 수 있기 때문에 데이터 모델링 작업을 한다. & 데이터 모델링 기술력 확보 정규화 관계형 데이터 베이스에서 데이터를 구조화 하는 작업 = 중복을 찾아 제거해 나가는 과정 데이터의 중복 방..
DAY 74. DB - 개념적 모델링 개념적 모델링 요구 분석 단계에서 정의된 핵심 개체(Entity)와 그들 간의 관계를 바탕으로 ERD를 생성하는 단계 업무 분석 단계에서 유스케이스, 클래스, 시퀀드 다이어그램 작성 작업을 하는데 최종적으로 요구사항 명세서, 업무 기술서를 작성하게 되는데 그것들을 가지고 만든다. Entity 정의 ✔️ 엔티티 도출 업무 분석 단계 이후, 분석 자료(업무 기술서, 인터뷰 자료, 장부와 전표 등) 을 가지고 엔티티를 도출한다. - 정해진 공식은 없다. 1. 엔티티 후보 풀과 엔티티 리스트를 그린다. 2. 분석 대상 문서를 보고 명사를 찾아 표시한다. 3. 명사 하나하나에 대해 속성인지 엔티티인지 구분한다. 4. 중복된 명사나 유사한 의미의 명사는 하나로 정리한다. 5. 엔티티 후보 풀에 있는 명사들을 검토한..
DAY 72. DB - DB 모델링 DB 모델링 모델링? 말 그대로 모델을 만드는 작업을 뜻한다. 즉, 현실 세계를 추상화, 단순화, 명확화 시켜서 표현하는 기법이다. 실체를 모델링하여 모델을 만들어 실체를 구현한다. 소프트웨어 개발과정 소프트웨어(프로그램) 개발 프로세스 요구사항 분석 —> 프로그램 설계 —> 프로그램 구현 —> 통합/테스트 —> 유지보수 (#분설구테유) 정보전략 계획수립(ISP) : 프로그램 개발하고자 하는 고객사의 장단점 등 기업 분석 업무 분석 : 작업의 관여물 작성시 어떤 식으로 흘러가는지 모델링 하는 작업, 클래스 다이어그램 유스케이스 다이어그램, 시퀀스 다이어그램 등 작성 데이터 관점 순서 데이터 모델링 상관 모델링 물리 DB 설계 DB 구축 DB 튜닝 프로세스 관점 프로세스 모델링 상관 모델링 프로그램(로직)..
DAY 71. UML - 시퀀스 다이어그램 Chap 04. 시퀀스 다이어그램(in 동적 다이어그램) 화이트 박스 분석 기법 중에 동적 모델링에 해당된다. 동적 다이어그램으로 상호작용 다이어그램의 일부분이다. 시스템 내부에서 동작하는 객체들 사이의 주고 받는 메시지를 시간의 흐름을 추가적으로 다뤄 강조하여 표현한다. 생명선 : 액터, 클래스 객체, 컴포넌트의 인스턴스 등, 상호작용에 참여하는 구체적인 대상을 표현한다. 생명선 끝에 X자로 끊겨 있으면 소멸된 것이다. 메시지 : 생명선 간에 전달되어 상태의 행위에 대한 호출을 나타낸다. ** 생명선의 소멸은 자바에서의 가비지 컬렉터에 넘겨진다. Combined Fragement(결합 조각) Interaction Operator(상호작용 연산자) Guard(메시지가 수행되는 조건) Fragment(조각..
DAY 70. UML - 클래스 다이어그램 Chap 03. 클래스 다이어그램(in 정적 다이어그램) 정적(구조) 다이어그램이다. UML 모델링에서 가장 일반적으로 사용한다. 시스템의 구조와 구조 간 상호 관계를 나타낸다. 시스템의 논리적 및 물리적 구성 요소 설계 시 주로 활용한다. 클래스와 클래스 사이에 관계를 설정하기도 한다. 🔸 접근제한자 🔸 클래스 이름 / 속성 / 연산 으로 구성된다. 클래스 이름 기울임 = 추상 클래스 변수명이 대문자 = 상수형 필드를 나타낸다. 속성에 밑줄 = static 연산에 기울임 = 추상 메소드 클래스 다이어그램의 관계 ✔️ 연관 관계 한 클래스가 필드로 다른 클래스를 참조할 때를 의미한다. 클래스 간의 관련성을 뜻하는 것으로 메시지 전달의 통로 역할을 한다. 서로 연결되어 있으면 방향성이 없고 실선으로 연결되..
DAY 69. UML - 개념 & 유스케이스 다이어그램 Chap 01. UML 개념 모델링(Modeling) 모델을 만드는 작업을 뜻한다. 즉, 현실 세계를 단순화 시켜서 표현하는 기법이다. 절차지향 모델링 → 한계 도달 → 객체지향 모델링 → 표기법 다양/호환성 문제 → UML 공표 UML (Unified Modeling Language) 통합 모델링 언어는 소프트 웨어 공학에서 사용되는 표준화된 범용 모델링 언어이다. 소프트웨어 개념을 다이어그램으로 그리기 위해 사용하는 시각적인 표기법이다. ✔️ UML의 필요성 의사소통 하기가 좋다. 대규모 프로젝트 구조의 로드맵을 만들 때 유용하다. (클래스—클래스 의존 관계를 개발자가 빨리 파악할 수 있다.) 개발할 시스템 구축에 대한 기초를 마련할 수 있다. 백엔드 문서용으로 제격이다. ✔️ UML 작성 시 주의할..