Friday, 8 April 2011

Information Security and Cryptography


Good Security Increases market Value

Information security is the process of protecting data from unauthorized access, use, disclosure, destruction, modification.  The terms information security, computer security and information assurance are frequently used interchangeably.
 Early days of writing, heads of state and military commanders understood that it was necessary to provide some mechanism to protect the confidentiality of written correspondence and to have some means of detecting tampering. Persons desiring secure communications have used wax seals and other sealing devices since the early days of writing to signify the authenticity of documents, prevent tampering, and ensure confidentiality of correspondence.
There are many reasons why you should protect the information you use on your computer, including:
·         To make sure that your information can be accessed by only those who is having permission to access it.
·         To make sure that no one can change the information (information integrity).
·         Making sure that your information is available when you need it (by making back-up copies and, if appropriate, storing the back-up copies off-site).
One of the best feature uses in information security is ‘Cryptography’.
Information security uses cryptography to transform unusable information into a form that makes it unusable by anyone other than authorized user this is called encryption. The information which is encrypted transformed back to its original form by an authorized person through the process of decryption.
Cryptography provides information security with other useful applications including improved authentication methods, message digests, digital signatures, and encrypted network communications. Older less secure application such as telnet and ftp are slowly being replaced with more secure applications such as SSH that use encrypted network communications. Wireless communications can be encrypted using the WPA protocol. Software applications such as GNUPG or PGP can be used to encrypt data files and Email.
Actually cryptography is a huge subject and has big interesting history behind it.  It is one of the aspects of secure communication.

Blog While Walk


In today’s world Blogging is most powerful medium to express the feelings or to share your views and points. Blogs are interactive which contents the commentary, information or news about the particular subject. To share the information or views with the mass audience blog is powerful tool of the internet. Some tools are also used for effective blogging.
One of the biggest revolutions on the internet is Mobile Blogging.
Now-a- days many software applications and games are developed for mobile phones. From simple text messaging, companies today offer services such as internet browsing, music and video playback.
Mobile Blogging is effective way of providing the information to a potential mass audience.Accesing the internet on mobile phone has become a norm just as most tools available on the net can today be accessed on your mobile.
Mobile Blogging is not just accessing the  blog on your mobile device it also means adding a post on to your blog or sending a photograph or any audio or video file to your blog, all with the help of mobile device.
Putting a post online using a mobile is essentially mailing your post-it could be being written text or photograph-to the blog service provider. You could also send via MMS to the address given by your provider. If you use smart phones then it just like adding a post using your computer or browser another service for mobile blogging is provided by Earthcam, which lets you, access web cameras on your phone. Blogger, which is most popular blogging tool, allows you to post a blog by simply sending an MMS or email using your mobile device. You can create a new blog or add existing blog add a new post and change the setting by using your mobile device.
Just imagine your are sitting and you have some good verse to mind and you want to put it up as a blog spot or imagine the scenario where people who needed the report or responses on urgent basis? The mobile blogging is useful here to give your quick responses on urgent basis for the people who need it or publishing your thoughts.
The mobile has thus moved from being a simple telecom device capable of sending text and voice messages to becoming one of the most important nodes of the extended internet.

Life Cycle of the Bug


Now days almost everyone is aware of software systems they are part of our lives. We use software in day to day business applications such as banking, consumer products, mobile phones etc.so these applications must be error free.

Software testing  finds the mistakes and ensures the quality of the developed. When we are testing something we are checking whether it is OK. The flaws in the software may cause a system to fail. Testing ensures the correctness, completeness and quality of the developed software and gives the confidence in the quality of the software.

“Software Testing delivers the bad news with a smile”.

When software does not behave as expected it may lead to a problem. Testing is necessary because we all make mistakes and some of the mistakes cause a failure. Always testing is done by the third persons because we all blind to our own faults so we make a same mistakes when we check our own work as we made when we did it. Another person is more likely to spot the flaws.

Mistakes are the defects or bugs in the software system; some defects are unimportant some of them are expensive or dangerous. Any defects may cause the system to fail to do what it should do causing a failure.

The defects and failures arising from:

*          Errors in the specification, design, implementation
*          Errors in use of system
*          Environmental conditions

The errors or mistakes can cause a defect or fault at any stage within the software Development life cycle. The error in the requirement can cause defect in the system. An unambiguous requirement can cause a defect same as the error in the designing, implementation and maintenance stages of the SDLC can cause a defect or failure of the develop software system. So the testing is necessary and important on all stages of the SDLC (Software Development Life Cycle).

When the defect or bug found first time it passes through the different stages these stages are called the phases of the bug and it is defined as a Bug Life Cycle. The following diagram illustrates the the different stages of the bug.

Using Defect tracking tool the following process is followed
  1. Logging in to the tool
  2. Defect Life Cycle
  3. Creating a defect
  4. Changing status of defects
  5. Generating metrics and reports


    When bug is found first time to the tester its status is ‘New’. The tester reported the bug to the development team with the status ‘New’. Then the development leader assigns the bug to the developer with the status “Assigned”. When developer starts working on it its status is “Open”. The developer makes the necessary changes and solves the bug and passes it to the tester with the status “Resolved”. Tester retests the bug and if it is working fine then the bug status is ‘Closed’. And if the the bug is not fix properly and previous problem persist in the system then tester report it to the development team with the status “Reopened”. Again ‘Reopened’ bug passes with the same stages until it get ‘Closed’.
    Each bug should go through the life cycle to be closed.

Tuesday, 5 April 2011

Agile Process


We are cognizant of SDLC (Software Development Life Cycle) process. It includes 5 stages i.e., Requirement Gathering, Design, Development, Testing and Implementation.
It is the routine development model also known as WATERFALL model. Apart from this conventional model there are other models like Prototype model, V-shaped model, Incremental model, Spiral model, etc.
Among these models, I am very much impressed with the Rapid Development Method, known as Agile Software Development and this is the right medium to share my knowledge about Agile.
What is Agile method
Agile software development is a group of software development methodologies based on Iterative and Incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
Why Agile
Suppose, there is a project, named “PQR” is using Waterfall model methodology. Every phase of the project “PQR” must be completed before the next phase can begin. Thus, developers first gather all of a project PQR’s requirements, then complete all of its architecture and design, then write all of the code, and so on. There is little, if any, communication between the specialized groups that complete each phase of work. It’s easy to see how this development agile methodology is far from optimized.
In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction.
How agile method works
There are many specific Agile Development Methods. Most promote development, teamwork, collaboration, and process adaptability throughout the life-cycle of the project.
Agile methods break tasks into small increments with minimal planning, and do not directly involve long-term planning. Iterations are short time frames (timeboxes) that typically last from one to four weeks. Each iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders. This minimizes overall risk and allows the project to adapt to changes quickly. Stakeholders produce documentation as required.  An iteration may not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration. Multiple iterations may be required to release a product or new features

Twelve principles underlie the Agile Manifesto
  •   Customer satisfaction by rapid delivery of useful software
  •   Welcome changing requirements, even late in development
  •   Working software is delivered frequently (weeks rather than months)
  •   Working software is the principal measure of progress
  •   Sustainable development, able to maintain a constant pace
  •   Close, daily co-operation between business people and developers
  •   Face-to-face conversation is the best form of communication (co-location)
  •   Projects are built around motivated individuals, who should be trusted
  •   Continuous attention to technical excellence and good design
  •   Simplicity
  •   Self-organizing teams
  •   Regular adaptation to changing circumstances

Agile Methods
Some of the well-known agile software development methods are as follows:
·         Extreme Programming (XP)
·         Scrum
·         Agile Modeling
·         Adaptive Software Development (ASD)
·         Crystal Clear and Other Crystal Methodologies
·         Dynamic Systems Development Method (DSDM)
·         Feature Driven Development (FDD)
·         Lean software development
·         Agile Unified Process (AUP)