CodeKicks.com
Focus on Microsoft Technologies - Tutorials, Articles, Code Samples.

Wednesday, November 05, 2008

Software Architecture and Design Series 3 ---- Do you know? Fundamental Skill Requirements for Software Architects

Fundamental Skill Requirements for Software Architects:

Design Skills -

To be a successful architect, one must know how to design technology systems. This implies knowledge of methodologies andtechniques (some domain specific, some generic), knowledge of tools for design, knowledge of design artifacts and how they are created, and awareness of pre-fabricated items like patterns and components to facilitate quality design.

Design skills are an architect’s primary tool in delivering architecture strategy and product to the business. The design sills an architect uses include techniques and methodologies that provide the process and behavior that drive design activities, the tools that enable design creation, the knowledge of existing solutions to common problems represented by patterns, the available building blocks that constitute the raw materials for the target design, and most importantly the delivery of the design in the form of appropriate artifacts.

To achieve a good design, an architect can use a variety of methodologies and techniques to guide them through the design process. They base their design on a selection of patterns and building blocks and use tools to create the output of the design: artifacts.

The best methodology is optimized for a particular problem, and artifacts should be delivered consistently to maximize reusability. Each pattern can be applied to solve common problems and to facilitate time to market without having to recreate the wheel.

One must concentrate on the following topics to become a successful architect:

1. Patterns and Best Practices

· Design patterns

· Types of Patterns (data, hardware, software, network, security, etc.)

· Architectural Styles

· Anti-Patterns

2. Building blocks

· Frameworks, components, reference implementations, products, systems, etc.

3. Artifacts

· Prototypes

· Modeling notation and deliverables

· Domain specific language

· Viewpoint and Views

· Architectural Description

· Design Diagram

4. Tools

· The Open Group Architecture Framework (TOGAF) tools

· Rational Unified Process (RUP) tools

5. Methodologies and Techniques

· Design methodologies

· Requirement analysis

· Traceability

· Synthesis

· Techniques (optimization approaches – quality attrib comparison, etc.)

· Evaluation practices

Post a Comment