Subscribe by Email


Showing posts with label Multiple. Show all posts
Showing posts with label Multiple. Show all posts

Wednesday, September 25, 2013

What is meant by multiplexing?

- Multiplexing or muxing is a very important process in computer networks and the telecommunications. 
Using this process, a number of digital data streams or analog message signals are combined as one signal and then transported over the common medium. 
Multiplexing is used wherever it is required to share a resource that is very expensive. 
- The most common example of multiplexing is of using one wire for several telephone calls. 
- The origin of the multiplexing dates back to 1870s when telegraphy was started.
- Now it is used to a great extent in the field of communications. 
- The telephone carrier multiplexing was developed by George Owen Squire in the field of telephony. 
- The communication channel over which the multiplexed signal might be transmitted might be a physical transmission medium. 
- The high level communication channel’s capacity is divided by multiplexing process in to a number of low level logical channels where for each message or data stream one channel is used. 
- Demultiplexing is the reverse process of multiplexing. 
- This is used for the extraction of the original signals on the reception side.
- A multiplexer or MUX is a device that is used for carrying out the multiplexing process and the demultiplexer or DEMUX is the device that performs demultiplexing. 
- IMUX or inverse multiplexing is another process whose aim is just the opposite of the multiplexing.
- It breaks down a single data stream in to various streams while transferring them at the same time over various communication channels.
- Later, the original stream is recreated.

Types of Multiplexing

Many different types of multiplexing technologies are available today. Each has its own significance:

Ø SDM or space-division multiplexing: 
This technique implies on using different point – to – point wires for individual communication channels. For example, an audio cable of analogue stereo, multi – pair telephone cable, switched star network, mesh network. However typically the wired SDM is not usually considered as multiplexing. In SDM a phased array antenna is formed by multiple antennas. For example MIMO (multiple – input and multiple – output), SIMO (simple – input and multiple – output), MISO (multiple – input and single – output) etc.

Ø  FDM or frequency-division multiplexing: 
This is considered to be an analog process, here the signals are sent in to different frequency ranges over a shared medium. For example, TV and radio broadcasting from satellite stations through the earth’s atmosphere. One cable is given in each house but over this cable many signals can be sent to other subscribers also. For accessing the desired signal, the users require to tune to that particular frequency. WDM or wavelength division multiplexing is a variant of FDM.

Ø TDM or time-division multiplexing: 
Unlike FDM, TDM is a digital technology but very rarely it might be used as an analog technology also. The process involves putting bytes in a sequence for each input stream one by one. this sequencing is done in such a way that the receiver can appropriately  receive them. If this is done quickly, the fact that another logical communication path was served in that circuit time won’t be detected by the receiver.

Ø  CDM or code-division multiplexing: 
In this multiplexing technique, the same frequency spectrum is shared by the several channels at the same time. Also the bandwidth of the spectrum is quite high when compared to the symbol rate or the bit rate. It is implemented in either of the two forms namely direct sequence spread spectrum and frequency hopping.

Some other types of multiplexing techniques which are less prominent are:
Polarization-division multiplexing: Used in optical and radio communications.
Orbital angular momentum multiplexing


Monday, August 19, 2013

What is meant by multi-destination routing?

- So many routing algorithms have been devised to aid in routing under different conditions.
- Effective routing algorithms have been developed that are capable of routing the messages from one source node to a number of receiving nodes i.e., the multiple destination nodes.
- These algorithms are termed as the multi – destination routing algorithms and the process is therefore called as the multi – destination routing.
- This type of routing has been developed for the minimization of the cost of the network i.e., NC (network cost).
- Network cost can be defined as the sum of all the links’ weights that consist of the routing path.
- There are many heuristic algorithms available for determining the NC min path.
- This problem falls under the category of the NP – complete problems.
- Heuristics are available for the traveling salesman problem and MST (minimum spanning tree) variations.
- Global information is used by both of them.
- Another set of such heuristics is available that uses only shortest paths for reaching the destinations.
- The best worst case performance is exhibited by the MST algorithm.
- However, one study revealed that effectiveness of the simpler heuristics is higher.
- The network cost (NC) is often compared with the destination cost (DC).
- Destination cost is the sum of the cost of all the shortest paths that lead to the destination.
- A scheme of algorithms has been developed for trading off between these two costs i.e., the NC and DC.  
- The sender of the transmitted data cannot be taken as a single node in a network where the cooperative communication is supported.
- This asks for the re-investigation of the traditional link concept.
- Any routing scheme thus depending up on this link concept needs to be reconsidered.
- Also, the potential performance gain resulting because of the cooperative communication needs to be exploited.

- Routing often gets complicated for some networks where the selection of the paths is no longer the job of a single entity.
- Rather, a number of entities are involved in the selection of the paths.
- Multiple entities can even select specific parts of a path.
- If these selected paths are chosen by the entities for their own objectives optimization then it can lead to inefficiency or serious complications in the network since they may or may not conflict with the other entities’ objectives.
- This would become clear from the following example, consider traffic moving in a system of roads.
- Now here each driver selects a path that would minimize only his/her traveling time.
- In this kind of routing, there are longer equilibrium routes (i.e., longer than the optimal.) for almost all other drivers.
- This is often termed as the Braess paradox.
- Another example is of the routing the AGVs (automated guided vehicles) by a model on some terminal.
- For prevention of the simultaneous usage of the infrastructure’s same part reservations are made. - This is called as the context – aware routing.
- The internet is divided in to a number of divisions which are nothing but Ass i.e., the autonomous system like ISPs.
- All these systems have control over the routes that lie in their own network at various different levels.

Following steps are involved in multi – destination routing:
1. The BGP protocol is used for selecting the AS – level paths.
2. A sequence of autonomous systems is produced by the BGP protocol via which the packet flow will take place.
3. The neighboring Ass offer multiple paths for each of the AS from which it can choose. Paths are selected based up on the relationships between the neighboring systems.
4. Each selected path refers to multiple corresponding router level paths.


Monday, July 8, 2013

Explain Carrier Sense Multiple Access Protocols - CSMA

- CSMA or Carrier Sense Multiple Access is defined as a probabilistic MAC (media access control) protocol. 
- In this protocol the absence of the traffic is verified by the node prior to start transmitting through a transmission medium that is shared by a number of channels. 
- For example, a band of EM spectrum, electric bus and so on. 
- Feedback from the receiver is used by the transmitter for determining whether the channel is already occupied by some transmission process or not. - This is termed as the carrier sense. 
- The transmitter before starting a transmission starts detecting whether a carrier wave is present their transmitted by some another station. 
- If a carrier wave is present, the transmission has no other option other than waiting for the transmission in progress to end before starting its own transmission. 
- To put it simply we can say that the carrier sense is what the CSMA protocol is based up on. 
- By ‘multiple access’, it simply means that a number of stations can transmit and receive data through the same medium. 
- But in this case all the other stations receive the data transmitted by one node using that same medium. 

There are many types of CSMA protocols as mentioned below:

1. CSMA with collision detection: 
- In short, this protocol is known as the CSMA/CD. 
- This protocol is used for improving the performance. 
- This it does through the termination of the transmission once a collision occurs along making reductions in the probability of occurrence of the other collisions upon re-transmissions.

2. CSMA with collision avoidance: 
- CSMA/ CA is the abbreviated form of this type of CSMA protocol. 
- This protocol avoids collision for improving the performance of the same.
- It tends not to be greedy on the transmitting channel.
- If it happens to sense the channel as busy prior to transmission then it is said to defer to a random interval.
- This is a measure for reduction in the probability of the packet collisions occurring on the channel.

3. Virtual time CSMA: 
- In short, known as the VTCSMA.
- This type of CSMA protocol has been designed for avoiding the collisions that are generated by the nodes. 
- These are the nodes that translate the signals at the same time. 
- This CSMA protocol is employed in the hard real time systems. 
- Two clocks are used by each node namely a real clock (rc) and a virtual clock (vc) for telling ‘real time’. 
- If the channel happens to be busy, the virtual clock freezes and if not it is reset. 
- vc is not initialized if the channel is busy and it runs faster when compared to the real clock.

CSMA happens to operate in various modes as discussed below:

1-Persistent: 
- The sender stations keeps on sensing the transmission channel until it becomes idle if previously it was busy. 
- When it finally becomes, then it starts transmitting the data packet i.e., the frame. 
- If a collision is detected, the transmitter has to wait for a random period of time before attempting to re-transmit the signal. 
- It finds use in systems such as Ethernet i.e., the systems using CSMA/ CD.

P-Persistent: 
- This mode lies somewhere between the non–persistent and the 1–persistent CSMA access modes.
- Once the data is ready to be transmitted, it checks for the status of the medium and starts transmitting the data packets with a certain probability.

Non-persistent: 
Less aggressive when compared to the previous one.

O-Persistent:
It works based according to the assigned transmission order. 


Saturday, June 15, 2013

What is Process State Diagram?

In the systems where multiple processors or multitasking is involved, a process has to go through a number of states. In this article we shall discuss about these states. 
The kernel of the operating system may not recognize these states distinctly but still for the understanding of how the processes are executed they act as useful abstractions. 
These various states can be looked up in a process state diagram for a systematic view. This diagram shows the transitions of the process between various states with arrows. Processes can be stored both in the secondary or virtual memory and in the main memory as per the situation.

Process States

- The primary process states occur in all types of the systems. 
- Processes in these states are usually stored in the main memory. 
Basically there are 5 major states of any process as discussed below:

Ø  Created: 
- It is also known as the ‘new’ state. 
- A process occupies this state up on it creation. 
- While waiting for being admitted to the next ready state this process lies in this state. 
- The admission scheduler will decide whether to admit the process to next state or to delay it on a short or long term. 
- However, this admission is approved in an automatic way in most of the desktop computers. 
- But in the systems with real time operating systems this is not true. 
- Here, the admission might be delayed by a certain amount of time.
- If too many states are admitted to the ready state in a real time operating system, condition of over contention and over saturation might occur disabling the system to meet its deadlines.

Ø  Ready or Waiting: 
- This state is taken up a process when it has been loaded in to the physical memory of the system and is waiting to be executed by the processor or precisely waiting to be context switched by the dispatcher. 
- At any instant of time there might be a number of processes waiting for their execution. 
- Here the processes have to wait in a queue called the run queue out of which only one process will be taken up by a processor. 
- Processes that are waiting for obtaining input from some event are not put in to this ready queue.

Ø  Running: 
- When a process is selected by the CPU for execution, its state is changed to running. 
- One of the processors executes the instructions of the process one by one. 
Only one process can be run by the process at a time.

Ø Blocked: 
- When a process is blocked because of some event such as I/O operations is put in to the blocked state. 
- Another reason for a process being a blocked state can be its running out of the CPU time allocated to it.

Ø  Terminated: 
- Termination of a process may occur when either its execution is complete or it has been explicitly killed.
- This state is called the terminated or halted. 
- This process is called a zombie process if after coming in the terminated state it is not removed from the main memory. 

There are two additional states for supporting the virtual memory. In these states the process is usually stored in the secondary memory of the system:

Ø Swapped out or Waiting: 
- A process is said to be swapped out when it is removed from the primary memory and placed in the secondary memory. 
- This is done by the mid - term scheduler. 
- After this the state of this process changes to waiting.  

Ø  Swapped out and Blocked:
- In some cases, the processes that were in blocked state might be swapped out. 
- The same process might be again swapped in providing the conditions remain the same.



Tuesday, May 7, 2013

What is meant by Time sharing system?


In the field of computer science, sharing resources of a computer through techniques of multi-tasking and multi-programming by many other system users is termed as a time sharing system. 
- It was first introduced in the year of 1960 and eventually emerged as the most popular computing model of the 1970s. 
- With it, occurred a major shift in the technology of designing the efficient computers. 
- These types of systems allowed quite a large number of users for interacting with the same computer system at the same time. 
- Providing computing capabilities was a costly affair at that time. 
- Time sharing greatly brought down this cost by providing these capabilities at a very less cost. 
- Since time sharing allows multiple users to interact simultaneously with the same system, it has actually made it possible for the organizations and the individuals to use a system that they do not even own. 
- This has further led to the promotion of the computers to be used interactively and development of other applications with an interactive interface. 
- The earlier systems apart from being expensive were quite slow. 
- This was the reason why the systems could be dedicated only to one task at a time. 
- The task was carried out through the control panels from where the operator would enter small programs manually through switches so as to load and execute a new program series. 
- These programs would take even up to weeks for completing execution. 
- The realization of the interaction pattern was what that led to the development of time sharing systems. 
- Usually, the data entered by a single user was in small bursts of info and then a long pause. 
- But if there would have been multiple number of users working concurrently on the same system, there activities could fill up the pauses of the single user. 
The overall process could be made very efficient for a given size of the use group. 
- In the same way, the slice or share of time that was engaged in waiting for network input or tape or disk could be utilized by activities of other users. 
- A system that would be able to harness this potential advantage was difficult to be implemented.
- Even though batch processing was a high at that time, it could only make use of the time delay between two programs. 
- In the early times, the multiplexing of computer terminals in to main frame computer systems was seen.
- Such implementations were capable of sequentially polling those terminals to check for additional action and data requests made by the user of the system.

- Later, came the interconnection technology that was interrupt driven and made use of the IEEE 488 i.e., parallel data transfer technologies.
- Time sharing faded for some time with the advent of the micro computing but again it came back in to the scene with the rise of internet. 
- The corporate server farms cost in millions and are capable of hosting a large number of customers sharing the same resources.
- The operation of the websites using the early serial terminals was in bursts of activity that were followed by idle periods. 
- However, it is because of this bursting that the services of the web sites could be used by a large number of users simultaneously and with the advantage that the delays in communications won’t be noticed by them.
- However, if the server gets too damn busy they will surely start coming in to the notice.
- Earlier some time sharing services such as the service bureaus were offered by many companies. 
- Some examples of common systems that are used for time sharing are:
  1. SDS 940
  2. PDP – 10
  3. IBM 360


Sunday, February 17, 2013

Explain Rapise - Web Functional/Regression Test Tool


In this world of web–based applications, every application is unique and therefore its testing needs are also different from the other applications. To satisfy all those different testing requirements, environments, specifications, scenarios and so on we require many different testing tools. So a number of web functional/ regression testing tools have been developed and all of them possess some unique features that suit to needs of the different testers. 

In this article we discuss about one such web functional/ regression tool called Rapise that has been developed by the Inflectra inc. 

About Rapise

- This tool provides a platform for functional test automation. 
- The architecture of this tool is quite open and can be extended if required. 
These two qualities make it very flexible for testing the applications.
- Rapise has built–in cross–browser testing capabilities that support several versions of the following web browsers:
  1. Microsoft internet explorer
  2. Mozilla firefox and
  3. Google chrome
- It supports the following applications:
  1. Ajax
  2. GWT
  3. YUI
  4. Flash/ flex
  5. AIR
  6. Silverlight and so on.
- Microsoft excel spreadsheets can be used for following approaches such as keyword driven testing and data driven testing.
- Rapise identifies the objects based up on CSS and Xpath. 
- Rapise comes with a built–in OCR i.e., optical character recognition.
- It relies on JavaScript for scripting purpose. 
- An open format is used for storing the scripts as well as the identified objects unlike other tools that store them in a database or a proprietary binary file. 
The JavaScript editor included with Rapise is full function edition and has a feature called the automatic code completion. 
- An active JavaScript debugger that is plug-gable plus has watches and break points, is also included in Rapise tool. 
- Rapise has made cross browser testing much easier than before. 
- This is all because of the cross – browser testing capabilities that are of the best standard and multiple browser versions as mentioned earlier in the article. 
You have the choice of recording and creating one test script and executing the same in all the major browsers without making any modifications to it. 
Rapise claims to have the most flexible as well as the powerful test automation features ever available in the market. 

Features of Rapise Testing Tool

Below we mention some features of Rapise testing tool:
  1. Learn and go functionality: This lets you create test scripts rapidly. This works in a more efficient manner than what traditional recording and playback methods we have. The editing of the object takes place during the learning process.
  2. Keyword driven testing and data driven testing
  3. Windows and web application testing
  4. Can be extended using Javascript
  5. Adobe AIR and Flash support
  6. Supports DevExpress, Infragistics and telerik controls.
  7. Support for Qt framework
  8. Integrated reporting capabilities that are very powerful.
  9. Integration with SpiraTest for effective test management.
- This tool has leveraged the power of extensible architecture by a great measure. 
- For user, the JavaScript source code has been made available for library recognition as well as execution. 
- All these features let you automate the test where other testing tools are bound to fail. 
- With such advanced features, Rapise can be called as the most customizable, extensible and flexible test automation tool. 
- Key functions can be modified by the users as per their requirement and the recording aspects can be customized with the help of custom plug – in libraries. - Since Rapise is using Javascript, a broad range of users can access it.  




Friday, August 10, 2012

What are the benefits of creating multiple actions within any virtual user script?


It is one of the most frustrating things when your software system or application crashes once the whole software development life cycle or SDLC is over while the user tries to install it. 
You can just make out what impression it will have of your work and efforts on the user!
- Time wasted!
- Reputation spoiled!
- No benefits!

Nowadays to avoid such kind of situations and inconvenience to the users, a standard procedure of QA (quality assurance) has been defined to test the software systems and applications. 
In previous years, the task of software testing was thought to be an ultimate drudgery but now it has all been eased with the help of automated testing tools and one of them being the VU or virtual user. 
In this article we shall discuss about virtual user as well as the benefits one can have of creating multiple actions within any virtual user script. 

What is Virtual User?


- Emulating a real world human user becomes such an easy task with the help of virtual user which otherwise will take up a lot of time.
- A virtual user can almost perform most of the actions that are performed by a human user like:
  1. Clicking the mouse
  2. Hovering or pointing the mouse over some object on the screen.
  3. Typing the words and commands.
  4. Selecting some object.
- The system on which the virtual user software package is installed acts as the host computer and one more computer is paired with this one called the target system. 
- The responsibility of the host system is to control the other computers present in the network while the target computer is programmed to receive the instructions from the host computer. 
- In the environment of the virtual user, the software system or application takes up the task of compiling and running the scripts called virtual user scripts.

Benefits of creating multiple actions with virtual user script


Now coming to the benefits of creating multiple actions within a virtual user script:
  1. Creating multiple actions within a VU script becomes quite effective when employed in tests that are highly repetitive and consist of many variations.
  2. With the multiple action feature, more and more tasks can be performed which otherwise would be quite a tedious job to do for the human users. But for a system it is possible since it does not bother itself with tiredness, tediousness and thus proving itself as an ideal tester.
  3. Another benefit of the multiple actions in one virtual user script is that such tests can be created which can be run at almost every internal build of the software system or application under question in the stages like:
a)   Development stage
b)   Alpha stage
c)   Beta stage
d)   Final release stage

  1. With a virtual user script with multiple actions it can be easily verified that no functionality was broken by the code changes that were made to the earlier version of the software system or application.
  2. With the help of multiple actions containing virtual user scripts, an automatic bug verification mechanism can be set up by imitating the steps through which a bug can be reproduced.
  3. The automatic big verification test thus developed can be used to test each and every release of the software system or application thus ensuring that the bug has been fixed and there are no chances of it sneaking back in to the program code.
  4. These multiple actions scripts can be split in to single ones whenever required. 


Friday, March 23, 2012

Multiple Condition Coverage is a white box testing technique - Explain?

There are so many types of the code coverage and the multiple condition coverage is also one of them and that is what has been discussed all about in this article.

What is code Coverage?

Code coverage as we all know is a process that aims at the following purposes:

- Creation of the additional test cases for increasing the coverage.
- Looking up for such areas of the software system or application code that have not been exercised by any of the test cases.
- Determination of the quantitative measure of the extent of the code coverage which can be thought of as an indirect measure of the software quality.
- Identification of the redundant test cases which does not affect the code coverage.

The whole process is a time consuming one and thus is helped by an automating tool called the code coverage analyzer.

What is Multiple Condition Coverage?

- Multiple condition coverage is a modification of the condition coverage type of the code coverage.

- As the term “multiple condition coverage” itself suggests that it implements almost all the possible combinations of the conditions in order to check whether those possible combinations do occur in the execution of the test cases or not.

- A large number of the test cases are required for carrying out a full multiple condition coverage of a decision and these are supplied by the truth tables of the logical operators obtained for that particular decision.

- The multiple condition coverage offers an added advantage in the languages such as C, C++, Java and so on which have short circuit operators which is that it helps in implementing a thorough testing.

- It in turn makes the multiple condition coverage in such languages very similar to the condition coverage.

Disadvantage of Multiple Condition Coverage

But, one should not think that the multiple condition coverage is void of any disadvantages.

- It does have one which is that the deciding up on the minimum number of test cases required for the coverage proves to be very difficult job.

- The problem worsens as the complexity of the boolean expressions implemented in the decisions increases.

- Another disadvantage adds to the problem of the test case designer which is that the minimum number of the test cases required for the coverage varies substantially from condition to condition having the similar level of complexity.

Lets take an example:

For example, in a decision, first condition may require 5 test cases while the second one may require 11 test cases and both the conditions are having the same number of operators and operands.

In contrast to the condition coverage that includes the decision coverage also, the multiple condition coverage does not include any decision coverage.

Now what about the languages like Pascal and visual basic that do not have short circuit operators? For such languages the multiple condition coverage is implemented in the form of the path coverage for logical expressions.

One point to be noted here is that the advantages and disadvantages remain the same in the path coverage form also since in the path coverage the number of each additional logical operator is doubled the number of the required test cases.

Multiple condition coverage takes in to consideration two or more conditions and then makes them in to a group and then they are tested. "Since the multiple condition coverage requires a very detailed knowledge of the software system or application’s code in order to understand all the decision aiming statements in that and in turn decide for the minimum requirement of the test cases, therefore it has been categorized under the white box testing techniques."


Thursday, February 2, 2012

What are different aspects of Cross Browser Testing?

Cross browser can be defined as the ability of a web page, web site or web application to run easily on all the browsers i.e., the web site, web page or application should have a good browser compatibility.

Many people confuse between cross browser compatibility and multiple browser compatibility.

Multiple browser compatibility is the ability of a web site, web page or application to execute efficiently on many browsers simultaneously. If a web site, web page, or application is having good browser compatibility, it is able to run on all browsers and without any loss of performance.

Maintenance of standards of performance is essentially necessary. All the browsers are then able to render that particular web site or application.

1. Cross browser testing is a no new methodology and has been in use since the web development started.
2. But, nowadays cross browser testing is used rarely since the modern versions of the browsers already have built in support for scripts like CSS 1 and HTML and so the browsers do not require any kind of proprietary extensions to attain the quality of cross browsing.
3. Another reason is that nowadays DOM manipulation methodologies which are way more compatible than cross browser compatibility testing are being used for the development of client side scripts.
4. The main browsers that a web page, site, application or a script needs to support include the following:

- Internet explorer
- Netscape
- Mozilla Firefox
- Google chrome
- Safari and
- Opera

These days only a little of cross browser support is demanded. The emphasis is on improving compatibility. The World Wide Web consortium introduced in 1997 a browser scripting language called “ECMA script” which was supposed to improve the cross browser compatibility of the browsers. It was after this only that the W3C started working up on DOM techniques.

1. Cross browser testing forms an essential part of web testing or when application testing, so it needs to be focused up on.
2. There are several testing tools available in the market today to carry out automated cross browser testing.
3. There are so many web browsers available today, and so the end users are not using the same browser.
4. A variety of browsers are in user which calls a need for testing of web sites and applications.
5. This need can be fulfilled by cross browser testing.
6. Client components like applets, flex, flash programs, AJAX and java scripts may behave differently when accessed through different browsers.
7. Also for every browsers hands end user’s request in a way that is different from the other.
8. Web developers need to make sure that the web sites and applications they are making are compatible with all the browsers and deliver exactly the same performance on any browser.
9. Testing a website or application for a single browser is of course not beneficial.
10. Cross browser testing involves testing of web sites or applications on both the sides i.e., client side and server side.

There are following kinds of engines:
- Gecko is used in Mozilla Firefox browser.
- KHTML is used by conqueror web browser.
- Presto is developed by opera and is used for opera browser.
- Trident or MSHTML is used for Microsoft developed browser “internet explorer”.
- Web kit is used for Google chrome and safari. It supports other browsers also.

Layout engines play a very important role in cross browser testing. They are basic entity that needs to be tested when you want to improve the cross browser compatibility. A layout engine is a web component that takes web contents and formatting instructions as input and displays the formatted content on the web page.


Saturday, April 16, 2011

Model-View-Controller (MVC) Design Pattern

Model View Controller design pattern is used to support multiple types of users with multiple types of interfaces. The Model-View-Controller (MVC) pattern separates the modeling of the domain, the presentation, and the actions based on user input into three separate classes:

- Model: The model locates all data information for the application. It does not care about how you interpret it or how process it. It divides functionality among objects involved in maintaining and presenting data to minimize the degree of coupling between the objects.

- View: The view manages the display of information. It is responsible for maintaining the consistency in its presentation when the underlying model changes.

- Controller: The controller interprets the mouse and keyboard inputs from the user, informing the model and/or the view to change as appropriate. The actions performed on the model can be activating device, business process or changing the state of a model.

The MVC pattern allows any number of controllers to modify the same model. The strategies by which MVC can be implemented are as follows:
- For Web-based clients such as browsers, use Java Server Pages (JSP) to render the view, Servlet as the controller, and Enterprise JavaBeans (EJB) components as the model.
- For Centralized controller, a main servlet is used to make control more manageable.


Thursday, March 24, 2011

Overview of Aspect Oriented Software Development (AOSD)

Aspect oriented software development defines aspects that express customer concerns that cut across multiple system functions, features, and information. It provides a process and methodological approach for defining, specifying, designing, and constructing aspects - mechanisms beyond subroutines and inheritance for localizing the expression of a crosscutting concern.
Aspect Oriented Programming (AOP) provides the ability to intercept code execution with the purpose of inserting a process before, in place of, or after the code that would normally execute.

Predominant reasons for AOSD are:
- Help solve the issue of messy object architectures.
- Object oriented programming has difficulty dealing with global information.
- Also, functionality that requires the involvement of several different objects (possibly collected into a component) results in interdependency between those objects/components. This makes the application susceptible to the implementation changes of a dependent object/component.
- Maintenance and enhancement are also problems, as the interaction between these objects/components are typically hard coded within the containing object.

AOSD programming technologies (aspect-oriented programming, or AOP) provide linguistic mechanisms for separate expression of concerns, along with implementation technologies for weaving these separate concerns into working systems. Aspect-oriented software engineering (AOSE) technologies are emerging for managing the process of developing systems within this new paradigm.


Facebook activity