Site Map  Search

OOA Home OOD content UML Corrections book Code object Exercise Solutions oriented Resources tutorial Miscellany textbook

Exercise Solutions (Unrestricted)

Chapters 1 2 3 4 5 6 7 8 9 11 12

Chapter 3

Question 3.1
What packages would you use in order to organize the development of a new web browser? What influenced you in your choice of packages?

I was guided to my initial choice of packages by terminology and technology. The terminology of communications and networks is quite different to that of page rendering, as is the technology. By technology I mean that the libraries or frameworks that might help me out -- where they came from, both commercially and culturally; and I also mean the "level" at which they connect to the platform -- they would interact with quite different parts of the operating system. I was also influenced by Opera's (the web browser I tend to use most) "Preferences" sections; one might as well look at the decisions of others who have done a similar development. I also considered maintenance -- how browsers have changed over the years -- which elements have come and gone.

The initial list of packages I might consider were:

  • Communication
    • Security and privacy
    • Internet
    • Local file system
  • Provision
    • Parsing
    • Plug-ins and players
    • Page rendering
    • Printing
  • Management
    • Users and preferences
    • Bookmarks

[I decided that web browser meant exactly that. You may have decided that, to be competitive, you would need to offer mail and newsnet handling as well, and certainly in packages of their own. JD]

[Which would be the worse mistake? Too many packages that were too small, or too few packages that were too big? I think that it's the same as with classes. It's better to err on the side of too fine a granularity. If one finds oneself correcting mistakes, it's easier to amalgamate than to split. JD]