Software development

creation and maintaining of programs and applications

Software development is the process of creating a computer software. It includes the software release life cycle of preparing a design, coding the program, and fixing the bugs. The final goal is software release of a product that serves the wishes of users.[1]

Software product is usually a result of research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities.[2]

There are 3 main goals of software development:

  1. to meet specific needs of a specific client/business;
  2. to meet a need of some set of potential users;
  3. for personal use.

Process

change

A software development process (model, methodology) is a system that is used to structure, plan, and control the process of developing information systems. Each model is defferent, more or less structured and is considered to be suitable to only some kinds of projects.[3]

There are several stages of software development:

  • Analyzing the problem
  • Market research
  • Gathering requirements for the proposed software
  • Devising a plan or design for the software
  • Implementation (coding) of the software
  • Testing the software
  • Deployment
  • Maintenance and bug fixing

Activities

change

Understanding the need

change

There are different sources of ideas for software products like market research. The next step is market evaluation. It includes a check of cost and time assumptions, economic feasibility, fit with existing channels distribution, effects on existing product lines, required features, fit with the company's marketing objectives.[4]

This process is also connected with non-technical activities like human resources, risk management, intellectual property, budgeting, crisis management, etc.

Planning

change

An important task in creating a software program is understanding the requirements.[5] The software engineers must accept the client's idea and adapt it to the working process.

Designing

change

After establishing the requirements, the engineers start creating a software design document. Design of the software means the high-level design of the main modules with a full picture of how the parts fit together. The language, operating system, and hardware components should be clear at this stage.

Implementation, testing and documenting

change

There are 3 next processes which are combined:

  1. implementation — programming the code for the project.
  2. testing — looking for defects
  3. documenting — making documents of the inner design of software, API can be also included

Deployment and maintenance

change

The deployment includes installation, customization, testing, and possibly a longer period of evaluation.

Software training and support are important because software is only effective if it is used rightly.

Maintaining and improving software is the stage to cope with new faults or requirements, it usually takes a lot of time and effort.

References

change
  1. Birrell, N.D. (1985). A Practical Handbook for Software Development. Cambridge University Press. ISBN 0-521-25462-0.
  2. "New Product Development Glossary". Archived from the original on 2021-04-08. Retrieved 2021-04-01.
  3. System Development Methodologies for Web-Enabled E-Business: A Customization Framework Linda V. Knight (DePaul University, USA), Theresa A. Steinbach (DePaul University, USA) and Vince Kellen (Blue Wolf, USA).
  4. Joseph M. Morris (2001). Software Industry Accounting. p.1.10.
  5. "Ralph, P., and Wand, Y. A Proposal for a Formal Definition of the Design Concept. In, Lyytinen, K., Loucopoulos, P., Mylopoulos, J., and Robinson, W., (eds.), Design Requirements Engineering: A Ten-Year Perspective: Springer-Verlag, 2009, pp. 103-136" (PDF). Archived from the original (PDF) on 2018-01-27. Retrieved 2021-04-01.