Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components.
Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process.
Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.
Software development is a repetitive process of mainly three steps:
The amount of planning involved in software development varies between projects of similar size and therefore the expected duration for software development generally depends on the size of the project, the complexity of it, and how heavily it is dependent on developers. Schedule and cost are the main influences on the required completion date. The largest component of the schedule, by virtue of its importance, carries the greatest weightage of deciding the completion date.
Prior to undertaking a software project, it is necessary to determine its goals, by way of defining the problem to be solved, and the solution to be approached. Once a goal has been defined, it is necessary to assess the entire project at its best in order to determine if the goal is being achieved.
The biggest reason for changing requirements and goals is, while most developers engaged in software development, is the fact that some of them have not personally experienced the same situation at the workplace. It is for this reason, that many of them will approach a software development project from a position of ” Backup” rather than “Direct”. Back-end to back is more familiar to many developers.
The delivery of the software appliance used to deploy Web services requires a substantial amount of testing. This is the reason why testing is an important phase in the software development project. A successful Software Development project always starts with a Test plan, which should demonstrate “What if” scenarios, What are the constraints? Which scenarios need to be tested and which of them are critical? Should the Developers proceed with a test plan that is exhaustive or decide to chink away at the dream goal because of constraint? It is here that the quality of the Software being developed is at stake.
The Software Development life cycle (SDLC), is the technical term used to summarize the software development process. The software development process is based on the “Software Life Cycle” and is named that way because of the way in which activities are grouped together under the broad heading of the software development process. To simplify the jargon, the life cycle is like a “moving carpet” moving from one step of the process to the next. There are usually five major stages involved in the SDLC process.
The five major stages or phases are:
· Planning – although a project may start with a relatively simple plan, things can get complicated especially in the case of large projects. The Due diligence part of the planning process is an important activity that may be involved in even smaller projects. This stage involves a collection of items connected with the proposed project, areas of work to be performed, the necessary tools, Individuals, and resources required for the undertaking, and others.
· Configuration – this stage of the SDLC is the second major activity, and is the next stage after the Implementation. This stage has to plan the existing project, the configuration part of the documents, and the standards.
· Development – proceeds from documents to configuration and then to coding. This is the step in which code is produced.
· Testing – brings everything together, validates the product, and verifies its behavior. It also aims to shed light on the drawbacks and spot them.
· Implementation – brings all the parts together, lays out the plan for delivery, coordination, and so on.
· Documentation – tends to record and document “how-to” books of methods, procedures, and standards.
Designing the software involves different types of activity, such as business analysis, software architecture and design, reverse engineering, consulting, and software programming. The activity of software design is to combine the ideas and thoughts of the person who improvises upon the existing design with some fresh new scheme. In the earlier stages of software development, specifications are given to the software maker. As the technique of software development is a spontaneous reaction to the functional requirements, specifications may vary from time to time. In spite of a technically proficient designer, his job is made largely through notes and documents.
The aim of a software designer is to surrender some of the technician’s routine work and to allow him to concentrate on the ‘idea’ of the software product. A good designer should have a creative stride and should be able to assimilate the results of his imagination into some kind of meaningful images.
A software engineer should be able to carry out many different techniques of system development analysis. The delivery methods of a product among others depend upon the methodology adopted by the developer. Some companies prefer a more confrontational style of software development, whereas others may prefer a more subtle approach. practically, there is no difference that much in the requirements for a successful software installation.
The requirements for a software installation are only created if it is clear for the designer how the complete system functioning should look. A survey of the environment, interaction points, and film of interaction between the users and system are also very much required for a good software installation. It is only possible if three basic elements are present in the right software installer.