Real World Software Architecture

Real World Software Architecture is dedicated to providing information and experiences from the field of Software Architecture.



Subscribe with RSS or ATOM Add to Google

Links

  • Home Page
  • Real World Software Process Engineering
  • Suggested Reading
  • .NET Dev and Arch Collection
  • SEI Essays on SA
  • Software Architecture
  • Bredemeyer
  • wwisa
  • Product Line Engineering
  • PLEES
  • Software Product Lines
  • MSDN Architecture Center
  • patterns & practices






Thursday, December 27, 2007

Service Factory - Modeling Edition CTP (VS2008) Available

Summary (from download page)
The Web Service Software Factory: Modeling Edition (also known as the Service Factory) is an integrated collection of resources designed to help you quickly and consistently build WCF and ASMX Web services that adhere to well-known architecture and design patterns. These resources consist of models with code generation in the form of tools integrated with Visual Studio 2008 and patterns and architecture topics in the form of written guidance.

The Service Factory contains automation and guidance integrated into Visual Studio 2008 for building services. The core of the automation components is a Web services domain model. This domain model contains elements such as service contracts, operations, messages, and data contracts. This domain model manifests itself in the form of three integrated domain-specific languages (DSLs) that are used to model services: Service Contract Model, Data Contract Model, and the Host Model.

In addition to the Visual Studio automation facilities, the Service Factory also contains the relevant written guidance about building Web services from the December 2006 release. Some of these topics include architecture, message design, versioning, exception handling, and other useful patterns. For a full list of topics that are included, see the “Web Service Architecture” section in the documentation included with the Service Factory.

Get it here.
_

posted by tadanderson at 7:34 PM 0 comments

Eclipse Process Framework Process Mapping UML Profile for SPARX EA

This is a new UML Profile used to map and plan the contents of a custom built Eclipse Process Framework Plug-in.




Last spring we started putting a UML profile together for mapping content build in the RUP Builder and for content we planned on importing into Team Foundation Server's SharePoint process guidance sites using the Process Template Editor. The project stalled and by the time we got back to it we found ourselves using the EPF Composer.


The UML profile was repurposed for use with EPF Composer. The profile is being used to map out process content for a new repository for the State of Pennsylvania. Although we wish we could publish the content being compiled, we cannot due to copyrights on the material. We can however, publish the map of the content, that we used this UML profile to build.


You can view a partial map of the content we are compiling from the download page on this site. It will give you an idea of how the profile can be used in the real world.


The download includes the following files:

  • EPF PMP Getting Started.eap- A start up project used to show some of the features in the EPF PMP Readme.doc.

  • EPF PMP Readme.doc- How to get started and an overview of the features.

  • EPF Process Mapping Profile Images.xml- Images to enable the profile. This is explained in greater detail in the EPF PMP Readme.doc.

  • EPF Process Mapping Profile.xml- The profile that needs imported. This is explained in greater detail in the EPF PMP Readme.doc.

  • EPF Process Mapping UML Profile.rtf- This document provides an overview of the Eclipse Process Framework UML Process Mapping Profile. This document was generated by SPARX EA.


We have this available as one of the downloads on this site.
_

posted by tadanderson at 5:17 AM 0 comments

Wednesday, December 26, 2007

New Real World Software Process Engineering Web Site

The new blog category "Software Process Engineering" on this blog site is dedicated to news and updates that take place on our new web site "Real World Software Process Engineering".

Real World Software Process Engineering is dedicated to providing information, tools, and experiences from the field of Software Process Engineering.

The site will house articles, tools, applications, references, and other downloads related to Software Process Engineering and the disciplines found in a normal Software Development Life Cycle (SDLC). They include, but are not limited too, Business Modeling, Requirements, Architecture, Analysis & Design, Implementation, Testing, Deployment, Configuration and Change Management, Project Management, and Environment.

This new site was created because over time there has been reason to upload files related to the blogs and they have become scattered and unmanageable.

More recently there has been a need to upload some new downloads that may need to be updated over time. This site was created to allow for better management of uploads as well as better communication channels related to the uploads.

We currently have 4 downloads available in the Registered Members area:

» Eclipse Process Framework (EPF) Process Mapping UML Profile

» Product Line Engineering (PLE) UML Modeling Profile in Sparx Enterprise Architect (EA)

» WAE UML Stereotypes, Stencils, Templates, and ASP.NET Patterns for Visio

» Smart Client / Winform Encryption Tool

Each download has more information available in the Registered Member's download area.

The the media and tools providing on the site are related to the Software Development Processes listed below.

Software Development Processes

Agile- Small teams / small projects at the same location
» XP
» Agile-Model Driven Development
» SCRUM
» Essential Unified Process (EssUP)
» OpenUP
» DSDM

Formal - High Ceremony Striving for Higher Predictability
» Unified Process (UP)
» Rational Unified Process (RUP)
» Enterprise Unified Process (EUP)
» Product Line Engineering (PLE)

Frameworks
» Microsoft Solutions Framework
» Zachman

You can check out the new site here.

posted by tadanderson at 8:53 PM 0 comments

New Real World Software Process Engineering Web Site

The new blog category "Software Process Engineering" on this blog site is dedicated to news and updates that take place on our new web site "Real World Software Process Engineering".

Real World Software Process Engineering is dedicated to providing information, tools, and experiences from the field of Software Process Engineering.

The site will house articles, tools, applications, references, and other downloads related to Software Process Engineering and the disciplines found in a normal Software Development Life Cycle (SDLC). They include, but are not limited too, Business Modeling, Requirements, Architecture, Analysis & Design, Implementation, Testing, Deployment, Configuration and Change Management, Project Management, and Environment.


This new site was created because over time there has been reason to upload files related to the blogs and they have become scattered and unmanageable.

More recently there has been a need to upload some new downloads that may need to be updated over time. This site was created to allow for better management of uploads as well as better communication channels related to the uploads.



We currently have 4 downloads available in the Registered Members area:

» Eclipse Process Framework (EPF) Process Mapping UML Profile

» Product Line Engineering (PLE) UML Modeling Profile in Sparx Enterprise Architect (EA)

» WAE UML Stereotypes, Stencils, Templates, and ASP.NET Patterns for Visio

» Smart Client / Winform Encryption Tool

Each download has more information available in the Registered Member's download area.

The the media and tools providing on the site are related to the Software Development Processes listed below.



Software Development Processes

Agile- Small teams / small projects at the same location
» XP
» Agile-Model Driven Development
» SCRUM
» Essential Unified Process (EssUP)
» OpenUP
» DSDM

Formal - High Ceremony Striving for Higher Predictability
» Unified Process (UP)
» Rational Unified Process (RUP)
» Enterprise Unified Process (EUP)
» Product Line Engineering (PLE)

Frameworks
» Microsoft Solutions Framework
» Zachman

You can check out the new site here.

posted by tadanderson at 8:53 PM 0 comments

Saturday, December 22, 2007

Free Microsoft Press LINQ E-Book and ASP.NET AJAX and Silverlight 1.0 Sample Chapters

Microsoft has posted a free LINQ E-Book and ASP.NET AJAX and Silverlight 1.0 Sample Chapters. The LINQ book includes all the chapters in the book except the appendix. Definitely worth checking out.

Get them on Amazon here:
Introducing Microsoft LINQ by Paolo Pialorsi and Marco Russo
Introducing Microsoft ASP.NET AJAX (Pro - Developer) by Dino Esposito
Introducing Microsoft Silverlight(TM) 1.0 (PRO-Developer) by Laurence Moroney

Go here and log in and register to see the screen below.


posted by tadanderson at 10:06 PM 0 comments

Thursday, December 20, 2007

MVP Bundle Screencast - WCSF v2.0 Model View Presenter Design Pattern

David has posted a new MVP Bundle Screencast on the WCSF v2.0 Model View Presenter Design Pattern.

Check it out here
_

posted by tadanderson at 5:43 AM 0 comments

Wednesday, December 19, 2007

Tafiti goes Shared Source

Info from the Windows Live Dev News Site:

Microsoft released the Tafiti Search Visualization source code to CodePlex, which means any developer can download, modify, and resell the code (see MS-PL License for all the details).

Tour the demo site (see the original)Download the Tafiti code (read deployment guide).

Read more on Angus Logan's blog.
_

posted by tadanderson at 4:31 AM 0 comments

Friday, December 14, 2007

New Video on the New Features in the Entity Data Model Tools December CTP

Microsoft has posted a new Camtasia video that demonstrates a number of important new features in the Entity Data Model Tools December CTP. It is worth checking out.

Download it here.

posted by tadanderson at 5:52 AM 0 comments

Thursday, December 13, 2007

Next version of Web Client Software Factory (WCSF)

Blaine has posted an update on the next version of the Web Client Software Factory (WCSF). It will include support for Visual Studio 2008.

It also includes a ton of bundles. They are planning a release in Jan. or Feb.

Check out all the features here.

posted by tadanderson at 7:10 AM 0 comments

Wednesday, December 12, 2007

Software Architecture for Software-Intensive Systems: New Architecture Web Site Coming December 15

From the SEI Web Site:
The SEI is launching a new software architecture web site on December 15. It will have a new look, new content, and new features to make this a one-stop community-oriented resource for software architecture. Content on the site will be arranged in easy-to-find categories. If you're a software architecture practitioner, acquirer, researcher, or educator, new menus on every page will help you find what you're looking for fast. If you want to browse to the SEI's architecture body of knowledge, the new "Architects" menu is for you. If you want to contribute to the architecture body of knowledge, the new "Contributors" menu is for you. And, if you are a beginner and want to learn about software architectures, the new "Learners" menu is for you. A new site map will lay it all out.

This new site will be your site. We've made feedback easier, on every page, and we hope you'll take advantage of it.

Software Architecture for Software-Intensive Systems web site here.

posted by tadanderson at 12:02 PM 0 comments

Synthesis-Based Software Architecture Design

This is a very good thesis on Synthesis-Based Software Architecture Design. I have pasted the Chapter titles and the abstract from the paper below.

Chapter 1 - Introduction
Chapter 2 - On the Notion of Software Engineering: A Problem Solving Perspective
Chapter 3 - Classification and Evaluation of Software Architecture Design Approaches
Chapter 4 - Architecture Synthesis Process
Chapter 5 - Balancing Architecture Implementation Alternatives
Chapter 6 - Conclusions


Abstract:
With the introduction of the first programming languages in the late 1940s and the early 1950s, software development has undergone several evolutionary changes, which provided opportunities for building larger and more complex software systems. This increased potentiality was soon followed by the realization that software is difficult to deliver on time, within the available budget and with the required quality factors such as reliability, stability and adaptability. To cope with this so-called software crisis an engineering approach to software development was proposed.

Many different attempts, ranging from improved programming languages to CASE tools, have been carried out during the last three decades to tackle the problems in software engineering that directly or indirectly lead to the symptoms of the software crisis. In the last decade, software architecture has gained a wide popularity as a fundamental concept in software engineering to support software quality factors. Software architecture embodies the overall structure of the system and likewise has a substantial impact on the quality aspects of the whole software system. Notwithstanding these various attempts developing high quality software systems still remains a difficult task.

To grasp the essence of software engineering and understand its inherent problems, this thesis provides a thorough and critical analysis of software engineering from abroad perspective. To this aim, software engineering is considered as a problem solving process whereby software solutions are produced for given technical problems. To explicitly reason about the concepts of problem solving, this thesis provides a model for problem solving that may be used for analyzing various problem-solving activities. In this thesis, this model is used for analyzing problem solving in software engineering and comparing it with the more mature problem solving disciplines of philosophy and traditional engineering, such as electrical engineering, mechanical engineering, civil engineering and chemical engineering. This conceptual and comparative analysis has resulted in a set of useful lessons and concepts that are essential for providing high-quality software but notably are missing in current software engineering practices.

A basic concept that is derived from our analysis process that may be essential for software engineering, is the concept of synthesis. Synthesis is a well-known problem solving process that is broadly and successfully applied in the traditional engineering disciplines. It includes explicit processes for technical problem analysis, solution domain analysis and alternative space analysis. In the technical problem analysis process, technical problems are identified and structured into loosely coupled sub-problems that are first independently solved and later integrated in the overall solution. In the solution domain analysis process, solution abstractions are extracted from the corresponding solution domains. In the alternative space analysis process different alternative solutions are searched and evaluated against explicit quality criteria.

In current software engineering practices the synthesis concept is not known and the three processes are not fully integrated. Since synthesis is a useful concept in mature problem solving it is worthwhile to integrate this in software engineering.

This thesis focuses on the software architecture design phase and attempts to improve the understanding on this subject by classifying and evaluating the current state-of-the-art software architecture design approaches. It appears that these approaches derive solution abstractions basically from the requirement specifications and the management of design alternatives is an implicit process. This causes a number of problems such as the difficulty in finding stable abstractions, difficulty in leveraging the architecture boundaries and poor semantics of the architectural components.

To address the problems of the state-of-the-art, the concept of synthesis is applied to software architecture design, resulting in a novel approach that we termed synthesis based software architecture design. In this approach, the architectural abstractions are derived from the solution domains and the design alternatives are explicitly depicted and managed. This approach is illustrated with the design of an atomic transaction architecture for a distributed car dealer information system.

The architecture design can be realized by applying object-oriented analysis and design methods in which a set of heuristic rules are provided to guide software engineers to analyze, design and implement object-oriented software systems. This thesis introduces a new formalism, called design algebra, which provides techniques for explicitly depicting the set of architecture implementation alternatives, prioritizing these alternatives and selecting these based on quality factors. The techniques represented by design algebra can be integrated with the current object oriented analysis and design methods and have been implemented as a set of tools.

Get it here.

There are also some summaries of Synthesis-Based Software Architecture Design in the form of chapters available here and here

_

posted by tadanderson at 6:24 AM 0 comments

Monday, December 10, 2007

ASP.NET 3.5 Extensions Preview Updated Release Available

The ASP.NET 3.5 Extensions Preview is a preview of new features being added to ASP.NET 3.5 and ADO.NET in Visual Studio 2008.

Overview from MSDN Site
The ASP.NET 3.5 Extensions Preview is a preview of new functionality being added to ASP.NET 3.5 and ADO.NET. The release includes an ASP.NET MVC, ASP.NET Dynamic Data, Silverlight controls for ASP.NET, ADO.NET Data Services, Entity Framework runtime, and new features for ASP.NET AJAX.

For some good links to Quick Starts, videos, forums, and samples, check out Brad's blogs here and here.

Download the ASP.NET 3.5 Extensions Preview here.
_

posted by tadanderson at 4:12 AM 0 comments

Sunday, December 09, 2007

The New Iteration: XAML transforms the collaboration between Designers and Developers

A new white paper has been released on windowsclient.net, "The New Iteration: How XAML transforms the collaboration between Designers and Developers in Windows Presentation Foundation."

It is a very cool white paper that explains how Blend and Visual Studio 2008 bring a new iteration of development into the process made up of designers and developers using XAML. It is definately worth checking out.

Read it on line here.

Download the PDF here.
_

posted by tadanderson at 9:20 AM 0 comments

Visual Studio 2008 Linq Samples and the Sample Query Explorer

If you haven't had the chance to check out the linq Samples that come with Visual Studio 2008, I'd suggest you do. It is a great way to get familiar with the linq syntax. Microsoft has included a Sample Query Explorer that allows you to see the code and the results of the code. It also organizes the examples based on attributes in the code.

They are located at:
C:\Program Files\Microsoft Visual Studio 9.0\Samples\1033

I have provided 2 screen shots below.

The Code:


Click here for a larger image.

The Sample Query Explorer:


Click here for a larger image.

posted by tadanderson at 6:49 AM 0 comments

Thursday, December 06, 2007

Microsofts Volta: Web Development Using Only the Materials in the Room

Overview from the Volta site:
The Volta technology preview is a developer toolset that enables you to build multi-tier web applications by applying familiar techniques and patterns. First, design and build your application as a .NET client application, then assign the portions of the application to run on the server and the client tiers late in the development process. The compiler creates cross-browser JavaScript for the client tier, web services for the server tier, and communication, serialization, synchronization, security, and other boilerplate code to tie the tiers together.

Developers can target either web browsers or the CLR as clients and Volta handles the complexities of tier-splitting for you. Volta comprises tools such as end-to-end profiling to make architectural refactoring and optimization simple and quick. In effect, Volta offers a best-effort experience in multiple environments without any changes to the application.

Check it out here. BUT before you do, check out Arnon's Blog, and find out why Volta == Stupid or Not so Bright.
_

posted by tadanderson at 8:46 AM 0 comments

Monday, December 03, 2007

Documenting Software Architectures: 4+1, Views and Beyond, Viewpoints and Perspectives, and Book Links

I am currently in the middle of implementing a process repository on my current assignment. Most of the material I am using is copyright protected, so I cannot publish it. I have created some supporting material that is simply links to material so I can post them. I have cut and pasted the results of the Architectural Documentation references below.

The “4+1” View Model of Software Architecture

Paper

  • The “4+1” View Model of Software Architecture

Article

  • Introducing the 4+1 view model

Views and Beyond (V&B)

Web Site

  • Architecture Documentation

Papers

  • Software Architecture Documentation in Practice: Documenting Architectural Layers
  • Comparing the SEI's Views and Beyond Approach for Documenting Software Architectures with ANSI-IEEE 1471-2000

Viewpoints and Perspectives

Web Site

  • Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

Papers, Articles, and Presentations

  • Viewpoints and Perspectives Library

Suggested Books on Documenting Software Architecture

Software Architecture in Practice (2nd Edition) (The SEI Series in Software Engineering) by Len Bass, Paul Clements, and Rick Kazman

Essential Software Architecture by Ian Gorton

Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing by Frank Buschmann, Kevlin Henney, and Douglas C. Schmidt


Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives by Nick Rozanski and Eóin Woods

Documenting Software Architectures: Views and Beyond by Paul Clements, Felix Bachmann, Len Bass, and David Garlan

The Object Primer 3rd Edition by Scott W. Ambler

Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) by Craig Larman


posted by tadanderson at 7:44 PM 0 comments

Software Architecture Links: ABC, QAWs, ADD, ATAM, CBAM, ARID, and Books

I am currently in the middle of implementing a process repository on my current assignment. Most of the material I am using is copyright protected, so I cannot publish it. I have created some supporting material that is simply links to material so I can post them. I have cut and pasted the results below.

The Architecture Business Cycle

Web Site

  • Software Architecture for Software-Intensive Systems

Paper

  • Categorizing Business Goals for Software Architectures

Article

  • The Architecture Business Cycle Revisited: A Business Goals Taxonomy to Support Architecture Design and Analysis

Software Architecture Life-Cycle Integration

Papers

  • A Life-Cycle View of Architecture Analysis and Design Methods
  • Integrating Software-Architecture-Centric Methods into the Rational Unified Process
  • Integrating Software-Architecture-Centric Methods into Extreme Programming (XP)
  • SEI Architecture Analysis Techniques and When to Use Them

Article

  • Rethinking the Software Life Cycle

Presentation

  • Using Architecture-Centric Methods within Plan Driven and Agile Software Development Processes

Quality Attribute Workshops

Web Site

  • Quality Attribute Workshops

Papers

  • Quality Attributes
  • Quality Attribute Workshops (QAWs), Third Edition
  • Quality Attributes and Service-Oriented Architectures
  • Integrating the Quality Attribute Workshop (QAW) and the Attribute-Driven Design (ADD) Method
  • Quality-Attribute-Based Economic Valuation of Architectural Patterns
  • Quality Attribute Design Primitives
  • Analyzing Enterprise JavaBeans Systems Using Quality Attribute Design Primitives

Presentation

  • Quality Attribute Workshop

Attribute-Driven Design (ADD)

Web Site

  • Attribute-Driven Design Method

Papers

  • Attribute-Driven Design (ADD), Version 2.0
  • A Practical Example of Applying Attribute-Driven Design (ADD), Version 2.0

Architecture Tradeoff Analysis Method (ATAM)

Web Site

  • The Architecture Tradeoff Analysis Method (ATAM)

Papers

  • ATAM: Method for Architecture Evaluation
  • Evaluating a Service-Oriented Architecture
  • Integrating the Architecture Tradeoff Analysis Method (ATAM) with the Cost Benefit Analysis Method (CBAM)
  • Making Architecture Design Decisions: An Economic Approach
  • Applicability of General Scenarios to the Architecture Tradeoff Analysis Method

Article

  • Integrating Architecture Methods: The Case of the ATAM and the CBAM

Cost-Benefit Analysis Method (CBAM)

Web Site

  • Cost-Benefit Analysis Method (CBAM)

Papers

  • Making Architecture Design Decisions: An Economic Approach
  • Using Economic Considerations to Choose Among Architecture Design Alternatives

Presentation

  • Assessing the Economic Impacts of Architectural Decisions

Active Reviews for Intermediate Designs (ARID)

Web Site

  • Active Reviews for Intermediate Designs (ARID)
  • Software Architecture Evaluations

Papers

  • Active Reviews for Intermediate Designs

Suggested Books on Software Architecture

Software Architecture in Practice (2nd Edition) (The SEI Series in Software Engineering) by Len Bass, Paul Clements, and Rick Kazman

Evaluating Software Architectures: Methods and Case Studies

by Paul Clements, Rick Kazman, and Mark Klein
Essential Software Architecture by Ian Gorton

Pattern-Oriented Software Architecture Volume 1: A System of Patterns

by Frank Buschmann, Regine Meunier, Hans Rohnert, and Peter Sommerlad

Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing
by Frank Buschmann, Kevlin Henney, and Douglas C. Schmidt

Patterns of Enterprise Application Architecture
by Martin Fowler

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
by Gregor Hohpe

Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives
by Nick Rozanski and Eóin Woods

Documenting Software Architectures: Views and Beyond
by Paul Clements, Felix Bachmann, Len Bass, and David Garlan

posted by tadanderson at 4:13 PM 0 comments

Previous Posts

  • DevOps: A Software Architect's Perspective Book Re...
  • Scaled Agile Framework (SAFe) LiveLessons Video Se...
  • Bulletproof Android: Practical Advice for Building...
  • Swift for Programmers Book Review
  • Security in Computing (5th Edition) Book Review
  • Swift in 24 Hours, Sams Teach Yourself Book Review
  • Sparx Systems Releases Enterprise Architect 12
  • Learning Swift Programming Book Review
  • Android Security Internals: An In-Depth Guide to A...
  • Adaptive Code via C#: Agile coding with design pat...



Archives

  • December 2005
  • January 2006
  • February 2006
  • March 2006
  • April 2006
  • June 2006
  • August 2006
  • October 2006
  • November 2006
  • December 2006
  • January 2007
  • February 2007
  • March 2007
  • April 2007
  • May 2007
  • June 2007
  • July 2007
  • August 2007
  • September 2007
  • October 2007
  • November 2007
  • December 2007
  • January 2008
  • February 2008
  • March 2008
  • April 2008
  • May 2008
  • June 2008
  • July 2008
  • August 2008
  • September 2008
  • October 2008
  • December 2008
  • January 2009
  • February 2009
  • March 2009
  • April 2009
  • May 2009
  • June 2009
  • July 2009
  • August 2009
  • September 2009
  • October 2009
  • November 2009
  • December 2009
  • January 2010
  • February 2010
  • March 2010
  • April 2010
  • May 2010
  • June 2010
  • August 2010
  • September 2010
  • October 2010
  • November 2010
  • December 2010
  • January 2011
  • February 2011
  • March 2011
  • April 2011
  • May 2011
  • June 2011
  • July 2011
  • August 2011
  • September 2011
  • October 2011
  • November 2011
  • December 2011
  • January 2012
  • February 2012
  • March 2012
  • April 2012
  • May 2012
  • June 2012
  • July 2012
  • August 2012
  • September 2012
  • October 2012
  • November 2012
  • December 2012
  • January 2013
  • February 2013
  • March 2013
  • April 2013
  • May 2013
  • June 2013
  • July 2013
  • August 2013
  • September 2013
  • October 2013
  • November 2013
  • December 2013
  • January 2014
  • February 2014
  • March 2014
  • April 2014
  • May 2014
  • June 2014
  • July 2014
  • August 2014
  • September 2014
  • October 2014
  • December 2014
  • February 2015
  • March 2015
  • April 2015
  • June 2015
  • July 2015
  • September 2015

Powered by Blogger