Subscribe by Email


Showing posts with label Domain engineering. Show all posts
Showing posts with label Domain engineering. Show all posts

Thursday, June 14, 2012

What is meant by Domain engineering? What activities are involved in domain engineering?


Domain engineering is nothing but also known as product line engineering. This article is focussed up on the domain engineering and the activities that are involved with it. 

About Domain Engineering


- This is the process that re- utilises the entire domain knowledge in the production of the new software systems or applications.
- The domain engineering is an important concept under the systematic re- use of the software systems and applications. 
- There is a domain by the name of “application domain” consisting of the systems that share commonalities.

You must be wondering how it is possible to cater to the varying needs of the customers by working with just a few domains. 
- The developers make it possible by repeatedly building similar software systems or applications in one domain with many variations to cater to the wide needs of the customers and clients.
- They do not develop a new system starting again and again from the scratch. 
- Effective development is achieved by re- using the portions of the already existing software system or application in the domain. This way time is also saved.
- One of the activities in domain engineering is domain analysis and it involves:
  1. Identifying domains
  2. Bounding the identified domains
  3. Discovering commonalities and variabilities among all the systems in a particular domain.

Purpose of Domain Engineering


- Domain engineering aims at improving the quality of the software systems and applications through the re- cycling of the already existing software artifacts. 
- Thus, the new software systems and applications developed with the domain engineering are not actually new as a whole but are variants of the other systems and applications within the same domain that were built earlier. 
- Domain engineering has helped in maximizing the business profits and a reduction in the time to market has been observed. 
- The overall cost of the project is also reduced and is evident in the implementation phase of the domain engineering. 
- With the domain specific languages, the code size can be restricted both in the terms of numbers and methods. 
- In the domain engineering the developers are forced to use their knowledge that they gathered during the previous software engineering processes. 
- With the development of the re- usable artifacts, the cost of the software is reduced and the quality is improved. 

Domain engineering consists of three phases and the above principle applies well to all these three phases.

1. Domain Analysis 
- This phase involves defining the domain and collecting information about it and produce model based on the collected info. 
- With such a model, the common points as well as variant points of the domain are identified and thus the development of configurable requirements is facilitated.
- Domain analysis is not be confused with the requirements engineering.
- The effectiveness of the domain engineering stays only when the re- use of the software artifacts is deployed in the earlier phases of the software development life cycle of that software product. 
- Potential sources of the domain analysis include:
(a)  Design documents
(b)  User manuals
(c)   Requirements documents
(d)  Standards and
(e)  Customers as well.

     2. Domain Design 
   - This phase makes of the domain model produced in the first phase and produces a generic architecture appropriate for this model and to which all the systems within the domain can adhere to. 
    - With the configurable requirements produced in the previous phase, a standardized solution is obtained. 
  - The solution that is generated in this phase is common for all the systems within that particular domain.

     3. Domain Implementation
     - This phase involves creation of a customized program in that domain. 


Wednesday, June 13, 2012

What is a structure point and what are its characteristics in domain engineering?


Structure points are one of the terms with which most of us are rarely familiar. But, the structure points indeed play an important role in the domain engineering.  Those who know something about the domain engineering, might be familiar with the term. This article is all about the structure points, their characteristics and what role have they got to play in the domain engineering. 
But, before moving on to the structure points, you need to know at least a little about the domain engineering.  

About Domain Engineering


Domain engineering consists of 3 primary phases namely:
  1. Domain analysis
  2. Domain design
  3. Domain implementation
- Firstly, the application domain that is to be investigated is defined and all the common and varying points obtained from the domain are categorized. 
- These common and varying points are represented by the domain model. 
- The representative applications that are the result of the domain analysis are subjected to analyzation based on which the domain model is prepared which serves with the development of the architecture of the software system or application. 
- This process results in the formation of another model called the structural model. 
- This structural is said to consiss of a small number of structural elements in which you can clearly observe the interaction patterns manifesting. 
- The architectural that has been created in the previous steps can be re- used wherever required in the whole domain.
- The structural model is where the structure points come in to play! They act as distinct constructs within the structural model aspects like:
  1. Interface
  2. Response mechanism
  3. Control mechanism etc.
The domain engineering promotes the re- use of the components of the existing software systems or applications. A repository of the re- usable components or artifacts is created.
Now moving on to the characteristics of the structure points, they have got three basic characteristics:

Characteristics of Structure Points


1. The structure points ought to implement the concept of information hiding by the means of isolating all the complexity of them. This has provided a great deal of help in the reduction of the overall perceived complex nature of the software system or application.

2. With the structure points, abstractions having a limited number of instances in the application re- occur in all the applications that lie within a domain. The size of the class hierarchy should be small for this characteristic to take effect. Plus if the abstraction does not occur in all the parts of the software application, you won’t be able to justify the cost to verify, document and disseminate the structure points.

3. The rules that govern the use of structure point are very easy to understand plus the interface of the structure point is relatively very simple.

What is Structural Modeling and what is the role of structure point?


- The structure modelling is an essential approach to the domain engineering and is facilitated by the structure points. 
- Structural modelling is actually a pattern based approach and works up on the assumption that every application domain consists of repeating patterns that can be effectively reused. 
- A structural model is composed of a number of structure points.
- These elements only characterize the architecture of the software systems or applications. 
Simple patterns of interaction among these structure points can result in the formation of many architectural units. 
- Thus, structure point can be identified as a distinct construct within a structural model. 

Therefore the characterization of the structure points can be done as follows:
  1. The number of instances of the structure point should be limited.
  2. The interface should be relatively simple.
  3. Information hiding must be implemented by the structure point by isolation all the complexity contained within the structure point. 


Tuesday, June 12, 2012

Explain the concepts of Domain Analysis Process?


Domain analysis is one of the three phases of the domain engineering and is the first one. Domain engineering makes re- use of all the domain knowledge in the development of new software systems and applications. It forms a key concept of the software re- use. 

Application domain provides a key idea in the systematic software re- use of the software system or application. In this article we have discussed the process of domain analysis. The process of domain analysis involves sub processes like:
  1. Identification of domains
  2. Bounding of the identified domains
  3. Discovering commonalities and variabilities among all the systems in a particular domain.
The knowledge obtained in the above mentioned activities is captured in the models which are then later used in the third phase of domain engineering i.e., domain implementation for the creation of the artifacts such as:
  1. Domain specific language
  2. Re- usable components
  3. Application generators

Concepts of Domain Analysis


All the above mentioned artifacts can be used to develop new software systems or applications within that particular domain. 
- Domain analysis is one of the three primary phases of the domain engineering and focuses up on multiple systems within a domain. 
- In the phase of domain analyzation, the system domain is defined with the help of feature models. 
- Earlier these feature models were considered to be a part of the so called method: feature oriented domain analysis.
- One of the main aims of the domain analysis is to identify the common points as well as varying points in a particular domain. 
- The domain analysis has greatly helped in improving the development of the system architectures as well as the configurable requirements. 
- Apart from this, the domain analysis also helps with the development of static configurations.
- Most of the people confuse the domain analysis with requirements engineering, this is a mistake not to be made! 
- Domain analysis proves to be an effective technology for the development of the configurable requirements as compared to the traditional approaches since they are ineffective in domains. 
- The domain engineering tends to be effective only if the re-use of the already existing software artifacts is considered in the early stages of the development of the software system or application. 
- In the domain analysis, the features that can be re- used in the new software systems or applications are selected earlier and later are worked throughout the development life cycle. 
The entire process of the domain analysis is driven by the past experience produced from the artifacts on a primary basis. 
- There are many potential sources of the domain analysis few of which have been mentioned below:
  1. Artifacts of the existing systems.
  2. Requirement documents
  3. Design documents
  4. Standards
  5. User manuals
  6. Customers and so on.
- It is not necessary that the domain analysis should consist of the collected and formalized information rather it is the presence of a creative component that matters more.
- This thing distinguishes the domain analysis from the requirements engineering. 
- During the domain analysis what actually happens is that the developers try to extend their knowledge of the domain beyond what is already known. 
- This is done basically to categorize the similarities and differences of the domains so that the re-configurability is enhanced. 
- The domain analysis is carried out with the help of a domain model that represents the commonalities and variabilities of all the systems lying in that domain. 
- Basically, the creation of the components and architectures of the system is assisted by the domain model. 


Wednesday, September 16, 2009

Domain Engineering in CBSE process

The CBSE process encompasses two concurrent sub-processes - domain engineering and component based development.
The intent of domain engineering is to identify, construct, catalog, and disseminate a set of software components that have applicability to existing and future software in a particular application domain. The overall goal is to establish mechanisms that enable software engineers to share these components—to reuse them.

The overall approach to domain analysis is often characterized within the context of object-oriented software engineering. The steps in the process are defined as follows:
- Define the domain to be investigated.
- Categorize the items extracted from the domain.
- Collect a representative sample of applications in the domain.
- Analyze each application in the sample and define analysis classes.
- Develop an analysis model for the classes.

Some of the domain characteristics are as follows :
- It is sometimes difficult to determine whether a potentially reusable component is applicable in a particular situation. A set of domain characteristics may be defined to make this determination.
- A domain characteristic is shared by all software within a domain. It defines generic attribute of all products that exist within the domain. E.g., generic characteristics might include: the importance of safety/reliability, programming language, concurrency in processing.

Examples of application domains are:
* Air traffic control systems
* Defense systems
* Financial market systems

Domain engineering begins by identifying the domain to be analyzed. This is achieved by examining existing applications and by consulting experts of the type of application you are aiming to develop. A domain model is then realized by identifying operations and relationships that recur across the domain and therefore being candidates for reuse. This model guides the software engineer to identify and categorize components, which will be subsequently implemented.

One particular approach to domain engineering is Structural Modelling. This is a pattern-based approach that works under the assumption that every application domain has repeating patterns. These patters may be in function, data, or behaviour that have reuse potential.


Facebook activity