System Development

The system comprises of the following necessary ingredients:
(i)                  Hardware
(ii)                Software
(iii)               People / Users
(iv)              Data / Information
(v)                Communication setup

Our main discussion here is focused on the application software development process, leaving aside the software packages (which are always available in the market).

What is a system?

A system can be defined as a combination of some related components that interact with each other to perform some specific tasks.

To develop a system, several distinct phases are to be worked out. For this purpose, SDLC (Software Development Life Cycle) was developed, which is an organized way to develop a successful system. It involves five phases as shown in the following diagram.

Software_Development_Life_Cycle

System Development Life Cycle

Preliminary investigation: the objective of preliminary investigation is to conduct an initial analysis and findings of the system as discussed below:

  • System identification: the system is to be identified at this stage. This is very important step as everything done in future will depend on the basis of this definition.
  • System scope: the scope of the system is established at this stage. Sometimes, it becomes necessary to curtail the projects to certain limits due to financial, political, or time constraints.
  • Alternate solution: there may be alternate solutions to develop the system. Identify all those and choose the best one. The best strategy in this regard would be to interview the concerned people inside the organization, clients or customers of the system, suppliers and consultants. We can also watch what the competitors are doing for the same type of systems.
  • Feasibility study: we have to see the financial, political, and time-frame viabilities to go ahead for the system. There may be some social and technical constraint to be considered also.
  • Preliminary plan: here, we need to wind up all the findings and submit as a written document for approval. The readers of this document (also known as feasibility report) are top managers who will then decide about the future actions to be taken, based on this report. They might would like to make few amendments in the project or shelve it, depending on the whole preliminary investigation.

Systems analysis: Here, the analyst will conduct the following activities:

Needs analysis: This activity is also called requirements analysis. Here the analyst would sum up the requirements of the system from the users and the managers. The developed system should satisfy these requirements during testing phase.

Data gathering: for this activity, the systems analyst uses different tools and methods, depending on the situation. They are discussed as under:

  • Written documents: in case we want to computerize the existing manual system or upgrade the existing computer-based system, much of the handful information can be made available using these documents. They are the reports, forms, memos, business plans, policy statements, organizational charts and many others.
  • Interviews: interviewing the mangers, users/clients, suppliers, and competitors will help the analysts /designers to gain more knowledge about the system. The emphasis is on the fact that the questions to be asked from them should be precise and relevant.
  • Questionnaires: it may be difficult to interview many people, so it is better to design some questionnaires to collect the information from as many people as we like. This is very convenient and inexpensive method to collect handful of data but sometimes the response may be ambiguous and insufficient.
  • Observations: the analyst or his team may go and watch the working, behavior, and similar things to know more about the similar systems around. The may be a participant or non-participant observer depending on the permission he got from the other party.
  • Sampling: if there were a large number of people or events involved in the system, it would be better to work on a portion of all of them to save time.

Data analysis: As we are living in the “Informationage” so it is generally believed in today’s computing scenario that data or information is the most precious commodity. Therefore, data must be accurate. Complete, and readily available in the systems we design. So to keep it in proper shape, we have many tools available. For example: DFDs (Data Flow Diagrams), system flowcharts, connectivity Diagrams, Grid charts, and Decision Tables etc. it is beyond the scope of this course to discuss them in details here.

Analysis Report: once the analysis work is over, we need to document it in a presentable form to the higher management for their review and approval of the project. This report should have three parts: First, it should explain how the current system (manual or automated if exists) works. Second, it should explain the problems in the existing system, and finally it should describe the requirements for the new system and make recommendations for future.

Design: in this phase of SDLC, the analyst works on the preliminary (Logical) design, detail (physical) design, and then writes a detailed report.

  • Logical design: it describes the general functional capabilities of a proposed system. It reviews the system requirements and considers the major system components. Case tools and project management software (MS-Project, Gantt chart, PERT chart etc) may be used to accomplish this task. You will learn about these tools and software in some advanced course.
  • Physical design: it describes how a proposed system will deliver the general capabilities described in the Logical design. It will address the following points: output requirements, input requirements, storage requirements, processing requirements, and system control and backup/recovery.
  • Report: a detailed report on logical, physical design is to be submitted to the higher management along with some sort of presentation, explaining them the details of the proposed system.

Coding:  This is the core area of the system development process. It consists of writing the segments and programs, which will be coupled together in the shape of a complete system. It needs a lot of time, effort and budget to acquire a workable system. The program specifications, algorithms, flowcharts are given to the programmers/ software engineers to code the required programs. Off-the-Shelf-Components (already written programs) can also be used and embedded in the system to save time and effort.

Testing: Having proper hardware acquired, the programs can be tested in two stages:

  • Unit-testing: it is also called modular testing where individual modules, programs can be tested using test (sample) data.
  • System-testing: in this, parts or modules are linked together to test their workability as a one system. Actual data may be used to do the system testing and at the same time, erroneous data can also be used to check  whether the system fails or not.

Id the system passes all the tests, we can implement the system on the servers, so that the organization and other clients can use it.

Implementation: this activity consists of transferring the hardware, software and data (files, database etc) to the new working environment (server). Users of the system are also trained in this phase. Implementation may be achieved in five steps:

  • Direct implementation: in this way, the users start using the new system right away and stop working on the old one.
  • Parallel implementation: Using this approach, the new and old systems are used side by side until it is felt that the new system is quite reliable.
  • Phased Implementation: in this approach, the new and old systems are used side by side until it is felt that the new system is quite reliable.
  • Pilot Implementation: this type of implementation allows us to implement the complete system but to a selected group of users or selected departments.
  • Users Training: involving the users in the SDLC process from the beginning and ensuring their proper training is very much essential throughout the system design activity. A variety of methods/ tools are used to do so i.e. Instruction Manual, Videotapes/CDs, and lectures etc. the training may be conducted “in-house” or it may be “Contracted Out”.
Comment: in general, the pilot and phased implementation are the most favored and popular approaches to implement the systems. Phased approach is preferable for organizations where different types of functions are carried out whereas Pilot approach is preferred where almost same type of work is going on in the organization.

Maintenance: the last phase adjusts and improves the system by considering the users evaluation, feedback, and enhancements based on their due recommendations. In this phase, due maintenance and help is also provided to the users against their queries, problems, and ambiguities.

System Development