4.24.2009

Software Design, software implementation and software architecture are with same origin, but "DNA", NOT EQUAL or <>

Design, and implementation, are terms software architecture, are typically used informally in partitioning software specifications into three coarse strata of abstraction. Yet these strata are not well-defined in either research or practice, causing miscommunication and needless debate. To remedy this problem I think with criteria of distinction between architecture, design, and implementation is qualitative and not merely quantitative.
I try demonstrate, with my position with my buddies of team project in customers and my project management, VP Technology of alliance and customers that architectural styles are intensional and non-local and that design patterns are intensional and local and that implementations are extensional and local, this definition also with influence of my professional buddy, mr. Amnon H. Eden of Center for Inquiry, Amherst, NY, and Department of Computer Science, University of Essex, United Kingdom, I participate of two projects with this "GAON", expert IT professional. Your influence help me with these definition and position together my teacher Dra. Mara of Rio de Janeiro Univeristy and some years old of my professional experience, that one Architect must be one programmer + software designer with action of head technical.

In their seminal article, Perry and Wolf [24] developed “an intuition about software architecture through analogies to existing disciplines.”

If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.
— J. H. von Neumann

Architecture is concerned with the selection of architectural elements, their interaction, and the constraints on those elements and their interactions… Design is concerned with the modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements.”


The Intension/Locality Thesis

To elucidate the relationship between architecture, design, and implementation, I try distinguish at least two separate interpretations for abstraction in our context:  Intensional (vs. extensional) specifications are “abstract” in the sense that they can be formally characterized by the use of logic variables that range over an unbounded domain;  Non-local (vs. local) specifications are “abstract” in the sense that they pervade all parts of the system (as opposed to being limited to some part thereof).

Both of these interpretations contribute to the distinction among architecture, design, and implementation, summarized as the Intension/Locality thesis:

(A) Architectural specifications are intensional and non-local;
(B) Design specifications are intensional but local; and
(C) Implementation specifications are both extensional
and local.

Why, my interested in such distinctions? I also of many professionals of software engineering of distinct these topics.



No comments: