Tag Archives: software development

Computer Algorithms: Brute Force String Matching


String matching is something crucial for database development and text processing software. Fortunately every modern programming language and library is full of functions for string processing that help us in our everyday work. However is great to understand their principles.

String algorithms can be mainly divided into several categories. One of these categories is string matching.

When we come to string matching the most basic approach is what is known as brute force, which means just to check every single character from the text to match against the pattern. In general we have a text and a pattern (most commonly shorter than the text). What we need to do is to answer the question whether this pattern appears into the text.


The principles of brute force string matching are quite simple. We must check for a match between the first characters of the pattern with the first character of the text as on the picture bellow.

First step of brute force string matching
We start by comparing the first characters of the text and the pattern!
Continue reading Computer Algorithms: Brute Force String Matching

Main Features of the Traditional Software Development Methodologies

This article is a continuation of my previous post!

The stages of analysis and design are the main stages in the traditional approaches. Of course the focus of the whole project is there and therefore the effort at these stages is very important. They are methodology-centric – this means that the methodology is very extensive and the right application of the method is a warranty for a successful project.

Traditional Software Development Methodologies
The stages of plan and design are the most imporant for the traditional methodologies

It’s not far from the truth that the methodology is more important factor than the human factor. Continue reading Main Features of the Traditional Software Development Methodologies

Traditional Software Development Methodologies

One of the main events in the software industry at the beginning of the new century is the appearance of the agile methodologies for software development. Most of the companies today are using these methodologies to manage their projects. They radically changed the landscape of the development methods.

Many companies today are using agile methodologies for software development
Many companies today are using agile methodologies for software development

The agile methods are based on a set of new principals of design and build – different from the principals used before. However to understand the agile methodologies first of all we need to understand the reason of their appearance. Thus we’ve to first understand the traditional methods of software development – their features, their pros and cons, and nevertheless we’ve to understand their relevance. Continue reading Traditional Software Development Methodologies

An Introduction to the Agile

Today the number of software projects has grown to an incredible extent. Software products are used practically everywhere and as it seems with the Internet in one hand and the mobile apps markets in other this trend is even more consolidated.


Agility in Software Development
The agile methods tend to be more responsive to a highly dynamic software projects.


Typically the software build processes are followed by the processes of controlling and managing software projects. In the very beginning of the software sciences these were methodologies that relied mainly on a detailed documentation, precise planning and higher degree of control. As it appears in many kind of projects this approach is simply ineffective. Most of those kind of projects are characterized as very dynamic, with many requirement changes that makes them difficult to predict and control with the traditional methods of software development. Continue reading An Introduction to the Agile

Are You Agile?

Agile you are?


Perhaps Master Yoda would say that, but it’s interesting to know what methodology do you use in your work. Any answers will be highly appreciated, so here are some basic questions:

  1. Do you follow any software development methodology?
  2. Do you use any agile methodology?
  3. What is good and what’s bad?
  4. Do you think agile is better than non-agile methodologies?

Thanks anybody in advance!