This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
dido:public:ra:1.4_req:2_nonfunc:20_maintainability:modularity [2021/08/11 12:10] murphy [About] |
dido:public:ra:1.4_req:2_nonfunc:20_maintainability:modularity [2021/08/11 13:01] (current) murphy |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== About ===== | ===== About ===== | ||
| - | **[[dido:public:ra:xapend:xapend.a_glossary:m:modularity]]** describes a characteristic of a system or program to be organized into smaller, reusable components. Each component is self-contained and provides an [[dido:public:ra:xapend:xapend.a_glossary:i:interface|interface]] that describes the functionality it offers to other components of the system. It optionally provides a set of interfaces required to fulfill its functionality. In [[dido:public:ra:xapend:xapend.a_glossary:o:oop]], this functionality is encapsulated as set of data attributes. The [[dido:public:ra:xapend:xapend.a_glossary:m:module]] exposes access to these data attributes by defining public interfaces other components can call to manage and manipulate the data attributes of the object (i.e., Module). If the component relies on other components, then it can specify the required components (i.e., Modules). | + | **[[dido:public:ra:xapend:xapend.a_glossary:m:modularity]]** describes a characteristic of a system or program to be organized into smaller, reusable components. Each component is self-contained and provides an [[dido:public:ra:xapend:xapend.a_glossary:i:interface|interface]] that describes the functionality it offers to other components of the system. It optionally provides a set of interfaces required to fulfill its functionality. In [[dido:public:ra:xapend:xapend.a_glossary:o:oop]], this functionality is encapsulated as set of data attributes. The [[dido:public:ra:xapend:xapend.a_glossary:m:module]] exposes access to these data attributes by defining public interfaces other components can call to manage and manipulate the data attributes of the [[dido:public:ra:xapend:xapend.a_glossary:o:object|object]] (i.e., Module). If the component relies on other components, then it can specify the required components (i.e., Modules). |
| Many Modules are described by files that only describe the interface to the Module and contain no actual functionality. For example, in C/C++, these Module interfaces are described using header files (i.e., ''.h'', ''.hpp'') files; in Java these files are regular ''.java'' files but contain the key word ''interface'' in their [[dido:public:ra:xapend:xapend.a_glossary:c:class|class]] descriptor; in [[dido:public:ra:xapend:xapend.a_glossary:c:corba]], interfaces are described as stubs. ECMAScript (i.e., [[dido:public:ra:xapend:xapend.a_glossary:j:javascript|JavaScript]]), PHP, etc. use the concept of [[dido:public:ra:xapend:xapend.a_glossary:d:ducktyping]] at runtime to accomplish the equivalent of interfaces (i.e., it is based on the methods defined within a Module at runtime rather than on a static, abstract fixed interface). | Many Modules are described by files that only describe the interface to the Module and contain no actual functionality. For example, in C/C++, these Module interfaces are described using header files (i.e., ''.h'', ''.hpp'') files; in Java these files are regular ''.java'' files but contain the key word ''interface'' in their [[dido:public:ra:xapend:xapend.a_glossary:c:class|class]] descriptor; in [[dido:public:ra:xapend:xapend.a_glossary:c:corba]], interfaces are described as stubs. ECMAScript (i.e., [[dido:public:ra:xapend:xapend.a_glossary:j:javascript|JavaScript]]), PHP, etc. use the concept of [[dido:public:ra:xapend:xapend.a_glossary:d:ducktyping]] at runtime to accomplish the equivalent of interfaces (i.e., it is based on the methods defined within a Module at runtime rather than on a static, abstract fixed interface). | ||