Architecture and Design Scenarios Frame

- J.D. Meier, Alex Homer, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr, Akshay Bogawat

Categories

  • Authentication and Authorization
  • Caching
  • Communication
  • Concurrency and Transactions
  • Configuration Management
  • Coupling and Cohesion
  • Data Access
  • Exception Management
  • Layering
  • Logging and Instrumentation
  • Request Processing
  • State Management
  • Structure
  • UI
  • Validation
  • Workflow

Scenarios

Category Key Decisions
Authentication and Authorization Architect needs to determine how much detail is needed for authentication and authorization based on auditing requirements.
Architect needs to determine best authentication technology option for their case
Architect needs to determine best authorization technology option for their case
Caching Architect should know how to evaluate the performance of the application at various stages during development
Architect needs to evaluate what major system data needs to be cached to increase system performance.
Architecture needs to consider known hardware constraints that affect performance and/caching ability.
Architect should have thought about options to increase performance if various major parts of application do not meet baseline performance requirements
Communication Architect needs to evaluate communication styles appropriate for his system
Architect needs to evaluate communication technology styles appropriate for his system
Architect needs to consider known hardware constraints that affect his communication choice.
Architecture needs to consider known network infrastructure constraints that affect the communication choice.
Architect needs to consider secure communication between the layers.
Concurrency and Transactions Architect needs to evaluate key engineering decisions for concurrency and transactions
Architect needs to choose processes for concurrent processing which will reduce the wait time
Architect chooses an effective transaction management strategy
Configuration Management Architect needs to consider how the application may need to be changed while running
Architect needs to consider how the application may need to be changed while taken off line.
Architect needs to determine which configuration changes should be done via files and which via code.
Architecture needs to determine any configuration information shared with other systems, how changes to that information occur and its combined effect on both systems
Coupling and Cohesion Architect needs to evaluate key engineering decisions for coupling and cohesion
Architect needs to determine how to group components for low coupling and high cohesion
Data Access Learn how to evaluate key engineering decisions for data Access
Architect needs to consider how to securely transfer of data from data access layer to database and other layers
Architect needs to know how to design helper components for reuse.
Deployment Architect needs to consider if exact hardware is known at design time
Architect needs to consider if hardware is likely to change before release
Architect needs to consider production support of application
Architect needs to consider skills of production support and if that should effect design to increase supportability
Exception Management Architect needs to know major exceptions that may occur in the system and design to catch them
Architecture needs to educate development on proper use of exception management in code
Architect needs to implement effective exception management strategy which can be used for trouble-shooting
Layering Architect needs to design an effective layering strategy which helps in separation of concerns.
Architect needs to identify the logical and physical layers appropriate for their system and know when to use or collapse them
Logging and Instrumentation Architect needs to learn how to evaluate key engineering decisions for logging and instrumentation
Architect needs to design configurable logging mechanism for various layers of his system
Architect needs to know how to secure logged data
Request Processing Architect needs to learn how to evaluate key engineering decisions for request processing
Architect should choose the pattern for providing centralize access point for request processing
State Management Architect must know the consequences of stateful and stateless components and design appropriately
Architect must estimate the performance gain/loss of managing state
Architect must decide how to design state to be persisted
UI Architect must choose technology for UI based on user requirements
Architect must consider how to improve user experience and reduce wait time
Architect must choose pattern for data and controls rendering
Validation Architect needs to learn how to evaluate key engineering decisions for validation
Architect needs to design mechanism for client-side and server-side validation
Architect must identify the need of validation in various layers and design the validation mechanism
Workflow Architect should know business workflow requirements for application
Architect should consider future workflow requirements and flexibility
Architect needs to choose technology to support workflow requirements

Last edited Jan 30, 2009 at 9:09 PM by prashantbansode, version 1

Comments

No comments yet.