Diagram
|
|
|
Title
|
|
Integrity of Material
|
Building Architecture
|
|
Modern architecture has been criticised for its lack of integrity in it's use of materials. Some modern architects made use of one material to emulate anothern as in the case of Le Corbusier's use of stucco and concrete.
|
Architecture Intensive Disciplines
|
|
It can happen that a material or language in software development is not applied in the way it was intended. Not all structures and programs in a relational database are designed or authored using relational principles. Some languages are not truly object orientated and some programs using object orientated languages do not always make use of object orientated designs. Technologies in their early stages tend to have short comings that overshadow their intended benefits. A technology to improve integration may have security flaws which compromise its integration capabilities. Error trapping can also be used to mask problems. A system may in effect be presented to the users as being structurally sound or scalable when in fact it is inherently flawed.
|
Case Study A: Large Corporate IT
|
|
|
|
When we designed the application architecture to support Active Server Page (ASP) classes, the classes were not fully object orientated. We had emulated inheritance using the "include" method but we managed to create a business object layer.
Another instance of this pattern or anti-pattern was in the relational database. Firstly, the business data was not fully relational. The data was migrated from the mainframe which was not designed in a relational structure. As a result some of the data was not fully normalised. The database needed to be re-designed. The repository was also designed using an object design. Properties that would have been designed as columns were in fact records. Values were stored in a many to many relationship. The repository design was more object-like than it was relational.
|
Case Study B: Small Commercial Team
|
|
|
|
In this environment, business rules change constantly. The aim of building a middle layer of components should have been to enable changes to the underlying components without having to re-compiled the executable. However, in this case, the process was the other way around. Whenever the underlying components were changed, the executables had to be re-compiled. This design should have been applied the other way aound and therefore we needed to refactor the code to cater for late-binding.
Another issue was the fact that the system seemingly used stored procedures, but most of the stored procedures were not used. The SQL statements were hard-coded in the front-end and passed to a specific stored procedure that executed the SQL statement sent to it.
|
|