Knowledge base

In this tab we would like to explain some terms and share our knowledge concerning the software development. We hope you find this part interesting and useful. If you think there are some different subjects you would like us to clarify, please let us know.

Software Requirement Specification, what it is and what it contains?

Requirement specification (SRS – Software Requirement Specification) is the key document in software development and often takes a lot of time to draw up; the effort pays off, though. It is the time to plan a project and to consider what system we want to create, what its purpose is and what needs it should meet. This document has a bearing on a lot of things: the price, development time and satisfaction with the product. It should always be remembered that any subsequent changes are more costly, if not impossible, so it is only reasonable to think everything over in advanced. Sloppy specification may result in inadequate cost and time estimation, which in turn brings about dissatisfaction in both contract parties.

If a specification is a good basis for cost and time estimation it contains at least the following:

A full data range that a system is to store (including data correction ranges/margines); the definition of data sources: who introduces them, …….., and what data a system generates. Most importantly, there should be:

  1. A list of objects that a system will serve (firms, clients, operators…)
  2. For each object a full list of parameters describing it (type of a parameter, data range, obligatory space) together with potential dependencies between parameters (for example if parameter A means ‘No’ then parameters B and C don’t matter)

A full list of functionalities; for each functionality it is important to:

  1. Specify input parameters and expected results
  2. Specify mechanisms and algorithms of data processing
  3. Specify ways of data validation
  4. Specify ways of dealing with incorrect actions (obligatory data not introduced, data outside correction range introduced…)
  5. Define types of users and their authorization for using particular functionalities

Description of the features of a required user interface (without graphic design)

  1. Define a full list of forms
  2. For each forms define a list of components and their predicted arrangement (tables, buttons, editing fields)
  3. Match the functionalities defined above to their components
  4. Define any unusual control responses

The SRS should start with a description of the first window the user opens, what he/she can see, what can do, what will be the effect of this action and where it moves him/her to – and ends with a description of the last window/form. Additionally the SRS should include description of all mechanism, which the user cannot see – the data calculation, algorithms, data storing, user profiles etc.

The difference between Web and PC application. When is it worthwhile to develop Web and when PC solutions?

Web application/Internet application

Web application/Internet application are becoming more and more popular and it seems that most an IT products will follow this trend. Today practically any application can be made in Web technology (the Internet or the so-called Thin-client technology). Its main advantage is that it can be used at any time and at any place, using different computers, provided one has Internet access of course. We don’t have to install an application on your computer so there is no reason to worry about possible incompatibility with your version of operation systems; the application runs remotely as it is installed on a server; there are fewer problems with updates of a given solution – most often it is done by itself without any activity on our part. The only thing we need to use this kind of application is a browser (Internet Explorer, Mozilla, Chrome or other), a computer and Internet access. Web applications are convenient to use but it is important that we have an easy Internet access or otherwise the application will run slowly, with brakes, or may not run at all.

PC software

PC software (like as Word, Excel, Photoshop) has to be installed on particular PC and it is available on this computer. This kind of software often requires more advanced equipment, but its good side is that we are not dependent on the Internet. Most frequently this software is used to visualize data downloaded from an external device (e.g. medical equipment, factory machines, or other devices containing a processor and able to collect and send data), and to manage and interpret this data etc.

PC software is also created in the case of a vary high necessity of data protection (e.g. in bank systems) even though part of this data can be available on the Web. Another environment where PC software is still often used is ‘business management systems’, as they often take up data from other devices; besides Internet access is not always available all around the premises of a given institution; finally, a locally installed system is more easily controlled – yet Web solutions are slowly filtering through into this area as well.

When to buy a box software and when to commission dedicated software?

Answering really depends on what we are looking for and how much we are ready to give up. Ready made application will never meet our needs in 100% but their main asset is low price and short time of implementation and activation. On the other hand if the market does not offer box software addressing singular requirements of a firm, then commissioning dedicated software is worth considering.

Before dedicated software is commissioned

Before dedicated software is commissioned it has to be decided if creating such system will really bring more benefits then the purchase of box software, taking into account its higher cost. One has to consider what exactly is to be achieved, what goals are to be accomplished, which processes facilitated, who will be using the system (administrator, management, regular worker, perhaps client). Are there factors to be taken into account are whether each person using it will need different data, or whether everyone is to have access to all information; what each of these users will use the system for: browse only or also edit data. It is important to scrutinize the current working of particular processes in a firm, as a new system should reflect them or improve them, and never obstruct or complicate them.

Pros and cons of box and dedicated software.

Dedicated software

Software created in usually in one copy only on particular order. The cost of its making is much higher then the purchase of box software but it is better adapted to the needs of a particular firm or institution. It is made for firms of different sizes and operating in different areas. Any kind of software can be created for once own needs: PC software, Web application (working in Internet) or firmware (working on various devices). Very often different platforms are integrated in order to achieve some degree of multiplatform synergy, quicker data information transfer, clearer data visualization or easier data access.

The advantages of dedicated software:

  • Crated to fully match client’s requirements
  • Made in any specified technology
  • Fully adapted to a firm’s needs, fitting its procedures and tasks
  • User-friendly because ideally matching users preferences
  • Can be integrated to other systems operating in an institution
  • Can be easily adapted, developed and extended
  • Facilitate activities in various areas in a firm
  • Boost work effectiveness, efficiency and monitoring, providing competitive advantage
Box software

Software sold in many copies to a lot of clients. As recipients of this product are many different firms, each with their own needs, tasks and goals, box software is sort of compromise between requirements of many different clients; it meets general needs and facilitates some primary processes, that is, addresses needs which are shared by a wide group of diverse clients. It is not flexible enough however, and does not meet the requirements of particular client, it also offers less scope for development or adaptation. Another problem may be integrating this solution with other systems already operating in a firm. Box products already functioning on the market have been created in various technologies, they perform many different functions and match the needs of clients from a variety of business areas. Being sold in large numbers, the cost of its making splits to a lot of clients, so the retail price is usually not high. Attempts at adaptation or further development of a system usually involve much higher cost.

Advantages of box software

  • Low purchase price
  • Short implementation time
  • Well suited to firms with no particular requirements
  • Sometimes they come with free software updates

IT product life cycle model

There is an IT project life cycle model below which we utilize in our every day work, it involves such main steps as:

  • Clients needs analysis – in the first step we are analyzing, together with the customer, all requirements regarding new project
  • Specification – creating the documentation which specifies all requirements
  • Design – designing the system and creating the technical documentation describing its structure
  • Development – coding the system and testing particular modules
  • Verification – integrating all modules and testing the whole system
  • Implementation – delivering and first running of the product
Please click on the picture to see the details.
kwadracik

It is certainly only a model, and how it usually is in a real life, it is very often modified according to clients needs, project specific, technical possibilities and available documentation etc. However the main idea is always the same: project’s planning, development and implementation.