Skip to content
JinGyeong Jeong edited this page Jun 9, 2016 · 37 revisions

2016년 휴먼ICT소프트웨어공학 1분반 1팀

프로젝트 개요

목차

  1. 팀원 구성 및 역할
  2. 개발 환경 및 사용한 라이브러리
  3. 프로그램 사용 방법 및 기능 제약
  4. 개발 산출물 목록

1. 팀원 구성 및 역할

유재범, 이원준, 장혁재, 정진경 (총 4명)

  • 유재범: JavaFX GUI View 구성, GUI 이벤트 처리, 프로젝트 관리
  • 이원준: gradle 구성 및 테스트 구성 세팅, LCS 알고리즘 설계, UI 테스트 작성
  • 장혁재: GUI 이벤트 처리, Text 하이라이팅
  • 정진경: LCS 알고리즘 구현, 프로젝트 관리, MVC 설계, 유닛 테스트 작성

2. 개발 환경 및 사용한 라이브러리

  • 사용 언어: Java 8
  • GUI 프레임워크: JavaFX 8
  • 유닛 테스팅 프레임워크: JUnit
  • UI 테스팅 프리엠워크: TestFX
  • Mocking 프레임워크: Mockito
  • 빌드 자동화: gradle
  • 사용한 라이브러리: RichTextFX

3. 프로그램 사용 방법 및 기능 제약

빌드 및 실행

Java 8, JavaFX 8을 지원하는 JDK 설치된 환경 하에서 gradle 명령어 수행으로 간단하게 빌드 및 실행이 가능하다.

빌드 및 실행

터미널

$ ./gradlew run

IntelliJ (gradle 모듈에서 SimpleMerge -> Tasks -> application -> run 실행)

Run

테스트 빌드 및 실행

터미널

$ ./gradlew test

IntelliJ (gradle 모듈에서 SimpleMerge -> Tasks -> verification -> test 실행)

Test

사용 방법

Viewing/Editing/Saving

초기 화면은 아래와 같다. GUI

Load/Edit/Save 버튼과 TextArea를 지닌 패널이 양쪽으로 하나씩 있으며, 양쪽 패널 둘 다 Load/Edit/Save에 사용 가능하다.

Compare & Merge

양 쪽에 파일을 로드한 뒤 Compare 버튼을 누르면 아래처럼 비교 결과에 따라 텍스트가 강조된다. Compare

Diff Block들은 노란 배경색으로 강조되며, 가장 위의 Diff Block은 Merge 방향을 묻는 포커스가 되며 하늘색으로 강조된다.

아래 사진은 위의 상태에서 'Copy to right'를 선택한 상태이다. Merge

Merge 이후 원본 Diff Block은 강조가 해제되고, 복사된 Diff Block은 초록색으로 강조된다.

기능 제약

  • 폰트 강조: 비교에 따른 폰트 강조는 background-color로만 이루어진다.
  • Block Traversal: 파일의 diff 블록들은 위에서 아래로 순차탐색만 가능하다. 또한 다음 블록으로 넘어가기 위해서는 Copy to left, Copy to right를 사용해 Merge 해야 한다.
  • 파일 포맷: 입력받는 파일은 UTF-8 포맷이라고 가정한다.
  • Compare 버튼 활성화: 양쪽 패널 모두 파일을 Load한 이후에 Compare가 가능하다.
  • Merge 중단: Merge 도중 한 쪽 패널에서 Load/Edit 등으로 어느 부분이라도 텍스트가 변경되면 Copy to right/Copy to left 버튼은 비활성화되며, Merge를 위해서는 다시 Compare 해야 한다. (아래 그림 참고)

FlowChart

4. 개발 산출물 목록 (각각 별도 보고서 첨부)

  • 자바 UI 테스팅 프레임워크 조사 보고서
  • 디자인 문서
  • 테스트 결과 보고서
  • 프로그램 전체 소스코드