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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Example user class decomposition on photo.netTo give you an idea of what a user class decomposition might looklike, we'll walk through one <strong>for</strong> the photo.net service.First, consider the overall objective of photo.net: A place where aperson can go and get the answer to any question aboutphotography.Second, consider levels of administrative privilege. There are sitewideadministrators, who are free to edit or delete any content onthe site. These administrators also have the power to adjust theauthority of other users. We have moderators who have authority toapprove or delete postings in particular discussion <strong>for</strong>ums. Finallythere are regular users who can read, post, and edit their owncontributions. A less popular service could probably get away withonly two levels of admin privilege.A different way of dividing the users is by purpose in visiting theservice:48• wanna-be point and shooter -- wants quick advice on whatpoint and shoot camera to buy and where to buy it; wants toinvest minimal time, ef<strong>for</strong>t, and money in photography• novice photographer shopper -- wants to begin takingpictures <strong>for</strong> purposes of artistic expression but does nothave a camera with flexible controls right now• novice photographer learner -- has the right equipmentbut wants ideas <strong>for</strong> where, when, and how to use it; wantscritiques of finished work• expert photographer -- wants new ideas, to see what isnew in the world of hardware, wants to share expertise,wants community• wanna-be commercial photographer -- might be a highschool or college student curious about the future or anolder person wanting to change careers; wants to knowwhether it is feasible to make a living doing photographyand, if so, how to start.• exhibitor -- wants to upload photos into the photo sharingsystem and develop an audience among the photo.netreadership• traveler -- wants to know about locations worldwide <strong>for</strong>photography incidental to an already planned trip or wantsideas <strong>for</strong> where to travel <strong>for</strong> photographic inspirationhad support contracts <strong>for</strong> them) or how to make sure thatnew code works on every brand of RDBMS5. having a strict open-source software policy; reusablecode was documented and open-sourced in the hope that itwould aid other programmers worldwide6. dragging people out to writing retreats; mostprogrammers say that they can't write but experience showsthat peoples' writing skills improve dramatically if only theywill practice writing. We had a beach house near ourheadquarters and dragged people out <strong>for</strong> long weekends tofinish writing projects with help from other programmers whowere completing their own writing projects.7. establishing our own university, TAing at existinguniversities, and mentoring within our offices; a lot ofPhD computer scientists are reluctant to leave academiabecause they won't be able to teach. But we started our ownone-year post-baccalaureate program teaching the normalundergrad computer science curriculum and we were happyto pay a developer to spend a month there teaching acourse. We encouraged our developers to volunteer as TAsor lecturers at universities near our offices. We insisted thatsenior developers review junior developers' code internally.How did it work out? Adhering to these principles, we built aprofitable business with $20 million in annual revenue. Beingengineers rather than business people we thought we were beingsmart by turning the company over to professional managers andwell-established venture capital firms. In search of higher profit theyabandoned our principles and, in less than two years, turned whathad been monthly profits into losses, burning through $50 million incash. The company, by now thoroughly conventional, tanked.In short, despite the experiment having ended rather distressingly itprovided evidence that these seven principles can yield exceptionallyhigh achievement and profits.17.6 Exercise 2Write down your own definition of software engineeringprofessionalism. Explain how you would put it into practice and howyou could build a sustainable organization to support that definition.17.7 Final PresentationIn any course using this textbook, we suggest allocating 20 minutesof class time at the end of any course, per project, <strong>for</strong> a final301

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

Saved successfully!

Ooh no, something went wrong!