CS

    [소프트웨어 공학] Maven

    [소프트웨어 공학] Maven

    Maven 이란? 빌드 자동화 도구(프로젝트 관리, 라이브러리 관리) 일반적인 빌드 과정 절차 소스코드 컴파일 테스트 프레임워크를 이용한 테스트 배포 가능한 형태(.jar, .war)로 패키징 지역/원격 저장소로 배포 빌드 결과 등의 레포트 생성 Maven의 빌드 라이프 사이클 처음 단계부터 해당 단계까지 순차적으로 실행 골(Goal): 각 단계(Phase)에서의 수행 작업 (플러그인:골) 플러그인(plug-in): 각 단계에 연결되어 골들을 실행 pom.xml(project object model): 프로젝트 root에 존재하는 파일로, 프로젝트 정보 및 의존성 관리, 단계별 골 설정 Maven의 표준 라이프 사이클 default: 기본적인 빌드 절차 report: 프로젝트 문서와 사이트 작성 clea..

    [소프트웨어 공학] 객체지향 개발 프로세스

    [소프트웨어 공학] 객체지향 개발 프로세스

    요구사항 설문, 인터뷰, JPR (Joint requirement planning) 등을 이용하여 이해 관련자로부터 수집, 용어집으로 용어 표준화 기능적 요구사항(유스케이스 다이어그램) 문제 해결을 위해 시스템이 제공해야 할 서비스 비기능적 요구사항 (부가사항 명세서) 시스템 품질: 신뢰성, 가용성, 성능, 편의성, 접근성, 보안성 제약사항 설계,구현/하드웨어/인터페이스 등의 제약사항 국제 (표준) 구격 요구사항 검증 기준 명확성: 일치된 해석 완전성: 모든 정보 기술 일관성 요구사항 간의 모순이 없어야 함 실현할 수 없을 정도의 많은 제약사항 회피 추적 가능성: 추적할 수 있도록 각 요구사항에 id 부여 검증 가능성: 정량화, 명확한 계량적 기준 사용자 관점 (WHAT o HOW x) 사용/구현 기술보..

    [소프트웨어 공학] 순차 다이어그램(Sequence Diagram)

    [소프트웨어 공학] 순차 다이어그램(Sequence Diagram)

    순차 다이어그램(Sequence Diagram) 시스템의 동적 흐름 서비스 제공 과정 표현 모델 서비스 객체 정의 -> 객체 간 메시지 송수신 과정을 시간 순서에 따라 정의 " 객체명: 클래스명 " 형식으로 맨 위에 객체 표시 ex) youngk: Person 왼쪽에서 오른쪽으로 객체 나열 객체 간의 송수신 메시지 형식 [시퀀스 번호][가드] : 리턴 값 := 메시지명(인자..) 위에서 아래 방향으로 시간(시퀀스) 진행 가드: 메시지 송신 조건 프레임: 다이어그램을 특정하는 wrapper 왼쪽 위 모서리에 다이어그램 타입과 이름 기입 sd: sequence diagram(순차) ud: usecase diagram(유스케이스) cd: class diagram(클래스) 하나의 시나리오 단위로 표시 다이어그램..

    [소프트웨어 공학] 패키지 다이어그램

    [소프트웨어 공학] 패키지 다이어그램

    패키지 다이어그램 패키지란? 관련 있는 모델 요소의 그룹화 패키지 내에 다른 패키지 포함 가능 구성 요소는 하나의 패키지에만 포함됨 패키지는 하나의 네임 스페이스 구성 패키지 제거 시 패키지 내의 모델 요소도 제거됨 패키지의 의존관계 B패키지 없이 A패키지의 단독 재사용 불가능 B패키지의 변경은 A패키지에 영향을 줄 수 있음 패키지 설계의 일반 원칙 응집도 높이고, 결합도는 낮춤 응집도: 패키지 내 클래스의 목적 수행 정도 결합도: 패키지 간의 상호 의존 정도 패키지 설계 원칙(응집도) REP Reuse Release Equivalence Priciple(재사용 릴리즈 등가 원칙) 재사용, 릴리즈의 단위는 패키지 CPR Common-Reuse Priciple(공통 재사용 원칙) 패키지 내의 클래스는 함께..

    [소프트웨어공학] 클래스 다이어그램

    [소프트웨어공학] 클래스 다이어그램

    클래스 다이어그램 시스템의 정적 구조 시스템을 구성하는 클래스와 그들 간의 관계 표현 클래스 이름, 속성, 연산 속성과 연산의 접근 제어자 + (public), - (private), # (protected), ~ (package) 속성의 표현 static은 밑줄 [+ or - or # or ~] 이름: 타입[다중성 정보][=초기값] 연산의 표현 static은 밑줄 [+ or - or # or ~] 이름(인자1: 타입1, ..., 인자n: 타입n): 반환타입 표현식이 Swift 같네요 public func someFunc(num: Int, name: String) -> String 이런 느낌 제약 조건 { } 또는 노트 심볼 이용 다중성 클래스의 관계 연관, 일반화, 실체화, 집합, 의존 관계 클래스의 ..

    [소프트웨어공학] 모델링, UML, 유스케이스 다이어그램

    [소프트웨어공학] 모델링, UML, 유스케이스 다이어그램

    1. 소프트웨어 개발과 모델링 모델링 해석의 공유 및 타당성 검토 개발할 시스템 구체화 / 가시화 시스템의 구조와 행위 명세 시스템 구축 틀 제공 2. UML UML이란? 대표적인 시스템 모델링 언어(unified modeling language) 시스템을 상호작용하는 객체들로 모델링 분석 모델(문제 영역)과 설계 모델(해결 영역)이 동일 다이어그램(diagram) 종류 행위 다이어그램: 활동, 상태 머신, 유스케이스(UseCase) 구조 다이어그램: 클래스, 객체, 복합체 구조, 배치, 컴포넌트 패키지 상호작용 다이어그램: 순차, 상호작용 개요, 통신, 타이밍 유스케이스 다이어그램 사용자 관점에서 시스템 사용 목적 기술 목적 달성을 위한 사용자와 시스템 간의 상호작용 시스템의 기능 서비스 정의, 시스템..