Structure Explorer는 STAN의 주요 선택 도구이다. Structure Explorer는 인공물 관리 계층을 보여둔다. 인공물을 선택하면 그것이 현재 노드가 된다: 모든 다른 뷰들은 해당 노드에 대응되는 컨텐츠를 보여줌으로써 이를 반영한다.
explorer의 root node는 전체 project/application에 대응된다. root의 컨텍스트 메뉴는 Properties 아이템을 포함하는데 이는 application properties 다이얼로그를 열어준다(단축키는 ALT+ENTER).
만약 분석이 클래스를 제외하면, 이들은 root와 분리되어 "Filtered Classes"로 라벨링되어 보여진다.
Refresh 컨텍스트 메뉴 아이템을 사용하여(또는 explorer가 활성화된 상태에서 F5를 누른다) 분석을 재실행한다. 이는 밑에 포함된 리소스들이 디스크 상에서 변경되었다면 유용하다(클래스 파일들과 JAR들)
인공물들은 인공물 자체나 그것의 자식들중 하나가 특정 측정 기준으로 등급이 지정되는 경우 에러 마크를 보여준다. 경고 표시는 인공물이나 그것의 자식을 위한 최악의 등급이 주황색 범위에 빠지게 됨을 가리킨다. 결과적으로 에러나 경고가 없는 인공물들은 측정 기준을 위반하지 않고 있다는 것을 의미한다.
Excluding/Including Artifacts from the Structure Explorer
패키지 트리의 경우 평범한 패키지들과 클래스들은 Exclude 아이템 항목을 포함하는 컨텍스트 메뉴를 포함한다. Explorer로부터 인공물을 제외하는 것은 자동적으로 적절한 exclusion 패턴을 추가하고 분석을 재가동함으로써 어플리케이션 특성들을 변경할 것이다.
Note
Application properties를 열고 Filter tab으로 가서 현재 활성화된 패턴 리스트들을 손수 관리할 수 있다. 필터 패턴에 대한 더 많은 정보는 Specifying Class Filter Patterns를 참고해라.
필터링된 클래스들은 grayed-out icons으로 분리된 root 밑에 보여진다. 명확하게 제외된 패키지 트리들, 평범한 패키지들 그리고 클래스들은 In-out 마커로 장식되고 컨텍스트 메뉴의 Include로 다시 포한될 수 있다(부모가 제외되었을 때는 제외된다)
Warning
필터 패턴들은 어플리케이션 전체 영역이다. Thus, using the Exclude menu item while in Show Libraries mode may cause artifacts from other libraries be excluded as well (e.g. when excluding a package that extends over several libraries.
Linking the Structure Explorer with Views
synched Link with View button은 explorer와 뷰를 연결하는데 사용된다. 이 모드에서,
The Link with View button is used to link the explorer to views. In this mode,
Composition View에서 artifact를 탐색하는 것은 그 artifact를 현재 노드로 만들 것이다.
Couplings View에서 artifact를 탐색하는 것은 그 artifact를 현재 노드로 만들 것이다.
Structure Treemap
Structure Explorer가 활성화되었을 때(포커스를 가지고있는) OverView는 트리맵으로써 현재 노드 현재 노드에 뿌리를 둔 서브트리를 형상화해준다. 트리맵 셀을 더블 클릭하면 explorer에서 대응되는 노드가 선택되고 그것이 새로운 현재 노드가 된다.
트리맵 셀의 색깔은 artifact 타입에 대응된다.(예를 들어, 클래스는 녹색, 인터페이스는 분홍색이다)
Analysis Preference 페이지는 Level of Detail과 Exclusion Patterns을 위한 기본값을 명세하게 해준다.(Specifying Class Filter Patterns을 보아라).
새로운 analysis를 설정할 때, preferences를 초기값으로 취하게 된다.
Class filters는 분석을 형성하는 라이브러리들로부터 클래스의 부분집합들을 조정게 해준다. 두가지 종류의 필터가 있다.
Inclusions 특정 클래스들이 분석되게 하는 규칙을 명세하는 Ant-style 패턴들의 부분집합으로 주어질 수 있다. 만약 inclusions이 정의되지 않았다면 기본 패턴이 적용된
Exclusions 틀정 클래스들이 무시되도록 하는 규칙을 명세하는 Ant-style 패턴의 집합이 주어질 것이다.
만약 클래스가 적어도 하나의 inclusion 패턴에 매칭되고 어떤 exclusion 패턴에 매칭되지 않는다면 클래스는 분석의 부분이 된다.
패턴은 패스 구분자로 점'.' 대신에 슬래시'/'를 사용한다. 다음의 와일드카드들이 사용가능하다:
? 는 하나의 캐릭터와 매칭된다(드물게 사용된다)
* 는 '/'를 포함하지 않는 연속된 캐릭터와 매칭된다.
** 는 어떤 캐릭터들과도 매칭된다.
패턴을 쉽게 사용하기 위해서는 몇몇 standard pattern 타입들과 일치시키자:
"/*"으로 끝나고 어떤 와일드카드를 포함하지 않는다면 하나의 패키지와 매칭된다. 예를 들어 com/foo/bar/* 는 com.foo.bar 패키지의 모든 클래스들과 매칭된다.
"/**"으로 끝나고 어떤 와일드카드를 포함하지 않는다면 패키지 트리와 매칭된다. 예를 들어, com/foo/bar/**는 com.foo.bar 패키지 트리로부터의 모든 클래스들과 매칭된다. com.foo.bar.baz 등등.
어떤 와일드 카드도 없는 패턴은 하나의 클래스와 매칭된다(inner class를 포함하여). 예를 들어 com/foo/bar/Baz는 com.foo.bar.Baz와 com.foo.bar.Baz$1과 같은 중첩 클래스와 매칭된다.
위의 표준 타입의 패턴들은 만약 Structure Explorer로부터 인공적으로 제외되지 않는다면 자동으로 분석에 적용된다. 우리는 complex patters으로서 표준 타입과 매칭되지 않는 패턴들을 참조한다. complex patterns의 예는 다음과 같다.
Patterns of the above standard types are automatically applied to the analysis if you exclude artifacts from the Structure Explorer. We refer to patterns that do not match the standard types as complex patterns. Examples for complex patterns are:
**/test/** 는 "test" 세그먼트를 포함하는 패키지명의 모든 클래스들과 매칭된다.
**/Test* 는 "Test"로 시작하는 모든 package 내의 클래스들과 매칭된다.
새로운 분석을 생성할 때, 기본 inclusion 패턴은 라이브러리와 기본 exclusion 패턴으로부터 모든 클래스들과 매칭한다.(이 패턴은 inclusion pattern 리스트에는 표시되지 않는다)
STAN의 RCP(stand-alone) 변종은 이른바 Projects라 불리는 것을 사용한다. Project settings은 workspace에 저장되어 수정될 수 있고 언저든지 실행할 수 있다.
Running an Analysis
Projects View는 workspace에 있는 모든 STAN 프로젝트들을 보여준다. 더블 클릭을 통해 프로젝트를 실행시키거나 컨텍스트 메뉴의 Analyze를 선택해서 실행시킬 수 있다.
Creating a new project
새로운 프로젝트를 열기 위해 메뉴바의 File > New 를 선택하거나 ALT+SHIFT+N을 선택한다. 다른 방법 : CTRL+N을 누르고 리스트에서 위저드를 선택한다.
프로젝트의 이름을 입력하고 아래에 설명하는데로 프로젝트 설정으로 통과하기 위해 다음을 누룬다.
Configuring an Analysis
Project Configuration 다이얼로그는 다음의 페이지를 갖고 있다.
General - 이 페이지에서 Level of Detail을 선택할 수 있다.
Libraries - 이 페이지는 코드베이스를 형성하는 라이브러리의 리스트를 유지한다.
Filter - 이 페이지는 당신의 Class Filter Patterns을 설정할 수 있게 해준다.
다 설정했으면, Finish를 누른다.
존재하는 프로젝트의 설정을 변경하기 위해서는 Projects View의 컨텍스트 메뉴에서 Properties를 선택한다. 현재 분석중인 프로젝트를 위해서는 Structure Explorer에 있는 root의 컨텍스트 메뉴로부터 선택하면 된다.