Architecture - what it is and what it will be

As an initial discussion which can be helpful to all of us I would like to hear opinions of my colleagues regarding the basic question of just what is Architecture and what we would like it to be in the future.

Regards,

Behzad




Answer this question

Architecture - what it is and what it will be

  • BobConsultant

    I recently found an article on architecture that may be useful here. I link to it on my blog article on The Role of Architects: Confining Complexity through Form.

    - Dennis



  • Jarodtweiss

    Architecture is the blue-print of the solution / product / system. This gives a bird's eye view of the system. This takes business form / technical form based on the architecture we provide. This is mainly to convey what the system will contain and provide. It talks about functional, non-functional, perspective. And also takes care of certain specific attributes (like performance) at the early stage rather than later and by that saves effort in building the right solution.

    There are different architectures we can talk about, like: Business Architecture, Logical Architecture, Technical Architecture, Deployment Architecture, Information Architecture, Security Architectgure, Software Architecture, etc. - each one focuses on one perspective and the ultimate goal is to provide what the system contain and provide. We can talk in long for architectures.

    This forms the basis for the design as well. Architecture provides the scope for each of the above. There are reference architectures and architectural patterns that we can use.

    You canbring up the any of the topic in architecture so that we can discuss further.


  • pessi

    Architecture....according to me is a blue-print of a product. Caring less about the technology involved to convert the blue-print takes virtual form, all it does is dictates how the system should be implemented.

    -S



  • Vijay Bhaskr Reddy.Y

    Architecture, to me, is everything that happens between the time you identify a business need for your program and the time you finish it. It's also one of the most neglected aspects of programming, especially in the case of people like myself who were entirely self-taught hobbyists before making the transition to professional software development. As somebody who by nature prefers to just dive in headfirst and start writing code, I've had to force myself to adhere to a more disciplined process. It's gotten much easier over time. And every time I start to lament spending the better part of a day re-designing a class without even touching a compiler, I try to think of how much time I've actually saved myself in the long run. As frustrating as spending hours drawing up design specs and data diagrams can be, it's MUCH less frustrating than pouring hours into writing a piece of code, debugging it, re-writing pieces of it, debugging again, and then realizing you need to scrap the whole thing and start over.

    I highly recommend the book Code Complete (2nd edition)... very good treatment of the many, many steps required to develop good solutions.



  • DGRASoft

    I we ask 100 architects what architecture is, we will get close to 100 answers. Several well-known architects and organizations defines architecture in the lines of “architecture is about the structure of things that are important and hard to change, their components, and how the components fit and work together to fulfil some purpose”

    I agree that architecture in some levels is more about business and that it is technology-agnostic. We talk about structural options and selections, their relationships, and their implications on supporting the functional and non-functional requirements of the overall solution. To me, architecture is also information modelling which with its implications on the structure and representation of data which will be used in the context of the solution architecture.

    That said I believe the architectural discussions can become too high-level and too abstract if the technical decision about the realization of the architecture into a concrete form is not discussed. Therefore I would like us to discuss the concrete realization as well.



  • amendez

    There is more than one architecture e.g. hardware, software. It is also important to distinguish between architecture as a description of a domain and architecture as a design process.

    From the software perspective the analyst role defines the business requirements of the solution, the designer / architect role determines how those requirements will be delivered. In this case the architect selects the most appropriate technologies for the job and specifies the interactions between them.



  • markgoldin

    duck thing wrote:
    It's also one of the most neglected aspects of programming, especially in the case of people like myself who were entirely self-taught hobbyists before making the transition to professional software development.

    Amen to that. The code I've seen by people getting paid more than me. It's shocking. Shouldn't be allowed.



  • Ackamajack

     Behzad Karim wrote:

    just what is Architecture and what we would like it to be in the future

    That's a big question, and I see the discussion has been building for almost a year.  I haven't looked at the entire thread but what I've seen suggests it is useful to step back and look at the basics first.

    Let's start with what is an architecture

      1. I do not mean capital-A Architecture, but "an architecture" or "the architecture" of something.
           
      2. I think the informal abstraction serves well to provide initial perspective: architecture refers to the structure of something.
          
      3. Systems have structure as do behaviors and performances.  One can speak of the architecture of a novel and of a stage play.
           
      4. There is a commonplace observation that every computer program and computer-based system has an architecture.
           
      5. But it is clear that some architectures are achieved on purpose and others arise out of happenstance.   Perhaps those purposively arrived at deserve the capital-A Architecture designation.
          
      6. I would hazard that no architecture with much conceptual integrity arises without forethought.  (And forethought is not a guarantee of conceptual integrity, but it can't hurt.)

    I see my system-architect role as the establishment of essential architectural features on purpose (or by design if you prefer).  We could say that "Architecture" is architecture on purpose.

    I was checking with my nearest "authority" (Encarta Dictionary) and I think this is an useful notion too:

    Architectonics is the science of architecture (used in the field of architecture).  It is interesting that architectonics is also used to signify "structural design of complex things: the way in which the parts of a complex object or system fit together."

    I would have thought that the architectonics is simply the [A/a]rchitecture of the complex object or system.

     I am omitting discussion of the artifacts of architecture, the activity of architects, the relationship of architecture with engineering,  verification/validation, deployment (for products and software), and other aspects of production and adoption of architected thingies. 

     - Dennis



  • Zokkan

    Yes it is a very helpful discussion that will define what we are doing! J

    Architecture –according me- means how to build the ideal skeleton of any product and this skeleton consists of every single component/module that will affect the software flow from start point to the end point.



  • Sigfuss

    Hi there, this is a good question.

    Architecture to me is like a layered blue print of software. By layered I mean it can have different levels of abstraction. For example the top level could describe how components or services communicate with each other, while another layer might describe how classes in a component relate to each other, while another might describe how the system is deployed on the hardware architecture.

    It's just like a blue print for a house, one blue print might show the plumbing, one might show the wiring, one might show where the doors are, etc. But unlike a houses architecture which is very rigid and mostly unchanging during the build, software architecture to me is very fluid and dynamic. Software architectures should expect change; to coincide with the business requirements, which ALWAYS change during development.

    I believe that a systems architecture is the deciding factor that determines if the project is a success (i.e. it furfills it's requirements and is easy to change with the requirements) or a failure (buggy, bloated, difficult to use). I have actually seen this first hand quite recently in a project that was developed without a structure and it was a buggy, bloated, ill horse needing to be put out of it's misery.

    Architecture is such an important part of object orientated development.

    Good question.



  • Architecture - what it is and what it will be