Saturday, 22 December 2012

Process Models in Software Engineering

Domain Models

During requirements analysis phase, different models are developed to express requirements of the system. Though it is difficult to draw a line between these models as they complement each other, they differ in the manner information is expressed in these models. Most of these models are pictorial and contain explanation  to the diagrams. Some of these models are discussed in the following subsections.

Understanding the business domain

It must always be kept in mind that the first step in delivering a system is establishing what needs to be driven. That is, clear understanding of the problem domain is imperative in successful delivery of a software solution. A software developer has to develop an understanding of the business problem he is trying to solve. Unless he develops this understanding, it is really difficult, if not impossible, to develop the right solution. But at least if he collects both ends (sources, sinks) involved in different processes of the business system, the corresponding requirements will be complete and yield a better understanding of the problem domain. A  software engineer works on domains that may not correspond to his field of specialization (computer science, software engineering). He may be involved in the development of an embedded application that automates the control pad of a microwave machine or a decision support application for a stock  exchange broker. As the underlying systems for which these software applications are being developed are not software systems, the software engineer cannot be expected to know about these domains. So, how should he get all the required knowledge about these systems? As without acquiring this knowledge, he may not be  able to write down complete and unambiguous requirements which are acceptable to users as well. An important difference between software and another engineering discipline is that the software engineer has to work on problems that do not directly relate to software engineering. Whereas, an electrical engineer will  work on electrical domain problems, a civil engineer will work on civil engineering problems and so on. So,  software engineer has to learn user vocabulary and terms which they use in their routine operations. To  overcome this problem, a number of domain gathering techniques are used. These techniques help in  extracting requirements from systems which are not known to a software engineer. Using these techniques  the requirements gathering and validation process becomes convenient and manageable for a software  engineer.

The following subsections discuss some of these techniques.Which will be discussed in next post and that will be Logical System Models.

No comments:

Post a Comment