Q-1 List the advantages of object oriented software development and explain.
Q-2 Explain the process of software development.
A software development process or a life cycle is a disciplined approach to develop a software product. There are various models that explain the activities or tasks that happen during the process. The software development process can be categorized into a number of subprocesses. Each sub-process needs to have the following information: A description about how the software works Specification of the input needed for the process Specification of the output to be generated The software development process can also be looked upon as a series of transformations where the output of a particular phase becomes the input for the next phase as shown in figure 3.1. We can explain the series of transformations that takes place in three different phases: 1) Analysis In this phase, the system analyst collects the details of the problem, interacts with the user of the system to find out the user requirements and analyzes the system to understand the functioning. Based on this study, the analyst prepares a model of the desired system. This model is purely based upon what the system is expected to do. At this stage the implementation details are not considered. Only the model of the system is prepared based on the idea that the system is made up of a set of communicating objects. Importance is given to the main building blocks of the system. 2) Design This phase begins with the problem statement and concludes with a detailed design that can be converted into a functional system. This conversion covers the details of software development, description of how the software is built, description of the software development and also the testing phase. 3) Execution During this phase, the class objects and the inter- relationships of these classes are translated and actually coded using the programming language decided upon. The databases are constructed and the complete system is given a functional shape with adequate testing. Execution phase has to consider how the system reacts to the program which is written for the system to work. One of the models used for the software development process is the water fall approach which begins with requirements collection. Once the requirements have been decided, we must decide as to how we can achieve them. The waterfall approach is illustrated in figure 3.2. In real world scenarios, problems are not well specified. This is one of the limitations of the waterfall approach. The waterfall model assumes that the requirements are well known before the design phase commences. But we need to understand that one needs to work with the product before the requirements are fully analyzed. It also makes an assumption that the requirements would continue to be stagnant during the development cycle.
Finally, even though the clear specification is there, it makes an assumption
that the design knowledge would be available to develop the product. The waterfall model is suitable for a well known product. Generally the approach is suitable for large projects. The advantages of the water fall approach are: It is easier to explain. The stages and activities are well specified. It helps to plan and schedule the project. It includes verification at each stage which ensures early detection of errors or assumptions. There are also certain limitations associated with this approach. The waterfall model assumes that the requirements of a system can be frozen before the design commences. This is possible for systems which are designed to automate an existing manual system. But for a newly conceived system, establishing the requirement is difficult, as the user does not know the requirements. Therefore, changing only a few requirements is unrealistic for such a system. The waterfall model demands that the requirements be completely specified before the rest of the development can proceed. In some situations it might be advisable to first develop a part of the system completely, and later enhance the system in phases. 3.2.1 Implementation, testing and documenting In the implementation phase, the designs are translated into code. Computer programs are written using conventional programming techniques or an application generator. Programming tools such as compilers, interpreters, and debuggers are used for generating the code. Different high level programming languages like C, C++, .NET and Java are used for coding. We choose the programming language according to the type of application. The testing phase employs quality control measures. Its basic function is to detect errors in the software built. The output of the requirement analysis and design phases is a document that is usually textual and non-executable. After the coding phase, computer programs are available that can be executed for testing phases. This implies that testing not only has to uncover errors that occur during coding, but also the errors of the previous phases. Thus, the goal of testing is to uncover requirement, design and coding errors. After the testing phase, it is important to document the system developed. Since documentation involves writing procedures, people who are specialized in this field develop these documents. The documents contain all the details about the system being built, and the entire process that it goes through before it becomes operational. 3.2.2 Deployment and maintenance Deployment is nothing but a combination of all the activities that make a system work. Deployment is always considered from the clients view as well as the end-users view after the system has been delivered. After the system has been delivered, deployment of the system will play a major role in making the system functional. The end users will have to test the system and check whether it has been built
according to their needs.
Maintenance phase consists of all the activities that are performed to keep the system operational after the installation of software. Removing errors is one of the tasks involved in maintenance. Maintenance is also needed due to changes in the requirements of the system. The introduction of a software system affects the work environment. This change in environment often changes what is required from the system. Furthermore, often after the system is installed, and the users have had an opportunity to work with it for some time, they come up with requirements that were not identified during requirement analysis phase. This occurs since the experience with the software helps the user to specify the needs more precisely. There might also be changes in the input data, the system environment and output formats. All these require modification of the software. Q-3 List and explain the four phases of the object modeling technique. Q-4 Explain the different states of activity diagram. Q-5 List and explain the basic categories of program errors. Q-6 What are the rules for developing usability testing?