During
the semester you must write one essay. The essay will be graded, and
returned with suggestions for revision. You may revise and resubmit it
three times to get the grade you want.
Your
essay should be three to five single-sided pages, double spaced, 12
point Serif font (such as Times New Roman), with one inch margins. You
should have your name, page number, and number of pages (for example
"Ziman 2/5") right-aligned in the footer of each page. Please be sure
to check your paper for spelling and grammar before submitting
it. As with all of your work, the GMU Honor Code applies, so
be
sure to cite your references (if you are unsure about how to do
citations, try using
MLA
format ). The essay is due in hard copy in
class .
For this essay you will find at least three recent papers on
a software engineering topic (see below). Your paper should
present your own thoughts on the
material backed up by evidence from your references. You paper should
include a thesis statement as described in
Thesis
Statements .
Remember: This is not a book report. I want you to add your own
thoughts, not just tell me what the references said.
(If you prefer to write on another topic that is
fine, but you must get it approved by Prof. Fleck before
writing.)
T1. Find two papers where each describe pros and cons of automated
versus manual (by people) testing in
software engineering. Explain the methods, and describe the advantages
and disadvantages of each and situations where each is or is
not useful. There are many types of automated testing, feel free to add
innformation about more than one type of automated testing. An
additional part to this could be based on this link:
http://sdg.csail.mit.edu/projects/testera.html
If you really get into it, a discussion of their approach
(pros, cons, etc...) could be an entire paper.
T2. Find papers on different software engineering models
(possibly each paper
taking a different view on which is better). Compare and contrast the
models, explaining advantages, disadvantages of the models and
situations in which each is appropriate and why. Some models can be found in chapter 3 of our textbook.
T3. Find papers on using UML. How it is used, when it should be used
and when it should not (or doesn't need to be). What parts of UML
specifically?
T4. Describe the software engineering choices and
differences between creating web applications versus non-web
applications. Find papers that discuss this issue (both sides, or
either side).
T5. There are many documented software failures described on the web.
Find two software failures described on the web, and explain what the
project was, how it failed and why. Then explain which parts of the
software process could have been done differently to avoid the failure.
Explain how that part of the process should have been done. In addition
explain an appropriate software development process (from Pressman
chapter 3 or 4) that should have been used and why. Frequently the low
level details about the project aren't described (because people don't
like to admit mistakes in detail). You may need to make an educated
guess about the cuase of failure and explain why you believe this was
the problem.
T6. Extreme Programming and Agile Software Development techniques have
gained a lot of popularity in recent years. Compare one of
these techniques to one of the more traditional models, and explain the
benefits of one model over the other, and any challenges that might
appear with one approach or the other. Can you think of any
situations where the traditional model might be more effective than the
agile approach? How would you decide which model to apply for
a particular software project?
T7. Explain the SIMILARITIES of Agile versus traditional approaches.
How were traditional approaches evolved into Agile approaches? If there
are no papers on this exact topic, find some on the origins of Agile
development, and discussions of traditional approachs and add your own
views on how traditional approaches evolved.
T8. Read Chapter 12 on User Interface Design, and then think of a piece
of software (such as a UML modeling tool, an e-mail client, etc.) and
write a paper analyzing it from the perspective of good user interface
design. Does it conform to or violate Mandel's "Golden Rules"
of interface design? Be specific. How could the
user interface be improved? Illustrating your paper with screen
captures from software would be beneficial.
T9. Discuss why gathering requirements is a challenging process. What
techniques are used, and how do they attempt to solve the problem?
Also, how do different methodologies (Agile) try to address the problem?
T10. Discuss how the
Alloy
Analyzer can be used to automate and enhance software design.
Give examples. It would be very good to apply this software to real
software to analyze it.
T11. Describe Mutation Testing, how it works, advantages and
disadvantages. Explain the usage of
MuJava,
and apply it to a program and report the results. (It can be an open
source project or any program... you do not need to write your own
software for this, only the tests.
Remember: A goal of this essay is to add your own views and thoughts about the
topic. Avoid purely summarizing the author's views, add in your own
views!
The final revision of your paper is due
April 22, 2009.
You will not have a chance to revise the paper after this date.
The final date to turn in the paper and get it back for revision is
April 8, 2008.
Start early.. the paper is 10% of your grade, don't wait till the last
minute!
Criteria |
Points |
The essay well-organized and free of spelling and
grammatical errors. The essay flows well. |
15 |
The essay includes appropriate references. The essay
should include relevant information from scholarly sources. |
5 |
Thesis
is clearly presented in the first paragraph. Including both the general
topic, and viewpoint of the student. The body of the document develops
and supports the thesis. |
10 |
The body of the
document clearly presents the views of the reference papers. Not simply
quoting the papers, but explaining what they mean. |
10 |
The
body of the document includes the student's viewpoint and their own
thoughts on the topic. The body demonstrates clear reasoning about the
topic beyond just echoing what was in the references. (This is not a
book report.) |
10 |
Total: |
50 |
How do I find scholarly
papers? Search
http://scholar.google.com . Try searching for "software engineering",
"software testing", "software design", "software process",
etc...
Many
papers can be found there, some are free some aren't. If you find one
that is not free, look at the publication name. Go to
http://library.gmu.edu
and click on "E-journal finder" and put in the
name of the journal. You can get almost every non-free paper that way.
If you
need help, ask me or your GTA for help.
Do grammar and spelling
count? YES! Learning to write professionally is an
important skill that George Mason emphasizes. It is likely your paper
will be returned at least once and possibly twice. That's OKAY... the
goal is not perfection the first time -- this is a learning experience!
Do I need a bibliography?
YES! You must cite all references you used to write the paper. Note how
it's done in the papers you read, that's the same way you should do it.
You can also use the
MLA
format.
Does an essay with a
coversheet, one page of text and a bibliography count as 3 pages?
No! That counts as one page of text.
I
f a software engineer
falls in the woods, but doesn't make a sound, did they really fall?
That's an invalid premise that wouldn't happen. Why go to the woods
when you can be doing software development?!? Unless you have a laptop
and wireless cell phone card... hmmm.... maybe it could happen.