Blogs‎ > ‎

Tutorials

Design Principles

Design Principles
While designing an application of any size or complexity, the most important thing that an architect should never loose track of are these design principles which are being discussed in this section. Design principles are the backbone and inspiration behind all design patterns that exist today and knowledge of these design principles complements one's understanding of design patterns.

Anti Patterns

Anti Patterns
AntiPatterns, like their design pattern counterparts, define an industry vocabulary for the common defective processes and implementations within organizations. The AntiPattern may be the result of a manager or developer not knowing any better, not having sufficient knowledge or experience in solving a particular type of problem, or having applied a perfectly good pattern in the wrong context.

Design Patterns

Design Patterns
This section discusses the most important design patterns that any designer and architect should know to be able to design robust, reusable, extensible and maintainable enterprise applications. Lets dive directly into the world of design pattern and explore what all is there that an architect needs to to know and refer while architecting and designing solutions for business problems

UML

UML
UML aims to be a standard modeling language which can model concurrent and distributed systems. Its the de-facto standard for documenting architecture and designs for software applications. Architects must have a thorough understanding of UML Concepts and diagrams. UML knowledge is required to create good high/low level designs for your projects.

  • AJAX Primer The term Ajax has come to represent a broad group of web technologies that can be used to implement a web application that communicates with a server in the background, without interfering with the current state of the page. In the article that coined the term Ajax, Jesse James Garrett explained that the following technologies are incorporated: HTML (or XHTML) and CSS for presentation The Document Object Model (DOM) for dynamic display of and interaction with data XML for the interchange of data, and XSLT for its manipulation The XMLHttpRequest object for asynchronous communication JavaScript to bring these technologies togetherSince then, however, there have been a number of developments in the technologies used in an Ajax application, and the ...
    Posted 30 Nov 2011, 01:37 by Sanjeev Kumar
  • Excellent Books Architecture, patterns and programming skills Architecture and Design Domain-driven Design: Tackling Complexity in the Heart of Software by Eric EvansPatterns of Enterprise Application Architecture by Martin FowlerAgile Software Development, Principles, Patterns, and Practices by Robert C. MartinEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions by Gregor Hohpe and Bobby WoolfThe Design of Everyday Things by Donald Norman Beyond Software Architecture: Creating and Sustaining Winning Solutions by Luke Hohmann Programming and code The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David ThomasClean Code: A Handbook of Agile Software Craftsmanship by Robert C. MartinBeautiful Code: Leading Programmers Explain How They Think by Andy Oram and Greg WilsonCode Complete by Steve ...
    Posted 11 Nov 2011, 06:37 by Sanjeev Kumar
  • Ruby Resources Here you will find pointers to manuals, tutorials and references that will come in handy when you feel like coding in Ruby.Getting StartedTry Ruby!An interactive tutorial that lets you try out Ruby right in your browser. This 15-minute tutorial is aimed at beginners who want to get a feeling of the language.Ruby in Twenty MinutesThis is a small Ruby tutorial that should take no more than 20 minutes to complete. It makes the assumption that you already have Ruby installed. (If you don’t have Ruby on your computer download and install it before you get started.)Ruby KoansThe Koans walk you along the path to enlightenment in order to learn Ruby. The ...
    Posted 6 Dec 2011, 00:54 by Sanjeev Kumar
  • Quick Definitions Some key definitions related to Architecture, design principles, design patterns and overall object oriented analysis and design for quick reference.Modularity The extent to which software is divided into components, called modules, which have high internal cohesion, low coupling between each other, and simple interfaces.CohesionA measure of the extent to which related aspects of a system are kept together in the same module, and unrelated aspects are kept out.Coupling A measure of the extent to which interdependencies exist between software modules.EncapsulationCreating a module to contain some algorithm or data structure, thus hiding its details behind the module's interface. Allows changes to code to be more easily made since one can be confident that 'outsiders ...
    Posted 22 Nov 2010, 13:42 by Sanjeev Kumar
  • UML Tutorial OverviewThe Unified Modeling Language (UML) is used to specify, visualize, modify, construct and document the artifacts of an object-oriented software intensive system under development. UML offers a standard way to visualize a system's architectural blueprints, including elements such as:actorsbusiness processes(logical) componentsactivitiesprogramming language statementsdatabase schemas, andreusable software components.UML combines techniques from data modeling (entity relationship diagrams), business modeling (work flows), object modeling, and component modeling. It can be used with all processes, throughout the software development life cycle, and across different implementation technologies. UML is a single, common and widely usable modeling language that aims to be a standard modeling language which can model concurrent and distributed systemsSpecificationsThere ...
    Posted 30 Nov 2010, 10:24 by Sanjeev Kumar
  • GOF Design Patterns In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.Design Patterns are broadly classified into three categories.Creational patternsThese patterns have to do with class instantiation. They can be further divided into class-creation patterns and object-creational patterns. While class-creation patterns use inheritance effectively in the instantiation process ...
    Posted 30 Dec 2010, 13:56 by Sanjeev Kumar
  • Design Principles IntroductionWhile designing an application of any size or complexity, the most important thing that an architect should never loose track of are these design principles which are being discussed in the following section. Design principles are the backbone and inspiration behind all design patterns that exist today. If an architect understands these design patterns thoroughly and religiously practice them in his designs then he will mostly get it right no matter whether he knows all design patterns by heart or not. No no, I am not advocating that you don't need to learn design patterns, all I am trying to convey here is that if one understands these design principles it will be a lot easier for one ...
    Posted 1 Dec 2011, 02:21 by Sanjeev Kumar
  • Core J2EE Patterns Core J2EE patterns are broadly classified in the following three categories based on the layering of the multi tiered systems. A specific patterns applies to a specific layer of the system under developmentPresentation Tier PatternsIntercepting Filter intercepts incoming requests and outgoing responses and applies a filter. These filters may be added and removed in a declarative manner, allowing them to be applied unobtrusively in a variety of combinations. After this preprocessing and/or post-processing is complete, the final filter in the group vectors control to the original target object. For an incoming request, this is often a Front Controller, but may be a View.Front Controller is a container to hold the common processing logic that occurs ...
    Posted 30 Dec 2010, 13:58 by Sanjeev Kumar
  • Anti Patterns What Is an AntiPattern?AntiPatterns, like their design pattern counterparts, define an industry vocabulary for the common defective processes and implementations within organizations. A higher-level vocabulary simplifies communication between software practitioners and enables concise description of higher-level concepts.An AntiPattern is a literary form that describes a commonly occurring solution to a problem that generates decidedly negative consequences. The AntiPattern may be the result of a manager or developer not knowing any better, not having sufficient knowledge or experience in solving a particular type of problem, or having applied a perfectly good pattern in the wrong context.AntiPatterns provide real-world experience in recognizing recurring problems in the software industry and provide a detailed remedy for the most ...
    Posted 2 Dec 2011, 10:20 by Sanjeev Kumar
  • Understanding Non Functional Requirements This is a short and crisp article that takes you through some of the most important non functional requirements that an architect should never loose track of. The article shall help you understand each of these non functional requirement from SCEA exam point of view as well. Non functional requirements also referred to as system level requirements or qualities of a system are one of the most important things that an architect should never loose focus on during inception and elaboration faces of the project. Of-course they come after the functional requirement as even the most robust, scalable and high performance system is useless if it not able to deliver the required behavior and functionality that is expected out ...
    Posted 5 Dec 2011, 21:12 by Sanjeev Kumar
Showing posts 1 - 10 of 10. View more »

Comments