Posts

Showing posts from March, 2017

RMI - Weather station

Image
Hi friends !!!! :) Today I like to share one of my projects with you..... It's basically a weather station  where weather readings are gathered and updated using RMI technology, Java Remote Method Invocation. The Java Remote Method Invocation (RMI) system allows an object running in one Java virtual machine to invoke methods on an object running in another Java virtual machine. RMI provides for remote communication between programs written in the Java programming language. Fig 1: RMI method invocation Since we have the theory background of RMI I thought of sharing my project in which I have implemented a very basic client-server program using RMI to pass information from server to the monitoring station. As we all know in a weather forecasting station we have to gather the weather readings and send them in a periodic manner to all the stations connected to the server. Through this we can invoke methods running in one Java virtual machine through an object running in anothe

Object Oriented Principles

Image
Hi friends!!!!☺ Today we'll be looking into a different yet interesting area in Software Engineering. Yes, today we are going to look at the "Object Oriented Principles".We also call this as S.O.L.I.D, the first 5 principles of object oriented design principles.This was introduced by Michael Feathers. Object Oriented Principles help the programmers to build quality system which can be maintained and extended easily over time. S.O.L.I.D  stands for ,               1. S ingle Responsibility               2. O pen Close Principle               3. L iskov Substitution               4. I nterface Segregation               5. D ependency Inversion Let's take a look at each of these principles in detail. 1. Single Responsibility A unit (class/function/module/API) should have one and only reason to change or only one responsibility. If there are more than one reason to change the unit must be separated into atomic units which will have one and only responsibili

Software Testing

Image
      Today i will be sharing some basics of software testing. As we all know software testing is a very vast area, which has so many categories and technical details in it. This post is going to be an introduction for such critical topic, that is "Software Testing". Before jumping into software testing let's take a look at "Software Development Life  Cycle (SDLC)". SDLC is simply nothing but a process that describes the steps involved in planning, designing, implementing, testing and maintaining a software product. According to Rayleigh curve testing phase requires the maximum effort. Despite of the type of an application testing should be done in an appropriate way. No matter how good the code is but if testing is not done properly then the effort,time and money invested into the project will be of no use. To get some basic understanding about software testing let's take a look at the "Testing Levels" in this post. There are mainly 4 l