The History Of Generalize The Requirements

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

Finding out the problems from a requirement specification is not a simple task. The reason for this is that the clients may not be able to accurately describe the initial state and the desired goals of the system. The client requirements may be precise and present only precise wordings of a more general problem. Thus, to provide the wider view and make the right problems detect we abstract and generalize from the requirement specification and try to solve the problem at that level. Usually, this abstraction and generalization process allows defining the client’s requirements in entirely different terms and therefore may suggest and help to find out problems that were not considered in the initial requirements.

Identify Sub-Problems

When the requirement specification has been arranged into a more general and broader form, we derive the technical problem that usually consists of several sub-problems. Problem solving is defined as the action of a process by which the transformation from the initial state to the target is achieved [Newell & Simon 76]. Thus we need first of all to find out and explain the problem. For this, in the generalized requirement specification we look for the vital feature that need to be considered while developing. These features are identified by considering the terms in the generalized requirements specification, the general knowledge of the software product which needs to be developed and the interaction with the clients. This process is supported by the results of the requirements analysis stage and utilizes the provided use-case models, scenarios, prototypes and formal requirements models.

Specify Sub-Problems

The identification of a sub-problem goes in parallel with its specification. The major distinction between the identification and the specification of a problem is that the first activity focuses on the process for finding the relevant problems, whereas the second activity is concerned with its exact formalization. A problem is defined as the gap between the initial state and the goal. Thereby, the specification of the technical problems consists of describing its name, its initial state and goal.

Prioritize Sub-Problems

After the decomposition of the problem into several sub-problems the process for solving each of the sub-problems can be started. The selection and ordering, in which the sub-problems are solved, though may have an impact on the final solution. Therefore, it is necessary to prioritize and order the sub-problems and then process the sub-problems according to the priority. The prioritization of the sub-problems may be defined by the client or the solution domain itself. The latter may be the case if a sub-problem can only be solved after a solution for another sub-problem has been defined.

3.3.2 Solution Domain Analysis

Here corresponding solution domains are identified and search for complete background information required to solve the problems is achieved. The general idea is that requirements are specified using some representation and this should be refined along with the software development process until the final software is delivered.

In the Figure 4, the arrow from the concept Solution Domain Analysis to the concept Solution represents the previous requirement of deriving solution abstractions from the Solution Domain Analysis. The double side arrow from the concept Technical Problem Analysis to the concept Solution Domain Analysis represents the search, leveraging of the Solution Domain Analysis by the identified problems and refine the solution concept before the final solution.

The solution domain analysis process consists of the following activities:

1) Identify and prioritize the solution domains for each sub-problem

2) Identify and prioritize knowledge sources for each solution domain.

3) Extract solution concepts from solution domain knowledge.

4) Structure and refine the solution domain concepts.

An abstract model for illustrating the relationships between the concepts of Technical Problem, Sub-Problem, Solution Domain, and Solution Domain is represented Figure 5 []. Hereby, the round rectangles represent the concepts and the directed arrows represent the associations between these concepts. From the figure it follows that for each Technical Problem a solution is provided by one or more Solution Domains. The concept Problem includes zero or more Sub-Problems. Each Solution Domain includes one or more Knowledge Sources from which one or more Solution Domain Concepts may be derived that solves the concepts Problem and Sub-Problem. Identify and Prioritize the Solution Domains.

Let us explicate these activities in more detail now.

Identify And Prioritize The Solution Domains For Each Sub-Problem

For the overall problem and each sub-problem, the search is conducted for the Solution Domains that provide the solution abstractions to solve the Technical Problem. The Solution Domains for the overall problem are further more general than the Solution Domains for the sub-problems. As well as, each sub-problem may be recursively structured into sub-problems requiring more definite Solution Domains. Barrier in the search for Solution Domains may be the probable wide space of Solution Domains leading to a prolonged search process. Categorizations of the Solution Domain Knowledge into smaller sub-domains are performed to support this process. There are dissimilar categorization possibilities. In library science, for example, the categories are represented by facets that are groupings of related terms that have been derived from a sample of selected titles [Rubin 98]. The Solution Domain Knowledge can be categorized into the application, mathematical and computer science domain knowledge.

There is no mandatory for a particular categorization of the Solution Domain Knowledge and similarly other classifications besides of the above approaches may be equally used. If the Solution Domains have been sufficiently organized one may still encounter some problems and the Solution Domain Analysis may not always declare a feasible solution domain model. This is especially the case if the Solution Domain does not exist or the concepts in the Solution Domain are not fully searched yet and/or compiled in a reusable format. The flow diagram for the feasibility study on Solution Domain Analysis is shown in Figure 6 []. The diamonds represent decisions, the rectangles the processes and the rounded rectangle the termination of the flow process.

If the Solution Domain Knowledge does not subsist, one can either terminate the feasibility analysis process or initiate a scientific research to explore and formalize the concepts of the required Solution Domain. The first case directs to the conclusion that the problem is actually not entirely solvable due to lack of knowledge. The latter case is the more long-term and difficult option and falls outside the project scope. If a suitable Solution Domain exists and sufficiently specified, it can be reused to extract the necessary knowledge and apply this for the development. It may also happen that the Solution Domain concepts are well-known but not formalized [Shaw & Garlan 96]. In that case it is necessary to specify the Solution Domain.

Identify And Prioritize Knowledge Sources For Each Solution Domain

Every identified Solution Domain may cover a wide range of Solution Domain Knowledge sources. These knowledge sources may not all be appropriate and vary in quality. For differentiating and validating the Solution Domain Knowledge sources, basically two quality factors are consider the objectivity and relevancy. The objectivity quality factor refers to the Solution Domain Knowledge sources itself, and defines the general acceptance of the knowledge source.

The relevancy factor refers to the relevancy of the Solution Domain Knowledge for solving the known Technical Problem. The relevancy of the Solution Domain Knowledge is different from the target quality. A Solution Domain Knowledge entity may have a high degree of objectivity quality because it is very accurately defined and supported by a community of experts, though, it may not be relevant for solving the identified problem because it addresses dissimilar concerns. To be suitable for solving a problem it is required that the Solution Domain Knowledge is both objectivity and relevant. Therefore, the identified Solution Domain Knowledge is prioritized according to their objectivity and relevancy factors.

This can be expressed in the empirical formula:

Priority(s) = (objectivity(s)), (relevance(s))

Hereby priority, objectivity and relevance represent functions that define the corresponding quality factors of the arguments that stand for the Solution Domain Knowledge Source. For solving the problem, first the Solution Domain Knowledge with the higher priorities is used. The measure of the objectivity degree can be determined from general knowledge and experiences. The measure for the relevancy factor can be determined by considering whether the identified Solution Domain source matches the goal of the problem. Note down, though, that this formula should not be interpreted too firmly and rather be considered as an intuitive and practical aid for prioritizing the identified Solution Domain Knowledge sources rather.

Extract Solution Domain Concepts From Solution Domain Knowledge

When the Solution Domains have been identified and prioritized, the knowledge acquirement from the Solution Domain Sources can be initiated. The Solution Domain Knowledge might include a lot of knowledge that is covered by books, research papers, case studies, reference manuals etc. Due to the vast size of the Solution Domain Knowledge, the knowledge acquisition process can be a labor-intensive activity and as such a organized approach for knowledge acquisition is required [Partridge & Hussain 95], [Gonzales & Dankel 93], [Wielinga et al. 92].

Basically differentiation is done in between the knowledge extraction and concept formation process. Knowledge extraction focuses on extracting the knowledge and verifying the correctness and consistency of the extracted data. Hereby, the irrelevant data is ignored and the relevant data is provided as input for the concept formation process. Knowledge extraction techniques have been described in several publications and its role in the knowledge acquisition process is reasonably well-understood [Wielinga et al. 92], [Meyer & Booker 91], [Diaper 89a], [Firlej & Hellens 91].

The concept formation process utilizes and abstracts from the knowledge to form concepts. In the liteseveral concept formation techniques have been identified [Parsons & Wand 97][Reich & Fenves 91][Lakoff 87]. One of the basic abstraction techniques in forming concepts is by identifying the variations and commonalities of extracted information from the knowledge sources [Stillings et al. 95][Howard 87]. Usually a concept is defined as a representation that explains the common properties of a set of instances and is identified through its name.

Structure And Refined The Solution Domain Concepts

The identified solution domain concepts are structured using generalization specialization relations and part-whole relations, respectively. In addition, also other structural association relations are used. Like the concepts themselves the structural relations between the concepts are also derived from the solution domains. For the structuring and representation of concepts, so-called concept graphs are used. A concept graph is a graph which nodes represent concepts and the edges between the nodes represent conceptual relations.

After identifying the top-level conceptual, structural design the focus is on each sub-problem and follows the similar process. The refinement may be essential if the structural design concepts have a complex structure themselves and this structure is of significant for the eventual system. The ordering of the refinement process is determined by the ordering of the problems with respect to their earlier determined priorities. Structural design concepts that represent problems with higher priorities are handled first and in the similar style the refinement of the structural design concepts is done.

3.3.3 Alternative Management

Alternative Management includes the alternative generation and alternative evaluation of the defined solutions. The alternative space is define as the set of probable design solutions that can be derived from a given conceptual software structural design. The alternative generation and alternative evaluation of the defined solutions is incorporated. The Alternative Design Space analysis aims to depict this space and consists of the sub-processes Define the Alternatives for each Concept and Describe the Constraints as shown in Figure 7.

Let us now explain these sub-processes in more detail.

Define The Alternatives For Each Concept

In the synthesis-based design approach the various architecture design alternatives are largely dealt with by deriving architectural abstractions from well-established concepts in the solution domain that have been leveraged to the identified technical problems. Each architectural concept is an abstraction from a set of instantiations and during the analysis and

design, the structural design is realized by selecting particular instances of the structural design concepts. An instance of a concept is considered as an alternative of that concept. The total set of alternatives per concept may be too large and/or not relevant for solving the identified problems. Therefore, to define the boundaries of the structural design it is necessary to identify the relevant alternatives and omit the irrelevant ones.

Describe Constraints Between Alternatives

Structural design consists of a set of concepts that are combined in a structure. An instantiation of structural design is a composition of instantiations of concepts. The instantiations of these various concepts may be combined in many different ways and likewise this may lead to a combinatorial explosion of possible solutions. Hereby, it is generally impossible to find an optimal solution under arbitrary constraints for an arbitrary set of concepts. To manage the architecture design process and define the boundaries of the architecture it is important to adequately leverage the alternative space. Leveraging the alternative space means the reduction of the total alternative space to the relevant alternative space. A reduction in the space is defined by the solution domain itself that defines the constraints and as such the possible combination of alternatives. The possible alternative space can be further reduced by considering only the combinations of the instantiations that are relevant from the client's perspective and the problem perspective. Constraints may be defined for the sub-concepts within a concept as well as among higher-level concepts. Constraint identification is not only useful for reducing the alternative space but it may also help in defining the right architectural decomposition. The existence of many constraints between the architectural components provides a strong coupling and as such it may refer to a wrong decomposition. This may result in a reconsideration of the identified architectural structure of each concept.

3.4 WORKING OF 3C MODEL

In the above description of 3C Model, concepts and logical view of the 3C Model has been discussed. Now let’s converse about the working of 3C Model.

In context (environment) the requirement or need arise as shown with Input function in Figure 1, then requirements moves to Problem Description. The Problem Description is where technical problem analysis is performed on the problem. Search for solution domain for overall problem and each sub-problem is provided in Solution Domain Knowledge (SDK), with help of Domain Engineering. The SDK represent the background information, which if exists then it can be (re)used to extract the necessary knowledge for solving problem. When it is not existing, in that case new process for non-existing process will be developed, so as to include it to SDK for future use. Function Generate, produce different alternatives from the SDK that is possible alternative solutions. After alternatives have been generated, the Problem Description can be refined, with the help of Refined function. For example- if the problem is related to loan process of a bank and the alternatives generated are showing loan process in tabular form but as it is difficult to understand in tabular form as compare to graphical form, so one can refine the problem description. Alternatives appears from the function Apply, which gets inputs from SDK and Problem Description, for different alternatives possible for given problem and refined alternatives, if the alternative has been refined. While selecting the feasible solution from different alternatives, the Control part of 3C Model assist in selecting the right alternative or optimizes the given alternative to meet the criteria and constraints. The Analysis function, analysis’s the alternative process and this input is entered in Mathematical Model for description of the concepts of alternative. Then function Evaluation assesses the alternative with respect to quality criteria and constrains. A Quality Criterion is the relevant criteria that need to meet and Constraints are possible constraint from the Context or described by problem statement. To meet the criteria and constraints for the given problem, Heuristic Optimization Techniques correspond to the information for finding the necessary actions. Heuristic Optimization Techniques can be based on mathematical optimization techniques or heuristic rules. Domain Engineering helps in evaluation process of an alternative.

After alternative selection, the function Detail is used to describe the alternative. In 3C Model, Solution Description represents feasible solution for the given problem. Later, function Implementation maps the solution description to an artifact, Artifact represents the solution for the given problem. Function Output symbolizes the delivery of the solution for the given problem, whereas function Initiate represents the cause of the new need or problem because of the given solution.

3.5 CONCLUSION

3C-Model defines a generalized process in which a problem specification is transformed to a solution by decomposing the problem into sub-problems that are independently solved and integrated into an overall solution. This consists of multiple steps or cycles. Each cycle in 3C-Model corresponds to a transformation from one state to another, consisting of a problem specification state and a design state. The problem specification state defines the set of problems that still needs to be solved. The design state represents the tentative design solution that has been lastly defined. Initially, the design state is empty and the problem specification state includes the initial requirements. After each state transformation, a sub-problem is solved. In addition a new sub-problem may be added to the problem specification state. Each transformation process involves an evaluation step whereby it is evaluated whether the design solutions so far (design state) are consistent with the initial requirements and if there are any additional requirements identified during the evaluation. In particular, 3C-Process includes an explicit phase for searching design alternatives in the corresponding solution space and selecting these alternatives based on explicit quality criteria.



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now