-------------------------------------------------------------------------- Software Engineering Fall 2002 COM 3205 --------------------------------------------------------------------------- Assignment 5 Due date: Nov. 7, 2002 -------------------------------------------------------------------------- This assignment is stored in file $SE/hw/5 in file hw5-SE-02.txt -------------------------------------------------------------------------- Topics: First Phase of Eclipse Project 1. Add a "LoD checker properties" page. Any Java project should have "LoD checker properties" page. Make sure it appears only for Java projects. The properties page is the nerve center where the user can choose which version of the LoD should be checked. Offer the capabilities you implemented in hw 4. 2. Add AspectJ project nature. If a Java project does not have AspectJ nature and the LoD checker is enabled, add AspectJ nature to the project. You need to deal with the AspectJ plug-in when compiling the project. At this point find out how to deal with project natures and how to save informations between start-ups and shutdowns of the Platform. 3. Show violations received at run-time 4. Violations recieved could be also saved in the "project violations" file. this file will be an "initialization" point for viewers input when (java) project becomes active. Use Eclipse to open a window in which the Law of Demeter violations and statistics are shown. Highlight the violations in the original Java files. From kojarski@ccs.neu.edu Tue Oct 29 17:36:47 2002 From: Kojarski Sergei To: Karl Lieberherr Subject: Re: help with Eclipse hw Hi Karl, My view of how plug-in can be implemented is: 1. Any Java project should have "LoD checker properties" page So, it's the first thing students should do - create this page and make sure it appears only for Java projects 2. The most interesting point is that we need to deal with AspectJ plug-in when compiling the project. So, when enabling checker for the project plug-in should see, if the project already has AspectJ project nature. If not - we should add AspectJ project nature also to the project. Interesting point is whether plugin has to delete AspectJ nature on disabling IF project initially had no AspectJ nature? I think, the best solution is make it as an option on the properties page, so user can select whether to delete AspectJ project nature from project natures on disabling the checker for this project or not. Of course, this option should exists only for the projects that initially had no AspectJ nature. So, we should keep this information along with other properties. At this point students should find out how to deal with project natures and how to save informations between start-ups and shutdowns of the Platform. 3. Next step view plug-in. This view should reflect an information about violations. It'd be nice if we could make view's Content Provider to be aware of checker events at run-time. Since project is run in separate JVM, we could use sockets to ocommunicate between checker and viewer's content provider. (I believe, it requires creating of "listener" thread on the Platform side. Each time violation is found - checker sends information to "listener" via socket connection. What do you think about it? 4. Violations recieved could be also saved in the "project violations" file. this file will be an "initialization" point for viewers input when (java) project becomes active. 5. Only at this point we should deal with opening appropriate files and highlighting violations when user clics on the violation line. Yes, also, whenever user changes properties from strong to weak forms of the Law or changes GlobalPreffered or library classes we need to kill "project violations" file as well as we need to refresh it each time user runs project. So, I think that first step should correspond to points 1&2 of the list above. Also, students need to copy checker AspectJ files from plug-in directory somewhere to project directory or find some other way of attaching AspectJ files to the project being checked. At the end, checker should save violations in the file and that's how we'll know that checker code is attached. It's not a small part but that's OK, I think. Anyway if they'll have any questions - they ask me. Sergei. On Tue, 29 Oct 2002, Karl Lieberherr wrote: > Hi Sergei: > > do you think this is too much for > one week? > > Please can you provide some further details. > > -- Karl > > -------------------------------------------------------------------------- > Software Engineering Fall 2002 > COM 3205 > --------------------------------------------------------------------------- > Assignment 5 Due date: Nov. 7, 2002 > > -------------------------------------------------------------------------- > > This assignment is stored in file $SE/hw/5 > > in file hw5-SE-02.txt > -------------------------------------------------------------------------- > > > Topics: > > First Phase of Eclipse Project > > Use Eclipse to open a window in which the Law of Demeter violations > and statistics are shown. > > Highlight the violations in the original Java files. > > >