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






Sunday, September 30, 2007

MSDN Events Online Webcast Portal

The MSDN Events Online Webcast Portal is a very cool portal with information on some very cool wecast series by MSDN.

It currently has info on, and links to, the following webcast series:
  • ASP.NET Soup To Nuts
  • C# Soup To Nuts
  • WPF Soup To Nuts
  • VB.NET Soup To Nuts
  • ADO.NET Step By Step
_

posted by tadanderson at 9:34 AM 0 comments

Saturday, September 29, 2007

Web Client Software Factory- Validation Guidance Bundle

What is the concept (from CodePlex)?
Within a traditional web application, data that is entered into a web page needs to be validated. This validation can take several forms including business rules validation, schema validation (length, range, format, type etc.), and malicious data filtering (SQL Injection, Cross-site scripting, etc.). Additionally this validation can be performed in multiple locations including on the client, on the server, or on both. In some scenarios these validations need to be reused throughout the application.

In an AJAX style application, there is an additional need to allow server side validation to be accessible from the browser in order to provide a more responsive user experience.

ASP.NET Validators allow you to invoke validation rules that execute code on the client with Javascript and on the server when the page is submitted. The ServerSideValidationExtender control included in this bundle allows server side ASP.NET Validators to be invoked from the client without requiring the page to be submitted, this is known as partial-postback. This extender can also be combined with the Property Proxy Validator included with the Enterprise Library Validation Application Block (VAB). This allows invoking VABValidators on the server without requiring the page to be submitted.

What is in the bundle (from CodePlex)?
Validation QuickStart:
source code to demonstrate how to improve UI responsiveness for validation and reuse of validation rules across pages.

Validation Application Block from Enterprise Library 3.1: Validation Application Block binary.

AJAXControlToolkit.WCSFExtensions.dll: Contains the ServerSideValidationExtender which invokes ASP.NET validators including the Enterprise Library PropertyProxyValidator via AJAX

Acceptance Tests: Manual tests that can be executed to walk you through the Quickstart functionality.

Documentation: Documentation explaining Validation Guidelines (Security, Schema, and so on) the Quickstart, and how to use the extender.

Check out a video on it here.

Read more about it and download it here.
_

posted by tadanderson at 8:46 PM 0 comments

Thursday, September 27, 2007

Architecture and the Quality Attributes Modifiability and Extensibility

An Architecture has many Quality Attributes (non-functional requirements). Some of them include Reliability, Usability, Security, Performance, Scalability, Extensibility, Testability, and Modifiability. For some good reads on Quality Attributes check out the following:

Quality Attributes
Quality Attributes and Service-Oriented Architectures
Quality Attribute Workshops

I have an example of a Software Architectural Synthesis Factor Table here, that I posted some time ago. I no longer use this form of template. I use SPARX EA to model the non-functional requirements. I have a template here that shows the default non-functional requirements I start with. I add too or delete from them accordingly. This blog explains why I have moved away from static templates.

I find that although Modifiability and Extensibility are two of the most important Quality Attributes, they are often overlooked. On my last project Modifiability and Extensibility were the most important Quality Attributes that came out of our ATAM-CBAM analysis.

We were designing several applications made of modules that had a lot of commonality at the module level. The second application could reuse 80% of the applications modules if architected correctly. There were 6 additional applications being built that could also take advantage of other application's modules.

Although it sounds like a no brainer, it was not an easy sell to use Product Line Engineering, common patterns of distributed architectures, and the Microsoft CAB to accomplish the high degree of Modifiability and Extensibility required. It goes back to my 80/20 rule of architecting, planning, and designing 80% of your time and you will only need 20% of your time for coding. The client want zero planning, but after a lot of back and forth, we were able to get the time needed to do it right. The payoff was tremendous.

SEI has put a new paper out on Modifiability tactics. It includes many of the patterns we used on the architecture. You can check it out here.

posted by tadanderson at 6:51 AM 0 comments

Tuesday, September 25, 2007

Agile Development != Low Ceremony && The Movement Needs to Die

A search on Google for Agile Development returns about 4,940,000 hits. Everything is Agile now. Businesses, project management styles, databases, legacy system interface development, architecture, enterprise architecture, enterprises, testing, executives, and the list goes on and on and on and on. Yet the same teams that stank at making software before they were agile, still stink at making software. They just stink at it sooner in the process.

The teams of gurus that decided to put the Agile Manifesto in place, can make software just as well with a high ceremony RUP, or even the dreaded waterfall, as they can smashed into a room the size of a closet with whiteboard wallpaper doing it XP style.

XP was one of the silliest movements I have ever seen. Hey, look at us, we can do software blind folded. It's like Tiger Woods taking me on with only a 7 iron. He will still kick my butt. It seemed like a movement to make things challenging for the pros who got bored doing it the easy way.

I am not saying being agile is bad. What is bad is the branding of agile as something that is new or different. Some new techniques that are useful came out of the movement, but it is time for the movement to die. Please die!!!!!!!

Just like you can't take the RUP and make a team of inexperience developers make good software, you can't take that team and expect them to make good software using XP. Odds are that would just confuse everyone to the point that they don't know what is going on in the process as well as with the product they are trying to develop.

So I guess my point is, processes have not changed the end result of what makes good software development happen. They have renamed things, moved them around, removed things, and added things, but in the end it is the team that knows what it is doing that gets the job done. That includes knowing how to elicit requirements, document the requirements in a traceable way, knowing the patterns that are common to the domain issues and are available in the given technology in order to put together a solid architecture, how to do unit testing or TDD the right way, how to have some sense of pride in developing bug free software, they know how to communicate, they look out for the customers best interest even when it will tick the customer off, they also know what the goal of the project is which enables them to set the proper level of ceremony , and most importantly they realize that nothing is invented, it is only discovered, especially on a software project.

Of course the list is even greater than above, but the point is you either know how to do the tasks in the process right, or you don't. Just doing them is not good enough. So this agile attitude of "Since process activities don't work, let's get rid of them" does not do anything for the team that didn't know how to accomplish the tasks right in the first place. It just displaces their lack of skills to different task. I have seen tons overly bloated software out of agile teams because most teams use agile as an excuse to go right to code.

I personally have found the 80/20 split works best for me when I have an experienced team of developers. That is 80% planning, doing an architectural synthesis, and other prep work, and the 20% construction. Most places you find it a 20/80(60+20) split. 20% planning and thinking, 60% coding, and 20% fixing the code because they didn't plan enough. Teams now using agile methodologies wrong are doing 5% planning, 60% coding, and an additional 60% fixing. Making the project end up with 120% coding time.

They also end up with no roadmap to the code. That roadmap being documentation. Of course the teams that don't know what they were doing, ended up with bad roadmaps anyway, so who cares if you don't have one when you are done.

If you have been doing RUP, UP, or even PLE (Product Line Engineering) right, you have always been agile because you have taken the time to create an architecture that allows for it. A lot of the companies I talk to today do not understand that an agile process is only as agile as your architecture allows it to be. So you ask what are these teams doing that don't need to create an official architecture? They are golfing with a 7 iron. They are good enough and have gained enough experience to be able to build an architecture without the entire blue print. That does not work for the average team. They need the blue print.

What you will find is that the average developer can follow a well done blue print, but very few can read minds. And no, talking about it in little groups with your thoughts on an index card and then all running back to the same room where you can't think straight unless your head phones are good enough to drowned out the noise does not add value.

The blue print also adds value the modifiability of the project, meaning it can have a healthy maintenance phase. A project without the proper blue print is a legacy application the day it is delivered. I don't care if you have tests around the whole thing or not.

Processes are tailored for a project. Always being low ceremony does not work. Low ceremony does not have anything to do with being agile. Agile is an enabled state that is only accomplished through experience. It can be learned, but absolutely not by doing less.

posted by tadanderson at 6:39 PM 1 comments

Sunday, September 23, 2007

Cool Links III- .NET 3.0, 3.5, Acropolis, TFS, AJAX, Visual Studio 2008, CAB, WPF, Silverlight, WCF, SQL Server 2008

I posted this set of links and this set of links after that a few months ago. Here is another list. There has been a ton of new info to keep up with.

Silverlight Enterprise Deployment Guide
Sharing Windows Mobile Ink with the Desktop - Compact Framework
patterns & practices Practices Checker for ASP.NET Applications
Programming Silverlight 1.0 with C# - Photo Carousel (Part 3)
Silverlight Demos
LINQPad (Beta)
xUnit.net - New Unit Testing Framework Based on NUnit
Scott Hanselman's Computer Zen - Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows
BizTalk Server2006 R2 Capabilities
Understanding BizTalk Server 2006
BizTalk Server 2006 R2 Help
MSDN Blog Postings Announcing the Framework MasterClass Webcast Series!
Everyday Productivity Education (EPE) Microsoft IT Showcase
Silverlight Video Training Nuggets
Brad Abrams : MySilverlightTV on .NET Framework 3.5 Beta2
ADO.NET Entity Framework - Bringing Together A Few Previous Posts
Andrew Arnott : The WCF subset supported by NetCF
Nice ASP.NET 3.5 and Silverlight Demo Application
Updated: List of AJAX Automated Testing and Debugging Tools - Dan Wahlin's WebLog
Getting Started with Windows Communication Foundation
A low-level Look at the ASP.NET Architecture
Silverlight V1.1: The Downloader and Images
A Ton of ASP.NET 2.0 Data Access Tutorials
New Silverlight Links
Understanding ASP.NET Web Parts
New Acropolis Expense Sample Overview
Snooping WPF applications
dasBlonde - WCF Webcast Series
The Connected Framework Rules Team Blog
Silverlight Tutorials
Free Microsoft e-learning on SQL Server 2008
SQL Server 2008 Videos, Webcasts, Courses, Datasheets, and Downloads
Microsoft Surface .... Big *ss Table

Visual Studio 2005 Team Foundation Server Power Tools
Teams WIT Tools
Mindmap for VSTS Resources
Visual Project Planning and Reporting
Team System Architecture Edition Power Tools
Visual Studio Accelerate Webcast Series

OpenUP and the Eclipse Process Framework
Yet another EssUP (Essential Unified Process) Letdown, No Eclipse Process Framework Plug-in in sight.
if(Money == RUP $$$ == IBM RMC == Cash){Your Golden}else{Go OpenUP};

Governing for Enterprise Security (GES) Implementation Guide Available
A Template for a Wiki-based Software Architecture Document (SAD)
CrossTalk: The Journal of Defense Software Engineering
Democratizing the Cloud
Thoughts about Multi-Master Replication of Tree-Structured Data
A Framework for Software Product Line Practice, Version 5.0 is Available!!!!!
A First Look at SEI's Architecture Expert Design Assistant (ArchE)
Service Oriented Architecture (SOA) in the Real World: Free Book from Microsoft
Microsoft Office Live eBook on Build a Web site That Sells 1.0
Cutting up the Mona Lisa with Usability and Industry Standards

Repository Factory Guidance Package Code Walkthrough Screencast
Chain of Responsibility Pattern - Builder Pattern - Fluent Interfaces
Contextual Autocomplete Guidance Bundle and ContextSensitiveAutoCompleteExtender Control
LINQ To SQL As Replacement To Data Access Guidance Package
Create Data Access Layer Using Repository Factory Guidance Package Screencast Part II Available
Generating Data Access Layer in WCSF Using WSSF Data Access Guidance Package
Model-View-Presenter Screencast

Microsoft Codename "Astoria" - Sept 2007 Community Technology Preview Available
MSDN Office Developer Center – Just Published (9/1/2007 – 9/15/2007)
When will Microsoft Sew their Nose Back On???
Microsoft Windows Communication Foundation (WCF) Line-of-Business (LOB) Adapter SDK Available
The Complete C# Language Specification Version 3.0 Download
patterns & practices April 2007 DVD is Available for Download Again
Microsoft ASP.NET Futures (July 2007) Available
patterns & practices Upcoming Releases

10 Awesome Firefox Plugins and Extensions for Developers and Bloggers
60 Quality AJAX Resources and Tutorials - Software Developer

posted by tadanderson at 6:54 AM 0 comments

patterns & practices Practices Checker for ASP.NET Applications

patterns & practices Practices Checker (Overview from site)
patterns & practices Practices Checker is a tool that helps you verify your applications against the patterns & practices performance recommendations for ASP.NET applications.

Usage Scenarios (from site)
  • User Practices Checker to help you perform a manual code inspection by analyzing your application for potential coding and configuration settings that do not adhere to the patterns & practices ASP.NET Performance Checklist.
  • Extend Practices Checker by allowing additional checklists to be created and checked.
  • Developers can utilize built in search routines to search intermediate language, static text files and .configuration files for specific code patterns or settings.

Check out a video on it here.

Download it here.

_

posted by tadanderson at 5:43 AM 0 comments

Thursday, September 20, 2007

xUnit.net - New Unit Testing Framework Based on NUnit

A New Unit Testing Framework Based on NUnit.

David has the low down on this.... HERE

posted by tadanderson at 7:26 PM 0 comments

OpenUP and the Eclipse Process Framework

My journeys lately have been leading me down the EPF and OpenUP road. I wanted to put up a few links to some of the information that is available out there. That way I can just refer to this list and update it as I do future blogs related to the OpenUP and Eclipse Process Framework.

OpenUP Overview
OpenUP is a lean Unified Process that applies iterative and incremental approaches within a structured lifecycle. OpenUP embraces a pragmatic, agile philosophy that focuses on the collaborative nature of software development. It is a tools-agnostic, low-ceremony process that can be extended to address a broad variety of project types. (This description is taken from this article, which is a great overview of the OpenUP.)

Eclipse Process Framework
The Eclipse Process Framework aims at producing a customizable software process engineering framework.

EPF Getting Started (The top two recorded presentations are pretty good)
EPF Downloads
EPF Developer Resources

Free Process Plug-ins Available

  • OpenUP (Check out OpenUP, XP, and SCRUM here - http://www.epfwiki.net/ )
  • DSDM (http://www.dsdm.org/ )
  • XP
  • SCRUM
  • AgileEA (http://www.agileea.com/ )

posted by tadanderson at 6:58 PM 0 comments

Contextual Autocomplete Guidance Bundle and ContextSensitiveAutoCompleteExtender Control

Overview from the PnP site:

The Microsoft Patterns & Practices Team has released the Contextual Autocomplete Guidance Bundle, which contains guidance on enhancing the UI responsiveness of your ASP.NET Web Applications utilizing ASP.NET AJAX to provide Contextual Autocomplete functionality. This guidance is applicable for both WCSF and standard ASP.NET non-WCSF based solutions. The bundle includes a new ContextSensitiveAutoCompleteExtender Control that greatly simplifies the development experience.

A video and some info on the Contextual Autocomplete Guidance Bundle here.

More here.
_

posted by tadanderson at 6:02 PM 0 comments

Tuesday, September 18, 2007

Microsoft Office Visio 2007 WBS Modeler

Although I never use Visio anymore, I found this tool pretty cool. It adds a new dimension to those giant project plans my project managers like to create.

Brief Description (from MSDN site)
The Microsoft Office Visio 2007 WBS Modeler improves the project planning process by generating Project Plans from a Work Breakdown Structure (WBS) using a graphical representation of elements.

Overview (from MSDN site)
The Microsoft Office Visio 2007 WBS Modeler is intended to improve the project planning process by giving the opportunity to generate Project Plans from a Work Breakdown Structure (WBS) using a graphical representation of elements.

The Application enables effective integration of Microsoft Office Visio 2007 with Microsoft Office Project 2007. It provides an approach to visually and graphically create, edit and modify project plans using Visio 2007.

The WBS Modeler can either be used to visualize and edit an existing project plan or to create a new project plan in Microsoft Office Visio 2007 and then export it to Microsoft Projectl 2007 to carry out the next planning steps.

The Application enables effective integration of Microsoft Office Visio 2007 with Microsoft Office Project 2007. It provides an approach to visually and graphically create, edit and modify project plans using Visio 2007. The WBS Modeler offers the ability to manage project elements in a graphical view, as well as offering functionality to layout a WBS in MS Office Visio.

The WBS can be exported back to Microsoft Office Project 2007 into a new project plan. It is also possible to update an existing plan. However this update process is limited to deleting, renaming or adding elements. Moving elements is not supported at the current stage. To organize the structure within a WBS Modeler the outline code from Microsoft Office Project 2007 is being utilised.

Get it here.
_

posted by tadanderson at 6:44 PM 1 comments

Microsoft Codename "Astoria" - Sept 2007 Community Technology Preview Available

Microsoft Codename "Astoria" - Sept 2007 Community Technology Preview is available for Visual Studio 2008 Beta 2.

Brief Description (from download site)
The Microsoft Codename "Astoria" CTP toolkit enables developers to create and consume Data Services for the Web. These services expose application data over a simple HTTP interface that can be consumed by AJAX-based web sites and Rich Interactive Applications.

Overview (from download site)
The goal of Microsoft Codename Astoria is to enable applications to expose data as a data service that can be consumed by web clients within corporate networks and across the internet. The data service is reachable over regular HTTP requests, and standard HTTP verbs such as GET, POST, PUT and DELETE are used to perform operations against the service.

The payload format for the data exchanged with the service can be controlled by the client and all options are simple, open formats such as plan XML and JSON.

The use of web-friendly technologies make it ideal as a data back-end for AJAX-style applications, Rich Interactive Applications and other applications that need to operate against data that is across the web.

The first Astoria CTP is a dual release, making Astoria available in the form of downloadable bits that can be used to build data services that are entirely contained within a single computer or network and as an experimental online service that you can use to create online stores that are hosted by Microsoft and are accessible over the internet.

This September 2007 CTP is mostly a refresh of the past May 2007 that enables developers to use Astoria together with Visual Studio 2008 Beta 2 and the ADO.NET Entity Framework and Tools Beta 2.

Get it here.

Learn more at the team blog here.
_

posted by tadanderson at 6:31 PM 0 comments

MSDN Office Developer Center- Stuff Just Published

This is a great summary of the newest office information recently published by Microsoft.

posted by tadanderson at 6:18 PM 0 comments

Sunday, September 16, 2007

Governing for Enterprise Security (GES) Implementation Guide Available

SEI has posted a Governing for Enterprise Security (GES) Implementation Guide. It is a great read.

Below is an overview and the table of contents.

Overview (from SEI site)

Governing for enterprise security means viewing adequate security as a non-negotiable requirement of being in business. If an organization’s management does not establish and reinforce the business need for effective enterprise security, the organization’s desired state of security will not be articulated, achieved, or sustained. To achieve a sustainable capability, organizations must make enterprise security the responsibility of leaders at a governance level, not of other organizational roles that lack the authority, accountability, and resources to act and enforce compliance.

This implementation guide builds upon prior publications by providing prescriptive guidance for creating and sustaining an enterprise security governance program. It is geared for senior leaders, including those who serve on boards of directors or the equivalent. Throughout the implementation guide, we describe the elements of an enterprise security program (ESP) and suggest how leaders can oversee, direct, and control it, and thereby exercise appropriate governance.

Elevating security to a governance-level concern fosters attentive, security-conscious leaders who are better positioned to protect an organization’s digital assets, operations, market position, and reputation. This document presents a roadmap and practical guidance that will help business leaders implement an effective security governance program.

Table of contents (from guide)

Acknowledgments.. vii
Executive Summary.. ix
Abstract.. xi
1 Governing for Enterprise Security (GES).. 1

1.1 Governing for Enterprise Security Definitions.. 3
1.2 Eleven Characteristics of Effective Security Governance.. 5
1.3 Effective versus Ineffective Security Governance.. 7
1.4 Ten Challenges to Implementing an Enterprise Security Program.. 10
1.5 Conclusion.. 14
2 Defining an Effective Enterprise Security Program.. 16
2.1 Introduction.. 16
2.2 Roles.. 20
2.3 Responsibilities.. 21
2.4 Activities and Artifacts.. 26
2.5 Conclusion.. 33
3 Enterprise Security Governance Activities.. 34
3.1 Governance Approach.. 34
3.2 Governance Activities.. 34
3.3 Additional Considerations.. 59
3.4 Conclusion.. 61
3.5 Summary.. 62
Appendix A Board Risk Committee: Mission, Goals, Objectives, and Composition.. 64
Appendix B: Cross-Organizational Team (X-Team): Mission, Goals, Objectives, and
Composition.. 67
Appendix C: Roles and Responsibilities for an Enterprise Security Program.. 70
Author Biographies.. 83
Podcast Overview.. 84
Acronyms.. 86
Glossary.. 90
References.. 93

Get it here.
_

posted by tadanderson at 7:58 AM 0 comments

Saturday, September 15, 2007

Expression Blend 2 September Preview Available

September Preview Overview (From Blend Site)
We are pleased to present our next preview of Microsoft® Expression Blend™ 2. The Expression Blend 2 September Preview lets you create Microsoft® Silverlight™-based applications. Additionally, you can export content from Microsoft® Expression® Design in a format that you can use in Silverlight-based applications created in the Expression Blend 2 September Preview.

Find out what is new in this release and download it here.

posted by tadanderson at 7:59 PM 0 comments

Friday, September 14, 2007

Create Data Access Layer Using Repository Factory Guidance Package Screencast Part II Available

Overview from the site:

This screencast demonstrates using the Repository Factory Guidance Package to generate a data access layer for web and winform applications. Discusses differences between it and the older Data Access Guidance Package.

The screencast highlights:

  • Enable the Repository Factory Guidance Package
  • Add a Database Connection
  • Generate Business Entities from Tables in a Database
  • Generate Repository Classes for Business Entities
  • Generate CRUD Stored Procedures for each Table in the Database

Watch it here.
_

posted by tadanderson at 4:54 PM 0 comments

Tuesday, September 11, 2007

A Template for a Wiki-based Software Architecture Document (SAD)

Introduction (from the site)
This wiki was initially developed in the context of an Independent Study course of the Masters of Software Engineering program at Carnegie Mellon. The wiki contains a template for a wiki-based software architecture document, the documentation of the architecture of the Java Pet Store v1.4 application, and reflections. The goal of this academic exercise is to evaluate:
  • how well different architectural views and notations reflect what actually exists in implementation artifacts;
  • how can UML 2.0 be used to represent different architectural views;
  • pros and cons of using a wiki as the repository for architecture documentation.


Check it out here.
_

posted by tadanderson at 12:30 PM 0 comments

Sunday, September 09, 2007

Yet another EssUP (Essential Unified Process) Letdown, No Eclipse Process Framework Plug-in in sight.

For the longest time I was waiting for the EssUP TFS template promised by Ivar Jacobson International. I finally gave up (my frustrations and other's frustrations).

With my new assignment I am using the Eclipse Process Framework (EPF). I got my hopes up when I remembered reading that Ivar Jacobson International was going to build the EssUP for the EPF. That has obviously not happened.

I am not even going to bother contacting the company because I don't trust the feedback I get from them about their progress anymore.

I have to say I have never seen such a nonproductive movement before. At this point I don't think I would even trust their material. How can a company that can't implement a delivery process successfully, be trusted to deliver a process framework made to enable delivery?

posted by tadanderson at 5:56 AM 0 comments

BizTalk Server2006 R2 Capabilities

There is a new poster and new datasheet available for getting an overview of the BizTalk Server 2006 R2 Capabilities.

What’s new in BizTalk Server 2006 R2 (From Datasheet)?
BizTalk Server 2006 R2 includes new capabilities that address core challenges found in key vertical industries such as manufacturing and retail. These capabilities include native support for Electronic Data Interchange (EDI) and AS2 as well as RFID. BizTalk Server 2006 R2 features close alignment with the 2007 Microsoft Office system and Windows Vista®, including key .NET Framework technologies such as Windows Workflow Foundation and Windows Communication Foundation.

Check out the poster here.

Check out the datasheet here.
_

posted by tadanderson at 5:13 AM 0 comments

Saturday, September 08, 2007

Repository Factory Guidance Package Code Walkthrough Screencast Available

Repository Factory Guidance Package Code Walkthrough Screencast (Overview from Site)
This screencast walks one through the code generated by the Repository Factory Guidance Package for creating a data access layer in your applications.

The screencast highlights:
  • Microsoft.Practices.Repository Common Assembly
  • Repository Interfaces
  • RepositoryFactory Class
  • RepositoryFactory Configuration Section
  • Example of Using the New Classes.
Watch it here.

Download the Repository Factory from CodePlex Here.
_

posted by tadanderson at 7:44 PM 0 comments

SEI Component Formal Reasoning Technology (ComFoRT) Reasoning Framework 2.0 Available

Version 2.0 of ComFoRT is an Eclipse-based integrated development environment (IDE), which includes a syntax highlighting editor, a counterexample viewer, and integrated help and tutorials to simplify use.

What is ComFoRT? (From the SEI Site)
The Component Formal Reasoning Technology (ComFoRT) is a reasoning framework for predicting whether a system will satisfy its safety, reliability, and security requirements. In ComFoRT, these requirements are encoded as behavioral assertions that are verified automatically.

To determine whether these assertions hold for a system, ComFoRT uses model checking technology—a collection of algorithms that verify whether a model of a system satisfies such assertions in all possible executions. The exhaustive nature of model checking provides a higher degree of confidence than is typically possible using conventional testing-based approaches. Moreover, whenever an assertion fails to hold, a counterexample is generated that details an execution trace violating the assertion.

ComFoRT can be applied to different development artifacts and is intended for use with a development approach that is based on prediction-enabled component technology (PECT).

Our current focus is on application to design specifications expressed in CCL. CCL specifications capture structural information such as component topologies and arbitrarily detailed descriptions of component behavior that are expressed in a subset of UML statechart notation. However, the Copper model checker used in ComFoRT also permits application to a restricted form of C source code.


This flexibility facilitates analysis at different stages of development:

  • verification of early design decisions that are difficult to change late in the development process; for example, gross system coordination policies
  • verification of whether detailed design specifications satisfy requirements prior to component implementation or generation
  • assessment of whether acquired components are compatible with the existing system design or already implemented components


Learn more about ComFoRT (From the SEI Site)
A short overview of ComFoRT
A more thorough description of ComFoRT

Download ComFoRT

_

posted by tadanderson at 11:12 AM 0 comments

Friday, September 07, 2007

if(Money == RUP || $$$ == IBM || RMC == Cash){Your Golden}else{Go OpenUP};

Wow... IBM's pricing for using the Rational Unified Process and the Rational Method Composer stinks.

If you can see it, you got to pay for it. I am so glad SPARX EA is more down to earth. I can't imagine having to have a license for every manager, customer, and developer that needs to look at the final documentation generated by the tool.

I get that the material is copyrighted, but at least cut the pure viewers some slack on the $405.00 license. I think the RMC is definitely worth the $405.00 because it is a tool used for tailoring. But cut the little guy a break and give us a viewing license for $50.00. Your still going to clean up, and you might even get more people to actually pay attention to the licensing model.

Until then, we'll be tailoring the OpenUP. At least I can thank IBM for that.

This post, this post, and this post tell the rest of the story. …. … Big Bucks, No Whammies!!!
_

posted by tadanderson at 5:36 PM 1 comments

Monday, September 03, 2007

Silverlight Video Training Nuggets

There are now Silverlight Nuggets available. They are short videos on Silverlight. A great way to get up to speed one small chunk at a time.

Check them out here.
_

posted by tadanderson at 6:50 PM 0 comments

Sunday, September 02, 2007

Eclipse Process Framework (EPF) Project, SPARX Enterprise Architect (EA), and ALM Enablement

This article points out a problem that I see with a lot of process instances (RUP, OpenUP, etc.). The templates provided are static word documents. I know that has been par for course over the years, but SPARX EA gives us a better option for Application Lifecycle Management (ALM) Enablement.

Using SPARX EA Profiles (PLE Example here), Templates, and Artifact Exports in conjunction with EPF custom process plug-ins and guidelines allows for the mapping of artifacts to SPARX predefined or custom templates.

A major problem we found with the RUP is that it pointed to all IBM tools to get the job done. We do not use IBM tools. We have to change all the toolset language to SPARX, VSTS, VSS, and TFS.

A major problem with TFS is it has no architecture or design tools to generate useful artifacts. The process guidance is completely static. The tools to customize the MSF process are way too immature to be considered usable.

Creating an Eclipse Process Framework Project (EPF) plug-in we can point to a toolset to help get the job done, not word templates. SPARX EA has proved time and time again to be a great time saver when creating project artifacts and later keeping them up to date.

In the past I have heard the term "living document" used over and over again as an excuse for artifacts being out of date. Using a tool that dynamically creates a set of artifacts at any given time, and that is part of the daily development environment, allows living documents to actually be living documents that are up to date.
_

posted by tadanderson at 8:02 AM 0 comments

Saturday, September 01, 2007

When will Microsoft Sew their Nose Back On???

A few years ago Microsoft decided to cut off its nose to spite its face. The war on UML started with the DSL movement. Although Microsoft still claimed to see UML as an essential tool, they stopped trying to compete with the rest of the market and tried to lead us down a new path that did not include UML.

With Rosario around the corner (a very big corner) the emphases is on Application Life-cycle Management (ALM). I think that is great. But the claim that their DSL tools will support the essential design documents is once again WRONG!!!! The DSL tools currently supported are the ones they are going to depend on again in the future.

Over the past 2 years I have had the VSTS Architecture version installed and I have not used the DSL tools once on a project. I have looked at them several times, but I always found SPARX Enterprise Architect (EA) easier to use to make meaningful artifacts. Microsoft did try to save a little face by saying they do support and suggest UML for domain modeling. But there suggestion was to model in Visio (UML 1.2 or 1.4??), forward engineer the model to code and then open it up in their DSL class modeler. That is just plain dumb when tools like Enterprise Architect exist. Yes, Microsoft is partnering with SPARX now, but the ALM movement just confuses things because it introduces tools that step all over SPARX EA tools that support ALM, except for UML. Go figure.?.?.?

I am currently in the process of deciding on what process repository to use. I have a hard time going with Rational Unified Process (RUP) because I do not like that it is so IBM centric now. Over the years it has become tied to the IBM tools. I said my farewell to Rational some time ago. There is nothing wrong with it being tied to IBM tools since they own it, but the projects I am helping engineer their process can’t afford the IBM suite. That means part of the tailoring will need to include integrating a new toolset to accomplish activities.

EssUP is a joke. Nothing but marketing blather and pretty cards has come out of that team. The MSF process guidance is not tailorable. It is ok stuff if you can use it out of the box.

So I am learning towards the Eclipse Process Framework (EPF) Composer. It is the IBM Rational Method Composer without all the IBM strings attached.

So if I go with EPF, what toolset will I included for accomplishing activities? There is about a 99.9% chance SPARX EA will make the cut as the main artifact generation tool. With tools like SPARX EA, the days of static templates are over and using the term living document actually can mean something.

Microsoft’s ALM push will probably be good for project managers, but Microsoft still does not get that they are continuing to ignore the architect.
_

posted by tadanderson at 8:35 AM 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