1 / 7

2nd LHC Computing Workshop Architectures

2nd LHC Computing Workshop Architectures. Sergio Bandinelli - ESI Barcelona 18-20 March 1998. The pasta theory of software.

keishat
Download Presentation

2nd LHC Computing Workshop Architectures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2nd LHC Computing WorkshopArchitectures Sergio Bandinelli - ESI Barcelona 18-20 March 1998

  2. The pasta theory of software Nearly every software professional has heard of the term spaghetti code as a pejorative description for complicated, difficult-to-understand, and impossible-to-maintain, software. However, many people may not know the other two elements of the complete Pasta Theory of Software.

  3. The pasta theory of software Lasagna code is used to describe software that has simple, understandable, and layered structure. Lasagna code, although structured, is unfortunately monolithic and not easy to modify. An attempt to change one layer, while conceptually simple, is often difficult in actual practice.

  4. The pasta theory of software The ideal software structure is one having components that are small and loosely coupled; this ideal structure is called ravioli code. In ravioli code, each of the components or objects, is a package containing some meat or other nourishment for the system; any component can be modified or replaced without significantly affecting other components. We need to go beyond the condemnation of spaghetti code and to the active encouragement of ravioli code.

  5. A few concepts SOFTWARE/SYSTEM ARCHITECTURE: An abstract specification of a software/system consisting primarily of functional components described in terms of their behaviours, interfaces, interactions and interconnections. DOMAIN ARCHITECTURE: A generic architecture for a domain. Domain architectures generally consist of partially specified systems composed of generic or configurable components that are replaced by real components when the architecture is instantiated for an actual application.

  6. Role of the domain architecture • Represents “the” solution framework for a set of problems in the domain. • It is a tool for enforcing commonality among applications in a domain. • It provides the framework for the development of reusable components. • One possible path: The domain architecture embodies the commonalities across all the products, and variations are handled by adopting a component-based plug-in approach.

  7. How to design a domain architecture • A domain architecture must be able to handle variability. • Old design principle: Localise the impact of variability • This design principle leads to the concept of change continuity

More Related