13.07.2015 Views

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 8DiscussionA discussion <strong>for</strong>um is one of the most basic tools <strong>for</strong> computersupportedcooperation among human beings. User A can post aquestion. User B can post an answer. User C can view both questionand answer and learn from the exchange. In a threaded <strong>for</strong>um UserD has the choice of posting a response to User A's question or toUser B's response. In a Q&A <strong>for</strong>mat <strong>for</strong>um, Users D, E, and F canpost responses to User A's question and the responses will simply bepresented in the order that they were submitted. With minor tweaksto the presentation layer, a discussion <strong>for</strong>um system can function asa personal commentable weblog.In this chapter you'll prototype a discussion <strong>for</strong>um, conduct a usabilitytest, and then refine your system based on what you learned fromobserving the users.8.1 Discussion Forum as <strong>Community</strong>?A well-designed discussion <strong>for</strong>um can by itself fulfill all of therequirements <strong>for</strong> a sustainable online learning community. Recall thatthese elements are the following:1. magnet content authored by experts2. means of collaboration3. powerful facilities <strong>for</strong> browsing and searching both magnetcontent and contributed content4. means of delegation of moderation5. means of identifying members who are imposing an undueburden on the community and ways of changing theirbehavior and/or excluding them from the community withoutthem realizing it6. means of software extension by community membersthemselvesnamed "popular_dog_facts" within the same VoiceXML document. Ifthey answer "cats", they will be sent to a different URL,psychological_evaluation.cgi?affliction=cats. Note how we used aJavaScript expression in the goto tag in order to use the value of thefavorite_animal variable.Those two examples are enough to give you the gist of VoiceXMLand hopefully an appreciation <strong>for</strong> the simplicity of voice applicationdevelopment using VoiceXML.Excellent tutorial and reference material can be found on thedeveloper sites at Tellme (http://studio.tellme.com/) and BeVocal(http://cafe.bevocal.com/).10.9 Exercise 4: Grammar AccuracyCreate a simple page that asks the user to name a city in Canada.Start out with a small grammar, e.g.:[vancouver toronto halifax] {}Your application should respond to the user with something like "Yes,that is a Canadian city" or "I've never heard of that city."Try out your application. Name some cities that are not on your listand see if it mistakenly thinks they are valid cities. Now add somemore cities to your list (e.g., Calgary, Winnipeg, Victoria, Saskatoon).As you make your list longer and longer, you'll tend to start getting afew false positives.Decide on a rule of thumb <strong>for</strong> how many elements it's reasonable tohave in one grammar.There are applications that have thousands of elements in a grammar.However, they've typically gone through a process of grammar tuningusing representative probabilities <strong>for</strong> grammar matches. For thisexercise, just extend the standard grammar above.10.10 Exercise 5: What's New and Who's NewAdd voice-accessible "what's new" and "who's new" features to yourcommunity. A user should be able to call up and hear the most recent5 contributions by other community members and the names of thelast 5 people who registered.154195

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!