Review Definitions, Historical Facts, –Maps, Geometry, Topological Diagrams, Science and Diagrams. Advantages of Diagramming, Diagram use across fields.
Overview Diagram Distinctions Diagram Taxonomies Diagram use in Computer Science –Venn, Flowcharts, NSD’s, Structure, Dataflow, ERD’s, Cell and Arrows, State, Petri nets. Logic Gate Diagrams How to operate Theseus under CM
Diagram Distinctions Diagrams portray associations: –metric, –topological and –symbolic In computer systems, above the hardware level, Euclidean space is unimportant Much more common in software diagrams are associations in topological space.
Diagram Distinctions Within topological diagrams, associations can happen in three principal ways: –Adjoinment –Linkage –Containment AB AB A B
Diagram Taxonomies A Taxonomy is useful only to the ones that use it. A simple diagrammatic taxonomy can be based on the diagrammatic domain. Several researchers have focused on a variety of diagrammatic aspects and have proposed respective classifications. Efforts to categorise diagrams have created a large set of taxonomies. Alan. Blackwel * has proposed a taxonomy of taxonomies : * http://www.mrc-cbu.cam.ac.uk/projects/twd/mypapers/TwD98.html
A taxonomy of Diagram Taxonomies Dimensions of categorisation : –1. The representation : the graphic domain & structure –2. The message : the information domain –3. The relation between the representation and the message : Pictorial correspondence –4. The process of interpreting and modifying representations : Information processing & tools –5. The context - convention : Cultural conventions –6. The mental representation Interpersonal variation
Venn Diagrams Are related to circuits and logic gates Elements use containment to depict information Standard mathematical functions like “a set of”, “a genuine subset of” etc are depicted Easy to compare Venn Diagrams because of their visual representation
Venn Diagrams The two following Venn diagrams show that the next two functions are equal: –NOT(A OR B) –(NOT(A)) AND (NOT(B)) You can write a small java program to verify this if you want! NOT(A OR B) (NOT(A)) AND (NOT(B)) NOT A NOT B non shaded part is equal to double-shaded part A B
Flowcharts They are topological, graph-based constructions that are often filled with program text. The control logic of the program is shown through simple branches and loops. They are usually generated by analysts as a specification to programmers, who then convert the charts into source code. However, for large systems, they can get messy, spanning in many pages as decisions have many branches. Goldstine claims he created the first flowchart for computers in 1947, while working with Von Neumann.
Flowcharts start format disk format another? get formatting parameters end yes no I/O Terminal DisplayIf Process
Nassi-Shneiderman (NS) Diagrams Hierarchy is shown using enclosure and adjacency Decisions are shown by splitting the lines into smaller, parallel boxes Loops are shown by enclosing a small box into a box labelled with the condition of the loop However, the early termination of loops (e.g. break ) and multiple conditionals present problems for NS diagrams
Nassi-Shneiderman (NS) Diagrams s1 if i1 truefalse if i2 while w1 while w2 truefalse s2 s3 s4s5 s6 s7 s8
Structure Diagrams They are hierarchical, modular break downs of a program Between tree levels, links indicate what kind of information travels between levels They are usually represented by trees They are a part of the “structural analysis” activity, in which a system is partitioned in a top-down manner However, a multitude of labelled edges and nodes conveying lots of information can reduce readability
Structure Diagrams calculate payroll get employee and pay record calculate net pay print pay cheque calculate deductions calculate tax records record name employee name salary payment employee name payment date & time overtime taxdeductions employee category expenses
Data-flow Diagrams Are oriented to flow-type operations Objects of data are shown in relationship to procedures No decision logic is shown The diagrams are most often used to model the flow of data However, they usually get large and complex and multiple-page spanning happens nearly always
Dataflow Diagrams SALES DEPT ORDER FILE CUSTOMER FILE GET CUSTOMER RECORD CHECK CUSTOMER CREDIT ORDER INFORMATION CREATE NEW CUSTOMER RECORD CUSTOMER RECORD NEW CUSTOMER INFORMATION CUSTOMER FILE NEW CUSTOMER RECORD COLLECT ALL ORDERS FOR CUSTOMER INVALID CUSTOMER CUSTOMER INFORMATION CUSTOMER ORDER RECORDS
Entity-Relationship (ER) Diagrams The representation of data is often accomplished using diagrams ER diagrams are usually used to depict databases Extremely simple – three types of nodes Entity and Relations form a graph and can have associated attributes and cardinality AttributeEntity Relationship
Entity-Relationship (ER) Diagrams Department EmployeeManager Company Person Manages IsA Works-for Name SSNSalary Job title Name Address Phone nr Name HasMany
Software Level Charts At a higher level, the functions of a system are often thought as layers These diagrams work only on simple access schemes However, more complex schemes will result in a complex graph that cannot be represented with adjoining regions Application Unix Operating System Unix API X-libDB API Motif
Cell and Arrow Diagrams In a combination of adjoinment and link-based conventions, data structures are often depicted as adjacent memory locations linked by pointers This is usually used for teaching purposes or for program documentation In programming, pointer manipulation of linked lists is shown as diagrams of Cell and Arrows
Cell and Arrow Diagrams start element1 element2 elementN … start Insertion of a new element (element2) into a linked list temp NULL element1 elementN NULL (1) (2) (3)
State Transition Diagrams Well known in computer science as originating from the study of finite automata Are used for modelling a variety of event-based CS domains including parsing, user interface design, and circuit design At the application level, they represent transaction flows, appliance controls, marketing scripts etc With the exception of special symbols and terminal nodes, all nodes are treated the same.
State Transition Diagrams Recognise if the pattern “bc” exists in string “aabaaabbabca” s1s2 s3 b a c a b c
Petri Nets Are closely related to data flow graphs The main distinction is that the graphs are bipartite, made up of a set of places and transitions Useful for concurrent, asynchronous, distributed, parallel, and nondeterministic systems. Each type of node can be further subdivided into subtypes annihilator generator trivial transition splitting collection terminal place initial place trivial place branching junction
Petri Nets D available Request D D Ready Finished With D and P D Ready Finished With D and P P available Process Release D and P Release D and P P Ready Request P
Logic Gates Logic gates are the components of logic circuits There are three main gates: AND, OR and NOT An AND gate returns “true” (or 1) if both of its inputs are “true” An OR gate returns “true” (or 1) if either of its inputs is “true” A NOT gate returns the opposite of its input AND OR NOT A B Q 0 0 0 0 1 0 1 0 0 1 1 1 A B Q 0 0 0 0 1 1 1 0 1 1 1 1 A Q 0 1 1 0
Logic Circuits Logic circuits are used in electronic devices. Formed by combining many logic gates More complex logic circuits are assembled from simpler ones which in turn are assembled from gates A B Q 0 0 0 0 1 1 1 0 1 1 1 0
Combining gates Together A N input gate can be constructed by placing N gates in a special configuration : x y z x y z o o x y z o x y z o
Other Logic Gates Include: nand nor xnor xor buffer A B Q 0 0 1 0 1 0 1 0 0 1 1 0 A B Q 0 0 1 0 1 1 1 0 1 1 1 0 A B Q 0 0 0 0 1 1 1 0 1 1 1 0 A B Q 0 0 1 0 1 0 1 0 0 1 1 1
Analog Circuit Diagrams Represent electronic design schemata Strict Notation - Graph-Network topology No direction