Assembled by Conrad Weisert
"During the elaboration phase, as we have already noted, we build the architecture. We identify the use cases that have a significant impact on the architecture. We realize these use cases as collaborations. It is in this way that we identify most of the subsystems and interfaces—at least the ones that are architecturally interesting. Once most of the subsystems and interfaces are identified, we flesh them out, that is, write the code that implements them. Some of this work is done before we release the architectural baseline and it continues throughout all of the workflows."—Ivar Jacobson et al: The Unified Software Development Process, ISBN 0-201-57169-2, p. 102
|" Each managed language decides how much of the CTS to support. Languages that can consume any CLS-compliant type are known as CLS consumers. Languages which can extend any existing CLS-compliant type are known as CLS extenders. Naturally, managed languages are free to support CTS features over and above the CLS and most do. As an example, the C# language is both a CLS Consumer and a CLS extender, and supports all of the important CTS featues"—Peter Drayton, et al: C# in a Nutshell, ISBN 0-596-00181-9, p. 10|
"Whether an agile project ends with a greater degree of consistency in interface is entirely a function of engineering quality but it is at least the case that agile projects need not sacrifice consistency as long as the appropriate amount of planning was done, and in particular, a solid, universally-understood data or system model was defined as part of the initial implementation activity."— Dr. Macro's XML Rants
"Focus on understanding or forming a notion of the problem to determine the requirements that the problem imposes on its solution . . . establishing and verifying the foundation for the overall solution (architectural design) and distributing the requirements among the iteration cycles of the construction development phase."—Si Alhir: UML in a Nutshell, ISBN 1-56592-448-7, p. 23
|"The solution to this problem can be described in just a few words: design, decoupling, and layers. Instead of a common object model, the solution is a system with several subsystems (comprehending their own object models). These subsystems are typically distributed over several layers. Finally it is important to avoid static dependencies in the code. Instead of designing and implementing all possible relationships, the dynamic relationships between the individual objects should be created during runtime within the scope of a business process."—Nicolai M. Josuttis, quoted by Jutta Eckstein in Agile Software Development in the Large, ISBN 0-932633-57-9, p.136.|
Avoiding indecent plumbing
"In a decent-sized application, the bulk of the development effort and debugging time is
spent on addressing such plumbing issues, as opposed to focusing on business logic and features.
—Juval Lövy, Programming WCF Services, ISBN 978-0-596-80548-7, p. 690
Return to IDI home page
Last modified 1 June 2013.