13.07.2015 Views

Software Design 2e - DIM

Software Design 2e - DIM

Software Design 2e - DIM

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.

need to be recognized. Unfortunately the purveyors of courses and textbooks onmethods are sometimes guilty of encouraging exaggerated expectations about theirwares, and it is important to be able to keep these in perspective.8.4 Problem domains and their influenceThe concept of a problem domain figured in the preceding section, and this sectionelaborates a little the implications of the concept as applied to the design process.Almost all software design methods expect the designer to begin the design processby building some form of model of the real-world problem that is to be solved.The form of this model is essentially based on the underlying DVM, and hence is highlymethod-specific. Ultimately, therefore, the chosen method will strongly influence theform of the solution that is derived from it, including its architectural style.The basis for model-building can vary quite considerably, but usually involvesmapping the characteristics of the original problem into one or more of the followingviewpoints:nnnnnnfunctioninformation flowdata structureactionsdata objectstime ordering of actions187Problem domains and their influence(Of course, some of these descriptions may utilize a range of possible forms.) The formof this initial model is a major factor in determining how well the method will maponto particular problem domains. For example, real-time problems will normallyrequire that the initial model incorporate timing issues in some way; while dataprocessingproblems will be likely to incorporate models of data structures or informationflow.Sometimes a method may be very specialized. An example is the design of compilers.For imperative programming languages there are some very well-establishedtechniques (with supporting software tools) that can be used for constructing compilers.However, this is a relatively unusual situation, and most problem domains aremuch more general in form. In addition, domains are not necessarily mutually exclusive,so that a design method that is targeted largely at one class of problems mightstill prove useful with other problems that can be considered as belonging to quite adifferent class. An example of such a design method, and one that we will be meetinglater, is JSP. This method is essentially intended for use with designing algorithms fordata-processing problems, but it can sometimes be used to help solve other types ofproblem too.One question that arises here is whether the problem characteristics should determinethe design approach and the eventual architectural style of the system, or whether

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

Saved successfully!

Ooh no, something went wrong!