Imagine you are designing a framework for the following classes of applications. Describe what services you might put in the framework. Answer this question using a simple list of things the system should be capable of doing.
(a) A reservation framework. This could be expanded into an application to reserve anything that needs reserving, e.g. dental appointments, meetings, tickets at the theater, etc.
(b) A scheduling framework. This could be expanded for scheduling meetings, trains, classes etc.
(c) A language-processing framework. This could be expanded to process a programming language, a database query language or a command language.
(d) An editing framework. This could be expanded to allow editing of text, spreadsheets, and elements of different kinds of diagrams. Think about common features of editing tools provide.