CSC 223 Grinnell College Fall, 2005
 
Software Design
 

Discussion Questions for Fowler, Chapter 1

Some Acronyms

CASE: Computer-Assisted Software Engineering
MDA: Model Driven Architecture
OMG: Object Management Group UML: Unified Modeling Langauge

Uses of UML

  1. What are the advantages of looking at UML as a programming language vs. a blueprint or a sketch? How effective is it to use UML as a programming language? (Mike C)
  2. How is the UML useful in modelling non-object-oriented programming models. (Elijah)
  3. What advantages does using UML have over using pseudo-code or hard code? (Alex)
  4. What are the current limitations of UML? Are there any significant ones, and should they exist, is it possible for programmers to "go around" these problems? (Dimitar)
  5. Electrical engineers build computer models of circuits and then simulate them in SPICE programs. Most of these programs decompose UML-like graphical circuit descriptions into an assembly-like language before running simulations. Engineers could code circuits in the assembly language, but there's no need, because there are no penalties for designing in the more productive graphical 'language'. Right now there are large penalties for coding in UML (compiled code is slow and current tools don't support all of UML?s features), but is it conceivable (or inevitable) that in the near future most computer programs, like circuits, will be written in graphical languages? (John)
  6. On Page 14 Fowler says that "UML is not enough". He goes on to give us the different alternatives available such as a screen flow diagram, a decision table, however says nothing about how and why UML is not enough. In what ways is UML limited? (Gaurav)
  7. The text says that the UML is meant to be able to create models suitable to multiple languages (or no language in particular). Is there a standard that defines what features must be implemented for a language to be considered object oriented? Are there situations where the model the UML provides doesn't really hold true to its implementation in Java? (Elijah)
  8. Why has a concrete standard not been established if UML is being used as a programming language by some designers? (Mike L)
  9. How does the fact that UML standard is open to multiple interpretations (13) affect the way UML is used? Fowler says that UML standard can be the primary source of information on UML but not the only one. What are some other sources on UML and where do they come from? (Mike C)
  10. Will we be using MDA? (David)

Graphical Programming

  1. How long has graphical programming been around? What were the other popular languages before UML, and why did they ultimately fail? (John)
  2. On PAGE 9, the author discusses Notations and meta-models. There he says that most graphical languages have very little rigor. He also says that mehtodologists are looking for ways to improve the rigor of methods without sacrifcing their usefulness. How is the usefulness affected by the increase in rigor? does it not depend on who the user is and not on how rigorous the graphical language is? (Gaurav)
  3. What are the advantages of graphical programming, and what are the advantages of textual programming? (Jingsheng)
  4. It seems graphical programming will produce codes, then is that efficient enough to avoid some useless iteration? Sometimes, designers have to choose from either TIME or SPACE, how is UML working? (Jingsheng)

UML as a Programming Language

  1. How does the use of UML as a programming language compare to other languages? (Mike L)
  2. How is UML used as a programming language? (Saugar)
  3. How can a computer take a UML diagram and turn it into executable code? (Alex)
  4. Why do the creators of UML see the language's diagrams as secondary to UMLs ability to act as a programming language? (Jonathan)
  5. Why doesn't a UML diagram translate directly into code? What elements of UML prevent this? What elements of differing programming languages prevent this? (Jonathan)
  6. Would it be possible to create a compiler/converter of sorts in which a programmer could type his/her program in UML and then convert that program into any major language they wanted? I suppose the real question is, whether or not UML is a fluid enough language that a computer could read it and then spit out source code for another language? (Dave)
  7. The author has mentioned that "language-independent design is an oxymoron" ( pg.6). For which programming language is UML used to create a design? (Saugar)
  8. This one might be irrelavant to the topic but is the reason for using JAVA is because it is platform-independent? Can you discuss more about the process that transform programming ideas into machine code and maybe tell us more about how each platform work(perhaps just give some examples about how programs actually run on an intel x86 machine). (Chayapan)

UML Tools

  1. What are UML tools? (Monica)
  2. Is there a UML editor out yet that is usable? and if so is there a way to dl it and explore programming in UML? (Dave)
  3. What kind of tools are we using to do UML besides flow chart generator like DIA? Are there any other cool, and perhaps free, programs that can transform abstract ideas into machine code and are we going to use them for the class? (Chayapan)
  4. What are the advantages / disadvantages of using Executable UML instead of full UML? (Dimitar)

Additional Questions

  1. How does the decision table on page 16 work? (Monica)
  2. Why has the term CASE become a "dirty word"? (David)


This document is available on the World Wide Web as

http://www.cs.grinnell.edu/~walker/courses/223.sp02/readings/fowler-1.shtml

created 31 August 2005
last revised 1 September 2005
Valid HTML 4.01! Valid CSS!
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu.