TechBubbles

Archive for the 'SoftwareArchitecture' Category

Domain Model Using UML

Introduction

Unified Modeling Language is a graphical language used to describe objects in a system. This post describes the UML class diagrams and relationships among business entities in the system.

Domain Model represents the relation ship between logical entities in the system. It also illustrates how different entities in application domain would interact with each other.

Class

                         clip_image001

Relationships

                clip_image002

Read more

Related Posts:

  • No Related Posts
No comments

ASP.NET Application Architecture Steps

Introduction

If you have good logical skills and aptitude then it can be easier for learning programming languages. Unlike programming Software Architecture requires years of experience to master. Software Architecture is a guide to shape your project and Architecture of a system is nowhere related to the code that you write for this system. This post explains the architectural steps involved in application development.

Software Architecture is simply blueprint of your application. Software Architecture is closely related to the business needs of the project and it is not concerned about technology on which the project built upon.

Software Design deals with the implementation of the architecture which includes what design patterns to use to make the application scalable, what development methodology that we use in development phase. Basics about software architecture can be found here.

Business Requirements

Assume the following are the high-level specifications of the requirements

· System should be accessible from any location.

· System should be able to process multiple tasks.

· System should be able to process information from different databases.

· System should interact with other software packages.

Software Architecture Specification

Architecture specification for the above requirement

  • The system should be web based
  • The system should have built-in multithreading capabilities.
  • The system should be database-independent.
  • The system should expose APIs to import and export data from other sources.

Software Design Specification

Choosing a design pattern- Design patterns are proven solutions to the business problems. It tells us how we can achieve a solution in-terms of implementation.

We will need to customize the design-patterns to meet your unique needs.

Use Case Design: Creating use-case document which explains the interaction between the application and the end user. It lists the interaction steps sequentially. Each use-case should capture a specific scenario from end-to-end.

Prototyping

For Web projects, designing a working prototype in HTML before starting to work on developing is really helpful. Properly-Linked HTML pages with some dummy data shows the important business process flows and answers the business-related questions. It is highly recommended to develop a prototype before the actual coding for a project.

Class Model

The Architect and Technical lead will create an object model of the system which specifies important entities in the system and how they will interact.

Database Model

A database model would be created based on the class model described above. The use-cases, class model and database model will help the development team with clear instructions. Based on this project manager will highlight the milestones of the development phase.

Development-Phase

Identify and Separate the different components in the application. This separation can be at two levels

  • Physical Separation: We separate code physically into different assemblies. Each assembly or component can be deployed to servers across the geographical locations. We also call this as n-tier architecture.
  • Logical Separation: Separating the code logically into different layers, but the entire application will be part of a single assembly and can be deployed to single server. Unlike physical or tier architecture it is not possible to deploy parts of the application in a distributed manner.

Programming the layers

  • Web forms as the presentation layer

-Usually contains the graphical display components like ASPX pages,

Master pages and style sheets.

  • C# or VB code for handling the business logic as the Business Logic Layer (BLL).

-Usually contains business rules and presents the data to presentation layer. This layer may also include code for error handling and logging.

  • Data Access code as the Data Access Layer (DAL).

- This layer is a set of classes used to encapsulate data access methods. DAL’s primary job is to communicate with the database and pass it to the business logic layer.

Conclusion

This post examined the difference between tiers and layers and the different  ways we can structure our project using tiers and/or layers in ASP.NET application.

Related Posts:

No comments

SOA Enabled DAL

Introduction

Traditional applications using relational data sources such as Oracle, SQL Server and DB2 to expose their business logic to external world in a tightly coupled manner. This tightly coupled approach leads to the performance\scalability issues. This post discusses the Designing a SOA enabled DAL with example.

Traditional Service Data Access

clip_image002

Read more

Related Posts:

No comments

REST Overview

Introduction

REST stands for Representational State Transfer,is an architectural style where you can build the software system in which clients(user agents) can make requests to the services[end points]. REST one of the way to implement the client\server architectural style. REST can be used to build software applications in which clients can make requests of services.

REST

Read more

Related Posts:

2 comments

Software Architecture Styles

Introduction

An Architecture style is a set of principles which you can use to build a system Typically Architecture styles depends on their focusing areas. Implementing the software architecture styles depends on the capacity of your organization for implementing it and infrastructure constraints. This post explains which architecture style is to use based on demands.

Architecture Styles

We typically combine multiple styles to define a complete architecture. For example layered architecture can be used with component-based, object-oriented or SOA styles.

The following are the list of commonly used software architecture styles

Client\Server

   Consider this style if 

  • The application is Server based and support multiple clients.
  • You are creating Web based applications exposed through browser.
  • You want to centralize data storage, backup and management functions.

Read more

Related Posts:

  • No Related Posts
No comments

Application Architecture for .NET Applications – Part2

Introduction

Software Architecture can be described as structure of system, where system represents the collection of components that accomplish a set of functions. This post explains the key design principles for software architecture.

arch 

The above picture shows you  the common application architecture and different components in the system and how they work together.

Read more

Related Posts:

1 comment

Application Architecture for .NET Applications – Part1

Introduction

This Article series helps the .NET developers and architects to design the effective applications on .NET latest technologies. There are so many articles,books on application architecture but it is still challenging for developers to understand best practices, principles for the application design.

This post speaks about the fundamentals concepts of Application Architecture and principles.

What is Application Architecture?

Defining a solution which meets all technical and operational requirements by optimizing performance,security and manageability.

Read more

Related Posts:

No comments

Service-Oriented Architecture(SOA)

Introduction

SOA represents new model for building distributed applications. SOA is a platform where you can expose your organization business logic through services. Here services are the interfaces which process and deliver the XML Messages.

SOA approach makes sense when we build applications cross organizational. A business with multiple systems and applications on different platforms  can use SOA to build a loosely coupled integration applications.We can implement SOA by using web services.

Overview of SOA

SOA uses service components that reside in different domains. Service Components operate in their own boundary.

Three main entities in SOA are

  1. Service Providers
  2. Service Consumers
  3. Service Directories

SOAsolution

The communication between the services and the consumer is in the form of XML messages that are defined against XSD schemas.

SOA Benefits

  • SOA Address the availability and scalability issue:  Synchronous communication model with linear workflow model is highly susceptible to failures. SOA address this problem by implementing the strategies for handling them. For example if service failed to accept a message request, the architecture will be designed to retry the delivery.SOA improves the reliability because a temporary failure in the system will not bring down the entire business process.

5-SOA-benefits

Related Posts:

1 comment

Software Architecture

Software architecture is the set of decisions about the organization of a software system that software architect makes.

What decisions does the software architect make?

Architects create architectures and defines their responsibilities which involved in doing so. Conceptualizing and experimenting the alternative  architectural approaches.Creating models, components and interface documents which validates the architecture against the requirements and assumptions.

Experienced architect role involves not just technical activities but others that are more strategic in nature.  A sense of business and technical strategy is required to envision the right architectural approach to customer problem.

Software Architect Activities include

  1. Listening to stakeholders values, concerns and goals.
  2. Creating technology road maps and making assertions about   technology directions.
  3. The architect needs to partner well with a variety of different stakeholder groups,business analysts and developers.
  4. Preparing the tech tutorials to help developers in understanding the architecture and rationale behind the architecture.
  5. The architect also act as mentor and coach, working with developers to address the challenges that arise.
  6. Lastly, the architect must lead – the architecture team, developer community and in technical direction, the organization.

Related Posts:

  • No Related Posts
2 comments