On 19 june 1998 Pierre Jarillon posted: "I believe it is necessary to have a reference for the all the terms which are used... RCS, SCCS, UML, SGML ... A glossary with links would be a good idea.", just after John Torjo posted: "Some of the volunteers here are novices in certain areas, so talking in abbreviations [ACE, MOF] doesn’t help us a lot." and Jeff Wolfe replied:
Here it is. English is not my native language, so don't choke on every mistaek. Feel free to comment, ask me questions about the list. I'm also doing other things so my response might take a while.
There is a short and
a long format. The short format only gives what an
acronym stands for, or a short indication of what a term means within the
domain of FreeCASE (think about
the meaning of the word repository in different
settings, for instance). The long format gives an explanation of selected
themes and hints at the relevance to the project. Do not hesitate to ask
me for clarification. This goes without saying for the text here, but also:
if you need some explanation of a remark at the freecase-devel@freecase.seul.org
mailinglist
archive, the discussion
board (note: Lately most of the discussion is at the mailinglist, not
at the discussion board. I know because I checked. I'll check again, so
your contribution will not go unnoticed if you still put it there :-) or
somewhere else - as long as it is FreeCASE
related -: ask!
Short
| ACE | ADAPTIVE Communication Environment |
| ACID | Atomic, Consistent, Isolated and Durable |
| AD | Application Development/Design |
| API | Application Programming Interface |
| CRC | Class, Responsability and Collaboration |
| CASE | Computer Aided Software Engineering |
| CRUD | Create, Retrieve, Update and Delete |
| CDIF | Case Data Interchange Format |
| CM | Change Management |
| CORBA | Common Object Request Broker Architecture |
| CDF | Common Data Format |
| CLI | Command Line Interpreter |
| concurrency | simultaneous access to resources |
| critic | pessimistic watchdog type of agent with SE knowledge |
| CVS | Concurrent Versions System |
| DOM | Document Object Model |
| DTD | Document Type Definition |
| entity | thing of interest. |
| E(A)R | Entity, (Attribute, )Relationship |
| FSF | Free Software Foundation |
| GEF | Graph Editing Framework |
| GNU | GNU's Not Unix |
| (L)GPL | (Library) General Public License |
| GUI | Graphical User Interface |
| IAD | Iterative/Incremental/Interactive AD |
| IDE | Integrated Development Environment |
| IDL | Interface Definition Language |
| IIOP | Internet Inter ORB Protocol |
| inter | between |
| IPC | Inter Process Communication |
| JAD | Joint AD |
| JRP | Joint Requirements Planning |
| KDE | 'K' Desktop Environment |
| meta | about |
| MOF | Meta Object Facility |
| MOM | Message Oriented Middleware |
| OCL | Object Constraint Language |
| OO | Object Oriented |
| OOA&D | OO Analysis and Design |
| OOP | OO Programming |
| OOSE | OO SE ;^) |
| ORB | Object Request Broker |
| object | model of an entity, characterised by behaviour and state. |
| pattern | three-part rule, which expresses a relation between a certain context, a problem, and a solution. |
| persistence | all that happens to data before and after it is active as an object. |
| process | 1. The layout
of activities in the development of software (as opposed to the modelling
language).
2. The execution of (part of a) program. |
| protocol | ruleset to which parties comply to communicate. |
| RAD | Rapid AD |
| RCS | Revision Control System |
| RDF | Resource Description Framework |
| repository | well organized persistent SEdata. |
| RPC | Remote Procedure Call |
| SCCS | Source Code Control System |
| SE | Software Engineering |
| SGML | Standard Generalized Markup Language |
| UML | Unified Modeling Language |
| UXF | UML eXchange Format |
| XMI | XML Metadata Interchange |
| XML | Extensible Markup Language |
Long
CASE
If you don't have an idea what CASE is, you are probably@the.wrong.spot here.
Anyway; CASE is an acronym for Computer Aided Software Engineering, so strictly speaking every activity in software engineering where you use the computer would be Case. However; editors, word-processors, compilers, linkers, in short all aids that were in existence before the term Case was launched, are not considered to be Case-tools.When people use the term Case-tool, they usually refer to tools that help you in the complex task of administering and visualising the model of the system you are building and tools that generate code and documentation or reconstuct models from code. Examples: Cool:Gen, SA/Object Architect, Rational Rose, Paradigm plus, Forté, ObjectTeam.
Good Case-tools are very expensive. This will be refrased as 'Good Case-tools used to be very expensive.' as soon as FreeCASE hits the ground - somewhat optimistically: in about a week or so. Wether or not the concept of Deadlines will be supported is not yet a topic of discussion. It seems that Jason Elliot Robbins' cognitive support concept of critics will, however.
FreeCASE is Jeff Wolfe's bazaar project to create an open source CASE tool for distributed development, to "... be released and developed under the GPL. Interface libraries, sufficient to develop commercial and non-commercial add-on components will be released under the LGPL. For simplicity, all things are GPL unless stated otherwise." The KDE-site has some valuable remarks on licensing and on the development model.
CM Change Management.
Based on Per Cederqvist's remarks on Configuration Management we need
There is a site dedicated to Linux Version Control & Configuration
- Source control (CVS).
- Dependency tracking.
- Build systems (i.e. What to build and how to find things during a build. What is shared? What is local?)
- Bug tracking.
- Automated Testing procedures.
- Release Engineering documentation and procedures.
- Distribution Package (was: Tape) Construction. (CVS + RPM ?)
- Customer Installation. (RPM?)
- A way for users to run different versions of the same software on the same host at the same time.
Management Tools.As soon as I know more about how the project organizes the flows of changes I'll expand on this (but maybe not in the glossary).
CORBA
The Common Object Request Broker Architecture is a/the reference platform for distributed computing. The FAQ is excellent. Though FreeCASE will start with Linux and Windows, both as the basis of it's own architecture as well as one of it's target platforms, it eventually will have CORBA for both. Why? It is hoped that most multiplatform IPC and RPC issues will be resolved or at least reduced by adopting a software-bus style.Some important parts are IDL (looks like class and type declarations C++) and the IOP's: G(eneral)IOP and I(nternet)IOP. These are the HTTP-like protocols in between ORB's that makes that they can communicate with a common data format (CDF) wether they are of the same breed or not.
Which CORBA-implementation is a topic of discussion: MICO (MICO is CORBA), OmniOrb, ORBacus? Johan De Wit gave the latter reference and some more: Linux CORBA Reference & Evaluation and The Free CORBA page. Research is needed. Linas gives a good starting point for studying interoperability in the Linux DCE, CORBA and DCOM Guide with examples of client, interface, and server code, emphasizing the differences between several CORBA for Linux-implementations. For high-performance real-time systems we might need to include support for TAO, The ACE ORB. According to the OMG, the MOF is "a key building block in the construction of CORBA based distributed development environments.", definitely a FreeCASE design goal.
CVS
![]()
Concurrent Versions System is the version control system used by the FreeCASE project. The central database of version control is called repository. Synchronizing local copies gets rather hairy when versions walk alone to long. CVS facilitates keeping a central repository of sources. Pierre Jarillon has set up a CVS for the source code control. Sourcefiles may be checked out by developers, modified, and checked back into the main repository. It helps keeping track of source modifications over time, listing differences between revisions of files and tagging sets of files that constitute a complete software release. ssh (secure shell) access is required for full access to the FreeCASE repository.Get started with Introduction to CVS by Jim Blandy, peek at the Reference guide, the Reference Web site at Cyclic Software. You can learn how to use CVS with the CVS tutorial at a UML Design Drawing Tool - site and learn some more with CVS training. This is based on remarks by Pierre and some things I found on the web. I still have to learn it.
Some freely redistributable graphical user interfaces for CVS are tkCVS, jCVS, gCVS (portable GUI for non-techies), MacCVS Pro, MacCVS/WinCVS, MacCVSClient, Cvsweb and CVS for Web Site Projects.
(@@@notes on usability from FreeCASE developers)
GEF
The Graph Editing Framework, from the University of California, Irvine, is a library of Java classes for diagram editing and connected graph editing. As several people favoured Java as the GUI-language, this comes in très handy. Argo/UML, which - if I got it right - may serve as a starting point for FreeCASE, uses it. The Argo/UML v0.3.1 code also comes with a UML metamodel.
UML
The The Unified Modeling Language is a series of notational conventions to express aspects and parts of systems, deviced by Grady Booch, Ivar Jacobson and James Rumbaugh. It is meant as the integrating successor to the zillion (seemingly, or mainly in the details) differing OOA&D methods that arose after OOP found acceptance with (pure OO) Smalltalk and (hybrid) C++. FreeCASE targets to support all notations of the UML and more. Kendall Scott has made a dictionary of the UML.An important part of the UML is the Object Constraint Language to specify pre- and postconditions. The language is purely expressional, i.e. has no side-effects; an OCL-expression just returns a value and does not affect data in any way. The UML does not say how UML-models can be transmitted. That's what the UXF is for.
One of the UML-notations is the class diagram. Dia is a GPL'ed gtk+ based program to create UML class diagrams by Alexander Larsson.
UXF
The UML eXchange Format is intended as the internet way (XML) to communicate models that can be expressed with UML. In the words of Junichi Suzuki, one of the UXF DTD authors, it "... is based on UML1.1, but not complete. I omitted some elements that are not used frequently ...". FreeCASE needs a way to communicate models with other tools. My guess / suggestion is: userchoices like File.Save As and File.Open will eventually support several formats, amongst which UXF, CDIF (accepted by most high-brow CASE-tools) and XMI, a SMIF proposal. Uche Ogbuji likes the UXF. "All such docs could be transparently compressed for efficiency, and we'd have an open format until an industry standard emerges."
XML
The Extensible Markup Language is a data format for structured document interchange on the Web. The World Wide Web Consortium set this standard for defining, validating and sharing document formats on the Web. It is a subset of the SGML. There is a <?XML!> FAQ. Tim Berners Lee wrote: "XML is becoming increasingly adopted as a common syntax for expressing structure in data. Now the Resource Description Framework, a layer on top of XML, provides a common basis for expressing semantics."The Mozillateam is busy building a code library for RDF. You 'll want to contact Guha, Robert Churchill and John Giannandrea if you are going to use it.
Any serious development I know uses some form of scripting. Will the perl-XML effort help us? There seems to be radio-silence on this subject. Your comments, please.
Sometimes people seem to be only using big words to keep the people who are 'not in the know' out of the discussion. They are helping what John Mallett calls the OO smokescreen conspiracy. While this list will certainly not prevent that from happening, it is meant to help people 'into the know' as quickly as possible. Though I think a glossary is a powerful means of getting started, I just can't explain e.g. all of the UML, CORBA, XML or whatever subject here. Not only because of the obvious time and space constraints, but also because I simply don't know. People asked me to add several things I just can't say anything sensible about.
Yet to be discussed I think (if you don't think a term is relevant please let me know):
If you can please do a little looking around yourself, give an explanation and state the relevance to FreeCASE if you want me to add or explain a term. I really need (some more) help with:
