View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

More Final Exam Review - Summer 2007

Here are some more questions, See also previous review pages.

Agile Development:
a. What is timeboxed development?
b. Given a particular burndown chart, be able to make some conclusion about what it is telling you.
c. Be able to explain the role of the Sprint and Product Backlogs.
d. What is a Sprint(Iteration) and why do modern software development lifecycles use them?

Garbage Collection:
How would your knowledge of the type of garbage collector used by a VM affect your implementation of say the remove method of a doubly linked list? HINT: Think about the shortcomings of reference counting versus one of the tracing collectors (like mark and sweep)

Frameworks:
a. How are frameworks different from class libraries?
b. What are hotspots and frozen spots and why are they important to designing a good framework?

Language Choices:
Given a project description, use a weighted decision matrix to determine the best overall language for the project.

Refactoring:
a. What are bad smells?
b. Think about the code you wrote for the project this semester. Identify one bad smell you found and how you might fix it.
c. Why are unit tests (like SUnit) critical for successful refactoring?



ANSWERS (Note that these answers are by students as part of their cases, and not by instructor or TA's. Some answers may not be entirely accurate and some may be wrong):

AGILE DEVELOPMENT

a.What is timeboxed development?

“No Schedule Slip” That is, the time assigned for each task/feature has to be constant or unchanged once declared.

c.Be able to explain the role of the Sprint and Product Backlogs

Product Backlog: Product backlog shows prioritized tasks, and hours to go by sprint. “It’s not how many hours you work its how many you have to go.”
Sprint Backlog: Focus is on each persons estimate of how much work they have to go on tasks, not how much they have done in past.

d.What is a Sprint (Iteration) and why do modern software development lifecycles use them?

Project divided in pieces called iterations
At end of iteration something is delivered
No schedule slip (timeboxing)
Each iteration nominally 4 weeks

FRAMEWORKS

a.What are Frameworks? How are they different from class libraries?

•A set of classes that embodies an abstract design for solutions to a family of problems (Brian Foote)
•A reusable design that describes how system is decomposed into objects.
•A class library that captures interaction patterns between objects.
•A set of abstract and concrete class
•A skeleton application that can be fleshed out by developers

VS. LIBRARIES

•Frameworks are like libraries except:
–They use inheritance more heavily
–They evolve more quickly
–They are often modified on the spot if they are not quite right
–They have a more “plug-in” feel
–They include dynamic flow rather than simply reusable classes


b.What are hotspots and coldspots and why are they important to designing a good framework?

•Frozen spots: the implemented architecture components and connections (existing classes to reuse directly)
•Hot spots: the locations where users are expected to extend and modify framework. (Abstract classes to implement yourself)
•They are important in designing a good framework because they serve as the backbone for the control and dynamic interaction, which is not modified by developers/users


LANGUAGE CHOICES:

Given a project description, use a weighted decision matrix to determine the best overall language for the project.

Project: Thread Space, this is a software that enables Tech students to work on their courses depending on the threads they choose.
Ranking: 1= Least Critical, 5= Most Critical

We chose to refute between four languages, mainly: JSP, PHP, ASP and FLASH

The steps for this process are as follows:

1. List languages and criteria
2. Assign weights
3. Rank Each Language
4. Sum weights
5. Select the highest scores

JSP PHP ASP FLASH
(5)Multi Browser Compatibility 5/25 5/25 4/20 4/20
(4)Learning Curve 5/25 4/16 4/16 5/20
(3)Cost 5/15 5/15 3/9 3/9
(5)Interactivity 5/25 2/10 5/25 5/25
(1)Graphics Set 1/1 1/1 5/5 5/5


When we add the total of each column, we get that JSP has score 86 while the others have 67, 75 and 79 scores respectively. Therefore JSP is the best language that can be used for this software.


REFACTORING:

a. What are bad smells? See Print out of list of bad smells
Bad Smells can be defined as bad design code within a project. Some examples of bad smells include: Long Method, Long Parameter List, Duplicated Code, Large Class, etc.
In my project, one bad smell I can think of is “Duplicated Code”. In the App Models accessors, I defined the featureList and the currentProject separately as well as in the projectModel.

Example:

projectModel: aProject
projectModel := aProject.
featureList := SelectionInList new.
featureList listHolder: ((UI.AspectAdaptor subject: projectModel sendsUpdates: true) forAspect: #features).
currentProject := projectModel name.


I can fix this by using the Extract method.









Link to this Page