Category: Software Development

C# Abstract Classes Vs Interfaces

We use abstract classes when the base class can’t have concrete implementation and that we need the derived class to fully implement it. If at...

Simple Stop Watch implementation in C#

Below is a simple stop watch implemented in C#, enjoy!StopWatch using System; namespace StopWatchApp {     public class StopWatch     {         public DateTime StarTime { get; set; }         public DateTime StopTime { get; set; }         public string ClockState { get; set; }         public void StartClock()         {             if(this.ClockState == "started")                 throw new InvalidOperationException("Invalid Operation");             this.StarTime = DateTime.Now;             this.ClockState = "started";         }...

Simple Workflow Engine Implementation in C#

Below is a simple implementation of work flow engine using interfaces and the concept of injecting overloaded class implementations via the dependent class method. The...

Building your Employee

Your Employee is your company’s pillar who keeps your company going and succeed. Their happiness, joy and right mental state is the core to your...

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...

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...

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,...

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...

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...

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...

Effort Devoted To Building Software

Studies show that more effort is devoted to software maintenance (including software enhancement, adaption to new technologies and bug fixing) than for software development activities...

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...

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...

C# Lambda expressions

Lambda expressions are anonymous methods that does not have access modifiers, name or a return. They are used for convenience (less code) and makes code...

Attributes of a Good System Analyst

A system analyst is a person who conducts a methodical study and evaluation of various aspects related to business to identify the desired objectives and...

Decision Table

A decision table represents the comlex decision logic associated with a data-processing job. A decision table summarized the action to be taken depending on the...

System Life Cycle – Classical definition

A system is a set of interacting elements that responds to inputs producing outputs. The events which together make up the development, operation and maintenance of...

Which REST framework should I use

There are multiple Java based REST frameworks that is use today. Some of the top players are as below –                 1. Reslet – http://www.restlet.org/...

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...

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...

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...

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...

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...

Object Diagrams with Multiple Inheritance

Below is an example of implementation of multiple inheritance – The Class ‘Universal’ inherits from two classes A/ and D/C, thus exhibiting multiple inheritance. Mutiple...

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...

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...

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...

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...

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...

Instance Diagram

A sample instance diagram is as shown below. The diagram represents a expression evaluator –...

Aggregation

Aggregation refers to combining the assembled parts of a single part. In terms of Object Management Technology, aggregation may be defined as representing the object...