Login | Register
My pages Projects Community openCollabNet

ArgoUML: Manual de Usuario

Tutorial y descripci??n de referencia

Alejandro Ramirez

Philippe Vanpeperstraete

Andreas Rueckert

Kunle Odutola

Jeremy Bennett

Linus Tolke

Michiel van der Wulp

Este material puede ser distribuido solo sujeto a los terminos y condiciones establecidos en la Open Publication License, v1.0 o posterior. Una copia de esta licencia est?? incluida en la secci??n Open Publication License. La ??ltima versi??n est?? actualmente disponible en http://www.opencontent.org/openpub/.

Abstract

Esta version de el manual est?? planeado para describir la versi??n ${argo.core.version} de ArgoUML.


Table of Contents

1. Prefacio
1. Introducci??n
1.1. Origenes y Visi??n General de ArgoUML
1.1.1. Analisis Orientado a Objeto y Dise??o
1.1.2. El Desarrollo de ArgoUML
1.1.3. Encontrando Mas Sobre el Proyecto ArgoUML
1.2. Alcance de Este Manual de Usuario
1.2.1. Audiencia Objetivo
1.2.2. Alcance
1.3. Visi??n General del Manual de Usuario
1.3.1. Estructura del Manual Tutorial
1.3.2. Estructura del Manual de Referencia
1.3.3. Retroalimentaci??n por el Usuario
1.4. Supuestos
1. Tutorial
2. Introducci??n (escribiendose)
3. OOA&D basada en UML
3.1. Antecedentes para UML
3.2. Procesos Basados en UML para OOA&D
3.2.1. Tipos de Procesos
3.2.2. Un Proceso de Desarrollo para este Manual
3.3. Por que ArgoUML es Diferente
3.3.1. Psicolog??a Cognitiva
3.3.2. Estandares Abiertos
3.3.3. 100% Java Puro
3.3.4. Codigo Abierto
3.4. Fundamentos de ArgoUML
3.4.1. Empezando
3.4.2. El Interfaz de Usuario de ArgoUML
3.4.3. Salida
3.4.4. Trabajando Con Criticas de Dise??o
3.5. El Casos de Estudio (A escribir)
4. Captura de Requerimientos
4.1. Introducci??n
4.2. El Prodeso de Captura de Requerimientos
4.2.1. Pasos del Proceso
4.3. Salida del Proceso de Captura de Requerimientos
4.3.1. Documento de Visi??n
4.3.2. Diagrama de Casos de Uso
4.3.3. La Especificaci??n de Casos de Uso
4.3.4. Supplementary Requirement Specification
4.4. Using Use Cases in ArgoUML
4.4.1. Actors
4.4.2. Use Cases
4.4.3. Associations
4.4.4. Hierarchical Use Cases
4.4.5. Stereotypes
4.4.6. Documentation
4.4.7. System Boundary Box
4.5. Case Study
4.5.1. Vision Document
4.5.2. Identifying Actors and Use Cases
4.5.3. Associations (To be written)
4.5.4. Advanced Diagram Features (To be written)
4.5.5. Use Case Specifications (To be written)
4.5.6. Supplementary Requirements Specification (To be written)
5. Analysis
5.1. The Analysis Process
5.1.1. Class, Responsibilities, and Collaborators (CRC) Cards
5.1.2. Concept Diagram (To be written)
5.1.3. System Sequence Diagram (To be written)
5.1.4. System Statechart Diagram (To be written)
5.1.5. Realization Use Case Diagram (To be written)
5.1.6. Documents (To be written)
5.2. Class Diagrams (To be written)
5.2.1. The Class Diagram (To be written)
5.2.2. Advanced Class Diagrams (To be written)
5.3. Creating Class Diagrams in ArgoUML
5.3.1. Classes
5.3.2. Associations (To be written)
5.3.3. Class Attributes and Operations (To be written)
5.3.4. Advanced Class Features (To be written)
5.4. Sequence Diagrams (To be written)
5.4.1. The Sequence Diagram (To be written)
5.4.2. Identifying Actions (To be written)
5.4.3. Advanced Sequence Diagrams (To be written)
5.5. Creating Sequence Diagrams in ArgoUML
5.5.1. Sequence Diagrams
5.5.2. Actions (To be written)
5.5.3. Advanced Sequence Diagrams (To be written)
5.6. Statechart Diagrams (To be written)
5.6.1. The Statechart Diagram (To be written)
5.6.2. Advanced Statechart Diagrams (To be written)
5.7. Creating Statechart Diagrams in ArgoUML
5.7.1. Statechart Diagrams (To be written)
5.7.2. States (To be written)
5.7.3. Transitions (To be written)
5.7.4. Actions (To be written)
5.7.5. Advanced Statechart Diagrams (To be written)
5.8. Realization Use Cases (To be written)
5.9. Creating Realization Use Cases in ArgoUML (To be written)
5.10. Case Study (To be written)
5.10.1. CRC Cards
5.10.2. Concept Class Diagrams (To be written)
5.10.3. System Sequence Diagrams (To be written)
5.10.4. System Statechart Diagrams (To be written)
5.10.5. Realization Use Cases (To be written)
6. Design
6.1. The Design Process (To be written)
6.1.1. Class, Responsibilities, and Collaborators (CRC) Cards
6.1.2. Package Diagram (To be written)
6.1.3. Realization Class Diagrams (To be written)
6.1.4. Sequence Diagrams and Collaboration Diagrams (To be written)
6.1.5. Statechart Diagrams and Activity Diagrams (To be written)
6.1.6. Deployment Diagram (To be written)
6.1.7. Documents (To be written)
6.2. Package Diagrams (To be written)
6.2.1. The Package Diagram (To be written)
6.2.2. Advanced Package Diagrams (To be written)
6.3. Creating Package Diagrams in ArgoUML
6.3.1. Packages
6.3.2. Relationships between packages (To be written)
6.3.3. Advanced Package Features (To be written)
6.4. More on Class Diagrams (To be written)
6.4.1. The Class Diagram (To be written)
6.4.2. Advanced Class Diagrams (To be written)
6.5. More on Class Diagrams in ArgoUML (To be written)
6.5.1. Classes (To be written)
6.5.2. Class Attributes and Operations (To be written)
6.5.3. Advanced Class Features
6.6. Sequence and Collaboration Diagrams (To be written)
6.6.1. More on the Sequence Diagram (To be written)
6.6.2. The Collaboration Diagram (To be written)
6.6.3. Advanced Collaboration Diagrams (To be written)
6.7. Creating Collaboration Diagrams in ArgoUML (To be written)
6.7.1. Collaboration Diagrams (To be written)
6.7.2. Messages (To be written)
6.7.3. Advanced Collaboration Diagrams (To be written)
6.8. Statechart Diagrams (To be written)
6.8.1. The Statechart Diagram (To be written)
6.8.2. Advanced Statechart Diagrams (To be written)
6.9. Creating Statechart Diagrams in ArgoUML (To be written)
6.9.1. Statechart Diagrams (To be written)
6.9.2. States (To be written)
6.9.3. Transitions (To be written)
6.9.4. Actions (To be written)
6.9.5. Advanced Statechart Diagrams (To be written)
6.10. Activity Diagrams (To be written)
6.10.1. The Activity Diagram (To be written)
6.11. Creating Activity Diagrams in ArgoUML (To be written)
6.11.1. Activity Diagrams (To be written)
6.11.2. Action States (To be written)
6.12. Deployment Diagrams (To be written)
6.12.1. The Deployment Diagram (To be written)
6.13. Creating Deployment Diagrams in ArgoUML (To be written)
6.13.1. Nodes (To be written)
6.13.2. Components (To be written)
6.13.3. Relationships between nodes and components (To be written)
6.14. System Architecture (To be written)
6.15. Case Study (To be written)
6.15.1. CRC Cards (To be written)
6.15.2. Packages (To be written)
6.15.3. Class Diagrams (To be written)
6.15.4. Sequence Diagrams (To be written)
6.15.5. Collaboration Diagrams (To be written)
6.15.6. Statechart Diagrams (To be written)
6.15.7. Activity Diagrams (To be written)
6.15.8. The Deployment Diagram (To be written)
6.15.9. The System Architecture (To be written)
7. Code Generation, Reverse Engineering, and Round Trip Engineering
7.1. Introduction
7.2. Code Generation
7.2.1. Generating Code from the Static Structure
7.2.2. Generating code from interactions and state machines
7.3. Code Generation in ArgoUML
7.3.1. Static Structure
7.3.2. Interactions and statechart diagrams
7.4. Reverse Engineering
7.5. Round-Trip Engineering
2. User Interface Reference
8. Introduction
8.1. Overview of the Window
8.2. General Mouse Behavior in ArgoUML
8.2.1. Mouse Button Terminology
8.2.2. Button 1 Click
8.2.3. Button 1 Double Click
8.2.4. Button 1 Motion
8.2.5. Shift and Ctrl modifiers with Button 1
8.2.6. Alt with Button 1: Panning
8.2.7. Ctrl with Button 1: Constrained Drag
8.2.8. Button 2 Actions
8.2.9. Button 2 Double Click
8.2.10. Button 2 Motion
8.3. General Information About Panes
8.3.1. Re-sizing Panes
8.4. The status bar
9. The Toolbar
9.1. File operations
9.2. Edit operations
9.3. View operations
9.4. Create operations
10. The Menu bar
10.1. Introduction
10.2. Mouse Behavior in the Menu Bar
10.3. The File Menu
10.3.1. New
10.3.2. Open Project...
10.3.3. Save Project
10.3.4. Save Project As...
10.3.5. Revert to Saved
10.3.6. Import XMI...
10.3.7. Export XMI...
10.3.8. Import Sources...
10.3.9. Page Setup...
10.3.10. Print...
10.3.11. Export Graphics...
10.3.12. Export All Graphics...
10.3.13. Notation
10.3.14. Properties
10.3.15. Save Configuration
10.3.16. Most Recent Used Files
10.3.17. Exit
10.4. The Edit Menu
10.4.1. Select
10.4.2. Remove From Diagram
10.4.3. Delete From Model
10.4.4. Configure Perspectives...
10.4.5. Settings...
10.5. The View Menu
10.5.1. Goto Diagram...
10.5.2. Find...
10.5.3. Zoom
10.5.4. Adjust Grid
10.5.5. Adjust Grid Snap
10.5.6. Page Breaks
10.6. The Create Menu
10.6.1. New Use Case Diagram
10.6.2. New Class Diagram
10.6.3. New Sequence Diagram
10.6.4. New Collaboration Diagram
10.6.5. New Statechart Diagram
10.6.6. New Activity Diagram
10.6.7. New Deployment Diagram
10.7. The Arrange Menu
10.7.1. Align
10.7.2. Distribute
10.7.3. Reorder
10.7.4. Nudge
10.7.5. Set Preferred Size
10.7.6. Toggle Auto Resizing
10.7.7. Layout
10.8. The Generation Menu
10.8.1. Generate Selected Classes ...
10.8.2. Generate All Classes...
10.8.3. Generate Code for Project... (To be Written)
10.8.4. Settings for Generate for Project... (To be Written)
10.9. The Critique Menu
10.9.1. Toggle Auto-Critique
10.9.2. Design Issues...
10.9.3. Design Goals...
10.9.4. Browse Critics...
10.10. The Tools Menu
10.11. The Help Menu
10.11.1. System Information
10.11.2. About ArgoUML
11. The Explorer
11.1. Introduction
11.2. Mouse Behavior in the Explorer
11.2.1. Button 1 Click
11.2.2. Button 1 Double Click
11.2.3. Button 1 Motion
11.2.4. Button 2 Actions
11.2.5. Button 2 Double Click
11.3. Keyboard Behavior in the Explorer
11.4. Perspective Selection
11.5. Configuring Perspectives
11.5.1. The Configure Perspectives dialog
11.6. Context Sensitive Menu
11.6.1. Add to Diagram
11.6.2. Delete From Model
11.6.3. Set Source Path... (To be written)
11.6.4. Add Package
11.6.5. Add All Classes in Namespace
12. The Editing Pane
12.1. Introduction
12.2. Mouse Behavior in the Editing Pane
12.2.1. Button 1 Click
12.2.2. Button 1 Double Click
12.2.3. Button 1 Motion
12.2.4. Shift and Ctrl modifiers with Button 1
12.2.5. Alt with Button 1 motion
12.2.6. Button 2 Actions
12.2.7. Button 2 Double Click
12.2.8. Button 2 Motion
12.3. The tool bar
12.3.1. Layout Tools
12.3.2. Annotation Tools
12.3.3. Drawing Tools
12.3.4. Use Case Diagram Specific Tools
12.3.5. Class Diagram Specific Tools
12.3.6. Sequence Diagram Specific Tools
12.3.7. Collaboration Diagram Specific Tools
12.3.8. Statechart Diagram Specific Tools
12.3.9. Activity Diagram Specific Tools
12.3.10. Deployment Diagram Specific Tools
12.4. The Broom
12.5. Selection Action Buttons
12.6. Clarifiers
12.7. The Drawing Grid
12.8. The Diagram Tab
12.9. Pop-Up Menus
12.9.1. Critiques
12.9.2. Ordering
12.9.3. Add
12.9.4. Show
12.9.5. Modifiers
12.9.6. Multiplicity
12.9.7. Aggregation
12.9.8. Navigability
12.10. Notation
12.10.1. Notation Languages
12.10.2. Notation Editing on the diagram
12.10.3. Notation Parsing
13. The Details Pane
13.1. Introduction
13.2. To Do Item Tab
13.2.1. Wizards
13.2.2. The Help Button
13.3. Properties Tab
13.4. Documentation Tab
13.5. Presentation Tab
13.6. Source Tab
13.7. Constraints Tab
13.7.1. The Constraint Editor
13.8. Stereotype Tab
13.9. Tagged Values Tab
13.10. Checklist Tab
14. The To-Do Pane
14.1. Introduction
14.2. Mouse Behavior in the To-Do Pane
14.2.1. Button 1 Click
14.2.2. Button 1 Double Click
14.2.3. Button 2 Actions
14.2.4. Button 2 Double Click
14.3. Presentation Selection
14.4. Item Count
15. The Critics
15.1. Introduction
15.1.1. Terminology
15.1.2. Design Issues
15.2. Uncategorized
15.3. Class Selection
15.3.1. Wrap DataType
15.3.2. Reduce Classes in diagram <diagram>
15.3.3. Clean Up Diagram
15.4. Naming
15.4.1. Resolve Association Name Conflict
15.4.2. Revise Attribute Names to Avoid Conflict
15.4.3. Change Names or Signatures in an Artifact
15.4.4. Duplicate End (Role) Names for an Association
15.4.5. Role name conflicts with member
15.4.6. Choose a Name (Classes and Interfaces)
15.4.7. Choose a Unique Name for an Artifact (Classes and Interfaces)
15.4.8. Choose a Name (Attributes)
15.4.9. Choose a Name (Operations)
15.4.10. Choose a Name (States)
15.4.11. Choose a Unique Name for a (State related) Artifact
15.4.12. Revise Name to Avoid Confusion
15.4.13. Choose a Legal Name
15.4.14. Change an Artifact to a Non-Reserved Word
15.4.15. Choose a Better Operation Name
15.4.16. Choose a Better Attribute Name
15.4.17. Capitalize Class Name
15.4.18. Revise Package Name
15.5. Storage
15.5.1. Revise Attribute Names to Avoid Conflict
15.5.2. Add Instance Variables to a Class
15.5.3. Add a Constructor to a Class
15.5.4. Reduce Attributes on a Class
15.6. Planned Extensions
15.6.1. Operations in Interfaces must be public
15.6.2. Interfaces may only have operations
15.6.3. Remove Reference to Specific Subclass
15.7. State Machines
15.7.1. Reduce Transitions on <state>
15.7.2. Reduce States in machine <machine>
15.7.3. Add Transitions to <state>
15.7.4. Add Incoming Transitions to <artifact>
15.7.5. Add Outgoing Transitions from <artifact>
15.7.6. Remove Extra Initial States
15.7.7. Place an Initial State
15.7.8. Add Trigger or Guard to Transition
15.7.9. Change Join Transitions
15.7.10. Change Fork Transitions
15.7.11. Add Choice/Junction Transitions
15.7.12. Add Guard to Transition
15.7.13. Clean Up Diagram
15.7.14. Make Edge More Visible
15.7.15. Composite Association End with Multiplicity > 1
15.8. Design Patterns
15.8.1. Consider using Singleton Pattern for <class>
15.8.2. Singleton Stereotype Violated in <class>
15.8.3. Nodes normally have no enclosers
15.8.4. NodeInstances normally have no enclosers
15.8.5. Components normally are inside nodes
15.8.6. ComponentInstances normally are inside nodes
15.8.7. Classes normally are inside components
15.8.8. Interfaces normally are inside components
15.8.9. Objects normally are inside components
15.8.10. LinkEnds have not the same locations
15.8.11. Set classifier (Deployment Diagram)
15.8.12. Missing return-actions
15.8.13. Missing call(send)-action
15.8.14. No Stimuli on these links
15.8.15. Set Classifier (Sequence Diagram)
15.8.16. Wrong position of these stimuli
15.9. Relationships
15.9.1. Circular Association
15.9.2. Make <association> Navigable
15.9.3. Remove Navigation from Interface via <association>
15.9.4. Add Associations to <artifact>
15.9.5. Remove Reference to Specific Subclass
15.9.6. Reduce Associations on <artifact>
15.9.7. Make Edge More Visible
15.10. Instantiation
15.11. Modularity
15.11.1. Classifier not in Namespace of its Association
15.11.2. Add Elements to Package <package>
15.12. Expected Usage
15.12.1. Clean Up Diagram
15.13. Methods
15.13.1. Change Names or Signatures in <artifact>
15.13.2. Class Must be Abstract
15.13.3. Add Operations to <class>
15.13.4. Reduce Operations on <artifact>
15.14. Code Generation
15.14.1. Change Multiple Inheritance to interfaces
15.15. Stereotypes
15.16. Inheritance
15.16.1. Revise Attribute Names to Avoid Conflict
15.16.2. Remove <class>'s Circular Inheritance
15.16.3. Class Must be Abstract
15.16.4. Remove final keyword or remove subclasses
15.16.5. Illegal Generalization
15.16.6. Remove Unneeded Realizes from <class>
15.16.7. Define Concrete (Sub)Class
15.16.8. Define Class to Implement <interface>
15.16.9. Change Multiple Inheritance to interfaces
15.16.10. Make Edge More Visible
15.17. Containment
15.17.1. Remove Circular Composition
15.17.2. Duplicate Parameter Name
15.17.3. Two Aggregate Ends (Roles) in Binary Association
15.17.4. Aggregate End (Role) in 3-way (or More) Association
15.17.5. Wrap DataType
3. Model Reference
16. Top Level Artifact Reference
16.1. Introduction
16.2. The Model
16.2.1. Model Details Tabs
16.2.2. Model Property Toolbar
16.2.3. Property Fields For The Model
16.3. Datatype
16.3.1. Datatype Details Tabs
16.3.2. Datatype Property Toolbar
16.3.3. Property Fields For Datatype
16.4. Enumeration
16.4.1. Enumeration Details Tabs
16.4.2. Enumeration Property Toolbar
16.4.3. Property Fields For Enumeration
16.5. Stereotype
16.5.1. Stereotype Details Tabs
16.5.2. Stereotype Property Toolbar
16.5.3. Property Fields For Stereotype
16.6. Diagram
16.6.1. Diagram Details Tabs
16.6.2. Diagram Property Toolbar
16.6.3. Property Fields For Diagram
17. Use Case Diagram Artifact Reference
17.1. Introduction
17.1.1. ArgoUML Limitations Concerning Use Case Diagrams
17.2. Actor
17.2.1. Actor Details Tabs
17.2.2. Actor Property Toolbar
17.2.3. Property Fields For Actor
17.3. Use Case
17.3.1. Use Case Details Tabs
17.3.2. Use Case Property Toolbar
17.3.3. Property Fields For Use Case
17.4. Extension Point
17.4.1. Extension Point Details Tabs
17.4.2. Extension Point Property Toolbar
17.4.3. Property Fields For Extension Point
17.5. Association
17.6. Association End
17.7. Dependency
17.8. Generalization
17.8.1. Generalization Details Tabs
17.8.2. Generalization Property Toolbar
17.8.3. Property Fields For Generalization
17.9. Extend
17.9.1. Extend Details Tabs
17.9.2. Extend Property Toolbar
17.9.3. Property Fields For Extend
17.10. Include
17.10.1. Include Details Tabs
17.10.2. Include Property Toolbar
17.10.3. Property Fields For Include
18. Class Diagram Artifact Reference
18.1. Introduction
18.1.1. Limitations Concerning Class Diagrams in ArgoUML
18.2. Package
18.2.1. Package Details Tabs
18.2.2. Package Property Toolbar
18.2.3. Property Fields For Package
18.3. Datatype
18.4. Stereotype
18.5. Class
18.5.1. Class Details Tabs
18.5.2. Class Property Toolbar
18.5.3. Property Fields For Class
18.6. Attribute
18.6.1. Attribute Details Tabs
18.6.2. Attribute Property Toolbar
18.6.3. Property Fields For Attribute
18.7. Operation
18.7.1. Operation Details Tabs
18.7.2. Operation Property Toolbar
18.7.3. Property Fields For Operation
18.8. Parameter
18.8.1. Parameter Details Tabs
18.8.2. Parameter Property Toolbar
18.8.3. Property Fields For Parameter
18.9. Signal
18.9.1. Signal Details Tabs
18.9.2. Signal Property Toolbar
18.9.3. Property Fields For Signal
18.10. Reception (to be written)
18.11. Association
18.11.1. Three-way and Greater Associations and Association Classes
18.11.2. Association Details Tabs
18.11.3. Association Property Toolbar
18.11.4. Property Fields For Association
18.12. Association End
18.12.1. Association End Details Tabs
18.12.2. Association End Property Toolbar
18.12.3. Property Fields For Association End
18.13. Dependency
18.13.1. Dependency Details Tabs
18.13.2. Dependency Property Toolbar
18.13.3. Property Fields For Dependency
18.14. Generalization
18.15. Interface
18.15.1. Interface Details Tabs
18.15.2. Interface Property Toolbar
18.15.3. Property Fields For Interface
18.16. Abstraction
18.16.1. Abstraction Details Tabs
18.16.2. Abstraction Property Toolbar
18.16.3. Property Fields For Abstraction
19. Sequence Diagram Artifact Reference
19.1. Introduction
19.1.1. Limitations Concerning Sequence Diagrams in ArgoUML
19.2. Object
19.2.1. Object Details Tabs
19.2.2. Object Property Toolbar
19.2.3. Property Fields For Object
19.3. Stimulus
19.3.1. Stimulus Details Tabs
19.3.2. Stimulus Property Toolbar
19.3.3. Property Fields For Stimulus
19.4. Stimulus Call
19.5. Stimulus Create
19.6. Stimulus Destroy
19.7. Stimulus Send
19.8. Stimulus Return
19.9. Link
19.9.1. Link Details Tabs
19.9.2. Link Property Toolbar
19.9.3. Property Fields For Link
20. Statechart Diagram Artifact Reference
20.1. Introduction
20.1.1. Limitations Concerning Statechart Diagrams in ArgoUML
20.2. State
20.2.1. State Details Tabs
20.2.2. State Property Toolbar
20.2.3. Property Fields For State
20.3. Action
20.3.1. Action Details Tabs
20.3.2. Action Property Toolbar
20.3.3. Property Fields For Action
20.4. Composite State
20.5. Concurrent Region
20.6. Submachine State
20.7. Stub State
20.8. Transition
20.8.1. Transition Details Tabs
20.8.2. Transition Property Toolbar
20.8.3. Property Fields For Transition
20.9. Event
20.9.1. Event Details Tabs
20.9.2. Event Property Toolbar
20.9.3. Property Fields For Event
20.10. Guard
20.10.1. Guard Details Tabs
20.10.2. Guard Property Toolbar
20.10.3. Property Fields For Guard
20.11. Pseudostate
20.11.1. Pseudostate Details Tabs
20.11.2. Pseudostate Property Toolbar
20.11.3. Property Fields For Pseudostate
20.12. Initial State
20.13. Final State
20.13.1. Final State Details Tabs
20.13.2. Final State Property Toolbar
20.13.3. Property Fields For Final State
20.14. Junction
20.15. Choice
20.16. Fork
20.17. Join
20.18. Shallow History
20.19. Deep History
20.20. Synch State
20.20.1. Synch State Details Tabs
20.20.2. Synch State Property Toolbar
20.20.3. Property Fields For Synch State
21. Collaboration Diagram Artifact Reference
21.1. Introduction
21.1.1. Limitations Concerning Collaboration Diagrams in ArgoUML
21.2. Classifier Role
21.2.1. Classifier Role Details Tabs
21.2.2. Classifier Role Property Toolbar
21.2.3. Property Fields For Classifier Role
21.3. Association Role
21.3.1. Association Role Details Tabs
21.3.2. Association Role Property Toolbar
21.3.3. Property Fields For Association Role
21.4. Association End Role
21.4.1. Association End Role Details Tabs
21.4.2. Association End Role Property Toolbar
21.4.3. Property Fields For Association End Role
21.5. Message
21.5.1. Message Details Tabs
21.5.2. Message Property Toolbar
21.5.3. Property Fields For Message
22. Activity Diagram Artifact Reference
22.1. Introduction
22.1.1. Limitations Concerning Activity Diagrams in ArgoUML
22.2. Action State
22.2.1. Action State Details Tabs
22.2.2. Action State Property ToolBar
22.2.3. Property fields for action state
22.3. Action
22.4. Transition
22.5. Guard
22.6. Initial State
22.7. Final State
22.8. Junction (Decision)
22.9. Fork
22.10. Join
22.11. ObjectFlowState
23. Deployment Diagram Artifact Reference
23.1. Introduction
23.1.1. Limitations Concerning Deployment Diagrams in ArgoUML
23.2. Node
23.2.1. Node Details Tabs
23.2.2. Node Property Toolbar
23.2.3. Property Fields For Node
23.3. Node Instance
23.3.1. Node Instance Details Tabs
23.3.2. Node Instance Property Toolbar
23.3.3. Property Fields For Node Instance
23.4. Component
23.4.1. Component Details Tabs
23.4.2. Component Property Toolbar
23.4.3. Property Fields For Component
23.5. Component Instance
23.5.1. Component Instance Details Tabs
23.5.2. Component Instance Property Toolbar
23.5.3. Property Fields For Component Instance
23.6. Dependency
23.7. Class
23.8. Interface
23.9. Association
23.10. Object
23.11. Link
24. Built In DataTypes, Classes, Interfaces and Stereotypes
24.1. Introduction
24.1.1. Package Structure
24.1.2. Exposure in the model
24.2. Built In Datatypes
24.3. Built In Classes
24.3.1. Built In Classes From java.lang
24.3.2. Built In Classes From java.math
24.3.3. Built In Classes From java.net
24.3.4. Built In Classes From java.util
24.4. Built In Interfaces
24.5. Built In Stereotypes
Glossary
A. Supplementary Material for the Case Study
A.1. Introduction
A.2. Requirements Documents (To be written)
A.2.1. Vision Document (To be written)
A.2.2. Use Case Specifications (To be written)
A.2.3. Supplementary Requirements Specification (To be written)
B. UML resources
B.1. The UML specs (To be written)
B.2. UML related papers (To be written)
B.2.1. UML action specifications (To be written)
B.3. UML related websites (To be written)
C. UML Conforming CASE Tools
C.1. Other Open Source Projects (To be written)
C.2. Commercial Tools (To be written)
D. The C++ Module
D.1. Modeling for C++
D.1.1. Class tagged values
D.1.2. Attribute tagged values
D.1.3. Parameters
D.1.4. Preserved sections
E. Limits and Shortcomings
E.1. Diagram Canvas Size
E.2. Missing functions
F. Open Publication License
F.1. Requirements On Both Unmodified And Modified Versions
F.2. Copyright
F.3. Scope Of License
F.4. Requirements On Modified Works
F.5. Good-Practice Recommendations
F.6. License Options
F.7. Open Publication Policy Appendix:
G. The CRC Card Methodology
G.1. The Card
G.2. The Group
G.3. The Session
G.4. The Process
Index

Prefacio

El dise??o de software es una tarea cognitiva dificil. Los dise??adores deben construir manualmente dise??os, pero la dificultad principal es la toma de decisiones en lugar de la entrada de datos. Si los dise??adores mejoran sus capacidades de toma de decisiones, ello resultar??a en mejores dise??os.

Las herramientas CASE actuales proporcionan automatizaci??n e interfaces gr??ficos de usuario que reducen el trabajo manual de construir un dise??o y transformar un dise??o en codigo. Ayudan a los dise??adores en la toma de decisiones principalmente proporcionando visualizaci??n de los diagramas de dise??o y comprobaciones sintacticas simples.. Adenas muchas herramientas CASE proporcionan beneficios sustanciales en el area de control de versiones y mecanismos de dise??o concurrente. Un area de soporte de dise??o que no ha sido bien soportada es el analisis de decisiones de dise??o.

Las herramientas CASE actuales son utiles en que proporcionan una GUI (Graphic User Interface; Interfaz Grafica de Usuario) que permite a los dise??adores acceder a todas las caracteristicas proporcionadas por la herramienta. Y soportan el proceso de dise??o en que permiten al dise??ador construir diagramas en el estilo de metodologias de dise??o populares. Pero tipicamente no porporcionan soporte de proceso para guiar al dise??ador a traves de la tarea de dise??o. En su lugar, los dise??adores tipicamente comienzan con una p??gina en blanco y deben recordar cubrir todos los aspectos del dise??o.

ArgoUML es un entorno de dise??o orientado a dominio que proporciona soporte cognitivo de dise??o orientado a objetos. ArgoUML proporciona algunas de las mismas caracteristicas de automatizaci??n de una herramienta CASE comercial, pero esta enfocado en caracteristicas que soportan las necesidades cognitivas de los dise??adores. Estas necesidades cognitivas estan descritas por tres teorias cognitivas.

  1. reflection-in-action;

  2. opportunistic design; and

  3. comprehension and problem solving.

ArgoUML esta basado en la especificaci??n UML 1.4 . El nucleo del modelo de repositorio es una implementaci??n de el Java Metadata Interface (JMI) que directamente soporta MOF y usa la versi??n legible por maquina de la especificaci??n UML 1.4 proporcionada por OMG.

Ademas, es nuestra meta proporcionar soporte exhaustivo para OCL (el Object Constraint Language) y XMI (el formato XML Model Interchange).

ArgoUML fue originariamente desarrollado por un peque??o grupo de gente como un proyecto de investigaci??n. ArgoUML tiene muchas caracteristicas que lo hacen especial, pero no implementa todas las caracteristicas que una herramienta CASE comercial proporciona.

La publicaci??n V0.20 actual de ArgoUML, implementa todos los tipos de diagramas de UML 1.4 standard (versiones de ArgoUML anteriores a 0.20 implementaban la UML 1.3 standard). Est?? escrito en Java y funciona en todo sistema que proporcione una plataforma Java 2 de Java 1.4 o posterior. Usa formatos de archivo abiertos XMI (formato XML Metadata Interchange) (para la informaci??n de modelos) y PGML (Precision Graphics Markup Language) (para informaci??n gr??fica) para almacenamiento. Cuando ArgoUML implemente UML 2.0, PGML sera sustituido por la especificaci??n UML Diagram Interchange.

Este manual es el trabajo acumulativo de muchas personas y ha estado evolucionando durante muchos a??os. Conectado con la publicaci??n 0.10 de ArgoUML, Jeremy Bennett, escribi?? gran cantidad de nuevo material que fue a??adido a las vestiones anteriores por Alejandro Ramirez, Philippe Vanpeperstraete y Andreas Rueckert. El ademas a??adi?? cosas de algunos de los otros documentos como el libro de cocina de los desarrolladores por Markus Klink y Linus Tolke, la Guia R??pida por Kunle Odutola, y el FAQ (Preguntas frecuentes) por Dennis Daniels. Conectado con la publicaci??n 0.14 se realizaron cambios por Linus Tolke, y Michiel van der Wulp. Estos cambios fueron mayoritariamente adaptar el manual a las nuevas funciones y apariencia de la version 0.14 de ArgoUML, y la introducci??n del indice. Los usuarios y desarrolladores que han contribuido proporcionando ayuda valiosa, como revisiones, comentarios y observaciones mientras leen y usan este manual son demasiados para ser nombrados.

ArgoUML esta disponible gratuitamente y puede ser usado en entornos comerciales. Para los terminos de uso, mira el acuerdo de licencia presentado cuando tu descargas ArgoUML. Estamos proporcionando el codigo fuente de ArgoUML para que puedas revisarlo, adecuarlo a tus necesidades y mejorarlo. Pasado el tiempo, esperamos que ArgoUML evolucione en una poderosa y util herramienta que todos puedan usar.

Este Manual de Usuario esta orientado al dise??ador, quien desea hacer uso de ArgoUML. El manual esta escrito asumiendo familiaridad con UML, pero eventualmente puede ayudar a aquellos nuevos en UML.

El manual esta escrito en DocBook/XML y esta disponible como HTML y PDF.

El proyecto ArgoUML da la bienvenida a aquellos que quieren estar mas involucrados. Mira en project website para encontrar mas informaci??n.

??Dinos que piensas sobre este Manual de Usuario! Tus comentarios nos ayudaran a mejorar cosas. Mira Section 1.3.3, “Retroalimentaci??n por el Usuario” .

Chapter 1. Introducci??n

1.1. Origenes y Visi??n General de ArgoUML

1.1.1. Analisis Orientado a Objeto y Dise??o

Durante la ??ltima decada, el Analisis Orientado a Objeto y Dise??o (Object Oriented Analysis and Design; OOA&D) se ha convertido en el paradigma de desarrollo de software dominante. Con ello se ha conseguido un gran avance en los procesos de pensamiento de todos los involucrados en el ciclo de vida del desarrollo des software.

El soporte de objetos en un lenguaje de programaci??n empez?? con Simula 67, pero fue la aparici??n en la decada de 1980 de los lenguajes h??bridos, como es C++, Ada y Object Pascal lo que permiti?? a OOA&D despegar. Estos lenguajes proporcionaban soporte para OO ademas de para programaci??n procedural. La programaci??n Orientada a Objeto se convirti?? en la corriente dominante.

Un sistema OO est?? dise??ado y implementado como una simulaci??n del mundo real usando artefactos software. Esta premisa es tan potente como simple. Usando un acercamiento OO para dise??ar un sistema puede ser dise??ado y testeado (o mas correctamente simulado) sin tener que construir el sistema real primero.

Es el desarrollo durante la decada de 1990 de herramientas para soportar analisis Orientado a Objeto y dise??o lo que coloco este enfoque en la corriente dominante. Cuando se combina con la capacidad de dise??ar sistemas a muy alto nivel, una herramienta basada en el enfoque OOA&D ha permitido la implementaci??n de sistemas mas complejos que los posibles previamente.

El ??ltimo factor que ha propulsado OOA&D ha sido su idoneidad para modelar interfaces graficos de usuario. La popularidad de lenguajes graficos orientados a objeto y basados en objeto como Visual Basic y Java refleja la efectividad de este enfoque.

1.1.2. El Desarrollo de ArgoUML

Durante la decada de 1980 un n??mero de metodolog??as de procesos OOA&D y notaciones fueron desarrolladas por diferentes equipos de investigaci??n. Se hizo patente que habia muchos temas comunes y, durante la decada de 1990, un enfoque unificado para la notaci??n OOA&D fu?? desarrollado bajo el auspicio del Object Management Group. Este estandar se hizo conocido como el Unified Modeling Language (UML), y ahora es el lenguaje estandar para comunicar conceptos OO.

ArgoUML fu?? concebido como un entorno y herramienta para usar en el analisis y dise??o de sistemas de software orientados a objeto. En este sentido es similar a muchos de las herramientas CASE comerciales que son vendidas como herramientas para modelar sistemas software. ArgoUML tiene un n??mero de distinciones muy importantes de muchas de esas herramientas.

  1. ArgoUML se enfoca en investigaci??n en psicolog??a cognitiva para proporcionar nuevas caracteristicas que incrementen la productividad soportando las necesidades cognitivas de dise??adores y arquitectos de software orientado a objeto.

  2. ArgoUML soporta estandares abiertos extensivamente???UML, XMI, SVG, OCL y otros.

  3. ArgoUML es una aplicaci??n Java pura 100%. Esto permite a ArgoUML funcionar en todas las plataformas para las cuales un puerto fiable de la plataforma Java 2 esta disponible.

  4. ArgoUML es un proyecto de codigo abierto. La disponibilidad del codigo fuente asegura que una nueva generaci??n de dise??adores de software e investigadores ahora tienen un entorno de trabajo probado desde el que pueden conducir el desarrollo y evoluci??n de tecnolog??as de herramientas CASE.

UML es el lengueje de modelado OO mas prevalente y java es una de las plataformas de desarrollo OO mas productivas. Jason Robbins y el resto de su equipo de investigaci??n en la universidad de California, Irvine potenciaron estos beneficios creando ArgoUML. El resultado es un entorno y una herramienta de desarrollo s??lida para dise??o de sistemas OO. Es mas, proporciona un campo de de pruebas para la evoluci??n del desarrollo e investigaci??n de herramientas CASE orientadas a objeto.

Una primera publicaci??n de ArgoUML fue disponible en 1998 y mas de 100,000 descargas a mediados de 2001 demostr?? el impacto que este proyecto ha provocado, siendo popular en campos educacionales y comerciales.

1.1.3. Encontrando Mas Sobre el Proyecto ArgoUML

1.1.3.1. Como est?? desarrollado ArgoUML

Jason Elliot Robbins fund?? el Proyecto Argo y proporciono un liderazgo temprano al proyecto. Mientras Jason permanece activo en el proyecto, ??l ha dejado el liderazgo. El proyecto continua avanzando fuertemente. Hay mas de 300 miembros en la lista de correo de desarrollador (mira http://argouml.tigris.org/servlets/ProjectMailingListList), Con un par de docenas de ellos formando el nucleo del grupo de desarrollo..

La lista de correo del desarrollador es el lugar donde toda la discusi??n sobre las ultimas tareas toma lugar, y los desarrolladores discuten las direcciones que el proyecto deber??a tomar. Aunque controvertido a veces, estas discusiones son mantenidas siempre correctas y amigables (sin flame-wars y esas cosas), as?? que los novatos (newbies) no deberian dudar y participar en ellas. Siempre tendras una calurosa bienvenida all??.

Si quires aprender como se gestiona el proyecto y como contribuir a ??l, vete a ArgoUML Web Site Developer Zone y busca a traves de la documentaci??n all?? expuesta.. El Libro de Cocina del Desarrollador (Developers' Cookbook) fu?? escrito especificamente para este proposito.

1.1.3.2. Mas sobre la Infraestructura

Ademas de la lista de correo del desarrollador, existe tambien una lista de correo para usuarios (mira The ArgoUML Mailing List List ), donde podemos discutir problemas desde la perspectiva del usuario. Los desarrolladores tambien leen esa lista, as?? que generalmente se proporciona ayuda altamente cualificada.

Antes de postear en esta lista, deberias echar un vistazo al user FAQ mantenido por Ewan R. Grantham.

Mas informaci??n sobre ArgoUML y otros asuntos relacionados con UML est?? tambien disponible en el ArgoUML website, mantenido por Linus Tolke.

1.2. Alcance de Este Manual de Usuario

1.2.1. Audiencia Objetivo

La publicaci??n altual de este documento esta dirigida a usuarios experimentados de UML en OOA&D (quizas con otras herramientas) que desean cambiar a ArgoUML.

Publicaciones futuras soportaran dise??adores que conocen OOA&D, y desean adoptar la notaci??n UML dentro de su proceso de desarrollo.

Un objetivo a largo plazo es soportar i) aquellos que est??n aprendiendo dise??o y desean empezar con un proceso OOA&D que usa notaci??n UML, y ii) gente interesada en dise??o de codigo modularizado con un GUI.

1.2.2. Alcance

La intenci??n es que este documento proporcionar?? una guia exhaustiva, permitiendo a los dise??adores usar ArgoUML en toda su extensi??n. Esto es en dos partes.

  • Un manual tutorial, mostrando como trabajar con ArgoUML

  • Un manual de referencia completo, registrando todo lo que puedes hacer con ArgoUML.

La version 0.22 de este documento lleva a cabo la segunda de ellas.

En esta guia hay algunas cosas que no encontraras, porque est??n cubiertas en otro lugar.

  • Descripciones de como ArgoUML funciona internamente.

  • Como mejorar ArgoUML con nuevas caracteristicas y funciones.

  • Una guia de soluci??n de problemas.

  • Un indice de referencia r??pida para usar ArgoUML.

Estos est??n cubiertos en the Developers Cookbook, el FAQ, y la Quick Guide.

1.3. Visi??n General del Manual de Usuario

1.3.1. Estructura del Manual Tutorial

Chapter 2, Introducci??n (escribiendose) proporciona una visi??n general de OOA&D basada en UML, incluyendo una guia para obtener ArgoUML instalado y funcionando.

Desde Chapter 4, Captura de Requerimientos hasta Chapter 7, Code Generation, Reverse Engineering, and Round Trip Engineering se introduce en cada parte de el dise??o de procesos desde la captura de los requerimientos inicial hasta el desarrollo y construcci??n del proyecto final.

Cuando cada concepto UML es encontrado, su uso es explicado. Su uso dentro de ArgoUML es descrito. Finalmente un caso de estudio es usado para dar ejemplos de los conceptos en uso.

1.3.2. Estructura del Manual de Referencia

Chapter 8, Introduction es una visi??n general del interfaz de usuario y proporciona un resumen del soporte para los varios tipos de diagrama UML en ArgoUML. Chapter 10, The Menu bar y Chapter 11, The Explorer describen la barra de menu, y cada una de las subventanas de la interfaz de usuario, conocidas como Paneles.

Chapter 15, The Critics da detalles de todas las criticas cognitivas dentro del sistema.Finalmente ArgoUML enlazar?? directamente con este manual cuando se de notificaci??n de las criticas.

Chapter 16, Top Level Artifact Reference es una visi??n general de los artefactos (p.e. las entidades UML que pueden ser colocadas en diagramas) dentro de ArgoUML. Los siguientes cap??tulos ( Chapter 17, Use Case Diagram Artifact Reference hasta Chapter 24, Built In DataTypes, Classes, Interfaces and Stereotypes) describen los artefactos que pueden ser creados por medio de cada diagrama de ArgoUML, y sus propiedades, tambien como algunos artefactos estandar proporcionados con el sistema.

Se proporciona un Glossary completo. Appendix A, Supplementary Material for the Case Study proporciona material para suplementar el estudio de caso usado a lo largo del documento. Appendix B, UML resources y Appendix C, UML Conforming CASE Tools identifican la informaci??n subyacente en UML y las herramientas CASE UML. Appendix F, Open Publication License es una copia de la GNU Free Documentation License.

Una ambici??n futura es proporcionar un indice exhaustivo.

1.3.3. Retroalimentaci??n por el Usuario

Por favor, cuentanos que piensas sobre el Manual de Usuario. Tus comentarios nos ayudar??n a hacer mejoras. Envia por e-mail tus ideas a la Lista de Correo de Usuarios de ArgoUML. En caso de que quisieras a??adir en los capitulos sin desarrollar deberias contactar la Lista de Correo de Desarrollador de ArgoUML para comprobar que nadie mas est?? trabajando en esa parte. Te puedes subscribir a cualquiera de las listas de correo a traves de el Sitio Web de ArgoUML.

1.4. Supuestos

Esta publicaci??n del manual asume que el lector esta ya muy familiarizado con UML. Esto est?? reflejado en la sobriedad en la descripci??n de los conceptos UML en el tutorial.

El caso de estudio est?? descrito, pero a??n no totalmente a traves del tutorial. Esto ser?? realizado en futuras publicaciones del manual.

Part 1. Tutorial

Chapter 2. Introducci??n (escribiendose)

Este tutorial te llevar?? a traves de un tour sobre el uso de ArgoUML para modelar un sistema.

Un proyecto de ATM (automated teller machine; cajero automatico) ha sido escogido como caso de estudio para demostrar los varios aspectos de modelado que ArgoUML ofrece. En subsiguientes secciones vamos a desarrollar el ejemplo de Cajero Automatico en una descripci??n completa en UML. El tutorial, sin embargo, solo te guiar?? a traves de parte de ello.

En este punto deberias crear un directorio para contener tu proyecto. Nombra el directorio de forma consistente con el resto de tu sistema de archivos. Deberias nombrar los contenidos y cualquier subdirectorio de forma equivalente por razones que se haran evidentes.

El estado del modelo al final de las secciones clave estar?? disponible en archivos .zargo . Estos est??n disponibles de forma que puedes jugar con varias alternativas y restaurar al estado apropiado del modelo en tu area de trabajo. Estos archivos .zargo ser??n identificados al final de las secciones cuyo trabajo representan.

El caso de estudio ser?? un sistema de Cajero Automatico. Tu compa??oa es FlyByNight Industries. T?? vas a jugar dos papeles. El de Gestor de Proyecto (Project Manager) y el de Analista Dise??ador (Designer Analyst).

No vamos a construir ning??n Cajero Automatico fisicamente, por supuesto.

Primero te familiarizaras con el producto y luego iremos a traves de un proceso de analisis y desarrollo para un caso de prueba.

La forma en como tu compa??ia organiza su trabajo en proyectos est?? determinada normalmente por asuntos de politicas y demas cosas por el estilo, por tanto, fuera del ??mbito de este documento. Iremos dentro de como estructuras el proyecto en s?? mismo una vez que ha sido definido.

Chapter 3. OOA&D basada en UML

En este capitulo, miramos como UML como notaci??n es usado dentro de OOA&D.

3.1. Antecedentes para UML

La orientacion a Objeto como concepto ha existido desde la decada de 1960, y como concepto de dise??o desde 1972. Sin embargo fu?? en la decada de 1980 que empez?? a desarrollarse como una alternativa creible a el enfoque funcional en analisis y dise??o. Podemos idientificar un numero de factores.

  1. La aparici??n como corriente dominante de lenguajes de programaci??n OO como SmallTalk y particularmente C++. C++ fu?? un lenguaje OO pragmatico derivado de C, ampliamente usado por causa de su asociaci??n con Unix.

  2. El desarrollo de potentes estaciones de trabajo (workstations), y con ellas la aparici??n dentro de la corriente dominante de entornos de ventanas para los usuarios. Los Interfaces Graficos de Usuario (Graphical User Interfaces; GUI) tienen una estructura de objetos inherente.

  3. Un n??mero de proyectos fallidos muy publicitados, sugiriendo que el enfoque actual no era satisfactorio.

Un numero de investigadores propusieron procesos OOA&D, y con ellos notaciones. Aquellas que alcanzaron cierto exito incluyen Coad-Yourdon, Booch, Rumbaugh OMT, OOSE/Jacobson, Shlaer-Mellor, ROOM (para dise??o de tiempo real) y el hibrido Jackson Structured Development.

Durante los tempranos 1990 se hizo claro que estos enfoques tenian muchas buenas ideas, a menudo muy similares. Un gran obstaculo fu?? la diversidad de notaci??n, significando que los ingenieros tendian a tener familiaridad con una metodologia OOA&D, en lugar de el enfoque en general.

UML fu?? concevido como una notacion com??n, que ser??a de interes para todos los involucrados. El estandar original fu?? gestionado por Rational Software ( www.rational.com, en el cual tres de los investigadores clave en el campo (Booch, Jacobson y Rumbaugh estuvieron involucrados). Produjeron documentos describiendo UML v0.9 y v0.91 durante 1996. El esfuerzo fu?? tomado ampliamente por la industria a traves del Object Management Group (OMG), ya bien conocido por el estandar CORBA. Una primera propuesta, 1.0 fu?? publicada al comienzo de 1997, con una mejorada versi??n 1.1 aprobada ese oto??o.

ArgoUML est?? basado en UML v1.4, la cual fu?? adoptada por OMG en Marzo del 2000. La versi??n oficial actual es UML v1.5 fechada en Marzo del 2003, para ser reemplazada pronto por una revisi??n mayor, UML v2.0, la cual esta en sus etapas finales de estandarizaci??n y se espera completa en 2006.