Learning Modular Java Programming
上QQ阅读APP看书,第一时间看更新

Software – the perspective

A software application is a program which enables end users to perform a specific task, for example, online money transfer, and withdrawal of money from an ATM or the use of an Eclipse to develop an application. This application is complex, scalable, and distributed, providing a complete solution to the end user. Applications known as enterprise applications are needs-based, providing solutions to business requirements rather than to an individual. The organization will use this application or integrate it within an existing application.

Enterprise applications may vary from business to business, for example, school or employee management systems, banking applications, online shopping applications, or e-commerce applications. All such enterprise applications provide displaying, processing, and storing data as their basic feature. Along with these features, the application can also provide transaction management and security services as advanced features. We access such applications typically through a network system rather than on an individual machine.

Let's briefly discuss the software development process before moving ahead:

  • The software is always a solution or part of the solution to an enterprise problem. A good start in the development process is knowing exactly what the expectations are from the software, what types of solutions need to be included, what the data input will be, and what the output from the application is. This phase will be called the requirement collection phase.
  • Once we get an idea about the requirements, now it's time to decide the hardware specification, the system requirements, the architecture to use, the design to follow, and so on. This phase is called designing.
  • Using the design document, now developers will come in action to start a very important phase called development, where the actual coding takes place.
  • Suppose we have developed a product; how do we prove that it is the right solution for the requirements which we got in the first phase? Yes, with the help of testing. We can carry out unit testing, integration testing, assembly testing, and acceptance testing to ensure that the requirement has been met.
  • After successful testing, now it's time for the user to use it. This is nothing but the deployment phase, after which it is ready for use.
  • Talking in terms of one phase after deployment, the work is over but what if any runtime issue emerges? What if the client recommends some minor or major changes? Or what if it has a bug? Because of this, post-deployment is also a very important step, which we call maintenance.

Although these phases theoretically come one after another, there can be different approaches called software development process models, such as the waterfall model, iterative model, spiral model, v model, agile model, and so on.