Subscribe by Email


Showing posts with label Re-use. Show all posts
Showing posts with label Re-use. 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 factors are considered during component qualification in component based development?


Component based development is now becoming a common practice nowadays for re- using the validated software components of the already existing software systems or applications as a measure to shorten the development periods and enhance the quality of the software system or application.

The component based development focus on the development of new software systems by selection of the software components within the system architecture. Furthermore, the component based development has been known to accelerate the productivity of the development process and reduce the project costs. 

However, the success of the component based development depends on the suitability of the components chosen for the development of the new software. In this article we have discussed about the factors that should be considered during the component qualification in component based development. 

Due to some factors like increasing complexity and continuous change, it is required that the software should be changed to make the both ends meet. As a consequence, the software system or applications becomes more and more complex which means more and more errors. Assembling pre- existing software components not only increases the maintainability of the systems but also lends it more flexibility. Moreover, the system is assembled rapidly. It would not be wrong to call a component an independent entity intact with a complete functionality.

Process of Component Qualification


- Component qualification is a process that involves determination of the suitability of the component for being re- used in the next software system or application to be built. 
- This process of component qualification often comes to a great help whenever there is a competition for the products in the market.
- There are numerous factors that should be considered while counting for the qualification of a software component. 

Factors Considered during Component Qualification


- The most important factors are of the functionality and services that are being provided by the software component. 
- The factors also consist of many other aspects like those mentioned below:
  1. Standards that have been used to develop the software component.
  2. Quality aspects like usability, reusability and component reliability and so on.
- The components should have been developed under some standards and provide functions common to most of the different software systems and applications should be qualified.
- Further, the qualified components should exhibit the property of re- usability to a high extent. 
- Components form high level aggregations of the smaller software pieces. 
- All these components together provide a black box building approach which encapsulates the implementation detail from the development environment and is re- usable with the interfaces.
- For a component to be qualified, the component should have been developed in such a way that it is able to connect to a software component during the run time of the system. 
- Or we can say that in order to be qualified, the component should exhibit the quality of independent deployment. 
- This is necessary because this approach makes use of the resources. 
- The component qualification is one of the development activities that are under taken by the component based software development. The other three activities are:
  1. Component adaptation
  2. Assembling components
  3. System evolution
- All the above mentioned three activities follow up after the component qualification. 
-The components that are required are defined by the system architecture and requirements. - The characteristics of the component interfaces usually form the basic criteria for their qualification even though the degree of fitness of the component in requirements and architecture is not provided by the interface. 
- Interface here means the services that are provided by the component and the means through which these are accessed by the consumers. 


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. 


Facebook activity