OO2019 네 번째 작업 요약

네 번째 단위 조작 회 아키텍처

첫 번째 작업

이 숙제는 우리의 작업은 계층 구조를 설정 한 수치의 UML 요소에서 구문 분석 JSON 파일에서 분류하는 UML 클래스 다이어그램 분석을 구조화하고, 주어진 클래스 다이어그램을 기반으로하는 몇 가지 기본적인 쿼리 작업을 완료 할 수 있습니다.

I UmlClass, UMLInterface UMLOperation 클래스 및 해당 MyClass에 제공하는 두 번째 패키지의 작업 및 MyOperation하는 MyInterface 클래스, 클래스가 MyClass에 클래스의 부모 클래스로 가게를 상속하는 클래스는 직접 등의 구현 및 운영과 관련된 정보의 관계에서 UML 클래스 다이어그램 소자의 클래스 및 반원.

상기 디자인, 최상층에 저장되어 흩어져 식별 클래스 및 인터페이스의 순회로 구현 관계 UML 요소를 설정하는 과정과, 다음 상속의 나머지 요소, 및 결합 수단은 제 2 층 UML 요소를 확인할 상기 클래스 및 인터페이스의 제 1 층에서 식별 된 이러한 관계 확립, 해당 방법에 추가 마지막 이송 방법 파라미터를 완료 UML 클래스 다이어그램을 구성하는 각 요소의 관계.

방법 연관된 인터페이스와 클래스로 클래스 클래스 MyClass의 클래스의 멤버 변수가 상기 클래스 다이어그램의 요소와 다른 새로운 패키지들 사이의 관계를 설정 한 후 질의를 구현은 효율을 향상시키기 위해, 제공하도록 계산 될 수 있고 그 용도 계산 멤버 변수의 결과를 저장 한 후, 쿼리 성능을 개선하기 위해서이다.

두 번째 작업

추가 검사 순서와 상태 다이어그램, 클래스 다이어그램 관련 규칙의 첫 번째 작업의 기준으로 두 번째 작업. 그리고 순서와 상태 다이어그램의 관계를 구축하기위한 쿼리 요소는, 우리는 첫 번째 작업과 같은 전략 UMLInteraction 정보와 UMLStateMachine 패키지 등의 데이터를 저장할 필요가, 그리고 요소를 통해 그리기의 과정에서 질서의 확립을했다 및 상태도 소자는, 상관 계산은 클래스의 멤버 변수에 의해 수행된다.

Rule002 쿼리의 경우, 내가 접촉, 조회 Rule002의 이에 완성을 설정하는 통계적 공정 MyClass의 클래스와 그 특성과 협회의 이름을 반복했다.

Rule008 질의를 들어, I 추상 클래스 링 내지도가 갖는지 Tarjan 알고리즘 점검하여 그래프 도면 클래스 두 체크 포인트의 DFS 알고리즘으로 사용되는 복수의 메모리와 같은 존재하는지 Rule009 쿼리에 경로.

건축 디자인과 OO 방법에 네 개의 작업

제 1 동작 장치는 제 1 동작 부되지만, 표현의 태스크를 계산하지만, 합성 클래스에 적용되는 객체, 상속 및 다형성의 포장 기본 개념 비교적 강한왔다 패키지, 우리는 서로 다른 클래스와 동일한 인터페이스를 구현 크게 상속 상위 클래스를 통해 코드 재사용 율을 향상시킬 수 있고, 모듈에, 클래스에서 데이터 패키지 및 관련 방법을 연결할 수 있고, 일 수있다 동적 메소드 호출,뿐만 아니라, 또한 객체 지향 모델, 방문자 패턴 및 공장 패턴 및 기타 일반적인 디자인 패턴의 조합을 배웠고, 실제로 작업 경험을 몇 번 객체 지향 디자인 패턴과 함께 사용 이 과정 중심의 확장 성 및 유지 보수의 용이성을 위해 이전 과정 유형 코드보다 제공합니다.

작업에서 두 ​​번째 단위 작업은 여러 엘리베이터의 자바 멀티 스레딩 시뮬레이션을 통해, 요구 사항에 명시된 정확성과 보안 절차에 근거하여 본 과제는, 우리는 더 많은 권리 프로그램 아키텍처를 선택해야 기대 이상으로 모드 동작은 멀티 스레드 큰 범위의 조정을 보장하기 위해, 프로세스는, 우리가 사용하는 키워드가 싱글 동안 스레드 간의 충돌을 방지하기 위해 공유 변수를 보호 동기화 자바 클래스 라이브러리 스레드 안전 사용하도록 선택할 수 없습니다 관찰자 패턴과 디자인 아키텍처는이 작품을 통해, 우리는 좋은 객체 지향 아키텍처는 또한 프로그램의 보안을 지원하는 데 도움이 배운 도움말을 제공합니다.

우리가 완전히 JML 언어 학습에 의한 확장 성을위한 좋은 아키텍처의 중요성을 인식하도록 JML 사양 주변의 세 번째 단위 작업, 일 세 진보적 인 층을 시작, 우리는 형식적인 표현 자바 프로그램 실행, JML 언어를 기대할 수 있습니다 아키텍처 설계는 높은 수준에, 더 추상적, 따라서 JML 정렬 각 모듈 수준 행동 기능의 첫 번째 기능 프로그래밍 과정에서, 후속 공정 및 코드 구현의 효율성에 기여할 수 정확성. 동시에 JML 또한 올바른 절차는 방법 ,, cvc4 및 기타 SMT 해결사는 프로그램이 Z3로 기대를 충족하는지 여부를 확인할 수 있습니다 달성 할 수 있는지 확인합니다.

우리가 배우는 UML 언어의 네 번째 단위 작업이 좀 더 추상적 인 모델링 언어, 클래스 다이어그램, 시퀀스 다이어그램과 상태 다이어그램에 의해 설명 된 작업을 해결하는 방법은 더에 비해이 수준을 달성 할 수있는 프로그램을 설계 추상, 그리고 작업을 해결뿐만 아니라 프로그램의 정확성을 테스트하는 데 도움을 JML 언어 표현 방법에 비해보다 직관적. 자바 프로그램을 작성하여 UML 모델 분석, 우리는 더 나은 UML 모델과 모델의 다양한 요소 사이의 링크의 효과를 이해합니다.

이해 및 연습 시험

제 1 동작 장치는 I는 비교 테스트 위에 JUnit 테스트를 사용하여 간단 서로 정확하게 안내 기능을 추구 검사하고, 자동 테스트 테스트 효율 의해하여 시료 패킷이 크게 향상된다.

I는 검사가 비교적 복잡하기 때문에, 엘리베이터 실시간으로 제 2 단위 작업은 동적이며 의한 멀티 스레드 프로그램의 불확실성, 모든 악의 루트 버그 계정으로 변경 가능한 변수를 고려하여 상기 출력 결과의 안정성을 확보하기 어렵다 테스트 가변 포커스 상태 변수 외에, 조작부는 강도 측정 포인트의 손실이 발생할 수 복잡한 테스트없고, 관찰 하였다. 멀티 스레드 테스트를위한 효율적인 절차는 항상 당신이 배울 수있는 많은 방법이있다이 지역의 문제이다.

세 번째 단위 조작은 시험의 포괄 성을 향상시키기 위해 프로그램의 정확성을 확인하기 위해 하나 개의 테스트 샘플에 의해 하나를 쓸 수있는 언어 JML 사양의 도움으로 작업을 테스트 JUnit을 사용합니다. 불행하게도,이 프로그램이 수행 될 수 있도록 테스트 과정이 특히 중요하게 고려되도록, 보지 내 강도 측정 테스트 포인트의 많은 프로그램의 작업 성능, 더 멋진 것 같다.

내가 잘못 구성된 테스트 샘플을 갈 쉽게 다만 장소가 네 번째 단위 테스트 작업을 검사하고, 시험의 일부 효율적인 수단을 사용하지 않았다. 나중에도 우리가 더 많은 운동을 할 필요가,이 분야에서 능력을 테스트하기에 부족하다 말할 수 있습니다. 그러나 시험에 비해 좀 더 신뢰 형식 검증, 이후의 학습 과정, 나는 함수형 프로그래밍과 형식 검증 분야의 일에 더 집중 될 것입니다 있습니다.

코스 수확

수확 아주 많이.

자바 언어의 사용. 이 부분은 훈련과 많은 나를 언어 자바에 익숙해지면에 대한 코드를 수정하는 코드를 다시 읽어보십시오.

객체 지향 디자인 패턴. 자연 혜택의 개체도 일부 제한을 제공하면서, 객체 지향 설계 지향 모드의 합리적인 사용에 의해 더 큰 범위 코드의 단순성과 정확성을 향상시킬 수 있습니다.

멀티 스레드 프로그램의 이해. 현대 프로그래밍 시스템에서 동시 처리 프로그램은 엘리베이터의 교육 모듈을 통해, 좀 더 스레드 안전 프로그래밍 및 구현에 원칙적으로 기술을 배운, 특히 일반적이다.

JML UML 및 기타 추상적 인 언어입니다. 특정 자바 코드에 비해, 이러한 추상적 인 디자인은 것이다 확실히 나쁘지 않은 코드를 쓰는 효과적으로 문제를 해결하기 위해 좀 더 추상적 인 수준에서 더 많은 고급 콘텐츠입니다.

프로그램 개선 권고

(I는 엔지니어링 학생입니다) 다음과 같이 세 가지 제안 :

그룹 단위로 학생과 교사 나 조교로 실험 교육 과정 설계와 코드 구현의 세부 사항을 논의한다. 우선, 나는 매우 실험적인 콘텐츠 클래스 지루하게 느낄 필요는 느낌이없는 교훈은 학생들의 작업을 테스트하는 것입니다 교사가 수준을 완료 할 수 클래스에서 설정 신뢰하지 않지만, 때마다 시험 전혀 피드백 후 클래스, 그래서 나는 매우 오전 것처럼 실망이 반복 클래스에서 작업을하는 코드를 연마하기 위해 시간을 사용하는 것이 더 좋습니다, 교사는 종종 강력한 조치가 여전히 버그의 다양한 존재 후에도, 더 나은 사용은 실험 수업에 대한 세부로 갈 수있는 기회 단지 매우 이상하다, 그것에 대해 이야기 느낌 말했다 .

작업 관계는 JML 언어와 클래스에서 매우 가까이하지 않습니다. 내 주위에 학생들의 의견에 따르면, 세 번째 JML의 세 번째 단위의 작업과 거기에 약간의 관계는, 또한 알고리즘의 성능에 초점을 맞추고, JML 언어에 대한 몇 가지 검증을 변경 키 확인 도구를 고려, 키 확인을 참조하는 것이 좋습니다 검증 JDK 오픈 소스 라이브러리 Timsort 알고리즘 도구는 물론 OO 교과 과정은 인증을위한 몇 가지 간단한 절차를 고려할 수 있습니다.

첫 번째 블로그 나는 모든 학생들이 블로그는 정말 많이 읽었지만 그런 좋은 코스 OO 그룹이 좋은 권리를 해결할 수있는 방법이어야하지만 더 뒤로가, 없다, 작업 그룹 피드백 과정을 보았다.

해피 OO, 해피 해킹!

추천

출처www.cnblogs.com/huluobo7161/p/11076405.html