The Cookbook
From 2000 to the autumn of 2008 the Cookbook was developed, containing information relevant to the developers of ArgoUML. In the winter of 2008/2009, the Cookbook was migrated into the wiki. The wiki is now the reference point containing the most up-to-date information.
The contents listing below shows the sections that came from the Cookbook. You can read all of the sections below to gain a detailed overview of the project. Alternatively, pick out the specific sections you need.
- 1. Change Log
- 1. Introduction
- 1.1. Thanks
1.2. About the project
1.3. How to contribute
- 1.4. About this Cookbook - not in the wiki
- 1.4.1. In this Cookbook, you will find...
- 1.4.2. In this Cookbook, you will not find...
1.5. Mailing Lists
2.1. Quick Start
2.2. Source layout
- 2.3.1. What do I need to build ArgoUML?
- 2.3.2. Configuring Subversion
- 2.4.1. Which tools are part of the ArgoUML development environment?
- 2.4.2. What libraries are needed and used by ArgoUML?
2.6. Build Process
- 2.6.1. How Ant is run from the ArgoUML development environment
- 2.6.2. Developing in a subproject
- 2.6.3. Troubleshooting the development build
2.7. The JUnit test cases
- 2.7.1. About the Test case Class
- 2.7.2. Naming JUnit tests classes
- 2.7.3. About the Test case Methods
- 2.7.4. Improving a test case
- 2.8.1. Building documentation
2.9. Setting up Eclipse 3
- 2.9.1. Eclipse installation instructions
- 2.9.2. Basic ideas of the set up
- 2.9.3. Checking out through Eclipse
- 2.9.4. Eclipse to help with the ArgoUML coding style
- 2.9.5. Eclipse to automatically find problems in the code
- 2.9.6. Settings for Checkclipse
- 2.9.7. Running JUnit test cases from within Eclipse
- 2.9.8. How to work with the modules
2.10. Settings for NetBeans
2.11. Settings for Emacs
2.12. Making a release
- 2.12.1. The release did not work
- 3.1. Requirements for Look and feel
- 3.1.1. When multiple visual components are showing the same model element they shall be updated in a consistent manner throughout the application.
- 3.1.2. All views of a model element shall be updated as soon as the model element is updated.
- 3.1.3. Editable views of the model should update the model on each keystroke and mouse click.
- 3.1.4. Any text fields that require validation should not be editable directly from a view.
- 3.1.5. With dialogs, the model is not updated until the dialog is accepted by the user with valid fields.
- 3.1.6. The user shall receive some visual feedback during the edit process of textual UML to indicate whether the text represents valid UML syntax.
- 3.1.7. There shall be no indication of an exception on the screen or in the log if it has occured merely because of a user mistyping or not being aware of UML syntax.
- 3.1.8. All text fields shall have context sensitive help.
- 3.2. Requirements for UML
- 3.2.1. ArgoUML shall be a correct implementation of the UML 1.4 model.
- 3.2.2. ArgoUML shall implement everything in the UML 1.4 model.
- 3.2.3. About enforcement of well-formedness rules from the UML standard.
- 3.3. Requirements on java and jvm
- 3.3.1. Choice of JRE: ArgoUML will support any JRE compatible with a Sun specification of any JRE from Sun that has not begun the Sun End of Life (EOL) process.
- 3.3.2. Download and start
- 3.3.3. Console output: Logging or tracing information shall not be written to the console or to any file unless explicitly turned on by the user.
- 3.4. Requirements set up for the benefit of the development of ArgoUML
- 3.4.1. Logging: The code shall contain entries logging important information for the purpose of helping Developers of ArgoUML in finding problems in ArgoUML itself.
4.3. External subsystems
- 5. Inside the subsystems
5.1. <<Subsystem>> Model
- 5.1.1. Design of the subsystem
- 5.1.2. Factories
- 5.1.3. Helpers
- 5.1.4. The model event pump
- 5.1.5. NSUML specifics
- 5.1.6. The use of IDs in MDR
- 5.1.7. How to work against the model
- 5.1.8. How do I...?
- 5.2.1. Main classes
- 5.2.2. How do I ...?
- 5.2.3. org.argouml.cognitive.critics.* class diagram
- 5.3.1. Multi editor pane
- 5.3.2. How do I add a new element to a diagram?
- 5.3.3. How to add a new Fig
- 5.4.1. Adding the property panel
- 5.7.1. Initialization of the profile subsystem
- 5.7.2. Profile(s) management
- 5.7.3. Defining profiles
- 5.7.4. History of the Profile subsystem
- 5.8.1. Common import code
- 5.8.2. Diagram layout algorithms
5.10. <<Subsystem>> Java - Code Generation and Reverse Engineering
- 5.10.1. How do I ...?
- 5.10.2. Which sources are involved?
- 5.10.3. How is the grammar of the target language implemented?
- 5.10.4. Which model/diagram elements are generated?
5.11. <<Subsystem>> Other source languages (C++, Python, etc)
5.12. <<Subsystem>> The GUI
5.12.1. The TargetManager
- 5.13.1. What is loaded/initialized?
- 5.13.2. Details pane
5.15.1. Organizing translators
5.15.2. Ambitions for localization
- 5.15.3. How do I ...?
5.16. <<Subsystem>> Logging
- 5.16.1. What to Log in ArgoUML
- 5.16.2. How to Create Log Entries...
- 5.16.3. How to Enable Logging...
- 5.16.4. Reasoning around the performance issues
- 5.16.5. References
5.20. <<Subsystem>> Explorer
- 5.20.1. Requirements
- 5.20.2. Public APIs and SPIs
- 5.20.3. Details of the Explorer Implementation
- 5.20.4. How do I ...?
5.21.1. What the ModuleLoader does
- 5.21.2. Design of the Module Loader
5.22. <<Subsystem>> OCL
- 6.1. How do I ...?
- 6.2. Modules
- 6.2.1. Modules
- 6.2.2. Modules
- 6.2.3. Tip for creating new modules (from Florent de Lamotte)
- 6.3. How are modules organized in the Java code?
- 6.3.1. Requirements on modules
- 6.3.2. How do I ...?
- 7. Standards for coding in ArgoUML
- 8.1. Introduction
- 8.2. Style
8.3. Document Conventions
8.4. DocBook Conventions
8.7. User Manual Plans
- 8.7.1. Target Audiences for the User Manual
- 8.7.2. Goals for the User Manual
- 8.7.3. Suggested Manual Structure
- 8.7.4. Actions, Priorities and Questions
- 9.2.1. Priorities
- 9.2.2. Resolutions
9.3. Roles Of The Workers
- 9.3.1. The Reporter
- 9.3.2. The Resolver
- Index
- A. Further Reading
- A.1.1. Abstract
- A.1.2. Where to find it
- A.2.1. Abstract
- A.2.2. Where to find it
You can also view the final version of the old Cookbook: