Thursday, September 11, 2008

Booch Diagrams


Booch Diagrams

Booch method of diagrams was designed by Grady Booch at Rational Software, prior to the invention of the well popular modeling language i.e., Unified Modelling Language(UML), as we all are aware of it.

Grady Booch was one among the designers of the "Unified Modeling Language". This UMl has its origin from this Booch method only.

This UML has its graphical elements drawn from this BOOCH method, and also elements from object modeling technique(OMT) and object oriented software engineering(OOSE).

Methodological aspects of the Booch method have been incorporated into several methodologies and processes, the primary such methodology being the Rational Unified Process (RUP).

HOW TO DRAW BOOCH DIAGRAMS

Grady Booch's Object-Oriented Design (OOD), also known as Object-Oriented Analysis and Design(OOAD), is a precursor to the Unified Modeling (UML). The Booch method includes six types of diagrams: class, object, state transition, interaction, module, and process.

Booch's Class and Object Diagram Notations

Classes:
Illustrate classes using a cloud shape with a dashed border.













You can find the Booch symbol libraries in SmartDraw under Software Design and Other Symbologies. Simply drag and drop shapes to the page and edit them.

Objects:
Draw objects using a cloud shape with a solid border.







Class:

Adornments Use adornments to provide additional information about a class. You can create an adornment notation using the basic triangle shape in SmartDraw. Place a letter inside the triangle to represent the following: A - Abstract. An abstract class cannot be instantiated because it represents a wide variety of object classes and does not represent any one of them fully. For example, mammal could be thought of as an abstract class. F - Friend. A friend class allows access to the nonpublic functions of other classes. S-Static. A static class provides data. V - Virtual. A virtual class is a shared base class, the most generalized class in a system.






Metaclass:
A metaclass is a class whose instances are also classes.









ClassCategories:
A class category represents a cluster of similar classes. Illustrate a class category by drawing a rectangle with two compartments.






ClassTemplates:
Draw a template using the standard class symbol attached to a box with a dashed outline. List template parameters or formal arguments in this box. When you draw a class created from a template, replace the dashed border with a solid one.








ClassUtilities:
Class utilities describe a group of non-member functions or subprograms. Illustrate a class utility with a shadowed cloud.






ClassVisibility:
Visibility markers signify who can access the information contained within a class. Public visibility allows an attribute or an operation to be viewed by any other class. Private visibility means that the attribute or the operation is only accessible by the class itself and its friends. Protected visibility makes an attribute or operation visible only to friend classes and classes that inherit it. Implementation restricts the accessibility of an attribute to the class only (not even friends have access to these attributes).

Place visibility markers next to the attribute they refer to.








ObjectVisibility:
Draw a visibility marker on a link to signify the relationship between the connected objects. These markers can be:

G-Global P-Parameter F-Field L–Local








Relationships
Indicate relationships between objects using lines and arrows.

Relationship Meaning

Aggregation (has)

Aggregation by value

Aggregation by reference

Uses

Instantiates - Compatible type

Instantiates - New type

Inherits - Compatible type

Inherits - New type

Metaclass

Undefined

Booch'sDynamicDiagrams:
Use state transition and interaction diagrams to illustrate the dynamic nature of an application. Below is a table that lists what each of the dynamic Booch diagrams corresponds to in UML.

Booch (OOD)

Unified Modeling Language (UML)

State transition diagram

State chart diagram

Interaction diagram

Sequence diagram

Booch's Dynamic Diagram Notations

State:
States represent situations during the life of an object. Draw a Booch state symbol using a rectangle with rounded corners and two compartments. Use the oval-shaped H symbol to indicate the most recently visited state.








Booch's Physical Diagrams:

Draw module and process diagrams to illustrate the physical design of your application. Module diagrams correspond to UML's component diagrams and process diagrams correspond to UML's deployment diagrams.

Booch's Physical Diagram Notations

Processor:
Processors are hardware pieces that execute programs. Use devices and processors to draw process diagrams.






Device:
Use a device notation to illustrate hardware that is not capable of executing programs.





Modules:
A module is a unit of code that serves as a building block for the physical structure of a system. The specification module contains the declaration of entities and the body module contains the definition of entities.










MainModule:
This module is the main program from which the system is activated.





Subsystem:
A subsystem refers to a collection of related modules.




Example of Booch Diagrams:















This is a little about Booch Model of Diagrams , you can explore it as much as you can. I hope you all will do so.

Thank You

Fathima. MD

Tuesday, September 9, 2008

Affinity Diagrams

Affinity Diagrams
Definition: A group decision-making technique designed to sort a large number of ideas, process variables, concepts, and opinions into naturally related groups. These groups are connected by a simple concept.
Purpose: To sort a list of ideas into groups.
Guidelines:
Insure ideas are described with phrases or sentences.
Minimize the discussion while sorting -- discuss while developing the header cards.
Aim for 5-10 groups.
If one group is much larger than others, consider splitting it.
How to Conduct an Affinity Sort:
1. Conduct a brainstorming session on the topic under investigation.
2. Clarify the list of ideas. Record them on small cards or Post-It notes.
3. Randomly lay out cards on a table, flipchart, wall, etc.
4. Without speaking, sort the cards into "similar" groups based on your gut reaction. If you don't like the placement of a particular card, move it. Continue until consensus is reached.
5. Create header cards consisting of a concise 3-5 word description; the unifying concept for the group. Place header card at top of each group.
6. Discuss the groupings and try to understand how the groups relate to each other.

Tips:
Inquire whether ideas are adequately clarified.
Use only 3-5 words in the phrase on the header card to describe the group.
If possible, have groupings reviewed by non-team personnel.
While sorting, physically get up and gather around the area where the cards are placed.
Team members will ultimately reach agreement on placement, if for no other reason than exhaustion.
Sorting should not start until all team members are ready.
If an idea fits in more than one category or group, and consensus about placement cannot be reached, make a second card and place it in both groups.

Monday, September 8, 2008

History of Diagrams

A Diagram is a 2D geometric symbolic representation of information according to some visualization technique. Sometimes, the technique uses a 3D visualization which is then projected onto the 2D surface. The word graph is sometimes used as a synonym for diagram.

The term diagram

Diagram has two meanings in common sense.

  1. A collective term for any visual information device, like the term "illustration" often used as a representative term, to stand for the whole class of technical genres, including graphs and tables.
  2. The specific class of visual display, that show qualitative data with shapes that are connected by lines, arrows, or other visual links.

The term diagram is used in both meanings in science. For example Michael Anderson (1997) stated "diagrams are pictorial, yet abstract, representations of information, and maps, line graphs, bar charts, engineering blueprints, and architects' sketches are all examples of diagrams, whereas photographs and video are not". On the other hand Richard K. Lowe (1993) defined diagrams as "abstract graphic portrayals of the subject matter they represent", and only include the typical visual forms as area diagrams, flow charts, idea diagrams, and PERT charts.

The word "diagram" is often coupled together with the word "chart" as in "charts and diagrams", within the larger conceptual framework of qualitative rather than quantitative displays. Charts can contain both quantitative and qualitative information. The term "charts and diagrams" is specially meant to address one class of genre: the kind that communicates qualitative information.

Characteristics

Diagrams and charts, in contrast to computer graphics, technical illustrations, infographics, maps, and technical drawings, show abstract rather than literal representations of information. In essence diagrams are:

  • visual formatting devices
  • that do not display quantitative data, but rather relationships and abstract information
  • represented by shapes that are connected by lines, arrows, or other visual links.

Diagrams are usually simplified figures, caricatures in a way, intended to convey essential meaning. According to Jan V. White (1984) the characteristics of a good diagram are elegance, clarity, ease, pattern, simplicity, and validity. Elegance for White means that what you are seeing in the diagram is the simplest and most fitting solution to a problem.

Applications

Diagrams and charts are very good at showing actions, processes, events and ideas. In addition, for a number of visually inclined people, charts and diagrams also provide a visual method of thinking out ideas. They are devices for persons or groups to use in decision-making. For computer programmers, structured diagrams offer precision, fast development, automated checking, key linkages, and above all, standardization.

Diagrams, according to Lee E. Brasseur (2003), are essentially drawings with text. They consist of basic lines and shapes that convey an idea. The broad category of drawings in a larger sense can include very realistic portrayals of life or objects, but diagrams are a kind of drawing that tend to show a basic abstract structure rather than a more highly contextualized or detailed view. They can be thought of as providing something akin to the essence of a situation or an idea.

History

The earliest seeds of visualization, according to Michael Friendly (2008), arose in geometric diagrams, in tables of the positions of stars and other celestial bodies, and in the making of maps to aid in navigation and exploration. They origin from prehistoric times, and had there own appearances in every early civilisation. By the 16th century, techniques and instruments for precise observation and measurement of physical quantities were well-developed— the beginnings of the husbandry of visualization. The 17th century saw great new growth in theory and the dawn of practice, such as the rise of analytic geometry, theories of errors of measurement, the birth of probability theory, and the beginnings of demographic statistics and political arithmetic.

Over the 18th and 19th centuries, numbers pertaining to people, and social, moral, medical, and economic statistics began to be gathered in large and periodic series. Moreover, the usefulness of these bodies of data for planning, for governmental response, and as a subject worth of study in its own right, began to be recognized. This was accompanied by a rise in visual thinking. Diagrams were used to illustrate mathematical proofs and functions, nomograms were developed to aid calculations, various graphic forms were invented to make the properties of empirical numbers. Their trends, tendencies, and distributions were more easily communicated, or accessible to visual inspection. As well, the close relation of the numbers of the state. The origin of the word statistics and its geography gave rise to the visual representation of such data on maps, now called thematic cartography

Main diagram types

There are at least the following types of diagrams:

  • Graph-based diagrams: these take a collection of items and relationships between them, and express them by giving each item a 2D position, while the relationships are expressed as connections between the items or overlaps between the items; examples of such techniques:See
    • tree diagram
    • network diagram
    • flowchart
    • Euler diagram, Venn diagram, existential graph
    • Maps (when stylized, e.g. the map of the London underground)
  • Chart-like diagram techniques, which display a relationship between two variables that take either discrete or a continuous ranges of values; examples:
    • histogram, bar chart
    • pie chart
    • function graph
    • scatter plot
    • table / matrix
  • Other types of diagrams, e.g.
    • exploded view

Specific diagram types

A

  • Activity diagram used in UML and SysML

B

  • Bachman diagram
  • Booch – used in software engineering
  • Block diagram
  • Block Definition Diagram (BDD) used in SysML
  • Bubble Map - used in education
  • Business & IT Diagram (B&IT) - used in business and IT modelling

C

  • Carnot cycle graph
  • Cartogram
  • Category theory diagrams
  • Cause-and-effect diagram
  • Circuit diagram
  • Class diagram – from UML
  • Collaboration diagram – from UML 1.x
  • Communication diagram – from UML 2.0
  • Commutative diagram
  • Component diagram – from UML
  • Composite structure diagram – from UML
  • Concept map
  • Constellation diagram
  • Context diagram
  • Contour diagram
  • Cross-functional flowchart

D

  • Database model diagram
  • Data flow diagram
  • Data structure diagram
  • Dependency diagram
  • Deployment diagram – from UML
  • Dot and cross diagram
  • Double bubble map - used in education

List of modeling languages

E

  • Entity-Relationship diagram (ERD)
  • Event-driven process chain
  • Euler diagram
  • Express-G
  • Extended Functional Flow Block Diagram (EFFBD)

F

  • Family tree
  • Feynman diagram
  • Fusion diagram
  • Free body diagram

G

  • Gantt chart – shows the timing of tasks or activities (used in project management)
  • Grotrian diagram

H

  • Hasse diagram
  • HIPO diagram

I

  • Internal Block Diagram (IBD) used in SysML
  • IDEF0
  • IDEF1 (entity relations)
  • Interaction Overview diagram – from UML
  • Ishikawa diagram

J

  • Jackson diagram
  • Johnston diagram

K

  • Karnaugh map
  • Kinematic diagram

L

  • Line of balance

M

  • Martin ERD
  • Mind map – used for learning, brainstorming, memory, visual thinking and problem solving

N

  • N2
  • Nassi-Shneiderman diagram or structogram – a representation for structured programming
  • Nomogram

O

  • Object diagram – from UML

P

  • Package diagram from UML and SysML
  • Parametric diagram from SysML
  • PERT
  • Petri net – shows the structure of a distributed system as a directed bipartite graph with annotations
  • Piping and instrumentation diagram (P&ID)
  • Phase diagram
  • Plant Diagram
  • Pourbaix diagram
  • Process Flow diagram or PFD – used in chemical engineering
  • Program Structure diagram

R

  • Radial Diagram
  • Requirement Diagram Used in SysML
  • Rich Picture

S

  • Sankey diagram - represents material, energy or cost flows with quantity proportional arrows in a process network.
  • Sentence diagram -- represents the grammatical structure of a natural language sentence.
  • Sequence diagram from UML and SysML
  • SDL/GR diagram – Specification and Description Language. SDL is a formal language used in computer science.
  • Shlaer-Mellor – used in software engineering
  • Smith chart
  • Spider chart
  • Spray diagram
  • SSADM – Structured Systems Analysis and Design Methodology (used in software engineering)
  • State diagram from UML and SysML
  • Swim lane
  • System context diagram
  • System structure
  • Systematic layout planning

T

  • Timing diagram
  • TQM diagram

U

  • UML diagram – Unified Modeling Language (used in software engineering)
  • Use case diagram – from UML and SysML

V

  • Value Stream Mapping
  • Venn diagram
  • Voronoi diagram

W

  • Warnier-Orr

Y

  • Yourdon-Coad – see Edward Yourdon, used in software engineering

And there are some more diagrams like

1) Affinity diagrams

2) Interrelationship digraphs

3) Tree diagrams

4) Prioritization matrices

5) Matrix diagrams

6) Process Decision Program (PDPC) Charts, and

7) Activity Network Diagrams.

Have we ever thought that there are these many types of diagrams! Right most of us may not know this, but it is true that we have many kinds of diagrams. It’s really interesting .


And Friends please try to improve this content by addoing your valuable comments to it. You are most welcome.