Application development (software development) is an iterative logical process that aims to create a computer coded or programmed software to address a unique business or personal objective, goal or process. Software development is generally a planned initiative that consists of various steps or stages that result in the creation of operational software.
Application development is primarily achieved through computer programming, which is carried out by a software programmer and includes processes such as initial research, data flow design, process flow design, flow charts, technical documentation, software testing, debugging and other software architecture techniques. This is known as the software development life cycle (SDLC).
Software architecture is a structured framework used to conceptualize software elements, relationships and properties. This term also references software architecture documentation, which facilitates stakeholder communication while documenting early and high-level decisions regarding design and design component and pattern reuse for different projects. The software architecture process works through the abstraction and separation of these concerns to reduce complexity.
Software Development life cycle (SDLC)
The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process. SDLC is a structure followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.
SDLC consists of following activities:-
- Planning:- Requirement gathering or requirement analysis are usually done by the most skilled and experienced software engineers in the organization. After the requirements are gathered from the client, a scope document is created in which the scope of the project is determined and documented.
- Implementaion: -The software engineers start writing the code according to the client's requirements.
- Testing:- This is the process of finding defects or bugs in the created software.
- Documentaion: Every step in the project is documented for future reference and for the improvement of the software in the development process. The design documentation may include writing the application programming interface.
- Deployment and maintenance:- The software is deployed after it has been approved for release.
- Maintaining:- Software improvement and new requirements can take longer than the time needed to create the initial development of the software.