Instructions

During the semester you must write one essay and review one other student's essay.  The process is double-blind --- you will not know the reviewer and the reviewer will not know who's paper they are reviewing.

The process:
1. You write an essay. You submit your essay with a cover sheet that has your name, essay title (sample). The rest of your essay must not have your name on it.
2. Prof. Fleck will remove your cover sheet and assign the essay a number.
3. Essays will be given to other students to review and comment on. The reviewer will add a coversheet with their name, the essay number. All comments will be on the following pages.
4. Essays with comments will be returned to Prof. Fleck
5. Prof. Fleck will remove the reviewer's coversheet.
6. Prof. Fleck will attach your coversheet and return the essay, and review to you.
7. You can then revise the essay and submit it for review by the Professor (or GTA).
8. The essay will be graded and returned. If you submitted your essay early enough for grading, you can resubmit it again until you get the grade you want or the final due date is reached. (Remember, it takes a week to grade though!)


Your essay content should be four to five single-sided pages, double spaced, 12 point Serif font (such as Times New Roman), with one inch margins. You should have page number and number of pages (for example "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 two recent papers (published >= year 2000) 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 . To find good papers to reference, see the FAQ below.

Remember: This is not a book report. I want you to add your own thoughts, not just tell me what the references said.


Available Topics


(If you prefer to write on another topic that is fine, but you must get it approved by Prof. Fleck before writing.)

T1. Find and discuss two papers that describe an approach for generating and/or using software metrics. What decisions do they help make? In what situations are they valid/invalid? Should you use them? Would you use them in a project? 

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. 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).

T4. 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?

T5. 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.

T6. 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?

T7. 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.

T8. Discuss automatic generation of test cases. Find a paper that describes an approach. How do they do it? What are the advantages? Disadvantages? When do you think it would be appropriate to use the technique? When wouldn't it be appropriate?

T9. Look at the Top 25 Dangerous Programming Errors ( http://cwe.mitre.org/top25/ ). Pick one and describe the problem, examine the references listed in the detailed view of the error. Include your own thoughts on multiple places within the software engineering lifecycle that the problem could have been avoided or mitigated, and the techniques that would be used. Find one or more examples of this error occuring in real software (news stories, security vulnerabilities published on the web, etc...).



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 and insights! Just because it's published, doesn't mean it's right!



Essay Review

As a reviewer your job is to help the author understand what parts were good and what parts were not. To do this provide your thoughts on how to make the essay better. Explain why you think this would help the essay (flow better, be less confusing, etc... ). Be clear and professional (don't be rude). Also include what parts of the essay you thought were done well, and why.

This should be 1/2 to 1 page of written text. If it helps you can also write on the essay itself. Frequently it's easier to mark "Location A" on the essay, and then reference that location on the written part of the review. You can mark spelling / grammar errors on the essay itself.

For the review include a cover page with your name, but don't put your name on the other part of the review. Staple it all together.  Lastly, make a note of the essay number for the unlikely event that things get mixed up, you will know you reviewed essay X.

Many students seem to leave out discussing "what was good?" ... don't forget that's half of the essay points so should be more than one sentence!



Due Dates

The essay is due Mar 25, 2010.
You will get another student's essay to review that same day.
The review is due one week from receipt of the paper on Apr 1, 2010.
The final revision of your paper is due Apr 22, 2010. You will not have a chance to revise the paper after this date. The paper is 10% of your grade, don't skip it!

Example of turning essay in by the deadline Example of turning essay in with one revision Example of turning essay in with multiple revisions
Bob (student) turns in the essay on Mar 25

Mary (student) receives Bob's essay to review

Mary write her review of the essay and turns it in April 1

Bob receives his essay and review back on April 1

Bob returns his updated essay by April 22.

Bob (student) turns in the essay on Mar 25

Mary (student) receives Bob's essay to review

Mary write her review of the essay and turns it in April 1

Bob receives his essay and review back on April 1

Bob returns his updated essay by April 8.

Raheem (GTA) grades essay and returns it April 15

Bob revises essay and resubmits it April 22

Bob (student) turns in the essay on Mar 2

Mary (student) receives Bob's essay to review

Mary write her review of the essay and turns it in Mar 9

Bob receives his essay and review back on Mar 9

Bob can now submit his essay and get it graded as much as possible until the final due date of April 22.


Grading



Criteria Points
The essay well-organized and free of spelling and grammatical errors. The essay flows well. 10
The essay was formatted correctly:
- Cover page with at least your name and essay title
- Body of the essay (4-5 pgs) including the title on the first page, but NO AUTHOR NAME
- Bibliography page was included
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. 5
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
Your paper was not submitted on schedule -10%
Review
The review you provided included thoughts on ways to make the paper better in a clear and professional manner. Remember -- you're reviewing the paper, not the writer! (Don't be rude.) 8
The review included what you thought were the good parts of the paper, and why you thought they were "good". 7
Your review was not provided on schedule -10%
Total: 55




FAQ

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, but most aren't.  To get the academic ones:
  1. Remember the author and title you found from scholar.google.com
  2. Go to http://library.gmu.edu and click on "E-journal finder"
  3. Put  IEEE in the Journal Title box and submit (almost all are IEEE) 
  4. Click on any "IEEE/IET Electronic Library (IEL)" link
  5. Click on "Search-> Author" from there
  6. Enter your author's name. 90% of what you want is in the IEEE, if you want something that you can't find there let me know and I can help you search.

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.

If 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.