Subscribe by Email


Showing posts with label Complexity. Show all posts
Showing posts with label Complexity. Show all posts

Thursday, March 14, 2013

What is autonomic networking?


- The concept of autonomic networking follows directly from the automatic computing.
- The initiation of the autonomic computing was done by the IBM Corporation in the year of 2001.
- This concept has been brought in to the present world networking scenario in order to make the creation of self - managing networks possible. 
- Self managing networks are required for overcoming the complexity of the various networks (including internet) that is increasing at a very rapid pace. 
- This is also necessary for the further growth of the networks i.e., beyond the network size that we have today. 
- Autonomic networking is a means for the management of the network complexity. 
- In future, it is quite a possibility that routers could not be configured directly. - A point will come when it won’t be manageable by humans. 
- Autonomic networking will also minimize the manual intervention to a large extent plus it will also cut down the dependencies on the operator. 
- NMS intervention will also be reduced. 
- A fully – fledged autonomic network is expected to be capable of the following:
Ø  Self – configuration
Ø  Self – protection
Ø  Self – optimization
Ø  Self – healing

- In traditional networking systems, the amount of configuration, monitoring and reporting to be done is very large and amount of routing is very less. 
- In the autonomic networking systems, things are just the opposite i.e., there is less amount of intent, feedback and reporting and routing is more along with the other operations such as discovery and autonomic interactions. 

In autonomic networking, there are 3 characteristics of the administrator interface:
  1. It is abstract
  2. Light weight
  3. Wide scope
- The increasing complexity of the network is viewed as a problem by most of the experts and that it might prove to be hindrance in its usability in the near future. 
- Number of PDAs, game consoles and smart phones is increasing day by day and these need an interconnection.
- Though such kind of pervasive computing adds features but it also increases the burden on the networking infrastructure that already exists since the number of tasks is so large that it is very difficult for humans to manage alone. - Another thing that adds to the problem is the cost of keeping a manual control on a number of devices in the infrastructure.
- Another important aspect is the price of manually controlling huge numbers
of vitally important devices of current network infrastructures.
- An analogy to autonomic nervous systems is the autonomic nervous system
or ANS. 
- This system regulates all the functions of the body and its various organs.
- Autonomic network systems bear a close resemblance to the ANS.
- Autonomic networking is all about adding more intelligence to the network.
- A number of complex operations are required to be carried out such as admission control, authentication, billing, shaping, routing, policing, QoS prioritizing and video encoding for providing simple services to the customer. 

There are a number of problems in the way of network as mentioned below:
  1. The ever increasing size of the network.
  2. The heterogeneous nature of the applications and devices.
  3. Increase in the requirement of service quality.
  4. Increase in the user expectations.
  5. Ever changing requirements.
  6. Changing context
- Pre – defined context is kept in while designing networks with the traditional approaches. 
- Whenever there is a change in the context, it leads to more time consuming manual tasks. 
- Algorithms used today do not have the ability of detecting context changes and interpreting the policies. 
- Such manual management causes more loss and outages in the revenue of the organization. 
- In autonomic networking, the system itself optimizes the goals. 


Wednesday, March 13, 2013

What are characteristics of autonomic system?


Autonomic systems bring both challenges as well as opportunities for the future networking. The increasing numbers of users have had a negative impact on the complexity of the networks; it has also increased by multiple folds. Autonomic systems provide a solution for this problem. 

Characteristics of Autonomic System

  1. High intelligence: These systems have more intelligence incorporated in to them which lets them tackle this increasing complexity easily.
  2. Business Goal: They are driven by the business goal that the quality of experience of the user must be high. Even with the changing environment, there goals remain the same. But there are changes that take place in the low – level configurations. For example, when a user switches over to a low bandwidth network, the bit rate of the video has to be reduced in order to satisfy the goals of the business.
  3. Complex operations: All the operations carried out in an autonomic system are complex in nature even for the simplest of the services. For example, authentication, video encoding, billing, routing, shaping, QoS prioritizing, admission control.
  4. High level objectives: The human operator just has to specify the high – level objectives and it is left to the system whether it chooses to optimize one or more of the goals. In order to achieve this, the system has to translate these objectives in to low – level configurations.
  5. Adaptability: The system has the ability to adapt itself to the current environment.
  6. Policy continuum: There are a number of perspectives to this as mentioned below:
Ø  Business view: Includes guidelines, processes and goals.
Ø  System view: The service should be independent of the technology as well as the device that is being used.
Ø  Network view: It should be specific to technology but independent of the device.
Ø  Device view: Both technology and device specific.
Ø  Instance view: Operation should be specific to an instance.

  1. Elements: The elements of the network are assumed to be heterogeneous by the autonomic communication systems whereas in plain autonomic computing the elements are taken to be as the homogeneous.
  2. Distributed: These systems work up on a distributed environment.
  3. Complexity: The complexity in autonomic systems is more because of the complex autonomic loop that includes the following operations:
Ø  Interaction between the context  and the business goals
Ø  The MAPE (monitor, analyze, plan and execute) loop.

10. Reliability: In autonomic systems, the network has the authority to decide for itself focusing on high level objectives. Autonomic systems rely heavily up on artificial intelligence. However, there are issues associated with artificial intelligence like it becomes difficult to intervene in between when the things go wrong.It is quite difficult to know whether the system is doing the things it is supposed to do or not.
11. Scalability: This is another major characteristic of autonomic systems. It is required to keep track of the large amounts of knowledge and information. Autonomic systems have three tools to take care of this:
Ø Distributed ontologies
Ø Distributed large – scale reasoning
Ø Exchanging only the useful information
ØDistributing information among the different components of the autonomic network.

But in these cases, detection of the conflicts is a difficult task. For handling the various interactions taking place the various autonomic components efficient protocols are required. 
Currently two approaches have been suggested for developing the autonomic networking systems namely:
1. Evolutionary Approach: Incorporating the autonomic behavior in to the pre – existing infrastructure. This approach will consist of updates in increments till a fully autonomic system is developed. This approach is more likely to be adopted even though it requires a lot of patchwork.
2.  Clean slate approach: This approach is focused up on re – designing of the internet.


Tuesday, March 12, 2013

What are autonomic systems? What is the basic concept behind autonomic system?


In this article we shall discuss about the autonomic systems, but before moving on to that we shall see a brief discussion regarding the autonomic computing. 

About Autonomic Computing

- Distributed computing resources have the ability of self–management. 
- This kind of computing is called autonomic computing and such systems are called autonomic systems. 
- Because of their unique capabilities, these systems are able to adapt to the changes that are both predictable and unpredictable. 
- At the same time, these systems keep the intrinsic complexities hidden from the users as well as the operators. 
- The concept of autonomic computing was initiated by IBM in the year of 2001. - This was started in order to keep a curb on the growing complexity of the management of the computer systems and also to remove any complexity barriers that prove to be a hindrance in development.

About Autonomic Systems

- Autonomic systems have the power to make decisions of their own. 
- They do this because of the high level policies. 
- These systems automatically check and optimize their status and adapt to the conditions that have changed. 
- The frame work of these computing systems is constituted of various autonomic components that are continuously interacting with each other. 
- Following are used to model an autonomic component:
  1. 2 main control loops namely the global and the local.
  2. Sensors (required self – monitoring)
  3. Effectors (required for self-adjustment)
  4. Knowledge
  5. Adapter or planner
- The number of computing devices is increasing by a great margin every year. - Not only this, each device’s complexity is also increasing. 
- At present highly skilled humans are responsible for managing such huge volume of complexity. 
- The problem here is that the number of such skilled personnel is not much and this has led to a rise in the labor costs.
- It is true that the speed and automation of the computing systems have revolutionized the way world runs but now there is a need for a system that is capable of maintaining these systems without any human intervention. 
- Complexity is a major problem of the today’s distributed computing systems particularly concerning their management. 
- Large scale computer networks are employed by the organizations and institutions for their computation and communication purposes. 
- These systems run diverse distributed applications that are capable of dealing with a number of tasks. 
- These networks are being pervaded by the growing mobile computing. 
- This means that the employees have to be contact with their organizations outside office through devices such as PDAs, mobile phones and laptops that connect through wireless technologies. 
- All these things add to the complexity of the overall network that cannot be managed by human operators alone. 
- There are 3 main disadvantages of manual operating:
  1. Consumes more time
  2. Expensive
  3. Prone to errors
- Autonomic systems are a solution to such problems since they are self – adjustable and do not require human intervention. 
- The inspiration or the concept behind the autonomic systems is the autonomic nervous system found in humans.
- This self – manageable system controls all the bodily functions unconsciously. - In autonomic systems, the human operator just has to specify the high level goals and rules and policies that would guide the management. 

- There are 4 functional areas of an autonomic system:
  1. Self–configuration: Responsible for the automatic configuration of the network components.
  2. Self–healing: Responsible for the automatic detection and correction of the errors.
  3. Self–optimization: Monitors and controls the resources automatically.
  4. Self–protection: Identifies the attacks and provides protection against them.
- Below mentioned are some characteristics of the autonomic systems:
  1. Automatic
  2. Adaptive
  3. aware


Thursday, August 30, 2012

What are the other codes you can write/call with in TSL?


TSL or test script language is the sole language of the winrunner i.e., it is the only language in which the winrunner test scripts are generated. One requires a deep knowledge of TSL so as to create highly sophisticated test scripts. 

A good knowledge of the language also cut downs on the need of the manual intervention. A small number of keywords and operators make the TSL language quite compact. Proficiency in languages like C and C++ will make it easier for you to deal with TSL language. 

The TSL language being a script language has a very simple syntax structure when compared to other programming languages. This feature of TSL adds to its both advantage and disadvantage. The advantage is that it is as easy as a wink to learn because of a less complex structure and the disadvantage is that being so simple reduces its capabilities. 

Below mentioned are the features of the TSL language that can be used to write the code:
  1. Comments
  2. Naming rules
  3. Data types
  4. Data storage
  5. Operations
  6. Branching
  7. Functions and
  8. Loops.
Knowledge of other languages like following also adds in quick learning of TSL:
  1. Java
  2. Perl
  3. JavaScript etc.
- The QTP codes that are written using the HP’s quick test professional can be written or called in TSL language also. 
- The reverse is also possible i.e., the code written in TSL can be migrated in to QTP format. 
- The other codes thus written using TSL language usually sever less time turnaround but it largely depends on the degree of the complexity of the code as well as the process.
- Winrunner provides a shareable environment in which users can organize, write and maintain a set of automated test cases as well as supporting software libraries. 
- The winrunner along with TSL provides a perfect tool box for the creation of a testing frame work but the responsibility to build the right frame work lies in the hands of the user. 
- Winrunner provides a good software development environment that caters to all the needs of the test automation engineers. 
- The TSL can be considered to be a simplified version of C language or one of its derivatives since it does looks and feels like C language. 
- Test automation engineers who are quite experienced with C take less time and face little difficulty in becoming proficient with TSL language. 
- The organization of the TSL code depends largely up on the skills of the test automation engineers. 
- They must organize and maintain the code base.
- The winrunner comes with a large number of automation wizards which aid in every process of test automation. 
- Even though the winrunner meets all the needs of the testing organization, it is required that an additional development paradigm and testing frame work must be implemented with it. 
- This is necessary because otherwise the values obtained from the test automation will be lost in the due course of maintenance.
- The web, GUI, .NET and java codes can be written and called with in TSL and can also be verified. 
- TSL language is a standard start up script that is easily invoked during the start up of the winrunner. 
- The TSL codes are used for the standardization of several operational aspects of the winrunner like the following:
  1. Standard functions
  2. GUI map configurations
  3. Shared scripts
  4. Shared libraries and so on.
- There are a hundred functions that TSL provides for various uses categorized under various groups and categories namely:
  1. Analog
  2. Context sensitive
  3. Customization and
  4. Standard.


Friday, June 29, 2012

Does automation replace manual testing? What are the main benefits of test automation?


Test automation has proved to be quite useful in reducing the night mares of the testers regarding the testing of very complex, complicated and large software systems or applications. Almost all the manual testing processes that make use of the formalized testing processes have been automated. Although manual testing involves intense concentration and can root many of the defects and faults in the software systems and applications, it requires a hell lot of patience, efforts and time.

Can automation testing replace manual testing?


- In today’s fast paced software world, test automation has undoubtedly become one of the most strategic and critical necessity of the software development. 
- In the past years, the level of testing was considered to quite sufficient since the software systems and applications were not so dynamic.
But in today’s world we have explosive software systems and applications and we need to test them? Here the manual testing alone cannot suffice! 
- There are many classes of defects that cannot be traced without automated testing and there are several other types of errors and bugs that can be discovered using manual testing only. 
- So, we will say the automation testing cannot replace manual testing though it can be considered as a surplus to the manual testing. 

With rising demands for qualitative testing two things are possible:
(i) Either we increase the number of people involved in testing or
(ii) We increase the level of test automation.

- The rising demands for the rapidly developing web clients have made the need for test automation much critical. 
- The most unfortunate thing is that the testers are not full time to hone their software testing skills and the testers remain testers and do not become programmers.
- As a consequence of this, the simplicity of the software systems and application has been ruined and made far too complex and difficult to implement. 
- In order to get the most out of the test automation process, it should be implemented to the maximum extent it is possible. 
- If it is not used appropriately you can even face a failure in the long term development. 

To reap the full benefits of the test automation you need to keep the following things in mind:
  1. Test automation is not a sideline rather it is a full time effort.
  2. You should not confuse the test framework and test design as same entities.
  3. The frame work that is to be used for the test automation should be application independent.
  4. The frame work to be used must be maintainable and quite perpetual.
  5. The test design as well as the strategy must be independent of the frame work.

Benefits of Test Automation



  1. Test automation reduces the population of the staff required to carry out the testing.
  2. Consumes less time.
  3. Fewer efforts required.
  4. Much preferable option when it comes to the size and complexity of today’s software systems and applications.
  5. Testing is a repetitive process and this drudgery of the testers is taken by the test automation.
  6. Test automation allows the machines to complete tedious task of repetitive testing while in the meantime the testers can take care of the other chores.
  7. The testing costs are reduced.
  8. Using test automation the load testing and stress testing can be performed very effectively.


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. 


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, May 8, 2012

Compare Test Driven Development and Traditional Testing?


Till many years the traditional testing was in use until there was a rise of another software development strategy or process called the test driven development. These two development processes are in great contrast to each other. 
This article is focussed entirely up on the differences between the two types of development i.e., the traditional testing and the test driven development. So let us begin by describing the test driven development. 

About Test Driven Development


- The test driven development process is comprised of the repetition of very short development cycles.
- By short here we mean the development cycles in the test driven development are shorter than the usual normal cycles. 
- These development cycles comprise of the following tests:
  1. Production of code: This step involves the creation of some code implementing which the code can only pass the test and does not incorporates any new functionality.
  2. Execution of the automated tests and observing their success.
  3. Re-factoring of code: This step involves the cleaning up of the code.
  4. Repetition: The whole cycle is repeated for the improvement of the functionalities. 
- The test driven development was considered to be somewhat related to the test- first programming concepts of the extreme programming long since. 
- After that it came to be as an individual software development process. 
- The test driven development has prove to be quite effective for developing ad improving the legacy code that has been developed using the older development techniques. 
- So many development styles for the test driven development have been identified like those mentioned below:
  1. Fake it till you make it
  2. Keep it simple stupid or KISS
  3. You ain’t gonna need it or YAGNI
- In the test driven development the primary focus is on writing the code which is necessary only to pass the tests to keep the design clean and clear of the fuzz.

About Traditional Testing


 Now coming to the traditional development methodologies or approaches, they are commonly called as the engineering approaches and they were defined at the very beginning of the software sciences. 

- Traditional development methodologies were developed to control the software development processes via a disciplined approach whose build and the stages were predictable.
- In the traditional software development methods, the stages of analysis and design precede the stage at which the software is build. 
- Unlike the test driven development process, these traditional development process are well documented .
- Their main disadvantage is that they are quite difficult to apply because of their complexity.
- Another disadvantage being that the traditional development methodologies are bureaucratic.
- In practical, these traditional development processes often cause a high level of complexity in the software system or application. 
- In traditional approaches there are two main stages namely:
1.      Stage of analysis and
2.      Stage of design
-The foundation of the whole project depends up on these two stages, therefore it is necessary that adequate focus is on these two stages and more and more efforts should be put on these stages. 
- For the project to be successful it is important that the traditional method is applied in the right way.
- Designing is considered to be a highly creative activity. 
- It becomes very difficult to plan and predict these complex methodologies as the level of their creativity increases. 
- The main feature of the traditional development processes is the detailed planning and designing phase. 
- Traditional development holds good when it comes to undertaking very large projects involving higher risk. 
- One more commonly observed thing is that the projects development with the traditional methodologies last longer. 


Facebook activity