Skip to content

BeyondTest - Focusing Quality Everywhere

Sections
Personal tools
You are here: Home » Software Engineering » Architecture

Software Architecture

Document Actions
Architecture

The result of design is a specification of how to build the software product and the technical constraints on the implementation, which form the bulk of the software architecture document.

The architecture is primarily an outcome of the analysis & design workflow. As the project re-enacts this workflow, iteration after iteration, the architecture evolves, gets refined, and polished. As each iteration includes integration and test, the architecture is quite robust by the time the product is delivered. This architecture is a main focus of the iterations of the elaboration phase, at the end of which the architecture is normally baselined.

The architectural design involves the definition of an overall software architecture, the software components within that architecture and interfaces between components, and the allocations of requirements to each software component.

Above figure is architecture model by Rational. Actually, more views should be focused besides above several views, for example, event view, data view, and development view, especially for large-scale software.

System architectural design practices involve some or all of the following:

  • identifying constraints that limit architectural choices;
  • identifying, verifying and documenting the main elements of the system and the requirements that relate to each element;
  • costing viable architectural alternatives and advising a customer of their pros and cons;
  • defining internal and external interfaces between system elements;
  • identifying critical system performance areas which may also constrain architecture choices;
  • conducting benchmark tests to validate architecture design issues;
  • operating a change control mechanism to accommodate any changes in system requirements which affect architecture;
  • carrying out tests to prove the correctness of architecture choices;
  • communicating up-to-date details of the system architecture, system elements and their interrelationships to affected parties.

See Software Architecture Illustration.

Example of our training material can be found here:
1. Object Oriented Analysis & Design in Iterative Development
2. Advanced Topics - Design Pattern, Framework, Architecture and Product Line

Software Architecture Wiki Page can be accessed here.

 Up
White papers & Articles

IEEE Std 1471-2000, IEEE Recommended Practice for Architectural Description of Software-Intensive Systems

Nicholas May, A Survey of Software Architecture Viewpoint Models , Good article for understanding the state of art.

Paul Clements, etc., A Practical Method for Documenting Software Architectures

David Garlan, Software Architecture: a Roadmap , Taken from "The Future of Software Engineering" , Anthony Finkelstein (Ed.), ACM Press 2000

Paris Avgeriou, Nicolas Guelfi, Reza Razavi, Patterns for documenting software architectures , Software Engineering Competence Center (SE2C), University of Luxembourg

Kent Petersson and Tobias Persson, Software Architecture as a Combination of Patterns. Software Engineering Technology, www.stsc.hill.af.mil

Mari Matinlassi, Jarmo Kalaoja,. Requirements for Service Architecture Modeling . VTT Electronics, Finland.

Michael Christensen, etc., Design and Evolution of Software Architecture in Practice . Department of Computer Science, University of Aarhus, Denmark.

Todd Williams, The Case for Using Eclipse Technology in General Purpose Applications. Genuitec

Bob Hensle, Application Architecture for Applications Built on BEA WebLogic Platform™ 8.1 , DEV2DEV

Application Architecture for .NET: Designing Applications and Services , Roadmap, Patterns & Practices, Microsoft Corporation


Philippe Kruchten, Rational Software Corp., Architectural Blueprints - The "4+1" View Model of Software Architecture , IEEE Software 12 (6) November 1995, pp. 42-50

Joseph F. Maranzano, etc., Architecture Reviews: Practice and Experience , IEEE, Software, March/April 2005 (Vol. 22, No. 2)


Achieving Usability Through Software Architecture , Technical Report CMU/SEI-2001-TR-005

Applicability of General Scenarios to the Architecture Tradeoff Analysis Method , Technical Report CMU/SEI-2001-TR-014

Architecture Reconstruction Guidelines, Third Edition , Technical Report CMU/SEI-2002-TR-034

Architecture Reconstruction Case Study , Technical Note CMU/SEI-2003-TN-008

Deriving Architectural Tactics: A Step Toward Methodical Architectural Design , Technical Report CMU/SEI-2003-TR-004

A Life-Cycle View of Architecture Analysis and Design Methods , Technical Note CMU/SEI-2003-TN-026

Joseph F. Maranzano, etc., The Architecture Based Design Method , Technical Report CMU/SEI-2000-TR-001

Architecture-Based Development , Technical Report CMU/SEI-99-TR-007

Architecture Reconstruction to Support a Product Line Effort: Case Study ,

Documenting Software Architecture: Documenting Behavior , Technical Note CMU/SEI-2002-TN-001

Documenting Software Architecture: Documenting Interfaces , Technical Note CMU/SEI-2002-TN-015

Documenting Software Architectures in an Agile World , Technical Note CMU/SEI-2003-TN-023

Documenting Software Architectures: Organization of Documentation Package , Technical Note CMU/SEI-2001-TN-010

DoD Architecture Framework and Software Architecture Workshop Report , Technical Note CMU/SEI-2003-TN-006

The Domain-Specific Software Architecture Program , Technical Report CMU/SEI-92-SR-009

 Up
Good books

Unified Modeling Language User Guide, The, 2nd Edition
By: Grady Booch, James Rumbaugh, Ivar Jacobson

For nearly ten years, the Unified Modeling Language (UML) has been the industry standard for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. As the de facto standard modeling language, the UML facilitates communication and reduces confusion among project stakeholders. The recent standardization of UML 2.0 has further extended the language's scope and viability. Its inherent expressiveness allows users to model everything from enterprise information systems and distributed Web-based applications to real-time embedded systems.



Large-Scale Software Architecture: A Practical Guide using UML
By: Garland, Jeff; Anthony, Richard
Published by: John Wiley & Sons, Ltd

Software architecture is critical to the success of software development projects. Unfortunately, many projects are unsuccessful in their attempts to leverage architecture-based development, especially large -scale projects. Lost in a myriad of possible UML diagrams, project teams often resort to ineffective ad-hoc techniques. The purpose of this book is to enable software architects, their managers, and other development team members to become more effective in directing the course of large-scale software development projects. Written by two experienced architects that have worked in the trenches on many projects, this book provides practical advice for all software teams about developing and capturing critical software architectural concerns. more...

Ebook:click here



Design and Use of Software Architectures - Adopting and Evolving a Product-Line Approach
By: Jan Bosch

In the ever-changing world of software development, organizations are gradually realizing the need for an explicit software architecture for their systems. And software engineers are potentially faced with the challenge of developing multiple, inter-related systems whilst pressured by financial and lead-time constraints. It is thus essential to establish a well-defined design method in order to build high-quality, reliable, and easily maintainable individual or families of systems - the question is how to approach this? This book provides an achievable answer. The author proposes a method for designing software architectures, and product line architectures, which is based on his experience in industry and research, The first part of the book introduces the design method, examining its three key phases - functionality-based architecture design, architecture assessment and architecture transformation - in detail. The second half of the book explores the concept of software product lines, incorporating elements of architectural design, component-based software engineering and reuse. It takes you through the process of designing, developing and evolving a product-line approach, including the development of software architecture and components for the family, instantiation of family members and evolution of assets. It also examines the pros and cons of a number of organizational models that can be applied when putting a software product line approach in to practice. If you are a software architect or engineer involved in designing software systems architectures, this book will give you the resources you need for success.

  • features real-life case studies covering control and real-time systems, networking, and telecommunications industry examples to illustrate how the method and processes work in practice
  • provides a systematic approach that employs both qualitative and quantitative techniques for assessments
  • contains key chapters on approaches to component development, and use of object-oriented frameworks as components in software product lines
  • includes sections that can be read as stand-alone, depending on your level of knowledge and experience and your specific area of interest.


Dissecting a C# Application: Inside SharpDevelop

The developers who created SharpDevelop give you an inside track on application development with a guided tour of the source code for SharpDevelop. They will show you the most important code features and explain how you can use these techniques in your own projects. You will gain valuable experience of building an application on this scale, learning from the decisions, mistakes, problems and solutions that lead to the current version on SharpDevelop.

The SharpDevelop team will show you how to:

  • Build a highly modular application
  • Provide a flexible, extendable, customizable user interface
  • Manage the efforts of translators for efficient internationalization
  • Represent and manipulate text efficiently
  • Code search and replace functionality
  • Construct reusable controls
  • Implement a parser to provide syntax highlighting and auto-completion as users type
  • Use reflection to access information about .NET classes
  • Create a Windows Forms designer
  • Generate code programmatically

As Wrox press is no more, publishing rights to the book 'Dissecting a C# Application: Inside SharpDevelop' have been bought by Apress. Together with Apress, we have made the book available in digital form for free. The PDF file and the accompanying source code are available for download here: Download@Apress



Designing Enterprise Applications with the Java 2 Platform: Enterprise Edition

Describes a standard approach to designing multitier enterprise applications with the Java 2 Platform, Enterprise Edition. Rather than focus on individual technologies, this work looks at guidelines for distributing application functionality across tiers and choosing among design options within each tier. The material is accompanied by the documentation of a sample application which the authors hope will illustrate the broader issues of principles and technologies.


 Up
Standard in use
  • IEEE Std 1016-1987, IEEE Recommended Practice for Software Design Descriptions (ANSI)
  • IEEE Std 1016.1-1993, IEEE Guide to Software Design Description
 Up
Useful Web Resources

Handbook of software architecture: http://www.booch.com/architecture/index.jsp

Enterprise Architecture, Patterns and Practices from: Microsoft
The enterprise development section of the MSDN® Library contains Windows® Server System content, architectural guidance for systems built on the Windows platform, and solutions addressing common enterprise computing problems.

Software Architecture Topic in SEI

Software Architecture: An Annotated Bibliography

Software Architecture, in http://sunset.usc.edu/index.html

(Software) Architecture Resources of Gert Florijn

Software Architecture Resource Sites

(Software) Architecture Resources

Software architecture portal

Dunstan Thomas - Software architecture consulting services

Agile Modeling (AM) - is a practice-based methodology for effective modeling and documentation of software-based systems.

 Up
Created by beyondtest
Last modified 2007-03-07 09:09 AM
« August 2008 »
Su Mo Tu We Th Fr Sa
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

 
 

Powered by Plone

This site conforms to the following standards: