Excellent choice.

Your project will be very useful since we also need an 
object-equivalence checker as part of AP Studio (to make sure
that the displayed cd matches the user maintained textual cd with all the
comments and proper indentation.

Chapter 13 will give you a very good start.

There are no significant risks associated with your project.

If you have questions about how to get started, Binoy Samuel is your host.
He will use your checker later as a part of AP Studio.

-- Karl

>From romilla@ccs.neu.edu Fri Oct 31 08:43:47 1997
>To: lieber@ccs.neu.edu
>As discussed yesterday after class, Jamuna Sundrum
>and I ( Romilla Thekkethala ) would like
>to do a project to test object equivalence of class
>We will have more details to give you when we get started
>over the weekend.
>-Romilla Thekkethala

Romilla Thekkethala

Testing whether two cds are object-equivalent based on the C++
implementation which is in the text book.

Should handle full Demeter/Java cds in the final growth phase.


Bijoyini Chatterjee and Kirti Chandratreya

Metrics project for Java, including counting violations of the Law of Demeter
(class form)

Hi Mike:

Project: UML GUI for AP

is an excellent choice and has not been taken yet.

The risk in this project is that you will have to absorb

- the AWT classes (you will learn at the same 
    time about Java beans communication)
- a framework (graphedit) for drawing graphs from the University of California
- a new Netscape/SUN library for GUI components
- the Command design pattern
- you will work both with plain Java code 
    (the graphedit framework) as well as a good dose of adaptive code
On the other hand, the software seems to be ready for an 
UNDO facility:


fgrep "undoIt" *.java

Action.java: * is made, it can be sent the doIt() and undoIt() messages to perform
Action.java:    public abstract void undoIt();
Action.java:  // undoIt() need to store to support redo?
ActionAlign.java:       public void undoIt() { }
ActionClearPreview.java:        public void undoIt(){}
ActionClose.java:       public void undoIt() { }
ActionCloseMultiple.java:       public void undoIt() { }
ActionCloseall.java:    public void undoIt() { }
ActionCreateConstEdge.java:     public void undoIt() { }
ActionCreateVertex.java:        public void undoIt() { }
ActionDisplayCd.java:   public void undoIt() { }
ActionDispose.java:     public void undoIt() { }
ActionNew.java: public void undoIt(){}
ActionNewTraversal.java:        public void undoIt() { }
ActionOpen.java:        public void undoIt() {}
ActionPrint.java:       public void undoIt(){}
ActionQuit.java:        public void undoIt() { }
ActionRefresh.java:     public void undoIt() { }
ActionRefreshPreview.java:      public void undoIt() { }
ActionReload.java:      public void undoIt() { }
ActionRevert.java:      public void undoIt() { }
ActionSave.java:        public void undoIt() { }
ActionSaveAs.java:      public void undoIt() { }
ActionSaveall.java:     public void undoIt() { }
ActionSelectAll.java:  public void undoIt() {
ActionSelectInvert.java:        public void undoIt() 
ActionShowAbout.java:  public void undoIt() { }
ActionShowContent.java:  public void undoIt() { }
ActionShowDocuments.java:       public void undoIt() { }
ActionShowPropertyWindow.java:  public void undoIt() { }
ActionSplit.java:       public void undoIt() { }
ActionshowMessage.java: public void undoIt(){}

Please prepare a set of questions and then schedule a meeting with
Kedar Patankar and/or Binoy Samuel, the key designers/implementors
behind AP Studio.

I think that with their expertise available at some important
decision points, the project will be very rewarding
for you.

Please tell me when you meet with them; if possible I would like to be
there too.

-- Karl

>From odonnell@ccs.neu.edu Thu Oct 30 21:30:12 1997
>Subject: COM3360 Project Decision
>To: lieber@ccs.neu.edu
>Professor Lieberher,
>I would like to choose the following project:
>	Project: UML GUI for AP
>	Propose a new feature for AP Studio and implement it.
>	The AP Studio source code is available from the Demeter/Java
>	and AP Studio Resource page:
>	http://www.ccs.neu.edu/research/demeter/DemeterJava/use/
>	The GUI needs to support the class diagrams of the Unified Modeling 
>        Language of Rational.
>	http://www.rational.com/
>	So  the tool will use the Unified Modeling Language (based on the 
>        widely used Booch/Rumbauch and Jacobson methodologies).
>	For example,
>	implement undo for AP Studio. AP Studio already uses the Command
>	design pattern, so it is set up to implement undo.
>Specifically, I would like to implement the undo feature into AP Studio.
>If this project has been accounted for, I choose the following:
>	Project: Design Checking: object and language equivalence
>	Check whether two class dictionaries define the same class graph,
>	the same language. Needed for AP Studio.
>	See chapter 13 for a partial solution in Demeter/C++.
>Due to the fact that I live in New Hampshire, and my busy work shedule, I will be 
>working alone.  If either of these projects is a great deal of work for one 
>person, could you suggest one of the other projects?
>Also, please send your response to mandkod@nh.ultranet.com.
>Mike O'Donnell

Hi Mark:

your sixteen years of industrial experience shows through in 
your project selection.

I look forward to your progress reports. (tar files are fine)

In our AP Studio project we use some of the JFC classes successfully.
Some of them might be useful for your editor since the AWT classes
might be too low level.

-- Karl

>From Mark_Janney-P26816@email.mot.com Mon Nov  3 19:52:08 1997
>Date: Mon, 3 Nov 1997 8:36:00 -0600
>From: Mark Janney-P26816 
>Subject: Project selection for NTU SE737-F
>To: lieber@ccs.neu.edu (Receipt Notification Requested)
>Cc: alexey@ccs.neu.edu
>Hi -
>I would like to do the document editor project. It would give me a
>chance to explore the graphical aspects of Java (my previous Java
>experience was a compiler), and to see how AP techniques work in a
>'typical' application. I am anticipating some challenges in the areas
>of performance; tuning traversals, and integrating the use of indices
>like quad-trees to optimize redraw performace will be interesting.
>Because I am a remote student, working on a rather turbulent project,
>I tend to do my school work in bursts at strange times (e.g. the
>middle of the night). Under the circumstances, I don't think doing
>this as a group project work work very well. With sixteen years of
>industrial experience, I already know about the issues involved in
>team development!
>As far as a web page goes, anything I set up will not be accessible
>through the Motorola firewall, and I do not have my own Internet
>access (the cobbler doesn't want to make shoes when he goes home!).
>I'll have to send periodic snapshots of my work in progress (as a tar
>file) via email.
>My plan of attack roughly follows the process outlined in 'UML
>Distilled'. I'll try 5
>1) Initial Requirements Definition and Technolgy Evaluation.
>   (I.e. write down what the document editor should do. Get and
>   understanding of AWT and other Java GUI development
>   tools. Investegate GUI layout tools for Java. Review description of
>   'Lexi' in the GOF book.).
>2) Use Case/Domain Model Develoment
>   Capture key behaviors of the editor in use cases.
>   Develop supporting domain model to define concepts employed in the
>   use cases. (The domain model would describe the user's view of the
>   document, formalizing concepts like, text, graphics, layout,
>   styles, etc.).  Relate use cases to traversals of the domain model?
>3) Define Initial Product Architecture.
>   (Also identify areas of technical and schedule risk).
>   Define top level organization of the product (e.g. a
>   Model/View/Controller). Define an inital set of implementation
>   classes (Class Dictionary).
>4) Develop growth plan.
>   Define a sequence of incremental development cycles to evolve the
>   product using growth plan concepts presented in lecture
>   5. Estimate effort for cycles, and make a schedule.
>5..N) Implementation Cycle
>   Implement the next layer of capabilities called out by the growth
>   plan.
>Regards - Mark Janney.
>Name: Mark Janney
>Company: Motorola - Satcom
>Internet: P26816@email.mot.com
>Voice: (602) 732-2321

From lieber@ccs.neu.edu Thu Nov  6 09:10:40 1997
Received: from snowdon.ccs.neu.edu (lieber@snowdon.ccs.neu.edu [])
	by amber.ccs.neu.edu (8.8.6/8.7.3) with ESMTP id JAA28738; Thu, 6 Nov 1997 09:10:32 -0500 (EST)
From: Karl Lieberherr 
Received: (lieber@localhost)
	by snowdon.ccs.neu.edu (8.8.6/8.6.4) id JAA05047; Thu, 6 Nov 1997 09:10:31 -0500 (EST)
Date: Thu, 6 Nov 1997 09:10:31 -0500 (EST)
Message-Id: <199711061410.JAA05047@snowdon.ccs.neu.edu>
To: gwilliam@ccs.neu.edu, lieber@ccs.neu.edu
Subject: Re:  [COM3360] Project Idea
Cc: dem@ccs.neu.edu, lopes@parc.xerox.com
Status: R

Hi Galen:

that is exactly the kind of project I was hoping for. It will exercise COOL and
give a hopefully favorable comparison between OO and AP.

Please go ahead.

-- Karl

>From gwilliam@ccs.neu.edu Wed Nov  5 17:17:11 1997
>Date: Wed, 5 Nov 1997 17:17:08 -0500 (EST)
>From: Galen Williamson 
>To: Karl Lieberherr 
>Subject: [COM3360] Project Idea
>Prof. Lieberherr,
>I have a project in mind which I guess falls under the category of a
>'technology transfer.'  I have an old program written in OO Pascal
>(Borland) for Windows, which I would like to port to Demjava.  It is a
>game of SpaceWar, which, from what I understand is similar to the game
>Crista used in her Xerox demonstration of D.  
>The game consists of two spaceships duelling, and optionally allows either
>or both ships to be controlled by humans or by the computer.  It was
>written for an undergrad AI class, and the computer player is a
>non-trivial implementation of the Minimax algorithm, and uses alpha-beta
>pruning methods to narrow the search space, which is a tree with three
>levels consisting of 5 branches from each non-leaf node, resulting in 
>5+25+125=155 nodes, each of which calls a number of heuristic functions.
>As originally implemented, the game is divided into two parts.  The first
>part is  the game itself, which consists of the model used to simulate the
>motion of the two ships in space and the effects of their weapons on each
>other.  The second part is the computer player decision algorithm.  
>>From what I have learned in AOO, I now see this program as better divided
>even further, into the GUI (which handles human input), the physics
>model, and the computer player.
>I have wanted to port this thing out of Pascal for a long time, but have
>never had an excuse to do so.  I think that Demjava would be ideal for
>this program, since it is already object-oriented, and I would
>particularly like to use COOL to allow the computer player(s) to be run in
>separate thread(s) from the game model itself.  This was a huge limitation
>in the original implementation, since the lock-step synchronization of the
>game and the computer player forced the computer player's lookahead search
>space to be relatively small (three timesteps into the future).  With
>threads, the computer players can run independently of the game, thus
>allowing the game to respond more naturally to the human player (if any),
>while the computer player can user a deeper (or perhaps continuous) search
>It appears that the computer player algorithm would also benefit greatly
>from the use of the traversal-visitor pattern, and these features of
>Demjava would greatly simplify the implementation of this algorithm.
>Another of my hopes in porting the game would be to allow other computer
>player algorithms to be plugged in, perhaps allowing them to play against
>each other.
>Of course, since this program involves a graphical representation of the
>ships in combat, it would require the use of the GUI features of Java.
>There is also some possibility for allowing multiple players on remote
>systems, but this would most likely be outside the scope of our time
>frame.  One other possibility, of which I am very fond, is to make an
>applet implementation of the game, playable in a browser.
>I have a copy of the original Windows 3.1 version linked from my homepage
>(www.ccs.neu.edu/home/gwilliam/spacewar.zip) if you would like to see what
>it looks like.  The original Pascal source, heavily commented, is also
>available on my page.  It should run under 95/NT, but I haven't tested it.
>Thanks and looking forward to hearing from you on this.

From lieber@ccs.neu.edu Thu Nov  6 09:34:15 1997
Received: from snowdon.ccs.neu.edu (lieber@snowdon.ccs.neu.edu [])
	by amber.ccs.neu.edu (8.8.6/8.7.3) with ESMTP id JAA29570; Thu, 6 Nov 1997 09:34:14 -0500 (EST)
From: Karl Lieberherr 
Received: (lieber@localhost)
	by snowdon.ccs.neu.edu (8.8.6/8.6.4) id JAA05172; Thu, 6 Nov 1997 09:34:13 -0500 (EST)
Date: Thu, 6 Nov 1997 09:34:13 -0500 (EST)
Message-Id: <199711061434.JAA05172@snowdon.ccs.neu.edu>
To: kareny@lexis-nexis.com, lieber@ccs.neu.edu
Subject: Re:  project selection
Status: R

Hi Karen:

>From kareny@lexis-nexis.com Wed Nov  5 19:15:27 1997
>From: kareny@lexis-nexis.com (Karen Yahle)
>Message-Id: <199711060014.TAA16896@drill.lexis-nexis.com>
>To: lieber@ccs.neu.edu
>Subject: project selection
>Prof Lieber,
>Having just finished hw3 on Monday and the midterm today, I am just now
>seriously considering a topic for the project.  I will be working alone
>as I am remote and have plenty of experience working on a team and
>am currently tech lead for a project at work.
it is great to have students with extensive experience
>I want to be sure that what I chose requires a reasonable amount of work for 
>one person.  I am new to Java and all our work here is done in C++ with
>Rogue Wave tools++ and dbtools++ as well as DCE and numerous other interfaces
>so I can't think of a portion of our applications that would be suitable
>for technology transfer.
>Two suggestions from the Web page that interest me are:
>AP Hypertext Explanation and Java demonstration.  Do you have more
>details on either of these??

No, I don't. Java demonstration should be nice visual demo which you can show
to your coworkers to explain what you learn in the course.
It should contain a class graph, a few strategies which are used in a
behavior file and it should show the subgraphs. Maybe you can also show
an animation of the adaptive program when it executes?
The possibilities are wide open.

AP Hypertext Explanation should make it easier to browse through adaptive programs
and find relevant information.

>Also, I thought I saw mention of a project involving java RMI but
>i can't find the reference now.  Was there a suggestion involving RMI?
I mentioned it. It would be the implementation of the Remote Invocation
aspect developed by Crista Lopes with RMI. Too much work for a few weeks.
>Thanks, Karen Yahle

-- Karl

From lieber@ccs.neu.edu Thu Nov  6 09:18:05 1997
Received: from snowdon.ccs.neu.edu (lieber@snowdon.ccs.neu.edu [])
	by amber.ccs.neu.edu (8.8.6/8.7.3) with ESMTP id JAA29039; Thu, 6 Nov 1997 09:18:04 -0500 (EST)
From: Karl Lieberherr 
Received: (lieber@localhost)
	by snowdon.ccs.neu.edu (8.8.6/8.6.4) id JAA05099; Thu, 6 Nov 1997 09:18:04 -0500 (EST)
Date: Thu, 6 Nov 1997 09:18:04 -0500 (EST)
Message-Id: <199711061418.JAA05099@snowdon.ccs.neu.edu>
To: lieber@ccs.neu.edu, rixin@ccs.neu.edu
Subject: Re:  our project
Status: R

Hi Rixin:

Please send me the cd for the web scripting language. Do you plan a
variation of Cardelli's language or do you take it the way it is.

Do you plan to use COOL to deal with S1 | S2?

-- Karl

>From rixin@ccs.neu.edu Wed Nov  5 19:03:32 1997
>Sender: rixin@ccs.neu.edu
>From: Rixin Liao 
>To: lieber@ccs.neu.edu
>Subject: our project
>Hi Prof. Lieberherr,
>We(Xi Ren and Rixin Liao) would like to do the project: Interpreter for
>Web scripting language. 

From lieber@ccs.neu.edu Thu Nov  6 16:55:57 1997
Received: from stockberg.ccs.neu.edu (lieber@stockberg.ccs.neu.edu [])
	by amber.ccs.neu.edu (8.8.6/8.7.3) with ESMTP id QAA22227; Thu, 6 Nov 1997 16:55:53 -0500 (EST)
From: Karl Lieberherr 
Received: (lieber@localhost)
	by stockberg.ccs.neu.edu (8.8.6/8.6.4) id QAA08362; Thu, 6 Nov 1997 16:55:53 -0500 (EST)
Date: Thu, 6 Nov 1997 16:55:53 -0500 (EST)
Message-Id: <199711062155.QAA08362@stockberg.ccs.neu.edu>
To: lieber@ccs.neu.edu, tmb@soli.inav.net
Subject: Universal Turing Machine
Status: R

Hi Tim:

yes, a universal Turing machine will be good to have around in "adaptive" form.

The best way to make the spec more precise might be to define a cd
which defines the inputs to your Turing machine.

-- Karl

From: Tim Broyles 
Subject: Re: Class Project (Ada)

Dr. Lieberherr,

I may have found a project for the class. I'd like your opinion. To me
it sounds ideal, but I'm the student.

I'd like to write a Turing Machine simulator using Demeter/java, such
that any number of different Turing machines could be defined simply by
changing the transition functions in a input file.

What do you think, it seems do-able, and useful at least in an academic
sence. How formal of a definition do you want for a project? To just
build a Turing machine simulator is alittle vague, unless your ok with

Thank you

Tim Broyles

Hi Steve:

looks very good. I am not sure how close to LL(1) your language is.
You might have to play with *lookahead*
Check the Java cd for examples.

What kind of data analysis will you do?

-- Karl

From steves@ccs.neu.edu Fri Oct 31 19:51:50 1997
Received: from sirius.ccs.neu.edu (sirius.ccs.neu.edu [])
	by amber.ccs.neu.edu (8.8.6/8.7.3) with SMTP id TAA28262
	for ; Fri, 31 Oct 1997 19:51:49 -0500 (EST)
Date: Fri, 31 Oct 1997 19:51:49 -0500 (EST)
From: Steven Stuart 
To: Karl Lieberherr 
Subject: Re: project selection time
In-Reply-To: <199710311647.LAA08747@stockberg.ccs.neu.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Status: O

Hello, Professor. Just a quick note describing what I hope is an acceptable
project. It involves a technology transfer of work-related software. We 
currently have in place a database system that manages flat ASCII files. It is
used mostly for data-entry and maintenance but also for some data analysis as
well. You specify the layout of data with data dictionaries like the following:

	$file bbdblks
id                  i6             rn's NHS id number
icda                i4             2171=case, 2172=control
chkdig		    a1		   
conf                i2             confirmation code for disease
	$range 11-37
cacon		    i1		   1=case, 2=control, 3=2ndry control
fibro		    i1	           1=fibro, 2=other
deathcode	    i1		   9=deceased
yob		    i2		   year of birth
moyrbbd		    d4		   mo & yr of bbd dx 
baddtbx		    a1	           x= BXDT very diff from Qrept;g = up for grabs
moyrbrc		    d4             mo & yr of brcn dx
yrbbd		    i2		   year of bbd dx 
prmyrbbd	    d6		   revised date as verified by rn or hosp
idcase		    i6		   case for case/control match
rnname		    a40		   last name, first name
h1name              a40            hospital name
h1addr1             a40            street address
h1addr2             a38            city/state/zip

blkacc1            a12            accession number for the first set of blocks
				  (same as h1acc1 or h1acc2?)

blklet1		   i1		  number of letters sent to hospital 1 for block
blk1dt1            d6             date of the last letter sent to the hospital	
	letters will be generated only after six weeks from blk1dt1 
blkrsp1            i1             response from the pathologists
	$label 1.received requested block;\
	2.received block and slides;\
	3.received slides - block not available;\
	4.no longer available/destroyed;\
	5.does not lend blocks ever;\
	6.we have slides so will not release blocks;\
	7.needs updated consent;\
	8.wants money
blocks1             i2             first set of blocks received, #
b1where             i1             location of first set of blocks
	$label 1.NHS;\
	3.density study;\
	4.returned to HOSP;\
	5.NHS - Freezer
blk1stat            i1             status of pathology of first set of blocks
	$label 1.match to requested path (accession# of slides);\
	2.wrong date/different accession#;\
	3.wrong person -> return;\
	4.not breast tissue->;\
blk1rec		    d6		   date first set of blocks received
blk1dt              d6             date of the surgery for first blocks
blk1box             a3             box number where first blocks are stored
blk1ret             d6             date first blocks returned to hosp
	$date_accept 0D
blk1rep             i1             pathology report received with first set of blocks
blk1path            i1             blocks to pathologists
blk1dtbi            d6             date blocks sent to BI for pathology review
blk1back            i2             first set of blocks back from the pathologists
blk1dtb             d6             date first set of blocks back from pathologists
b1retlet            i1             return letter indicator
b1log               i1             path log indicator

blk1tobi            i2             number of blocks1 sent to BI from NHS

blk1keep	    i2		   number of blocks1 we're keeping

b1newrt             i2             number of new blocks1 returned from bi

comments            a45            general comment field for added info.
answer              a1             0  " "
enterdy             a2             0  "  "

The database system was designed and implemented in C although its extremely
ripe for a port to an object-oriented system and I thought why not to an
adaptive one. There's also a database language that was designed in C and that
uses these data-dictionaries but its probably a little too much to tackle
porting that as well. Anyway, let me know what you think or if you need any
more information.

From bbusacker@micron.com Thu Nov 13 16:32:28 1997
Received: from fwext.micron.com (fwext.micron.com [])
	by amber.ccs.neu.edu (8.8.6/8.7.3) with SMTP id QAA29657
	for ; Thu, 13 Nov 1997 16:32:25 -0500 (EST)
Received: from admin-srv21.micron.com by fwext.micron.com
          via smtpd (for amber.ccs.neu.edu []) with SMTP; 13 Nov 1997 21:32:24 UT
Received: from ntxchange01.micron.com (ntxchange01.micron.com []) by admin-srv21.micron.com (8.7.5/8.7.3) with ESMTP id OAA12532 for ; Thu, 13 Nov 1997 14:31:01 -0700 (MST)
Received: by ntxchange01.micron.com with Internet Mail Service (5.0.1458.49)
	id ; Thu, 13 Nov 1997 14:29:58 -0700
Message-ID: <23F9572E5C52D1119F460020AFFBEFB30D4E41@ntxchange04.micron.com>
From: bbusacker 
To: "'Karl Lieberherr'" 
Subject: RE: Project
Date: Thu, 13 Nov 1997 14:32:03 -0700
X-Priority: 3
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.0.1458.49)
Content-Type: text/plain
Status: R

Sounds Fine.

	-----Original Message-----
	From:	Karl Lieberherr [SMTP:lieber@ccs.neu.edu]
	Sent:	Thursday, November 13, 1997 1:31 PM
	To:	bbusacker@micron.com; lieber@ccs.neu.edu
	Subject:	Re:  Project

	It might be of interest to you to do:

	Project: Demeter/Java for Java Beans

	First do the container example (capacity checking problem) or
	similar using Java Beans. Then describe how the code generation
	will have to change to creat Java Beans code. 
	Implement some of that design.

	You will learn about software components written in Java.

	-- Karl

	>From bbusacker@micron.com Thu Nov 13 11:00:06 1997
	>Received: from fwext.micron.com (fwext.micron.com
	>	by amber.ccs.neu.edu (8.8.6/8.7.3) with SMTP id LAA13131
	>	for ; Thu, 13 Nov 1997 11:00:04
-0500 (EST)
	>Received: from admin-srv21.micron.com by fwext.micron.com
	>          via smtpd (for amber.ccs.neu.edu [])
with SMTP; 13 Nov 1997 15:57:51 UT
	>Received: from ntxchange01.micron.com (ntxchange01.micron.com
[]) by admin-srv21.micron.com (8.7.5/8.7.3) with ESMTP id
IAA01239 for ; Thu, 13 Nov 1997 08:58:16 -0700 (MST)
	>Received: by ntxchange01.micron.com with Internet Mail Service
	>	id ; Thu, 13 Nov 1997 08:57:12 -0700
	>From: bbusacker 
	>To: "'Karl Lieberherr'" 
	>Subject: Project
	>Date: Thu, 13 Nov 1997 08:57:13 -0700
	>X-Priority: 3
	>MIME-Version: 1.0
	>X-Mailer: Internet Mail Service (5.0.1458.49)
	>Content-Type: text/plain;
	>	charset="iso-8859-1"
	>Status: R
	>Professor Lieberherr:
	>I am still in the process of determining a project and wanted
to get
	>your input.  I am interested in doing a technology transfer.
	>I run into the problem that all of our code is written in C
with a
	>little C++ and it runs on a non-supported Java platform (the OS
that we
	>use to run our code is RTMX which is a BSD-like UNIX with real-
	>time extensions).  In addition,  our code is written to control
a tester
	>that we develop in house so there is a lot of register
	>(masking, etc) and low level hardware accesses.  Unfortunately,
our code
	>is constantly changing and would be a great candidate for
improving its
	>maintainability.  Do you have any suggestions on what could be
done in
	>my situation?  I was thinking that using a visitor class could
work but
	>since we don't have any large class hierarchies I don't think
this make
	>sense either.  Should I just choose one of the suggested
	>Which ones are left?  What date are we shooting for for
	>Thanks for your help.
	>Brandon W. Busacker
	>Software Engineer, Micron Technology

From lieber@ccs.neu.edu Thu Nov 13 09:45:05 1997
Received: from stockberg.ccs.neu.edu (lieber@stockberg.ccs.neu.edu [])
	by amber.ccs.neu.edu (8.8.6/8.7.3) with ESMTP id JAA09569; Thu, 13 Nov 1997 09:45:04 -0500 (EST)
From: Karl Lieberherr 
Received: (lieber@localhost)
	by stockberg.ccs.neu.edu (8.8.6/8.6.4) id JAA03024; Thu, 13 Nov 1997 09:45:03 -0500 (EST)
Date: Thu, 13 Nov 1997 09:45:03 -0500 (EST)
Message-Id: <199711131445.JAA03024@stockberg.ccs.neu.edu>
To: lieber@ccs.neu.edu, srecord@ccs.neu.edu
Subject: Re: project selection time
Status: RO

Seems quite doable but I would recommend to do first the Demeter/Java
solution and only if time permits to do the plain Java version.

Write a cd for the kind of requests which can come in,
for recording how and when the requests have already been processed, etc.

Test your cd by feeding it request descriptions.
Free style text put into class Text. It will show up as (@ ... @)

Define the kind of statistics you would like to collect from the system
What other use cases do you have?
Do you want to do a GUI or just text based.

-- Karl

>From srecord@ccs.neu.edu Wed Nov 12 20:30:51 1997
>Date: Wed, 12 Nov 1997 20:30:31 -0500
>From: Samuel Record 
>Reply-To: srecord@ccs.neu.edu
>Prof. Lieberherr,
>As this project will be easily the most substantial programming effort I have _ever_ attempted, I would like to propose a variant of the "Evaluate usefulness of AP" theme for my project.
>I work in the IT department of a school which is about to dramatically expand its use of technology, yet we already struggle to keep up with the volume of "help-desk" calls.  Currently we employ a decentralized strategy where different IT employees support different areas of technology, and end-users are expected to know which employee to call when they are having trouble.  Each IT employee keeps track of his or her own outstanding requests informally; no official statistics are kept.  At some point in the near future, these practices will be ousted in favor of a more formal, centralized system, which will be software-based.
>As third-party help-desk software packages are expensive, particularily for a non-profit institution, we may choose to develop our own.  Even if we eventually chose to purchase software rather than develop it, the practice of developing a solution to the problem should prove valuable in evaluating other solutions.
>So much for the real-world problem; now for the real problems.
>I propose implementing a core (read: limited), single user help-desk software solution in both plain Java and Demeter/Java, thus satisfying the requirements for the "Evaluate usefulness of AP" project.  I would keep statistics on code size, development time, etc. for both systems.  Once the core solutions were implemented, if time permitted, I could then go back and try to add some additional functionality to both systems, recording statistics pertaining to the relative ease with which this was accomplished on both systems.
>The problems I foresee facing with this project have to do with my lack of experience with software development.
>1) I don't know if this is a realistic project.
>2) I am concerned about laying out my goals in a well-defined schedule and sticking to it.
>I think the answer to 1) lies in defining the scope of the project appropriately.  I am more concerned about 2).
>Any thoughts you have would be appreciated!
>Sam Record

From lieber@ccs.neu.edu Wed Nov 12 16:25:54 1997
Received: from stockberg.ccs.neu.edu (lieber@stockberg.ccs.neu.edu [])
	by amber.ccs.neu.edu (8.8.6/8.7.3) with ESMTP id QAA06260; Wed, 12 Nov 1997 16:25:53 -0500 (EST)
From: Karl Lieberherr 
Received: (lieber@localhost)
	by stockberg.ccs.neu.edu (8.8.6/8.6.4) id QAA00119; Wed, 12 Nov 1997 16:25:53 -0500 (EST)
Date: Wed, 12 Nov 1997 16:25:53 -0500 (EST)
Message-Id: <199711122125.QAA00119@stockberg.ccs.neu.edu>
To: kareny@lexis-nexis.com, lieber@ccs.neu.edu
Subject: Re:  Project Selection
Status: RO

Good selection. Please read chapter 13 in the AP book.

-- Karl

>From kareny@lexis-nexis.com Wed Nov 12 15:17:51 1997
>Received: from lexis-nexis.com (firewall.lexis-nexis.com [])
>	by amber.ccs.neu.edu (8.8.6/8.7.3) with SMTP id PAA02986
>	for ; Wed, 12 Nov 1997 15:17:50 -0500 (EST)
>Received: from mailgate.lexis-nexis.com ([]) by lexis-nexis.com (4.1/SMI-4.1)
>	id AA03540; Wed, 12 Nov 97 15:17:46 EST
>Received: from drill.lexis-nexis.com by mailgate.lexis-nexis.com (4.1/SMI-4.1-mda)
>	id AA23840; Wed, 12 Nov 97 15:17:40 EST
>Received: by drill.lexis-nexis.com (SMI-8.6/SMI-SVR4)
>	id PAA22108; Wed, 12 Nov 1997 15:16:46 -0500
>Date: Wed, 12 Nov 1997 15:16:46 -0500
>From: kareny@lexis-nexis.com (Karen Yahle)
>Message-Id: <199711122016.PAA22108@drill.lexis-nexis.com>
>To: lieber@ccs.neu.edu
>Subject: Project Selection
>X-Sun-Charset: US-ASCII
>Status: R
>Prof Lieber,
>After looking at the different project proposals in more detail,
>I think I would like to do the Design Checking: Object equivalence.
>If things go well with that perhaps I can take it further and 
>do also the part to have the PrintVisitor take a class dictionary
>as an argument as described in the Interpreter lecutre - but I will see
>how I do. 
>Karen Yahle

Good selection. Show animation of bus.

Hi Prof.
I (Cengiz GOK) would like to do a project about implementation of "Bus
Routing Problem" with Demeter/Java by using adaptive programming strategy.
 Why did I choose this project?
   Since I will be doing this project alone, proposed projects may not be
   suitable for me as a one-person-team.Last year, some students did similar
   projects.(Implementation of "capacity problem" and "Library System").
   In the first lecture, we saw the strategy graph of "Bus Routing", I
   thought it would be a good application of traversal strategy.The project
   will contain more details about "passengers (waiting/ on bus), buses, bus
   stops, cities, etc.".
     It would be a good opportunity for me to apply adaptive programming
     techniques on a specific problem with Demeter/Java.
	Would you like to give any suggestions about the project?
	-cgok (Cengiz GOK)

	Cengiz GOK
	Northeastern Univ.  College of Computer Science
	  40  Clinton St.,  Malden  MA 02148.