Open implementation analysis and design

Chris Maeda, Arthur Lee, Gail Murphy, Gregor Kiczales
1997 Software engineering notes  
This paper describes a methodology for designing Open Implementations --software modules that can adapt or change their internals to accommodate the needs of different clients. Analysis techniques are used for capturing domain knowledge, user requirements, and domain properties that influence the module's eventual implementation. Design techniques are used for determining and refining the interfaces by which clients control the modules implementation strategies. The methodology has evolved over
more » ... the past two years in several pilot projects. Subject Whether the statement describes the client's or the implementation's behavior. Vocabulary Whether the words in the statement are in terms of Black-Box Interface or of the implementation structure? Scope What elements of the implementation does the statement apply to? (For example, a single instance of the module versus all instances of the module.) Binding Time Can the statement be made at design time, compile time, link time, or run time. This feature helps determines whether static or dynamic implementation mechanisms can be used.
doi:10.1145/258368.258383 fatcat:opkiec6minhf7otn62rhi2e3am