Ada

Ada – The Veteran Programming Language

Ada, a descendent programming language mainly of Pascal, is a statically and strong typed, structured and imperative programming language that inherently supports pure object oriented programming, explicit concurrency and tasks, low level access to I/O and data representation, external interrupt handling, synchronous message passing, design by contract and non-deterministic programming techniques. Static Type checking checks…

All Articles

MVC Architecture

MVC architecture has been in place since past 4 decades or so when GUI (Graphical Use Interfaces) started to be used widely. The idea is simple – to implement separation of concerns.  Plainly put, to separate 1) presentation (UI) 2) user interactions and 3) underlying data and logic/behavior. It might be easy to build a web…

Code First
All Articles

Using Code First first

Traditional ways of software development focus on DB-first implementation methodology. But we are in the realm of latest developments and ORM models has taken us to a level that is was a complex ordeal some years back. Eventhough a thorough domain/ERD based approach provides some advantages, there are far more overall improvements to development and…

All Articles

Using Extension Methods in C#

Extension methods are a way to add methods to a class without changing its source code or adding it into a derived class. Creating extension methods example Define extension method – public static class StringExtensions     {         public static string Reduce(this String str, int numOfWords)         {             if (numOfWords <= 0)                 return str;             var numWords = str.Split(‘ ‘);             if (numOfWords >= numWords.Length)                 return str;             return String.Join(” “, numWords.Take(numOfWords));         }     } Shorten is an extension class on the String class. Adding as above, we were able…

All Articles

C# Events and Delegates

We use events and delegates to extend applications and to implement loose coupling. Rather than adding various method calls within an implementation and then recompiling the class, we publish the need to call a set of methods as an event from the class that will invoke those methods (publisher). The publisher will thus define the delegate which will act…

All Articles

Using C# Delegates

  Delegates is a way to support addition of multiple features (eg: methods) to a framework without the need to recompile the core class that uses these methods. Delegate is a reference to a function/s and is itself an object (derived from MulticastDelegate) that knows how to call a method or group of methods. The…

All Articles

Preferred Multithreading in C# ASP.NET

Parallel execution has been one of the core techniques of programming languages that enables and stabilizes the heavy orchestrated flow of information across information management systems. All Object Oriented Programming languages provides couple different ways to implement this to function smoothly under heavy and stressful load 🙂 A better way was introduced in C# which…

All Articles

Software Project Size

Software Project Size is of great importance since it determines the level of management controls and the types of tools and technologies required for a software project. Accordingly, software projects are classified into 6 major categories as follows (this basic yard stick is used in all of the diversified software development and project management methodologies)…

Software Engineering
All Articles

Software Engineering then and now

Software Engineering is and will be the backbone and driving force behind the technological advancements that we enjoy and that will lead us to greater realms of information and knowledge management. Its good for us to refresh our basics and foundations. Software Engineering is a discipline which was conceptualized, developed and is constantly reviewed for…

All Articles

Importance Of Design Patterns

Design patterns in general helps you to implement standardized and efficient solutions to software design and programming problems. Design patterns are not pure inventions like a light bulb or a car. They are derived patterns that software engineers and architects found that could be standardized to be used to solve similar problems categorized across 3…

All Articles

What is the backbone of SOA connectivity?

This is a core question that we need to ask when we talk about SOA (Service oriented architecture). SOA connects enterprise components within and outside by easy integration, coordination and loosely coupled processes that can be coupled easily. The main theme that comes up when the number of interacting components increases is the complex messaging…

All Articles

Best Wire-framing / Prototyping tools

One of the most sought tools for a web designer / UI expert / anyone who wants to mock up a user interface based IT system/software is a wire-framing tool. Wire-framing is nothing but building screen / user interface mock of the targeted system which could be used as the medium to convey the user…

All Articles

HTTP Methods – Which HTTP method should I use and what methods are used in REST

HTTP methods are convenient methods that an outside process can use over simple http transport layer. For example REST (Representational transfer technology) uses http methods to communicate back and forth between resources/entities. There are two basic kinds of http methods – Safe and Idempotent methods. Simply put, safe methods are those methods (GET, HEAD) which…

Treating Product Requirements
Agile development

Treating product requirements – The ideal way

Product requirements need to be treated with suspicion as if they really needed for the essential capability for a product release. Always prioritize product requirements and keep the bare minimum and most needed requirements on the top of the product backlog with fine-grained description of the requirements which could be easily implemented using any development…

Agile
Agile development

Agile / Scrum methodology – Explained simple

Agile software development methodology is suitable for time-boxed iterative system development scenarios. The software product is released as various versions or releases, typically in time-boxes of a month. Agile development assumes and welcomes delays and late requirements or scope changes even during development/testing phase! Agile software development might not be suitable for all software development…

All Articles

Events and States

Events and States are differentiated below – Events States Anything that happen in time Shows the attributes values of object at a particular point in time An event separate two states A state separates two events An event is said to have happened without regard to whether it changes a state or not A state…

Actors and Data Stores
All Articles

Actors and Data Stores

Actors: Actors are objects represented in the functional model that produce or consume data. An actor may store some data for further processing steps. Data Stores: Data stores are store house of data represented in the functional model. A data store could only store or consume data, but could not produce data. Below is an…

All Articles

State Diagram – Car

The state diagram may be drawn by considering the concurrency property of the aggregate objects that make up the car object ie. each aggregate object has a state of its own. Below is a sample state diagram for a Car object – Below is the state diagram for Ignition System – State Diagram – Transmission…

All Articles

Main features of Object Oriented Languages – Classes, Objects, Encapsulation, Polymorphism, Inheritance

1. Classes and Objects In an object oriented programming language, we code the program as a corporate collection of objects which are instantiated from various class abstractions. A class is only a logical abstraction and has no physical existence. An object is a specific instance of the class and it has physical existence inside the…

All Articles

Abstraction

Abstraction may be defined as all those essential characteristics features of an object class which makes it different from other object classes. Abstraction as applied to inheritance refers to the specific features defined for each subclass in the class hierarchy. Such a representation of the object class including only its essential attributes and operations, leaving…

Multiplicity
All Articles

Multiplicity

Multiplicity refers to the number of object class instances of one class may be associated to the other class. An n+ symbol indicates that there can be n or >n associations of the object class near to the n+ symbol to the other associated class. A solid ball indicates 1 or >1 associations and a…

All Articles

Inheritance

Inheritance is the most basic feature of any Object Oriented programming language. It refers to the derivation of sub classes from a base/super class. The inherited sub classes inherit the common / basic features of the base / super class at the same time implements their own specific features. Inheritance helps us to reduce the…

qualification
All Articles

Qualification

Qualification is an association which involves an association and a qualifier which uniquely identifies certain features of one of the associated classes. Below example explains it. Multiplicity of association changed from many – many to many to 1. Stock exchange + Ticker symbol = Company

All Articles

Object Modeling Technique (OMT)

Object Modeling Technique used in object oriented modeling and design which use the usual principles of system development like analysis, design an implementation but applying object oriented software design. Using OMT, we model design and implement the system in terms of real-world objects in the application domain. This involves the use of three different system…