Your best source of information and news about Vista hardware, hardware and windows vista on the internet

ARTICLES TOP 50 Spyware Virus Vista SOFT Vista HELP

xp

You are currently browsing the articles from MS Windows Vista Compatible Software matching the category xp.

Strategic IT Planning Tools and Templates

There are 5 major sections provided in this comprehensive planning methodology. Below is a description of what’s included in each section.

The Comprehensive Research and Tools in This Innovative Methodology Guide You Through These 5 Crucial Steps to Strategic IT Planning:

I — Understand, Assess and Plan IT and Business Alignment

?

II — Understand, Assess and Plan Application Direction

?

III — Understand, Assess and Plan Technical Infrastructure Direction

?

IV — Understand, Assess and Plan Organizational Direction

?

V — Document and Present Detailed IT Strategic Plan to Stakeholders

You Will Receive Detailed Instruction on Each Step and More Than 45 Tools and Templates in Total

Click here for Detailed Information on Contents

1 – IT and Business Alignment
Always start with IT and Business Alignment. This critical initial section provides all the tools and instruction you need to get business goals and IT plans on the same page. Detailed instructions will walk you through the following 11 tools and templates:

  1. Stakeholder Guidelines and Analysis
  2. IT Strategy and Roadmap Scope Statement
  3. Kickoff Meeting Agenda and Template
  4. Technology Monitor Worksheet – Scan for Potentially Enabling Technologies
  5. Business Executive Interview Guide
  6. Assessing Enterprise Strategy
  7. Enterprise Strategy and Goals Statement
  8. Key Success Factors Analysis Tool
  9. IT Imperatives Template
  10. IT Vision Meeting Agenda
  11. IT Vision and Mission Statement Template

2 – Application Direction
This section helps you assess your existing application portfolio, identify new enabling technologies and provides a migration plan that meets your long-term business objectives. The following 4 tools support this effort:

  1. Business Function and Application Assessment Worksheet
  2. Application Topology Guidance Document
  3. Application Improvement Opportunity Template
  4. Application Direction and Migration Strategy Template

3 – Technical Infrastructure Direction
This section will walk you through the critical steps of assessing your existing infrastructure including internal hardware and virtual components. From there, you will identify the gaps you need to fill to align to your organizations long-term goals. Finally, you will create a detailed direction for your infrastructure strategy. The following 7 tools are provided to aid you in this effort:

  1. Infrastructure Components Inventory Worksheet
  2. Network Diagram Primer
  3. Network Diagram Template
  4. Infrastructure Assessment Worksheet
  5. Technical Infrastructure Direction Template
  6. Infrastructure Improvement Opportunity Template
  7. Infrastructure Prioritization Template

4 – IT Organization Direction
In this section, you’ll take an in-depth look at your staffing and overall organization. The first step will be to identify weaknesses in your current organization in terms of readiness to support the current and future strategic objectives of the company. From there, you will create a long-term staffing plan that aligns to the future objectives of the business. The following 9 tools are provided to aid you in this effort:

  1. IT Staffing Worksheet
  2. IT Skills Inventory
  3. Irregular IT Staff Inventory (consultants, contractors, etc.)
  4. Staff Level Allocation Worksheet
  5. IT-Business Interaction Model
  6. IT Service Model Alignment
  7. IT organizational Gaps Worksheet
  8. Statement of Organization and Capability Direction Template
  9. Organization and Capability Improvement Opportunity Template

5 – IT Strategic Investment and Value Roadmap
This is where it all comes together. Now that you have assessed your application, technical infrastructure and organization portfolio, you can turn those opportunities into action and describe the practical steps that now need to take place. The overall objective of this section is to create a fully documented and supported strategic plan for the IT organization. There are 14 supporting tools and templates in this section:

  1. Analysis of Available Options
  2. Optional Evaluation Tool
  3. Assessment of Current IT Projects
  4. IT Strategy and Roadmap Scope Statement
  5. Initiative Description Template
  6. Initiative Prioritization Template
  7. Guide to Documenting Your Strategic Roadmap
  8. IT Strategy Budget Impact Worksheet
  9. Business Case Template
  10. Communications Plan Template
  11. Strategic Plan Presentation (PowerPoint)
  12. Strategic Plan Template (Word Doc)
  13. Executive Meeting Agenda Template
  14. IT Strategic Roadmap Maintenance Guidelines Template

Filed under: Architecture, Design, Reference Tagged: Agile, Analysis, Application, Arch, Architect, CMM, Design, Diagrams, Documents, Downloads, Evaluation, General, Guidance, Images, Infrastructure, IT, Kickoff, Models, Plan, Planning, PowerPoint, Prioritization, Project, Refer, Schedule, Scrum, SEI, Six Sigma, Tasks, Technology, Templates, Tools, Worksheets, XP

Written by Visitor Blogs on July 14th, 2010 with no comments.
Read more articles on SEI and CMM and Application and Diagrams and Scrum and Analysis and Refer and Agile and Evaluation and Guidance and Prioritization and Six Sigma and Worksheets and Plan and Models and Infrastructure and Kickoff and Arch and Architect and templates and schedule and otherSoftware and Tools and Design and xp and general and Technology and powerpoint and project and IT and reference and Architecture and documents and Tasks and planning and images and Downloads.

Software Architecture: QAW, ADD, ATAM, CBAM, ARID and SDLC

SEI – Software Architecture Tools and Methods

Active Reviews for Intermediate Designs (ARID)
Architecture-Based System Evolution
Architecture Competence Assessment
Architecture Expert (ArchE)
Architecture Tradeoff Analysis Method (ATAM)
Attribute-Driven Design (ADD) Method
Cost Benefit Analysis Method (CBAM)
Mission Thread Workshop
Quality Attribute Workshop (QAW)

Attribute-Driven Design (ADD) is a process to developing a software architecture. It is presented within the context of the Evolutionary Delivery Life Cycle (EDLC), a software lifecycle based around architecture. The EDLC describes two feedback loops:

  • Concept – Requirements – Architecture and high-level Design
  • Iterative Development – Delivery – Feedback – Redesign from Feedback
  1. Determine the primary quality attributes and requirements for the given module, as well as any use-case constraints provided with the module.
  2. Select architectural patterns or tactics (using your architect’s magic bag of tricks) that are designed to support your given quality attributes and requirements. These patterns and tactics will naturally drive the division of labor into submodules.
  3. Document the expectation of submodules with your use cases and multiple views (the “4+1 views” approach).
  4. Define and document the API for every submodule so they satisfy (3).
  5. Verify use cases and annotate them as constraints to the submodules. Recursively refine every submodule with this process that is too big to be atomic.

Scenario-Based Evaluations

Scenario-based evaluations are a powerful method for reviewing an architecture design. In a scenario-based evaluation, the focus is on the scenarios that are most important from the business perspective, and which have the greatest impact on the architecture. Consider using one of the following common review methodologies:

  • Software Architecture Analysis Method (SAAM). SAAM was originally designed for assessing modifiability, but later was extended for reviewing architecture with respect to quality attributes such as modifiability, portability, extensibility, integratability, and functional coverage.
  • Architecture Tradeoff Analysis Method (ATAM). ATAM is a refined and improved version of SAAM that helps you review architectural decisions with respect to the quality attributes requirements, and how well they satisfy particular quality goals.
  • Active Design Review (ADR). ADR is best suited for incomplete or in-progress architectures. The main difference is that the review is more focused on a set of issues or individual sections of the architecture at a time, rather than performing a general review.
  • Active Reviews of Intermediate Designs (ARID). ARID combines the ADR aspect of reviewing in-progress architecture with a focus on a set of issues, and the ATAM and SAAM approach of scenario-based review focused on quality attributes.
  • Cost Benefit Analysis Method (CBAM). This CBAM focuses on analyzing the costs, benefits, and schedule implications of architectural decisions.
  • Architecture Level Modifiability Analysis (ALMA). ALMA evaluates the modifiability of architecture for business information systems (BIS).
  • Family Architecture Assessment Method (FAAM). FAAM evaluates information system family architectures for interoperability and extensibility.

Representing and Communicating Your Architecture Design

4+1. This approach uses five views of the complete architecture. Four of the views describe the architecture from different approaches: the logical view (such as the object model), the process view (such as concurrency and synchronization aspects), the physical view (the map of the software layers and functions onto the distributed hardware infrastructure), and the development view. A fifth view shows the scenarios and use cases for the software. For more information, see “Architectural Blueprints—The “4+1” View Model of Software Architecture” at http://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf.

What Is An Architectural Style?

Category Architecture styles
Communication Service-Oriented Architecture (SOA), Message Bus
Deployment Client/Server, N-Tier, 3-Tier
Domain Domain Driven Design
Structure Component-Based, Object-Oriented, Layered Architecture

Summary of Key Architectural Styles

Architecture style Description
Client/Server Segregates the system into two applications, where the client makes requests to the server. In many cases, the server is a database with application logic represented as stored procedures.
Component-Based Architecture Decomposes application design into reusable functional or logical components that expose well-defined communication interfaces.
Domain Driven Design An object-oriented architectural style focused on modeling a business domain and defining business objects based on entities within the business domain.
Layered Architecture Partitions the concerns of the application into stacked groups (layers).
Message Bus An architecture style that prescribes use of a software system that can receive and send messages using one or more communication channels, so that applications can interact without needing to know specific details about each other.
N-Tier / 3-Tier Segregates functionality into separate segments in much the same way as the layered style, but with each segment being a tier located on a physically separate computer.
Object-Oriented A design paradigm based on division of responsibilities for an application or system into individual reusable and self-sufficient objects, each containing the data and the behavior relevant to the object.
Service-Oriented Architecture (SOA) Refers to applications that expose and consume functionality as a service using contracts and messages.

Architectural Patterns and Styles

Evans, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, 2004.

Nilsson, Jimmy. Applying Domain-Driven Design and Patterns: With Examples in C# and NET. Addison-Wesley, 2006.

For more information about architectural styles, see the following resources:

The ATAM is based upon a set of attribute-specific measures of the system
•Analytic (performance & availability)
•Qualitative (modifiability, safety, security)
The ATAM workshops typically takes three days and the involvement of 10-20 people
•Evaluators
•Architects
•and other system stakeholders
Benefits:
•clarified quality attribute requirements
•improved architecture documentation
•documented basis for architectural decisions
•identified risks early in the life-cycle
•increased communication among stakeholders

An architecture evaluation doesn’t tell you “yes” or “no” or “6,75 out of 10”. It tells you were the risks are.
Nonrisks are good decisions that rely on assumptions that are frequently implicit in the architecture.
A sensitivity point is a property of one or more components (and/or component relationships) that is critical for achieving a particular quality attribute response.
A trade-off point is a property that affects more than one attribute and is a sensitivity point for more than one attribute.
It meets its quality goals
•Predictable behaviour
•Performance
•Modifiable
•Security
The system can be built
•Staff
•Budget
•Legacy
•Time
Summary of the ATAM Steps
1.Introduction
2.Evaluating a Software Architecture
3.ATAM overview
4.The ATAM for <system name>
5.Summary of Business Drivers
6.Summary of Architecture Presentation
7.Quality Attribute Utility Tree
Utility
•Performance
Data latency
?(M, L) Minimize storage latency on customer DB to 200 ms
?(H,M) Deliver video in real time
Transaction throughput
?(M,M) Maximize average throughput to authentication server
•Modifiability
New Product Categories
•Availability
Hardware Failure
?(L,M) power output at site 1 requires traffic redirect to site 3 in < 3 s
?(H,M) network failure is detected and recovered in < 1,5 min
•Security
Data confidentiality
?(L,H) customer database authorisation works 99,999% of time
8.Scenario Generation, Consolidation, and Prioritisation
9.Analysis of Architectural Approaches
10.Risks, Sensitivities, trade-offs, Nonrisks, and Other Issues
11.Conclusions
A common technique for refining the design over time, until it satisfies all of the requirements and adheres to all of the constraints, is an iterative technique consisting of the five major stages shown in Figure

Benefits of ATAM

–Financial gains
–Forced preparation
–Captured rationale
–Early detection of problems
–Validation of requirements
–Improved architecture
•Scenario – A scenario is a short statement describing an interaction of one of the stakeholders with the system
•Stakeholder – An individual, team, or organization (or classes thereof) with interests in, or concerns relative to, a system
•Architectural view – A representation of a whole system from the perspective of a related set of concerns
•Functional requirements – specify what software has to do.
•Non-functional requirements specify how well it should be done.
Scenarios are used to
–Represent stakeholders’ interests
–Understand quality attribute requirements
Scenarios should cover a range of
–Anticipated uses of (use case scenarios),
–Anticipated changes to (growth scenarios), or
–Unanticipated stresses (exploratory scenarios) to the system.
A good scenario makes clear what the stimulus is that causes it and what  responses are of interest.
Use case scenario
–Remote user requests a database report via the Web during peak period and receives it within 5 seconds.
Growth scenario
Add a new data server to reduce latency in scenario 1 to 2.5 seconds within 1 person-week.
Exploratory scenario
–Half of the servers go down during normal operation without affecting overall system availability.
Scenarios should be as specific as possible.
Evaluation Team probes architectural approaches from the point of view of specific quality attributes to identify risks.
–Identify the approaches that pertain to the  highest priority quality attribute requirements
–Generate quality-attribute specific questions for highest priority quality attribute requirement
–Ask quality-attribute specific questions
–Identify and record risks and non-risks, sensitivity points and tradeoffs
Quality attribute questions probe styles to elicit  architectural decisions which bear on quality attribute requirements.
Examples
Performance
• How are priorities assigned to processes?
• What are the message arrival rates?
• What are transaction processing times?
Modifiability
•Are there any places where layers/facades are circumvented ?
•What components rely on detailed knowledge of  message formats?
• What components are connected asynchronously?

System-quality trade-off points

Availability Efficiency Flexibility Integrity Interoperability Maintainability Portability Reliability Reusability Robustness Testability Usability
Availability + +
Efficiency - - - - - - - -
Flexibility - - + + + +
Integrity - - - - -
Interoperability - + - +
Maintainability + - + + +
Portability - + + - + + -
Reliability + - + + + + +
Reusability - + - - +
Robustness + - + +
Testability + - + + + +
Usability - + -

Common Quality Attributes

Category Quality attribute Description
Design Qualities Conceptual Integrity Conceptual integrity defines the consistency and coherence of the overall design. This includes the way that components or modules are designed, as well as factors such as coding style and variable naming.
Maintainability Maintainability is the ability of the system to undergo changes with a degree of ease. These changes could impact components, services, features, and interfaces when adding or changing the functionality, fixing errors, and meeting new business requirements.
Reusability Reusability defines the capability for components and subsystems to be suitable for use in other applications and in other scenarios. Reusability minimizes the duplication of components and also the implementation time.
Run-time Qualities Availability Availability defines the proportion of time that the system is functional and working. It can be measured as a percentage of the total system downtime over a predefined period. Availability will be affected by system errors, infrastructure problems, malicious attacks, and system load.
Interoperability Interoperability is the ability of a system or different systems to operate successfully by communicating and exchanging information with other external systems written and run by external parties. An interoperable system makes it easier to exchange and reuse information internally as well as externally.
Manageability Manageability defines how easy it is for system administrators to manage the application, usually through sufficient and useful instrumentation exposed for use in monitoring systems and for debugging and performance tuning.
Performance Performance is an indication of the responsiveness of a system to execute any action within a given time interval. It can be measured in terms of latency or throughput. Latency is the time taken to respond to any event. Throughput is the number of events that take place within a given amount of time.
Reliability Reliability is the ability of a system to remain operational over time. Reliability is measured as the probability that a system will not fail to perform its intended functions over a specified time interval.
Scalability Scalability is ability of a system to either handle increases in load without impact on the performance of the system, or the ability to be readily enlarged.
Security Security is the capability of a system to prevent malicious or accidental actions outside of the designed usage, and to prevent disclosure or loss of information. A secure system aims to protect assets and prevent unauthorized modification of information.
System Qualities Supportability Supportability is the ability of the system to provide information helpful for identifying and resolving issues when it fails to work correctly.
Testability Testability is a measure of how easy it is to create test criteria for the system and its components, and to execute these tests in order to determine if the criteria are met. Good testability makes it more likely that faults in a system can be isolated in a timely and effective manner.
User Qualities Usability Usability defines how well the application meets the requirements of the user and consumer by being intuitive, easy to localize and globalize, providing good access for disabled users, and resulting in a good overall user experience.

Output of ARID

•Initial Architecture
•System overview from a business perspective:
–Most important functions
–Any relevant technical, managerial, economic, or political constraint
–Business goals that relate to the project
–Major stakeholders
–Major quality attributes
•Set of seed of scenarios
•Set of scenarios and their prioritization from the brainstorming
•The Utility Tree
•Issues and problems
Sensitivity – A property of a component that is critical to success of system.
–The number of simultaneous database clients will affect the number of transaction a database can process per second. This assignment is a sensitivity point for the performance
–Keeping a backup database affects reliability
–Power of encryption (Security) sensitive to number of bits of the key
Tradeoff point- A property that affects more than one attribute or sensitivity point.
–In order to achieve the required level of performance in the discrete event generation component, assembly language had to be used thereby reducing the portability of this component.
–Keeping the backup database affects performance also so it’s a trade-off between reliability and performance
Risk
–The decision to keep backup is a risk if the performance cost is excessive
–Rules for writing business logic modules in the second tier of your 3-tier style are not clearly articulated. This could result in replication of functionality thereby compromising modifiability of the third tier.
Non Risk
–The decision to keep backup is a non-risk if the performance cost is not excessive
–Assuming message arrival rates of once per second, a processing time of less than 30 ms, and the existence of one higher priority process, a 1 second soft deadline seems reasonable Performance.
common application architecture with components grouped by different areas of concern.

Common application architecture

Enterprise Architecture and System Architecture

What we Hear in Industry?

? How do I use these architecture methods in my organization (with our processes)?
? What do I do with a software architecture once I create it?
? So I have all these quality attribute scenarios – now what?
? How is software architecture different from EA, DoDAF, C4ISR, or system architecture? Do I need all of them? How (or can they) work together?
? When do I design my architecture?
? When am I done architecting?
? How/when do I evaluate my architecture?

? How do I use the output of an architecture evaluation?
? How is architecture different from the UML designs I have now?
? Can I design an architecture and still be agile?
? Can I use architecture concepts, methods, and techniques in my small teams and small projects?
? Can I design an architecture if I develop my products iteratively?
? How much requirements work do I need to do before I begin architecture design?
? How and when do I get architecture requirements?

The Architecture Tradeoff Analysis Initiative at the Carnegie Mellon Software Engineering Institute (SEI) has developed a number of architecture-centric methods currently in use including the SEISM Architecture Tradeoff Analysis Method (ATAM), the SEI Quality Attribute Workshop (QAW), the SEI Cost Benefit Analysis Method (CBAM), SEI Active Reviews for Intermediate Designs (ARID), and the SEI Attribute-Driven Design (ADD) method.

Architecture-centric development involves iteratively
• creating the business case for the system
• understanding the requirements
• creating or selecting the software architecture
• documenting and communicating the software architecture
• analyzing or evaluating the software architecture
• implementing the system based on the software architecture
• ensuring that the implementation conforms to the software architecture

Enhancing the ATAM: ATAM Steps & Enhancements

Step 1 – Present the ATAM: Add information such as multiple response measures for scenarios and tactics used to achieve a desired quality attribute response.
Step 2 – Present business drivers: Elicit additional information on business goals: rationale, barriers, enablers, and schedule and cost constraints.
Step 3 – Present architecture: Elicit additional information on the architecture, for example, architectural elements, relations, and their properties, and design rationale.
Step 4 – Identify architectural approaches: Cross reference approaches listed with supplementary architectural information.
Step 5 – Generate quality attribute utility tree:
Step 6 – Analyze architectural approaches: Supplement scenario refinement by eliciting worst-case and best-case response measures. Systematically elicit alternative architectural approaches for dealing with scenarios. Explicitly document suggested alternative architectural approaches for dealing with scenarios.
Step 7 – Brainstorm and prioritize scenarios
Step 8 – Analyze architectural approaches: Supplement scenario refinement by eliciting worst-case and best-case response measures. Refine the top one-third but analyze a handful of the highest priority scenarios. Systematically elicit alternative architectural approaches for dealing with scenarios. Explicitly document suggested alternative architectural approaches for dealing with scenarios.
Step 9 – Present results:  Include information about alternative architectural approaches generated during the evaluation.

Business Drivers Presentation

(~ 12 slides; 45 minutes)
Description of the business environment, history, market differentiators, driving requirements, stakeholders, current need, and how the proposed system will meet those needs/requirements
Description of business constraints (e.g., time to market, customer demands, standards, costs)
Description of the technical constraints (e.g., commercial off-the-shelf [COTS] products, interoperation with other systems, required hardware or software platform, reuse of legacy code)
Quality attribute requirements and the business needs from which they are derived

The CBAM requires additional business information to be elicited during this step, including

• the rationale for each business goal
• the dependencies among and priorities of the business goals
• barriers to adopting the business goals and strategies for overcoming them
• enablers of adopting the business goals and strategies for exploiting them
• schedule and cost constraints from the business side; for example, time to market as a business goal
• the relationship between business goals and quality goals

Architecture Presentation

(~ 20 slides; 60 minutes)
Driving architectural requirements, the measurable quantities you associate with them and any existing standards/models/approaches for meeting them
Important architectural information: context diagram, module or layer view, component-andconnector view, deployment view
Architectural approaches, patterns, or tactics employed, including which quality attributes they address and a description of how the approaches address them
• use of COTS products and how they are chosen/integrated
• trace of 1 to 3 of the most important use case scenarios
• trace of 1 to 3 of the most important change scenarios
• architectural issues/risks with respect to meeting the driving architectural requirements
• glossary

Enhancing the CBAM: CBAM Steps & Enhancements

Step 1 – Collate scenarios: Completed during the ATAM evaluation
Step 2 – Refine scenarios: Partially completed during the ATAM evaluation when the desired-case, best-case, and worst-case response
measures for the scenarios were elicited from the stakeholders. The architect completes this step by determining the current-case response measures for the scenarios carried forward.
Step 3 – Prioritize scenarios: Enhanced business goals and traceability from scenarios to quality attributes to business goals gathered during the ATAM evaluation help guide this step.
Step 4 – Assign intra-scenario utility: Enhanced business goals gathered during the ATAM evaluation help guide this step.
Step 5 – Develop architectural strategies and determine quality attribute response levels: Some architectural approaches may have been identified during the ATAM evaluation. New ones can be added prior to or during this step, using activities from the ADD method. When the expected-case response measure is being determined, the ATAM analysis template might be used to record risks.
Step 6 – Determine the utility of the expected quality attribute response levels by interpolation
Step 7 – Calculate the total benefit obtained from an architectural strategy: Risks from the ATAM evaluation provide input into variations in benefits.
Step 8 – Choose architectural strategies based on the ROI: Enhanced business goals about cost and schedule constraints gathered during the ATAM evaluation help guide this step. Risks from the ATAM evaluation provide input into variations in costs.
Step 9 – Confirm results with intuition: The association of business goals to quality attributes to scenarios to architectural decisions helps confirm that the
selected architectural decisions best meet the business goals.

  • Separation of concerns. Divide your application into distinct features with as little overlap in functionality as possible. The important factor is minimization of interaction points to achieve high cohesion and low coupling. However, separating functionality at the wrong boundaries can result in high coupling and complexity between features even though the contained functionality within a feature does not significantly overlap.
  • Single Responsibility principle. Each component or module should be responsible for only a specific feature or functionality, or aggregation of cohesive functionality.
  • Principle of Least Knowledge (also known as the Law of Demeter or LoD). A component or object should not know about internal details of other components or objects.
  • Don’t repeat yourself (DRY). You should only need to specify intent in one place. For example, in terms of application design, specific functionality should be implemented in only one component; the functionality should not be duplicated in any other component.
  • Minimize upfront design. Only design what is necessary. In some cases, you may require upfront comprehensive design and testing if the cost of development or a failure in the design is very high. In other cases, especially for agile development, you can avoid big design upfront (BDUF). If your application requirements are unclear, or if there is a possibility of the design evolving over time, avoid making a large design effort prematurely. This principle is sometimes known as YAGNI (“You ain’t gonna need it”).

Design Practices

  • Keep design patterns consistent within each layer. Within a logical layer, where possible, the design of components should be consistent for a particular operation. For example, if you choose to use the Table Data Gateway pattern to create an object that acts as a gateway to tables or views in a database, you should not include another pattern such as Repository, which uses a different paradigm for accessing data and initializing business entities. However, you may need to use different patterns for tasks in a layer that have a large variation in requirements, such as an application that contains business transaction and reporting functionality.
  • Do not duplicate functionality within an application. There should be only one component providing a specific functionality—this functionality should not be duplicated in any other component. This makes your components cohesive and makes it easier to optimize the components if a specific feature or functionality changes. Duplication of functionality within an application can make it difficult to implement changes, decrease clarity, and introduce potential inconsistencies.
  • Prefer composition to inheritance. Wherever possible, use composition over inheritance when reusing functionality because inheritance increases the dependency between parent and child classes, thereby limiting the reuse of child classes. This also reduces the inheritance hierarchies, which can become very difficult to deal with.
  • Establish a coding style and naming convention for development. Check to see if the organization has established coding style and naming standards. If not, you should establish common standards. This provides a consistent model that makes it easier for team members to review code they did not write, which leads to better maintainability.
  • Maintain system quality using automated QA techniques during development. Use unit testing and other automated Quality Analysis techniques, such as dependency analysis and static code analysis, during development. Define clear behavioral and performance metrics for components and sub-systems, and use automated QA tools during the build process to ensure that local design or implementation decisions do not adversely affect the overall system quality.
  • Consider the operation of your application. Determine what metrics and operational data are required by the IT infrastructure to ensure the efficient deployment and operation of your application. Designing your application’s components and sub-systems with a clear understanding of their individual operational requirements will significantly ease overall deployment and operation. Use automated QA tools during development to ensure that the correct operational data is provided by your application’s components and sub-systems.

Application Layers

  • Separate the areas of concern. Break your application into distinct features that overlap in functionality as little as possible. The main benefit of this approach is that a feature or functionality can be optimized independently of other features or functionality. In addition, if one feature fails, it will not cause other features to fail as well, and they can run independently of one another. This approach also helps to make the application easier to understand and design, and facilitates management of complex interdependent systems.
  • Be explicit about how layers communicate with each other. Allowing every layer in an application to communicate with or have dependencies upon all of the other layers will result in a solution that is more challenging to understand and manage. Make explicit decisions about the dependencies between layers and the data flow between them.
  • Use abstraction to implement loose coupling between layers. This can be accomplished by defining interface components such as a façade with well known inputs and outputs that translate requests into a format understood by components within the layer. In addition, you can also use Interface types or abstract base classes to define a common interface or shared abstraction (dependency inversion) that must be implemented by interface components.
  • Do not mix different types of components in the same logical layer. Start by identifying different areas of concern, and then group components associated with each area of concern into logical layers. For example, the UI layer should not contain business processing components, but instead should contain components used to handle user input and process user requests.
  • Keep the data format consistent within a layer or component. Mixing data formats will make the application more difficult to implement, extend, and maintain. Every time you need to convert data from one format to another, you are required to implement translation code to perform the operation and incur a processing overhead.

Components, Modules, and Functions

  • A component or an object should not rely on internal details of other components or objects. Each component or object should call a method of another object or component, and that method should have information about how to process the request and, if appropriate, how to route it to appropriate subcomponents or other components. This helps to create an application that is more maintainable and adaptable.
  • Do not overload the functionality of a component. For example, a UI processing component should not contain data access code or attempt to provide additional functionality. Overloaded components often have many functions and properties providing business functionality mixed with crosscutting functionality such as logging and exception handling. The result is a design that is very error prone and difficult to maintain. Applying the single responsibility and separation of concerns principles will help you to avoid this.
  • Understand how components will communicate with each other. This requires an understanding of the deployment scenarios your application must support. You must determine if all components will run within the same process, or if communication across physical or process boundaries must be supported—perhaps by implementing message-based interfaces.
  • Keep crosscutting code abstracted from the application business logic as far as possible. Crosscutting code refers to code related to security, communications, or operational management such as logging and instrumentation. Mixing the code that implements these functions with the business logic can lead to a design that is difficult to extend and maintain. Changes to the crosscutting code require touching all of the business logic code that is mixed with the crosscutting code. Consider using frameworks and techniques (such as aspect oriented programming) that can help to manage crosscutting concerns.
  • Define a clear contract for components. Components, modules, and functions should define a contract or interface specification that describes their usage and behavior clearly. The contract should describe how other components can access the internal functionality of the component, module, or function; and the behavior of that functionality in terms of pre-conditions, post-conditions, side effects, exceptions, performance characteristics, and other factors.
  1. Identify Architecture Objectives. Clear objectives help you to focus on your architecture and on solving the right problems in your design. Precise objectives help you to determine when you have completed the current phase, and when you are ready to move to the next phase.
  • Identify your architecture goals at the start. The amount of time you spend in each phase of architecture and design will depend on these goals. For example, are you building a prototype, testing potential paths, or embarking on a long-running architectural process for a new application?
  • Identify who will consume your architecture. Determine if your design will be used by other architects, or made available to developers and testers, operations staff, and management. Consider the needs and experience of your audience to make your resulting design more accessible to them.
  • Identify your constraints. Understand your technology options and constraints, usage constraints, and deployment constraints. Understand your constraints at the start so that you do not waste time or encounter surprises later in your application development process.
  1. Key Scenarios. Use key scenarios to focus your design on what matters most, and to evaluate your candidate architectures when they are ready.
  2. Application Overview. Identify your application type, deployment architecture, architecture styles, and technologies in order to connect your design to the real world in which the application will operate.
  3. Key Issues. Identify key issues based on quality attributes and crosscutting concerns. These are the areas where mistakes are most often made when designing an application.
  • Business Critical. The use case has a high usage level or is particularly important to users or other stakeholders when compared to other features, or it implies high risk.
  • High Impact. The use case intersects with both functionality and quality attributes, or represents a crosscutting concern that has an end-to-end impact across the layer and tiers of your application. An example might be a Create, Read, Update, Delete (CRUD) operation that is security-sensitive.
  1. Candidate Solutions. Create an architecture spike or prototype that evolves and improves the solution and evaluate it against your key scenarios, issues, and deployment constraints before beginning the next iteration of your architecture.
•Architecture is important
–it should be analyzed
•Architecture can be prescribed
–decisions should be analyzed
•Architecture is central for communicating
–it should be documented
•Architecture is expensive to change
–it is cheaper to analyze early
•Architecture affects the entire project
–many stakeholders should be involved
•Requirements can be understood early
–architecture should be designed to meet them
Architecture structure can be divided into three types:
1. module structures,
2.component-connector structures,
3. allocation structures.

Architecture Structure

Whiteboard Your Architecture
Modules: uses, decomposition, layers, class/generalization, etc.
Component-and-Connector: client-server, concurrency, process, share-data, etc.
Allocation: work assignment, deployment, implementation, etc.
Q. My stakeholders handed me the requirements already and I have a pretty good understanding of the system. Can I start designing my software architecture now?
A. SEI’s answer: Not yet. You need to know two more things before you can start: Quality Attributes and Patterns/tactics.

Quality Attribute

(this is one of the SEI’s babies. You may want to pay great attention to it) Some general quality attributes:
  • availability,
  • modifiability,
  • performance,
  • security,
  • testability,
  • usability, etc.
  • Maintainability
  • Portability
  • Reusability
  • Testability
SEI came up with a quality scenario consisting six parts:
1. Source,
2. Stimulus,
3 Artifact,
4. Environment,
5. Response,
6. Response Measure.
shows the security issues identified in a typical Web application architecture.

The Architecture Business Cycle

Web Site

Paper

Article

Software Architecture Life-Cycle Integration

Papers

Article

Presentation

Quality Attribute Workshops

Web Site

Papers

Presentation

Attribute-Driven Design (ADD)

Web Site

Papers

Architecture Tradeoff Analysis Method (ATAM)

Web Site

Papers

Article

Cost-Benefit Analysis Method (CBAM)

Web Site

Papers

Presentation

Active Reviews for Intermediate Designs (ARID)

Web Site

Papers

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

patterns & practices Solution Assets

For more information on solution assets available from the Microsoft patterns & practices group, see the following resources:

  • Composite Client Application Guidance for WPF for both desktop and Silverlight makes it easier to create modular applications. For more information, see “Composite Client Application Guidance” at http://msdn.microsoft.com/en-us/library/cc707819.aspx.
  • Enterprise Library contains a series of application blocks that address crosscutting concerns. For more information, see “Enterprise Library” at http://msdn.microsoft.com/en-us/library/cc467894.aspx.
  • Software Factories speed development of specific types of application such as Smart Clients, WPF applications, and Web Services. For more information, see “patterns & practices: by Application Type” at http://msdn.microsoft.com/en-gb/practices/bb969054.aspx.
  • Unity Application Block for both enterprise and Silverlight scenarios provides features for implementing dependency injection, service location, and inversion of control. For more information, see “Unity Application Block” at http://msdn.microsoft.com/en-us/library/dd203101.aspx.
  • Detailed guidance for a wide range of enterprise architecture, design, development, and deployment scenarios. These include scenarios such as solution development fundamentals, client development, server development, and services development. For more information, see the patterns & practices home page at http://msdn.microsoft.com/en-us/library/ms998572.aspx.

Additional Resources

ASP.NET Web Forms. This is the standard UI design and implementation technology for .NET Web applications. An ASP.NET Web Forms application needs only to be installed on the Web server, with no components required on the client desktop.

ASP.NET Web Forms with AJAX. Use AJAX with ASP.NET Web Forms to process requests between the server and client asynchronously to improve responsiveness, provide richer experience to the client, and reduce the number of post backs to the server. AJAX is an integral part of ASP.NET in .NET Framework 3.5 and later.

ASP.NET MVC. This technology allows you to use ASP.NET to build applications based on the Model-View-Controller (MVC) pattern. ASP.NET MVC supports test-driven development and clear separation of concerns between UI processing and UI rendering. This approach helps to avoid mixing presentation information with logic code.

Microsoft BizTalk Server. BizTalk currently has its own workflow engine that is geared toward orchestration, such as enterprise integration with system-level workflows. A future version of BizTalk may use WF as well as XLANG (an extension of the Web Service Definition Language used to model service orchestration and collaboration), which is the existing orchestration technology in BizTalk. You can define the overall design and flow of loosely coupled, long-running business processes by using BizTalk Orchestration Services within and between applications.

See the following articles:

For information on some of the popular third party libraries and frameworks that you might find useful for managing crosscutting concerns, see the following resources:

For more information on implementing and auditing quality attributes, see the following resources:

  • Does this architecture succeed without introducing any new risks?
  • Does this architecture mitigate more known risks than the previous iteration?
  • Does this architecture meet additional requirements?
  • Does this architecture enable architecturally significant use cases?
  • Does this architecture address quality attribute concerns?
  • Does this architecture address additional crosscutting concerns?

Filed under: Architecture, Design, Patterns, Reference Tagged: Agile, Architect, Architecture, Books, Class, CMM, Design, Diagrams, Frameworks, Graphs, Guides, HLD, Images, Lib, Library, LLD, Objects, OO, Quality, Refer, Reference, Scrum, SDLC, SEI, Tiers, Verticals, Waterfall, XP

Written by Visitor Blogs on May 13th, 2010 with no comments.
Read more articles on Graphs and SDLC and Objects and Diagrams and Agile and Scrum and Lib and Waterfall and LLD and Verticals and CMM and SEI and Class and HLD and OO and Refer and books and library and otherSoftware and Guides and Design and Quality and images and reference and Tiers and Frameworks and Architect and Patterns and Architecture and xp.

Remove XP Antispyware 2010 - XPAntispyware 2010 Removal Information

XP Antispyware 2010 is rogue security application that is known as fake antispyware tool. The main reason this badware was constructed is to trick victims and influence them into spending their money on super-vacaneous products. Once this abominable program gets into one’s computer it will spread out your machine and will try to settle down for as long as it can. Another indication of XP Antispyware 2010 being active inside your PC is unpredictable and unwanted system scans which results are even more disagreeable. Such scans will pop-ups a list of infections that supposedly are active and must be removed from computer to keep the system working in appropriate way. Moreover, XP Antispyware 2010 will never let you do that until the registered key would be purchased and download. Please remember that nothing XP Antispyware 2010 states about must be trusted, and what is more important should be ignored. XP Antispyware 2010 is looking forward to steal your money, trick you out and is not concerning about your security at all. Exasperating pop-ups and unreliable warnings are going to packed your computer, and make it extremely hard to work with the PC.As you have already mentioned, XP Antispyware 2010 is the software that is doubtfully useful, and cannot be putting trust in. Like all of its predecessors, XP Antispyware 2010 is recommended to be removed as soon as possible, either way various destructions and countless mistakes would follow your computer all the time.


Type: Rogue Anti-Spyware
Malware Author: Unknown
Threat Level: Critical
Screenshot:

XP Antispyware 2010 Automatical Removal Tool

How to remove XP Antispyware 2010 manually:
It's possible to remove XP Antispyware 2010 manually, but you have to be very experienced in dealing with registry entries, program files and .dll files.

The files to be deleted:

av.exe
Remove registry entries:

HKEY_CURRENT_USER\Software\Classes\.exe\shell\open\command "(Default)" = "av.exe" /START "%1? %*"
HKEY_CURRENT_USER\Software\Classes\secfile\shell\open\command "(Default)" = "av.exe" /START "%1? %*"
HKEY_CLASSES_ROOT\.exe\shell\open\command "(Default)" = "av.exe" /START "%1? %*"
HKEY_CLASSES_ROOT\secfile\shell\open\command "(Default)" = "av.exe" /START "%1? %*"
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\shell\open\command "(Default)" = "av.exe" /START "firefox.exe"
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\shell\safemode\command "(Default)" = "av.exe" /START "firefox.exe" -safe-mode
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\IEXPLORE.EXE\shell\open\command "(Default)" = "av.exe" /START "iexplore.exe"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Security Center "AntiVirusOverride" = "1"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Security Center "FirewallOverride" = "1"

Please be careful because manual removal of XP Antispyware 2010 may seriously damage operational system and sensitive data. Also there is a big possibility of incomplete removal, because some files could be hidden and program could re-install itself after you delete files and registry entries. So we strongly recommend you to use automatical removal tool.

Written by admin on March 8th, 2010 with no comments.
Read more articles on fake warnings and trojan horse and removal tool and 2010 and removal instructions and commander and rogue antispyware and AntiSpyware and antivirus and xp and malware and otherSoftware and Adware and system and Security.

Remove XP Micro Antivirus - XP MicroAntivirus Removal Information

Today we would like to present you the latest rogue (or fake) security application which name is XP Micro Antivirus. So, XP Micro Antivirus is misleading software that tricks users and fooling them, alerting about unreal infections and making it extremely difficult to work with your own computer. To begin with, XP Micro Antivirus will enter your PC unnoticeably and will start running the system scan. After that it is going to state about different threats inside your computer that could not be removed without special license. Everything would be all right, if this program was really working. Unfortunately, everything it does is not connecting with security activity. The main goal for such badwares is to steal more and more money. Also, XP Micro Antivirus operates the functions that are directed on protecting the badware of being discovered. For this, XP Micro Antivirus will try to disable all legitimate antivirus programs and prevent the accidental visits to security related web sources. Moreover, XP Micro Antivirus is not only dangerous. More or less, this rogue antispyware program is also extremely annoying. To make you trust this badware, XP Micro Antivirus will modify Windows Security Center and you are going to receive tons of bogus warnings that will state about infections found, or invasions attempting that have been blocked by XP Micro Antivirus. One should always remember that whatever XP Micro Antivirus states about is nothing more but scam that should be safely ignored, but XP Micro Antivirus must be gotten rid of at once.


Type: Rogue Anti-Spyware
Malware Author: Unknown
Threat Level: Critical
Screenshot:

XP Micro Antivirus Automatical Removal Tool

How to remove XP Micro Antivirus manually:
It's possible to remove XP Micro Antivirus manually, but you have to be very experienced in dealing with registry entries, program files and .dll files.

The files to be deleted:

%Documents and Settings%\[UserName]\Start Menu\XP Micro Antivirus
%Documents and Settings%\[UserName]\Desktop\XP Micro Antivirus.lnk
%Program Files%\XP Micro Antivirus

Remove registry entries:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run “XP Micro Antivirus”

Please be careful because manual removal of XP Micro Antivirus may seriously damage operational system and sensitive data. Also there is a big possibility of incomplete removal, because some files could be hidden and program could re-install itself after you delete files and registry entries. So we strongly recommend you to use automatical removal tool.

Written by admin on February 20th, 2010 with no comments.
Read more articles on trojan horse and rogue antispyware and fake warnings and removal tool and removal instructions and 2010 and AntiSpyware and Protection and antivirus and xp and malware and otherSoftware and system and Security.

Remove XP Guardian - XPGuardian Removal Information

Today we want to warn you against using XP Guardian as it is nasty antispyware application that has nothing to do with computer security. XP Guardian is promoted through different misleading web sites that give you a possibility to watch movies online or to scan your system from their source. Such Internet sites require downloading some updates but the Trojan virus comes inside your Pc with them. After invasion, this Trojan is going to download and install XP Guardian without your knowledge or permission. XP Guardian is constructed the way it begins its nasty activity right after Windows starts. First of all you will face a malware scan of your system that will display a list with numerous infections inside your PC. What is more, you will not be able to remove those threats unless you visit badware’s official web page and purchase the license. Please note that most of those files that XP Guardian detects are just simple scam and they were drop inside your PC by the same Trojan installed XP Guardian on your computer. Also some of them are legitimate Windows files, so do not start removing them as it will cause great damages to your machine. Another feature of XP Guardian is that this badware can really protect itself from being removed. It will block all security programs on your computer and impersonate windows Security Center, so you are going to receive from it tons of annoying alerts stating about low security level of your PC or about active threats discovering. Remember that all such pop-ups as well as system scans are simple scam and must be ignored at once. What is more, XP Guardian should be removed out from your computer, until it gets over your system at all.

Type: Rogue Anti-Spyware
Malware Author: Unknown
Threat Level: Critical
Screenshot:

XP Guardian Automatical Removal Tool

How to remove XP Guardian manually:
It's possible to remove XP Guardian manually, but you have to be very experienced in dealing with registry entries, program files and .dll files.

The files to be deleted:

%Documents and Settings%\[UserName]\Application Data\av.exe
%Documents and Settings%\[UserName]\Application Data\WRblt8464P


Remove registry entries:

HKEY_CURRENT_USER\Software\Classes\.exe\shell\open\command “(Default)” = “av.exe” /START “%1? %*
HKEY_CURRENT_USER\Software\Classes\secfile\shell\open\command “(Default)” = “av.exe” /START “%1? %*
HKEY_CLASSES_ROOT\.exe\shell\open\command “(Default)” = “av.exe” /START “%1? %*
HKEY_CLASSES_ROOT\secfile\shell\open\command “(Default)” = “av.exe” /START “%1? %*
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\shell\open\command “(Default)” = “av.exe” /START “firefox.exe”
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\shell\safemode\command “(Default)” = “av.exe” /START “firefox.exe” -safe-mode
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\IEXPLORE.EXE\shell\open\command “(Default)” = “av.exe” /START “iexplore.exe”
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Security Center “AntiVirusOverride” = “1?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Security Center “FirewallOverride” = “1?


Please be careful because manual removal of XP Guardian may seriously damage operational system and sensitive data. Also there is a big possibility of incomplete removal, because some files could be hidden and program could re-install itself after you delete files and registry entries. So we strongly recommend you to use automatical removal tool.

Written by admin on February 3rd, 2010 with 1 comment.
Read more articles on fake warnings and 2010 and guardian and AntiSpyware and spyware and antivirus and malware and otherSoftware and xp.

Windows Tips - Limit the hard disk space available for users - Part 2

If you have limited hard disk space, there are many ways you can free up space on your hard disk. You can start by removing files, such as documents, music and videos, you no longer need. You can…

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Written by FireFly on September 13th, 2009 with no comments.
Read more articles on harddisk and limit space and otherSoftware and free space and xp and Windows.

« Older articles

No newer articles