Domains and Algorithms
Domains became popular in the late 1980s when researchers began to explore how object-oriented principles could be used to promote software reuse. In the context of reuse, domains are application areas that share common traits. Each domain has its own vocabulary that provides a language to describe the domain. The language helps design systems and reusable components that are appropriate for the particular domain. Domain-specific languages (DSLs) are used to model domains to generate domain-specific software, rather than construct it manually.
Algorithms, like applications, have domains. These domains are orthogonal to specific application domains. Algorithm domains provide us with knowledge about the application domains that are most amenable to certain types of algorithms. For example, if one is developing an application to access web services from a mobile phone, it would be appropriate to use algorithms optimized for space usage and external storage rather than simply the best overall time performance.
Algorithm domains are not as well defined as application domains; they are more general and span several application domains. Algorithm domains map more closely to standard computer science areas. We see, for example, search and graph traversal algorithms used frequently in artificial intelligence applications, whereas numerical algorithms seldom appear in such applications. Database management systems have their own set of algorithms that appear frequently, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access