PART 1 - 소프트웨어 설계
프로젝트 관리의 3P
- People, Problem, Process
- 사람, 문제, 프로세스
플랫폼의 기능
- 개발및 운영 비용 감소
- 생산성 향상
- 플랫폼간 커뮤니티로 네트워크 효과
eXetreme Programming 의 5가지 가치
- 존중 : 팀원간 상호존중
- 단순 : 사용되지 않는 구조와 알고리즘 배제
- 의사소통 : 개발자-관리자-고객 간 의사소통
- 피드백 : 지속적 테스트/통합, 결함 수정과 빠른 피드백
- 용기 : 고객의 요구사항에 능동적 대처
비즈니스 융합 유형
- 제품과 IT 융합 : 기존 제품에 IT부품/소프트웨어 추가
- 제품과 서비스 통합 : 사용자의 요구에 부합하는 시스템/솔루션
- 서비스 융합 : 두가지 이상의 서비스의 기능과 속성을 통합
자료사전 (DD)
- = : 자료의 정의
- + : 자료의 연결
- () : 자료의 생략
- {} : 자료의 반복
요구 추출 방법
- 설문 - 짧은 시간에 많은 요구사항
- 인터뷰 - 심층적인 요구사항
- 브레인 스토밍 - 효과적인 추출
- 사용 사례 분석 - 시스템 외부에서 기능 파악 - 요구에 빠른 피드백
UML 구성요소
- Thing, Relationship, Diagram
럼바우 OMT
- 객체 모델링 > 동적 모델링 > 기능 모델링
- 클래스 다이어그램 > 상태 다이어그램 > DFD
UI 설계 기본 원칙
- 유효성 : 정확하고 완벽하게 사용자의 목표가 달성될수 있도록
- 유연성 : 사용자의 인터랙션을 최대한 포용하고 실수를 방지한다.
사용자 인터페이스 4단계
- 개념단계 - 대화형 시스템의 심리적 모형 - Conceptual
- 의미 단계 - 입출력이 사용자에게 주는 의미 - Semantic
- 문구/구문 단계 - 명령문을 이루는 단어의 정의 - Syntactic
- 어휘 단계 - 특정 명령 문구를 형성하는 절차 - Lexical
구조도
- Fan IN : 특정 모듈을 제어하는 모듈의 수
- Fan OUT : 특정 모듈이 제어하는 모듈의 수
Adapter 패턴은 Gang Of Four 디자인 패턴의 생성패턴에 속하지 않는다.
HIPO : 구조적 설계도구
- 하향식 개발기법, 체계적 문서화
- 논리적 기술보다는 기능중심
- 가시적, 총체적, 세부적 도표가 있다.
- 기능과 자료의 의존관계 표현 가능하고, 보기 쉽다.
설계의 기본원리
- 추상화 : 필요 없는 세부사항을 배제
- 구조화 : 모듈단위로 세분화하고 모듈관 관계 구조화
- 모듈화 : 소프트웨어를 기능단위로 분해, 모듈의 집합으로 추상화
소프트웨어 설계 유형
- 아키텍처 설계는 가장 먼저 ( 상위 / 예비 ) 이루어진다.
객체지향 설계 원칙
- LSP / 리스코프 대체 원칙 : 기존 코드를 변경하지 않으면서 기능을 추가할수 있어야 한다.
시스템 아키텍처
- 요구사항은 관련이 없다.
- 물리적 구성 기반으로 정의되는 상세 설계도
미들웨어의 분류
- DB 미들웨어 : APP - DB 간 원활한 통신
- 원격 프로시저 (RPC) - 애플리케이션간 연동
- 메시지 지향 미들웨어 : APP - 미들웨어간 연동, 미들웨어로의 작업요청 처리 kafka
- 트랜잭션 처리 ( TP Monitor ) - 클라이언트 - 서버 사이, 서버 애플리케이션 자원 관리 및 로드밸런싱
- WAS ( Wab App Server ) - 웹서버 요청시 로직 수행해 웹서버로 반환
- ORB ( Object Request Broker ) - 분산 컴퓨팅 환경에서 다른 컴퓨터 프로그램 호출
요구사항 분석
- 요구사항은 예외가 많아 열거와 구조화가 어렵다
요구공학 프로세스
- 추출 : 요구의 수집
- 분석 : 문제 도출 및 정제
- 명세 : 문서화
- 검증 : 요구사항의 검증
- 유지보수 : 신규 발생과 변경점의 관리
시스템 아키텍처 구조
- 호스트 중심 : 호스트에 모두 몰림, 클라이언트는 더미
- 클라이언트/서버 : 기능을 클라이언트와 서버에 위치
- 웹 시스템 : 서버에 애플리케이션 기능 두고 웹브라우저로 접속
모듈
- 결합도 : 모듈간 의존하는 관계
- 응집도 : 단일 모듈 내부의 관계
GoF 패턴
Facade 패턴
객체지향의 연관성
- 연관화 : is member of : 공통의 의미를 서로 연관된 집단으로
- 분류화 : is instance of : 동일한 형의 특성 객체가 모여 클래스
- 집단화 : is part of : 관련있는 여러 객체를 묶어 상위 객체로
- 일반화 : is a : 객체의 공통적인 성질을 묶어 객체로