[Skip Navigation] [ CSUSB ] / [CNS] / [Comp Sci & Engineering] / [R J Botting] / [CS375] [Search ]
[About] [Contact] [Grades] [Objectives] [Patterns] [Projects] [Question] [Schedule] [Syllabus]
Session: [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]
[Text Version] 20q.html Mon Sep 28 15:44:44 PDT 2009
Opening the PDF files on this page may require you to download Adobe Reader or an equivalent viewer (GhostScript).

Contents


    Comprehensive Questions and Answers

      Chapter All pages ppp-ppp -- All Subjects

      NO question for today! A good review for the final would be acceptable! P.S. What are your plans for spring break?

      Taxes:-(

      What are going to be the most important things to study for the final

      The quizzes, your project, these notes, the book.

      As for the skills I'll be testing for, see [ final.objectives.html ]

      Make sure you know the language: Both the jargon of this course and the Unified Modelling Language.

      In the text book focus on the 4 pages at the front and back ... they distil 80-90% of it into 4 sheets.

      Chapter 1 pages 1-531 -- Patterns

      Which Grasp or GOF pattern do you tink are the most valuable or useful for up and coming programmers?

      The GRASP patterns/principles are vital.... you need to have them in your blood so that you don't have to think about them while producing sustaiable code. You may have to use the names to explain what your doing.

      I'm not so sure about the GoF patterns. But they are ideal for Job interviews and final exams!

      Chapter pages -- SSD/ Funny Joke

      Message

      Exercise: Draw a SSD illustrating how to send me a question.

      Chapter pages -- SSD/Funny Joke

      Do you know of any funny UML related jokes? and may we use your site as a reference for UML after we graduate and are making billions of dollars with some top notch software dev company?

      I did see one once but it can't have been very funny because I forgot it. I did read a nice article on "Death by UML Fever" for example.

      Yes. You may refer and use my web site... More....

      Your are invited to contribute to it.... Got a funny story on UML or a dsiaster, or a success story, .... then use one of the contact/contribute or even [click here [socket symbol] if you can fill this hole] links.

      Chapter 13 pages 0 -- Layers

      I am still having some trouble sorting out the information on layers.

      Rule 1: package up classes by function: User Interface + Domain + Services. Like a layer cake.

      Rule 2: In complex programs add more sub packages and more layers.

      Rule 3: Steal good architectures.

      Rule 4: High cohesion within a package and low couplings between packages.

      Chapter 15 pages 245 -- Iteration over a Collection

      It's mentioned that there is no official UML convention when showing an iteration. Should we just stick with what's shown on figure 15.32?

      Yes.

      My personal convention is based on math

       		Loop / [ variable : set ]
      (in a sequence diagram)
       		* [ variable : set ]
      (in either diagram). The set is often expressed like this
       		role.role.role.role....
      or
       		attribute

      For instance, in a method of the Order class I might have

       		* [ i : lineItem ]
      meaning, visit every line Item for this Order. It might lead to code like this, in C++,
       		for(list<LineItem>::iterator i = lineItem.begin(); i != lineItem.end(); i++)

      Chapter 16 pages 265-266 -- Qualified Association

      Is a qualified Association an instance of a Singleton class?

      No.

      A qualified association is the UML equivalent of an array or map. It shows that if you know the index or key value then you can find the unique associated object. Examples [ ch05lev1sec9 ] (UML Distilled) [ ch27lev1sec8 ] (Larman).

      Exercise: Draw a UML class diagram that states
      Net

      1. Credit card Bills have lots of Purchases.
      2. Each Purchase on a Credit Card Bill has a Sequence Number.
      3. If we knoew the Sequence Number and the bill then we know the precise Purchase.

      (End of Net)

      Notice that the association picks one object out of the other class of objects. So this class can not be a singleton -- Why?

      Exercise: what is "Singleton"?

      Chapter 28 pages 480 -- DFD

      Although we did not go into full details on the UML activity Diagrams, can activity and state diagrams be used across all disciplines?

      Yes.... and in all phases.... and, indeed before you start developing the software. Flowcharts have been a tool for describing procedures and algorithms for many years.

      When used as the only tool in software design they tend to producecode that is hard to maintain. It has low cohesion modules and high coupling (typically global variables) between modules. So I've chosen to not teach them in this class..... They are in CSCI372.

      However you do need to know the symbols used! [ 17.html#Dynamics -- Chapter 28 and 29 ]

      Chapter number pages ppp-ppp -- UML/UP Application

      Is UML and the UP more frequently used by Systems Analysts or is it a universal tool used on many projects by computer scientists? I am curious how commonly this is used in ones IT profession. It seems extremely powerful and likely to be used more on large scale projects.

      I monitor the literature and local industries.... There is a gigantic tendency for businesses to have no process and no one method. This is something we discuss in CSCI372. It has consequences.

      On the other hand parts of the UML seem to be picking up nicely.

      The take-away lesson: One size does not fit all. You must tune your methods, proceses, organization, and process to the situation in hand.

      2008

        Chapter final pp final -- final

        I am suffering from a bad case of finals panic. Can you recommend a good strategy for the notes? Can I have yours?

        First -- take a several very deep slow breaths and then think of your favorite place to relax .... just what the surgeon said before he cut several things of my face..... The final should be better than that.

        My notes are on the web. Use any of them you like.

        Strategy: go back over the quizzes and projects. Use the Search on the web site to fill in holes. Try to boil it all down to a single double sided set of notes.

        Turn up, on time, with several sharp pencils and some erasers.

        Chapter number pp ppp-ppp -- extra credit

        Does the 2008/03/21 seminar count towards extra credit even though the date is after the final?

        It will make up for points lost before the final, not during the final. The final becomes a measure of your knowledge at the end of the course.

        Chapter All pp All -- UML Notation

        Can you go over the quiz?

        Chapter FInal pp final -- DCD -- Design Class Diagram

        A design class diagram is which one again? That is what will happen on the final. We have 1000 diagrams to remember and not just know how to do them but know when to do which one and which one that is.... HELP

        The design class diagram is the last thing before you write code. It describes the design of the software. It is a picture of the classes that are programmed. It is often a single summary of all the interactions, etc. Basically, there is one DCD for each elementary package.

        Domain class diagram->use case->scenario->SSD->interaction->design class diagram->code.

        Chapter 16 pp 249-270 -- Review Design Class Diagram

        Design class diagrams have three sections, the top is for the title. Which is for the attributes and what is the third one for specifically?


        1. name -- may have stereotypes and constraints
        2. attributes (optional)
        3. operations (optional) -- must have parentheses! -- may have data
        4. Other (personal or organizational)

        Chapter teh book pp teh book! -- Review all diagrams

        In the name of reviews is there anyway we can get a run down of all the diagrams to date that are importation for the final and the ones that we will likely encounter in real life? i.e. = [Picture] concept, upsides, downsides

        In real life buy a copy of Martin Fowler's "UML Distilled".

        For this class look inside the back and front covers of the book. On page 250 and inside the back cover we have a complete set of example notations used in all class diagrams.

        Or check out my notes and links on the UML [ ../samples/uml.html ] (some diagrams seem to have vanished however:-( )

        Chapter All pp All -- Arrow Notation

        As there are a large number of arrow types in the UML, could you go over the main ones we should know lest we be marked down on the final? (Was the quiz the last we saw of lollipops?)

        In class diagrams we have [ Be careful to use arrows correctly in the UML in 11 ]

        In interaction diagrams we have

        1. Message plus data -- solid arrow and arrowhead
        2. Returned data dotted open arrow

        Handout -- Exercise on arrows and diagrams.

        Chapter pp -- What topics on final

        Can you list the main topics that will be tested on the final? or go over them in class

        [ final2008.html ]

        Can you show us a example domain model

        How about Tic-tac-toe? [ mock.pdf ] TBD

        give examples for every question would be perfect!!!

        How about Tic-tac-toe? [ mock.pdf ] TBD

        Chapter all pp all -- functional, non-functional

        What were plausible functional and a plausible non-functional requirement?

        How about Tic-tac-toe? [ mock.pdf ] TBD

        Chapter final pp final -- use case diagram

        can you draw a use case diagram for example, from a game, maybe monopoly, in which the user plays against the computer?

        How about Tic-tac-toe? TBD

        Can you go over interaction diagrams by using tic tac toe as an example?

        Yes. [ mock.pdf ] TBD

        Chapter final pp final -- SSD

        Can you draw an SSD and show us what to put in the messages?

        TBD

        Chapter 15 pp 1-600 -- Communication Diagrams

        Could you go over communication diagrams again? TBD

        Chapter 9 and 16 pp 132 - 251 -- Design Models

        There is a Design Model on the inside cover of the book, another on pg 132 and another on pg 251. They all look different. Can you explain why and which type do you want to see on the final?

        They show how different artifacts fit together.

        The one on page 132 omits the DCD and focuses on the way we borrow ideas from the domain to classify objects inside our design ... communicating objects.

        Page 251 shows how a particular sample DCD differs from the Domain model. We shift from ideas about the real world to drawings of the software.

        Inside the front cover their is a summary of the links from Domain to use case, to SSD, to interactions, to a DCD.

        Chapter 19 pp 363-398 -- GRASP

        Could you go over why and when we use the GRASP patterns?

        When you know that your software must do and you want to place these responsibilities with the best classes in your design to make a maintainable and extensible piece of code.

        Example -- which class in a Tic-tac-toe program should find out if X has won the game?

        Chapter review pp book -- Grasp patterns

        Can you go over GRASP patterns again?

        Can you list all nine GRASP patterns without following the next link: [ 16answer.html ]

        Can you give an example of GRASP patterns? TBD

        Chapter 26 pp 435-472 -- GoF patterns and question 7

        Can you run through the Gang of Four patterns?

        Could you list the most important GoF Patterns we will need to know for the Final. There is no nice summary like for the GRASP Patterns.

        Look on this web site [ 17.html#26 Applying GoF -- Adapter Factory Singleton Strategy Composite Observer ]

        More on GoF Patterns

        I did not really get the Question 7 of the mock exam, could you give me an example?

        Can you go over the GoF? What part should we concentrate more on for the final?

        You need to be able to draw diagrams of the patterns and describe the classes using text. Also explain how GRASP ideas appear in it.

        Exercise -- pick one and diagram it:

        1. Adapter
        2. Factory
        3. Singleton
        4. Strategy
        5. Composite
        6. Observer
        7. Facade

        More in [ GoF Patterns in patterns ]

        Chapter 34 pp 559 -- Logical Architecture and packages

        I would like you to go over Logical Architecture and Packages again because I'm not crystal clear on it.

        Logical architecture is how you organize your thinking, documents, and code as you develop it. In the UML we use a package diagram plus some classes to show our organization.

        Distinguish from the physical architecture -- hardware and software as delivered to the client -- UML deployment diagram.

        Can you show us an example of Logical Architecture and Packages?

        In this class it is always the same logical architecture:

        1. User Interface
        2. Domain Layer
        3. Technical Services

        Exercise: draw the diagram. Add the dependencies. CHECK the arrows!

        Chapter 33 pp 550-600 -- Packages

        I was interested in packages after I read some things about it I started searching Online for detailed information. Just to clarify, on a large scale project packages would be something that is very very handy in sorting out like classes etc.. so would this be something used a lot in practice or not so much?

        It is a way of organizing your thinking and work as you develop software. In UML a collection of packages with some dependencies.

        Any large project (more than a dozen classes?) needs it.

        More in [ 09q.html ]

        Chapter Review pp book -- Deployment

        Can you give an example of deployment TBD

        Chapter review pp book -- Planning and Process

        Can you give me an example of Planning and Process? TBD

        Chapter ALL pp ALL -- RUP

        Can you break down the RUP and summarize in which process all the diagrams we've done in this course belong to

        Four phases: ____________________.

        Phases are one or more iterations. An Iteration takes one set of requirements, analyzes them, designs solution, codes them, and tests the result.

        Several Disciplines: _______________________________.

        In any phase we may be using any discipline but the mix of disciplines depends on where we are in the project.

        Diagram of Phases and disciplines.

        An early quiz....

        Chapter 39 pp 600-650 -- SAD

        Software Architecture Documentation seems to be a pretty broad idea. I was looking it up and it seems something that is very useful to follow. How useful is it in terms of a real project?

        I'm attracted to the idea but find it a little too much paperwork. So we won't cover it in this course.

        If you need to know about it go to [ architecture.html ] my notes.

      . . . . . . . . . ( end of section 2008) <<Contents | End>>

      Previous

        Chapter 17 pp ppp-ppp -- GRASP

        Can you please review GRASP patterns?

        Good idea: Can you list all nine GRASP patterns without following the next link: [ 16answer.html ]

        Chapter All pp All -- Business Case

        What is a business case? Question has been asked before, but the answer doesn't make enough sense to me.

        A Business Case explains why the enterprise should go to the bother of doing a software project.

        Don't confuse with a "Business Use Case" which is how some profitable activity is carried out with the new system.

        Chapter pp -- UML

        If UML diagrams are being used more in programming why is it not a required course for BS major?

        When we redesigned the BS to include objects and the UML we opted to distribute it across the curriculum -- in particular in CS201,202,320, 330, and 455. We were at the limit of the number of units for a BS and so couldn't add a new course. We also believed that it was better to see it many times in different contexts rather than have it as a specialized topic.

        Chapter number pp ppp-ppp -- Coupling & Cohesion

        It is suppose to be high cohesion and low coupling right? I was never too clear on why that was desired..

        Yes. Avoid putting things together unless they are related.

        Try this analogy: you organize a book at random into chapters... or do you do it by topic?

        How do you put documents in a filing cabinet? at random or so that closely linked documents are near by?

        Similarly: books in a library or crockery in a kitchen.

        Notice -- in mechanical and electrical engineering things that are coupled have to be close together to be coupled. Only in software can we get away with putting coupled things far apart...

        Chapter pp 500 -- super class

        in a web application, would class helpers be considered a subset of the using class?

        Probably not. Mostly they seem to be associated with the class that uses them and a subset of a different class entirely. In other words the using class will contain an object that is an instance of the helper class.

        For example MyClass uses a HelperClass: [ helper.png ]

        Chapter 37 pp 647 -- Relationships in tables

        go we go over in more detail why each relationship is important or not so much

        This is part of Data Base theory and practice.

        It is (sadly) not part of this course, this quarter -- YAGNI.

        We did something on it in CSci372....

        Chapter 39 pp 655 -- Documentation Architecture

        In the chapter 39 the author talks about (SAD) Software Architecture Documentation. How do you know when to implement this procedure?

        In a real project with some show stopping non-functional requirements.

        Or even when there are important non-functional requirements.

        Note: I find Larman's Technical Memo a rather cumbersome tool: it will find better solutions but takes more effort to do.

        Chapter 34 pp 547 -- three-tier architecture

        can you explain three-tier architecture a little more.

        Three computers connected by a network. One handles the web pages, one handles the business logic, one handles the data base. Like the bottom image below

        Multitier Architectectures

        Chapter 39.1 pp 657-659 -- Architectural views

        are there more views that can be useful besides the eight mentioned? If so, what are they?

        Personal: 8 views is quite enough to go on with!

        Chapter pp -- Where can I learn more about design pattern?

        Online, start with my web page [ patterns.html ] and follow the links on it to various "Wikis".

        Try using them...

        From the library: The GoF book -- and plan to spend several weeks studying it. There are also some theses and MS Reports on patterns!

        Go to Barnes and Noble or Borders and browse the Software Development section looking for "Pattern" in the title of the book.

        Try Amazon.Com.

        When working in a team of developers -- create your own repository of patterns that the team likes to use.

        Chapter number pp ppp-ppp -- Example of a project

        Now that we have gone through this whole process, do you have a complete example of a project. It would be interesting to see what the professionals do.

        I'm not sure it would be interesting.... but you can check out the CSci MS Projects in the library for examples of non-GRASP projects.

        Don't forget that truly agile projects will throw away a lot o the documents once they have been used to create code.

        The more I think about this question the more I wish that we had some true archives of some famous projects. For example the Open Source community do this. But private companies treat the work as trade secrets (for good reason!).

        Chapter Last Ch pp ppp-ppp -- subject

        Dr. Botting what is Executional and non-Executional testing?

        I've not heard of these. As far as I'm concerned: tests always involve executing code.

        There are other quality control procedures for artifacts that are not tests. For example: walkthrus, dry run/desk check/trace, inspections, peer review, pair programming, program proving, etc. These are non-executional and improve quality.

        The word "executional" seems to be associated with advertising and marketing. on the web. In the computer world we use the word

      1. executable.

        Chapter number pp ppp-ppp -- no subject

        how much wood could a woodchuck chuck if a woodchuck could chuck wood

        How many points does an irrelevant question score? 0 points.

      . . . . . . . . . ( end of section Comprehensive Questions and Answers) <<Contents | End>>

      Questions reviewing the whole course

        Ch 14 pp ?? : Final: Requirements analysis

        What are some different types of stakeholders that can be found in a project?

        Excellent question... One model places them in shells away from the software: developers, users, people interacting with users, ...

        On the web I found [ article.asp?p=30162&seqNum=2&rl=1 ] Class discussion.

        Ch 1-40 pp 1-702 : Everything

        I have no real question. But, to give a questions, I will ask, "If I have a question, can I ask it in class?"

        I guess this counts:-(. OK -- surprise me: any questions?

      . . . . . . . . . ( end of section Previous) <<Contents | End>>

    . . . . . . . . . ( end of section Questions reviewing the whole course) <<Contents | End>>

    Standard Definitions

  1. CS202::= See http://cse.csusb.edu/dick/cs202/.
  2. CS372::= See http://cse.csusb.edu/dick/cs372/.

  3. DCD::diagram="Design Class Diagram", shows the classes that will be implemented in code.
  4. DRY::XP="Don't Repeat Yourself".

  5. ESSUP::Process= See http://www.ivarjacobson.com/essup.cfm, Ivar Jacobsen simplified "Essential" UP.

  6. Glossary::= See http://cse.csusb.edu/dick/cs375/uml.glossary.html.
  7. GoF::="Gang of Four", [ patterns.html#GoF ]
  8. GRASP::patterns="General Responsibility Assignment Software Patterns", a set of guidelines for designing objects and classes. They take a single event that the system must handle and determine a good class to carry it out. See [ patterns.html#GRASP -- General Responsibility Assignment Software Patterns ]
  9. Grades::= See http://cse.csusb.edu/dick/cs375/grading/.

  10. KISS::Folk_law="Keep It Simple, Stupid", in agile processes this means never drawing a diagram or preparing a document that doesn't provide value to the clients and stakeholders. In all processes it means never designing or coding what is not needed, see YAGNI.

  11. OO::shorthand="Object-Oriented".

  12. OOAD::="Object-Oriented Analysis and Design", See chapter 1 in text.
  13. patterns::="Documented families of problems and matching solutions", see Patterns.
  14. Patterns::= See http://cse.csusb.edu/dick/cs375/patterns.html.

  15. Process::="How to develop software".

  16. RJB::=The author of this document, RJB="Richard J Botting, Comp Sci Dept, CSUSB".
  17. RUP::Process="Rational UP", a proprietary version of UP.

  18. SSD::="System Sequence Diagrams", see chapter 10.

  19. TBA::="To Be Announced".

  20. UML::="Unified Modeling Language". [ Unified_Modeling_Language ]

  21. UP::="Unified Process", an iterative, risk-driven, and evolutionary way to develop OO software.

  22. YAGNI::XP="You Ain't Gonna Need It", an XP slogan that stops you planning and coding for things that are not yet needed. As a rule the future is not predictable enough to program a feature until the stakeholders actually need it now. In this class it means "It won't be on the final or in quizzes".

  23. XP::="Extreme Programming", the ultimate iterative code-centric, user-involved process.

End