Software development
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:
- to meet specific needs of a specific client/business;
- to meet a need of some set of potential users;
- for personal use.
Process
[change | change source]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 | change source]Understanding the need
[change | change source]There are different sources of ideas for software products like market research. The next step is market evaluation. It includes a check of cost [4]and time assumptions, economic feasibility, fit with existing channels distribution, effects on existing product lines, required features, fit with the company's marketing objectives.[5]
This process is also connected with non-technical activities like human resources, risk management, intellectual property, budgeting, crisis management, etc.
Planning
[change | change source]An important task in creating a software program is understanding the requirements.[6] The software engineers must accept the client's idea and adapt it to the working process.
Designing
[change | change source]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 | change source]There are 3 next processes which are combined:
- implementation — programming the code for the project.
- testing — looking for defects
- documenting — making documents of the inner design of software, API can be also included
Deployment and maintenance
[change | change source]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.
Modern Development Methods
[change | change source]As technology changes, the way people make software also changes. Here are some of the most common modern methods:
Agile Development
[change | change source]Instead of planning everything at the start, Agile development breaks the work into small parts called "sprints." Every few weeks, the team shows a working version of the software to the user. This helps the team fix problems quickly and change the plan if needed.
Open Source Development
[change | change source]Many pieces of software are created by volunteers from all over the world. This is called Open Source. Anyone can see the code, fix bugs, or add new features. Famous examples include the Linux operating system and the Firefox web browser.
Cloud Computing
[change | change source]Today, much software is not kept on a single computer. Instead, it runs on the Cloud. This means the software lives on powerful servers on the internet. Users can access it from anywhere using a web browser.
Artificial Intelligence (AI) in Coding
[change | change source]In recent years, developers have started using AI tools to help them write code faster. These tools can suggest how to finish a sentence of code or find mistakes automatically. However, humans still need to check the work to make sure it is safe.
References
[change | change source]- ↑ Birrell, N.D. (1985). A Practical Handbook for Software Development. Cambridge University Press. ISBN 0-521-25462-0.
- ↑ "New Product Development Glossary". Archived from the original on 2021-04-08. Retrieved 2021-04-01.
- ↑ 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).
- ↑ "Custom Software Development Cost Guide: Save Big in 2026". apptunix. Retrieved 2026-02-23.
- ↑ Joseph M. Morris (2001). Software Industry Accounting. p.1.10.
- ↑ "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.