Riel, Chapters 1-2
Discussion Questions submitted for Chapters 1 and 2 of Riel
Development Models
-
Which model of software development, the Waterfall Model or the Iterative
Model, would we use in our project? which seems feasable and/or sufficient?
~yasir.
-
The author states that the iterative model suffers from a lack of
milestones and that new ones must be created so the project manager can
keep track of the development. However, what kind of milestones can be used
when the process does not go through each phase sequentially as in the
waterfall model? Patrick Dowd
-
Why does the iterative model of Software development work better for object
oriented designs? (Sam Vanderhyden)
-
what is a "well defined iterative milestone" and what are examples of some
other than prototyping? ~Taha
Paradigms
-
It seems to me that the action-oriented paradigm is easier for small
projects, and the object-oriented for large. At what point does the
difference hit: ie, when does a project become large enough that the extra
work of making it object oriented is worth it in the long term?
-
What particular line of thought(s) constitutes the paradigm shift needed
for object oriented programming?
-
How will object-oriented paradigm help us in this class specifically with
respect to modeling? - George Yeboah
-
Is the tendency to slip into action oriented programming an implication of
a sloppy design phase? Would something designed well enough would have
clear objects, or is that too much overhead?
-
Riel discusses a "unlearning curve" when switching from an action-oriented
paradigm to an object oriented one. What bits are most important to
unlearn? What crosses over?
-
What is I/O? Also, what is the difference between object-based and
object-oriented?Desi Dimova
-
Is Java a multiparadigm language like C++? If so, how useful is it for
different-laguage prototyping? - George Yeboah
-
Is Java pure OOPL? Is that what makes it better than C++? Desi Dimova
-
To what extent can an object-oriented design handle complexities in a
software development process? Can it handle all kinds of complexities? (Raz
Magar)
-
Clearly the best problem solving programming language is the multiparadigm
language. How can one efficiently use both object-oriented and
action-oriented paradigms in a program? Anthony Fynn
Same-language Versus Different-language Prototyping
-
It seems like the same-language prototyping is much more efficient than
different-language prototyping. Are there any big advantages when using
different languages, and why do people use it? Elias Vafiadis
-
When would a different-language prototype be better than a same-language
one? Steven Fenigstein
-
The author says that same-language prototyping is not a good idea because
of the propensity to not polish up "garbage" code. It seems like a software
project could be delayed further if the software was missing critical
features. How often is the garbage code actually included in the final
release in a project using same-language prototyping? Patrick Dowd
Key Abstraction
-
Could you explain key abstraction? -Jonathan Kensler
-
What is meant by the term key abstration? Examples? (Sam Vanderhyden)
-
Can we elaborate on the concept of "key abstraction?" And what is an
example of a class that doesn't properly exploit this concept?
Coupling
-
In Heuristic 2.7, it says that classes should only exhibit nil or export
coupling with other classes, but above on the same page it talks about
several other types of couplings. Under what types of circumstances might
we be required to use the other types of couplings? This would break the
heuristic, but I'm guessing is occasionally needed (as suggested by the
existance of the other types of couplings. -Jonathan Kensler
-
Should overtly coupled classes be combined? - Jim Finnessy
-
How are can covert coupling exist if permission is never granted? -Jim
Finnessy
-
The various types of Class Coupling seem awfully close. Which situations
are their differences paramount? Anthony Fynn
-
What does coupling and cohesion between/within classes mean?
-
Heuristic 2.7 maintains the exhibition of only nil or export coupling among
classes. What about other forms of coupling? Why do they even exist if they
are not recommended? Or are there some scenarios in which they are safe to
use? (Raz Magar)
-
Could you give some clarification about privacy, permission, and coupling?
What are some examples of when one kind of coupling is used over the other?
Steven Fenigstein
-
Is it a good way to know what should go into public and what not?
Minimizing the number of messages in the protocol of a class seems like
something that is easier said than done, unless a person has a lot of
experience. - Hisako Watanabe
Other Questions
-
What does the term "smoke and mirrors" refer to from a CS standpoint? -Peter Likarish
-
The "heuristics" presented in Ch. 2 are designed to make continuing
development easier. But are there situations in which following these
heuristics to the letter might make the process more time-consuming and
less efficient? Nick Wagner
-
How does the object oriented paradigm allow for the control of accidental
complexity through the use of wrappers?
-
Riel states that buying software is more advantageous than building
software, considering functionality and maintenance issues. What are the
implications of this fact with regard to competitive software packages?
--Khong
-
Riel equates buying software with software reuse. What is the purpose of
making software that can be reused, if the source code is never
distributed? Does the distribution of "software objects" actually encourage
their extension and resuse? For example, can one buy sets of Java classes?
josh vickery
-
Is there any likelihood that our sheduling project will contain objects
having multiple possible local states?
-
I find the concepts of accidental and essential complexity difficult to
understand. ~Taha
-
What are the advantages of having overloaded functions? Elias Vafiadis
-
What is an example of an ADT? -Peter Likarish
-
When we talk about "software reuse," are there ways in which the design of
a public interface can be improved to promote reusability? --Khong
-
When building software objects, that is classes, who exactly should the
code be written for? That is, should the code be written to solve the task
at hand, or should the class designers try to determine general aspects
that the class interface should have for future use?
-
Heuristic 2.2 kind of appears to suggest that classes should never be
designed to support inputs particular to one set of users...can I assume
this is not what is meant?
-
How much extra processing overhead is created by adding, say, a get_time()
method to every clock class? Is there then a theoretical limit where such
design would no longer be usefull, and what happens then?
-
Is UML used exclusively for prototyping? Where does UML come into play
during the software development process? -Hisako Watanabe
This document is available on the World Wide Web as
http://www.walker.cs.grinnell.edu/courses/223.sp02/read-riel1-2.html