1 / 13

From Design To Code

Learn how to represent design structure with class diagrams, functionality with interaction diagrams, and responsibility assignment in software development. Explore code generation, ArgoUML, and tools for UI design automation.

Download Presentation

From Design To Code

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. From Design To Code

  2. Recap: Class Diagrams • Class diagrams represent design structure • Three parts: name, attribute, operations • Visibility, attribute type, multiplicity • Association, association multiplicity • Generalization i.e. interface impl, subclassing • Composition i.e. class A contains class B • Applied information hiding, DSM, layering

  3. Recap: Interaction Diagrams • Represent functionality • Two major parts: • Life line boxes (represent life time of an object) • Messages between objects (instances) • Also looked at some special case notations • Instances: parameterized instances, singleton instances, array elements • Messages: creation, destruction, conditional messages, mutually exclusive conditional messages, asynchronous messages, polymorphic messages • Abstractions: looping, iteration over collection, nesting of frames, decomposition

  4. Recap: Responsibility Assignment • Information Expert • Creator • Controller • Polymorphism • Pure Fabrication • Indirection • Protected Variations

  5. Today’s Lecture • Code generation • From class and interaction diagrams • ArgoUML • Drawing package, class, and interaction diagrams • Generating code from these diagrams

  6. ArgoUML • Open source design tool • Available for free: http://argouml.tigris.org/ • Use case, class, sequence diagrams • Collaboration, statechart, activity diagrams • Auto-generate Code Skeleton

  7. Installing ArgoUML • Get latest release from: http://argouml-downloads.tigris.org/argouml-0.23.1 also from: http://www.cs.iastate.edu/~cs362/tools/ArgoUML.zip • Unzip the distribution • Run argouml.jar • ArgoUML Demo… • Class diagrams in ArgoUML • Associations in ArgoUML • Generating code from class diagram in ArgoUML

  8. Poseidon: Commercial variant of ArgoUML • Community edition available for free (after registration) http://www.cs.iastate.edu/~cs362/tools/poseidonCE-4.2.1.zip

  9. Rational Modeler • Available on CS machines csts2.cs.iastate.edu csts4.cs.iastate.edu

  10. Discussion • Tools such as ArgoUML show that – • Significant portion of code can be auto-generated • Only the intellectually challenging part of coding left for developer • “It pays to design”

  11. What about UI Design? • Tools such as Visual Studio • Automate code generation from GUI design • Tools such as Dreamweaver • Automate HTML (again some form of code) from the web-page design • Artist can focus on domain concepts such as layout and content

  12. Additional Exercise • Look up: • Generative programming • A whole new research area about auto-generation of source code • Also, program transformation • The holy grail is to allow developers to program in terms of domain concepts

More Related