Most existing constituent engineerings adapt constituent theoretical accounts that are based on object oriented programming constructs but constituents and objects are two different individualities, i.e. they do non hold similar constructs to each other. The Component Based Software Engineering ( CBSE ) plays a critical function in betterment of package quality in the field of desktop package and distributed web based information systems. In the field of distributed information system development many constituent engineerings are in usage to turn to complexnesss of the system in this country and these constituent engineerings are based upon already developed constituent theoretical accounts.

Most of the bing constituent theoretical accounts do non supply support for extended rapid constituent based development in embedded real-time systems due to their complexnesss. CBSE has important importance due to customization of embedded real-time system development in application spheres including consumer electronics, car industry, smart device application and cell phone. The decrease of constituent complexnesss in embedded real-time systems and, accordingly, the sweetening of the modularity and reusability in these systems, are extremely supported by ‘Component Based Development ‘ ( CBD ) .

Embedded real-time package constituents have restricted characteristics due to resource restraints like limited computer science, storage, power resources of the mark systems. Due to these restraints, constituent theoretical accounts and package constituents developed for embedded real-time systems support inactive constituent architecture. Furthermore proxy objects are created to add ‘dynamic component architecture ‘ characteristic that support Software Component Services [ 24 ] .

Component Based Software Engineering for Embedded Real Time System has become the hot subject from last few old ages in the package field. Due to the inordinate usage of embedded existent clip system in every field of life CBSE has become an interesting and of import subject in research field. There are a batch of constituent theoretical accounts available in the market today, such as COM+ , DCOM, COM, CORBA, .NET Component Model, JavaBeans and OMG ‘s etc. In general CBSE is all about specifying the set of regulations and criterions for constituent development, integrating and deployment, so a component theoretical account provides us these set of regulations and criterions. Furthermore these theoretical accounts provide a platform or runtime environment for development and executing of constituents. The versions of CBSE in embedded real-time systems development have important hazards and many costs effectual parametric quantities which are must be carefully evaluated [ 4 ] . For executing of component standardised runtime environment required that includes sphere specific runtime services, specification of interfaces for general services. Component ‘s sphere specific services include – for communicating purpose message waiting lines, remote event-based presentment and in instance of distributed system security services are provided to boot. Component ‘s general services include object creative activity, object lifecycle direction, licensing and object continuity support. The most of import stage in Component Based Development ( CBD ) is design ‘s description, in which constituent general to domain specific services are standardized, e.g. in distributed system implementing extra sphere specific services like constituent ‘s substructures and horizontal services that support extra functionalities across multiple sphere system and system and interface direction services may based on constituent ‘s general theoretical account. Most popular and practical used constituent theoretical accounts likes Microsoft ‘s COM, DCOM, COM+ , .NET Component Model, Sun ‘s JavaBeans and Enterprise JavaBeans provide support for similar services in distributed systems that are utile in multiple spheres. For more sphere specific services all major constituent theoretical account besides provide perpendicular services and define criterions for constituent ‘s interaction and composing in telecommunication, health care and fiscal base distributed system execution [ 25 ] .

Problem Statement

At foremost the construct of Software Component Services ( SCS ) was introduced by Microsoft in Component Object Model Plus ( COM+ ) and now it is a portion of.NET platform. The construct of SCS is achieved by proxy objects which make it easy to develop constituent based package systems in the field of distributed systems. Proxy objects provide message communicating and other services like logging, security direction and dealing managing between constituents. In Microsoft Component Object Model plus ( COM+ ) placeholder objects on based of declaratory service specification are automatically generated at run clip and constituent developers do non compose codification to implement package component service.

Following are the chief ends and aim of thesis:

The intent of this Master thesis is to do a Ocular Studio Add-In that targets smart device undertakings in Ocular Studio and proxy objects are generated and compiled off-line before being deployed to the mark system. More specifically, the Ocular Studio Add-In generates files and adds these file to already bing ATLSmartDevice undertaking that can be compiled with Microsoft Embedded Visual C++ .

As a lower limit, the new Ocular Studio Add-In must be able to bring forth codification for a simple logging service for the undermentioned types of constituents:

.NET constituents running on top of the.NET Compact Framework

COM constituents, which may run on systems where the.NET Compact Framework is non available.

The end product from the Ocular Studio Add-In should be a set of beginning files and heading files for a Ocular Studio ATL smart device solution, that can be compile with ATL Smart Device undertaking.

To do the tool less dependent on the file formats of a specific version of Ocular Studio, the files should be generated by raising Visual Studio ‘s mechanization object theoretical account.

Technology version and Scope

After treatment with undertaking supervisor, I decided to utilize MS Visual Studio.NET 2008 professional edition for development of Ocular Studio Add-In that generates proxy object for ATLSmartDevice COM dll. MS Visual Studio.NET 2008 Professional is latest and upgraded edition that supports.NET compact model for smart device application development, debugging and deployment.

My Ocular Studio Add-In generates proxy object files by raising Visual Studio ‘s Automation Object Model, so that file format is less dependent on the file format of specific version Visual Studio.NET. I besides used MS Visual Studio.NET 2008 for proving & A ; rating of my thesis execution. I developed ATL Smart Device COM constituent & A ; Managed COM client application for proving intent in MS Visual Studio.NET 2008.

COM ATL Smart device constituent exist in the signifier of COM type library with file extension.tlb, I developed Ocular Studio Add-In to read both metadata/.NET assembly of.NET smart device constituent and ATL smart device COM type libraries. In COM/DCOM usage type definitions and object ‘s belongingss and methods are put or shop in type library in the signifier of interfaces and client application can entree these interfaces at runtime. COM client application entree COM constituent ‘s interfaces and invoke an object ‘s method.

The chief functional demand of my thesis, to plan Ocular Studio Add-In that targets ATL smart device COM constituent and generates proxy object with simple logging services of selected function/method or interface by raising Visual Studio ‘s mechanization object theoretical account, so that end product should less dependent on the file format of a specific version of Microsoft Visual Studio.NET. During probe I found that Microsoft Visual Studio.NET 2008 mechanization object theoretical account non back up to make ATL smart device Visual Studio undertaking at runtime. For that ground, foremost I created ATL smart device Visual Studio undertaking manually in Microsoft Visual Studio.NET 2008. My Newly developed Ocular Studio Add-In first opens ATL smart device Visual Studio undertaking so creates/generates C++ beginning, heading placeholder object files, and other relevant files and makes alterations in ATL smart device Visual Studio undertaking. In staying subdivision of this thesis I try to discourse in item about ATL COM constituents and shortly about.NET assemblies.

Report Outline

In this subdivision describe the brief sum-up of each chapter and will be written after completion of whole thesis.

Chapter 2

Why Component Based Software Engineering?

Enormous development and radical alterations have been observed in package technology in recent decennary. Dependence on package has increased and engagement of package in about every industry has become about indispensable. However big package is used to work out the industrial or some other jobs. Large sizes of package make it complex. This complexness increases the ratio of package failures. These factors have a great function in the successful package development like budget, deadline, quality, harmonizing to demands and care. Many of package undertakings were failure due to unable to run into their deadlines, out of their budget boundary like etc. There was a demand how to get the better of this increasing failure rate. This demand takes to travel the whole scenario towards reusability. But this reusability was non carry throughing the whole demands of that job. So a construct of constituent based package technology was introduced for this intent. In this mechanism a immense application divide into little constituents. Each constituent dainties as separate and work independently and it can be used separately or besides integrate with other constituent for developing a big application [ 4 ] . CBSE is differnet from traditional Software Develovpemnet attack because in which Software can be devloped from abrasion. CBSE based on the thought where Software system depend upon choosing off-the-rack constituent and piecing those constituents in the chiseled signifier of softwre architecture [ 5 ] .

Softwar Component

Software Component is little portion of big application. Software Component can be easy deploying in any environment. A package constituent can be entree with its interfaces. Interfaces are wholly different from component execution [ 7 ] .

Microsoft defines the package constituent in COM ( Component Object Model ) context is

“ A piece of compiled package, which is offering a service ” [ 8 ] .

This definition explains the package constituent in simple and brief manner. Software constituent is itself a independent package application which provide separate end product. It can be developed and deployed independently within another big application. All the CBSE ( Component Based Software Engineering ) revolve around the constituent. A component consider as nucleus of CBSE [ 7 ] .

Another celebrated definition of constituents is “ A package constituent is a unit of composing with contractually specified interfaces and expressed context dependencies merely. A package constituent can be deployed independently and is capable to composing by 3rd party ” [ 7 ] .

This definition emphasizes on the independent deployment characteristic of the package constituent. A package constituent communicates with its environment through its interface. The encapsulation characteristic provide a manner by which environment ca n’t entree straight component execution. Another characteristic of package constituent of its independent nature. A good constituent is those which can be easy integrate or deploy. There is no demand to recompile the whole application at the add-on of new constituent [ 7 ] . Harmonizing to functionality package component divide into two types. I ) General constituent. Class frame works, C++list templets and user interface doodads are the illustrations of general constituents. two ) Implementation constituent. Beginning or feasible codification, interface specification, codification templets and interface specification are the illustrations of Implementation constituent [ 7 ] . A package constituent can easy replace with other constituent in a big application without interrupting the normal sequence. This characteristic shows the utility nature of the constituent.

Software Component Model: –

“ A constituent theoretical account specifies the criterions and conventions that are needed to enable the composing of independently developed constituents “ [ 22 ] . The criterions which a constituent theoretical account describes are plays of import function in the creative activity of constituent from abrasion degree and besides stipulate the whole communicating between the constituents in a system. These criterions are really helpful for execution, composing and deployment of a constituent. These constituent theoretical accounts play a really of import function in the industrial based constituent package technology. Component Models provide the standard how to successfully compose the existed or freshly created constituent. Due to this mechanism a encouragement is exposed in the constituent based package development. These criterions emphasize on the reusability of constituents and minimise the precincts of object oriented scheduling. In other words we can state Component Model plays an of import function in the field of Component Based Software Development. These Component Models are JavaBeans Component Model, COM, DCOM, MTS, COM+ , CCM, .NET Component Model and OSGI Component Model etc. In regard of their cardinal characteristics every constituent theoretical account has importance in the field of constituent based package development.

In 1997 Sun introduced the JavaBeans component theoretical account. As comparison to other industrial constituent theoretical account it is celebrated due to its simpleness. It is a platform independent constituent theoretical account and written in Java. It is usually used for planing the GUI ( Graphical User Interface ) .There are three major characteristics set of belongingss, set of methods and set of events which a JavaBeans fire [ 23 ] . Microsoft introduced COM as constituent manner in 1995. First clip it introduces the characteristic of plan independent. After that Microsoft enhanced its characteristic with distribution and new version DCOM introduced. Component theoretical account remain same but lone alteration occur in the model. But enhancement procedure non stopped. A new version MTS was introduced with dealing services. COM+ is the presently enhanced version of this concatenation [ 4 ] .

Microsoft besides introduced another constituent theoretical account.NET constituent theoretical account. Because COM was non become celebrated due to its limited binary interoperability and self-contemplation. Like Java Byte Code, .Net constituent theoretical account has internal MSIL ( Microsoft Intermediate Language ) for interoperability. And CLR ( Common Language Runtime ) is for self-contemplation. It performs the functionality like Java Virtual Machine. Another constituent theoretical account is OSGI which was introduced in 1999. Its major characteristic, there is no demand of high memory it can be run on low memory therefore OSGI focused on frivolous model. Component developed from this theoretical account supports dynamic behaviour of architecture of system therefore any update in the constituent province can be easy done without break or shutdown the system [ 4 ] .

Software Component Specification: –

In Component based package technology ( CBSE ) specification of package constituent has large importance. A package constituent can be classified into two parts User position and Developer position. Normally a package constituent consists of two thing an feasible codification and set of interfaces by which a constituent can pass on with other application or constituents. So the feasible codification is related to developer and interfaces provide all the related information about constituent operations to user. And in this context we can state a package component specification is relevant to component interfaces. A component specification consists of concise information about its operation and context dependences. A component developer and user take aid from this brief information or package specification. Normally for user point of position a specification provide the information about definition of interface and component operations. But for developer point of position specification provide the brief information about internal construction of the constituent [ 7 ] .

There are three types of Component specification a ) syntactic specification B ) semantic specification degree Celsius ) Extra functional specification.

B ) No uncertainty syntactic specification is widely used as comparison to semantic specification. Component Object Model specification is based on syntactic specification.

Component Object Model: –

Component Object Model is besides called as COM. It is an Object Oriented System,

Architecture and model that is used to make the binary package constituents. It is a platform-independent system. Rather than object orientated linguistic communication it is a standard [ 10 ] .COM model support the interoperability and reusability of distributed constituents. Due to this, outlooks of the developer are traveling to maintainability and adaptability.

COM concentrates on basic jobs that are related to component base package. These four

Problems are given below: – [ 11 ] .

aˆ? Basic constituent interoperability

aˆ? Versioning

aˆ? Language independency

aˆ? Transparent cross-process interoperability.

Generally communicating or interaction between constituents has an importance. Before the

COM a Dynamic Data Exchange ( DDE ) system is used for interposes communicating. Microsoft

Introduced COM model at the release clip windows 3.1 unit of ammunition 1993. Class Idaho is used as a

Identifier in COM constituent. Components perform their functionality through interface. Every

interface has its ain alone Idaho. Interface methods execute a major function for accessing a COM

constituent [ 12 ] .

COM object internally has independent nature. Any linguistic communication can be used for execution.

COM has a characteristic that a client ca n’t entree the existent information of COM object. Client can pass on with object via set of related interfaces. Every interface shops the information about standard methods in Dynamic Dispatch tabular array. Due to the object oriented nature interface heritage is possible with add-on of new methods in Dynamic Dispatch Table ( DDT ) . This type of heritage is known as single-inheritance. However multiple heritages is possible but it ‘s a complex undertaking. A figure of Dynamic Dispatch tabular array that jointly inconsistency with each other can be extend at a clip. Questioning 3 for interfaces is a mechanism by which desired multiple heritage consequences achieved. Normally each interface has three basic criterion methods in DDT. These methods are query, addref and release [ 13 ] .

All the needed administrative installations provided by these methods. The first slot of DDT is

allocated to question method. An object sends and receives the petition to other objects by question method. In the specification of COM usually query method is known as QueryInterface. Sometime question method generates an mistake message if requested interface does non back up with object. The other two standard methods addref and mention usually work for commanding the object life with the aid of numeration of mention. After utilizing the COM object a client used the release method for destroy the object. If client want to give this mention to anyone else like 3rd party so both parties add mention in addref method. After the use of this object they used release method for destroy or let go of the object. No uncertainty refuse aggregation techniques are used to automatically manage the life of objects. But some clip rhythms developed between the objects. It ‘s done usually when two different objects hold each other by mention and province of both objects remains same. In this state of affairs refuse aggregation techniques non work automatically and manual method is required to avoid this rhythm ‘s job. Memory direction is straight affected on any application and component public presentation. A successful constituent or application is that which can pull off the memory in an efficient manner. Component Object Model provides a mechanism for memory direction and mentions. In this context COM provides three basic parametric quantities which perform their responsibility sing memory direction and mentions. These parametric quantities are in, out and in-Out [ 13 ] .

COM object besides provide a mechanism for mistake handling. In this mechanism a standard describe

known as 32-bit namespace mistake codification. COM maintains this namespace into two classs for mistake handling. One class is known as globally-unique, centrally allocated mistake codifications and 2nd 1 is called interface-specific mistake codifications [ 13 ] . COM provides an object theoretical account and scheduling demands by which their objects interrelate with other objects. Smalltalk and C++ provide a simple mechanism by which execution of COM object can be done. However C, Java and VBScript can besides be used for creative activity and utilizing of COM constituent [ 15 ] . Microsoft provides a method in the signifier of COM by which object in different web or infinites can pass on with the aid of their methods. COM provides a mechanism by which runing system work under a scenario in which an object creates or destroys automatically harmonizing to their demand [ 14 ] .

A major advantage of COM is garbage aggregation by which object destroys automatically when

no outstanding mention is available [ 14 ] . dll snake pit is known as the foremost drawback when COM is compared with.NET. In this scenario when a dll or COM objects are used as common constituent in different application. If an application update a new version of shard COM constituent the other application which is non back up the new version works no longer. So in this instance many applications that depend upon that common constituent halt their working [ 16 ] .

Component Object Model Specification: –

COM specification is like a same as other component specification. Microsoft provides criterion for interoperability in the signifier of Component Object Model. These criterions are really utile for creative activity of reclaimable libraries. Run clip interaction is the characteristic of these libraries. Another characteristic of these libraries there is no demand to roll up when we add them in our application. These binary criterions are besides utile for different operating system and hardware platform. COM specifies the mechanism which makes certain the reusability of package among the different platforms. Inter component communicating in the signifier of call map is done by the aid of COM binary criterions. COM besides specifies a manner that distinguishes between constituent and interface. These criterions describe a manner to map the group of strongly-type maps into an interface. COM besides provides a mechanism where different parts work together for application development. [ 21 ]

Chapter 3

What is Real Time System

Real Time System progressively got the importance in day-to-day life. Most of the field like Science, Health, defence, air traffic control system and car where usage of RTS is quickly increased.

As comparison to other Computational System, the success of Real Time System is non merely depend upon the rightness of functionality or end product there is besides a demand of right consequence with attention of clip deadline.

Definition ( Young 1982 ) “ Any information processing activity or system which has to react to externally generated input stimulations within a finite and specified period “ [ 18 ] . Harmonizing to this definition any processing system that generates end product within a given clip period as a consequence of any input is called Real Time System. The Success of existent clip system is depending of its completion before its clip deadline. A Real Time System called a fail system if it provides consequence or end product after its deadline. The success of system depends upon the deadline non merely on the logic rightness or desired end product. Defense & A ; infinite system, networked multimedia system, embedded automotive electronics system and Air traffic control system are the illustrations of Real Time System. Harmonizing to the system nature, Real Time System can be classified by and large into two types Hard Real Time System and Soft Real Time System. A system in which end product is expected within the deadline and after that deadline end product see useless is called every bit Hard Real Time System. Some clip losing deadline becomes the cause of system crash/ failure. For illustration a vehicle engine control system is an illustration of Hard Real Time System in which delayed of end product signals may go cause of system clang. A system in which end product hold or portion of end product some clip omitted can be consider as end product is called a Soft Real Time System. As an illustration we can see a picture where show is shown with missing of some frame or hold of gesture in the frame. In this illustration no uncertainty end product is non properly displayed but it is acceptable and non has any serious consequence on the system stableness [ 19 ] .

Embedded System

A portion of computational system is designed to execute a specific undertaking or functionality. This system some clip includes some package and mechanical portion as hardware. In other words we can explicate these systems are particular purpose instead than a general intent. The package portion of these systems is called as microcode. These systems perform their functionality harmonizing the set of direction ( package ) without the human interaction. The microcode usually stored in the ROM ( Read Merely Memory ) .

Embedded Real Time System

It is a system designed to execute one or several maps with the assistance of existent clip calculating restraints. It is embedded as a portion of complete device. As the name indicates, with in a existent clip system, the functionality of the embedded systems is chiefly concern with the timing demands of the system. This means that the embedded existent clip system should bring forth the coveted end product within coveted clip period. Physically the embedded systems ranges from portable devices such as digital tickers, MP3 Players to big devices such as traffic visible radiations, mill accountants and even the system commanding the most black atomic arms. The complexness of these systems besides varies from a individual microcontroller bit to multiple units, peripherals inside a big enclosure. Traditionally the existent clip embedded systems were defined in rigorous mode for some specific functionality but now the interior decorators are stressing more and more on flexibleness of the systems. So that the new constituents can be adjusted at any clip within embedded existent clip systems. The existent clip embedded systems have high public presentation demands that need to be fulfilled for the ground of safety and serviceability. The plans written for existent clip embedded systems are by and large referred as microcode and are stored in the read-only memory or the brassy memory french friess.

COM in Real Time Embedded Systems:

The modern tendencies of existent clip embedded systems showed that they can be good evolvable and they can germinate over decennaries. One of the most of import concerns of existent clip embedded system is dependableness. The independence between the constituents of the existent clip embedded systems makes them more flexible and easy to germinate over a period of clip at less cost.

Modern Real Time Embedded Systems gives rise to a new package technique called as Component Object Model ( COM ) . The chief focal point of this theoretical account is to develop a existent clip embedded systems within different constituents and so incorporate them together to finish the functionality of the existent clip embedded system device. This manner different constituent of the systems can be made much more independent. It helps to track the mistakes and mistakes in a constituent of system alternatively of tracking the mistake within the complete system. By this mechanism we can take the advantage of recycling the same constituents several times within different systems and to cut down the overall cost of our system. Even to make alteration within one constituent without impacting the whole system.

Component Technologies for Embedded Real Time System

The usage of the constituent engineerings within existent clip embedded systems is much more difficult comparison to other systems chiefly because of the difficult timing demands of embedded existent clip systems. The embedded existent clip system needs to present the right services at right clip which sometime increases the complexness of the system. There are several types of constituent engineerings and choosing a peculiar engineering depends upon assorted parametric quantities such as the sum of informations, claims that the peculiar engineering is best for embedded systems. Some of those engineerings that are common in pattern are ;


It is possible to utilize any constituent engineering in the building of existent clip embedded systems if the regulations used in its composing guarantees the runtime belongingss. It is a undertaking traveling on at SEI in the Carnegie Mellon University. It is a development substructure with development tools and analysis techniques. It is independent of the underlying engineering that makes it more portable and introducible.


It is the consumer electronic based constituent theoretical account which is developed and used by the Philips. The usage of inexpensive hardware ion its building helps to cut down the building cost. To portion the resource efficaciously and expeditiously, the thread sharing technique is used which keeps the figure of the yarn low with low use of memory. It is hard to present new engineering within them since they are developed merely for specific intent.

Rubus Component Model:

It is developed by the Arcitcus along with the some research groups. The functionality of constituent is divided into two chief parts. The Red represents difficult existent clip demand and is chiefly used for clip critical applications. Whereas the bluish represent the soft existent clip demands and is event-triggered by nature. Since the Rubus theoretical account contains the source-code, so it is easy to inspect and prove it.

Port Based Objects ( PBO ) :

It is specialized for detector based control systems along with reconfigurable robotics applications. The chief aim of this design is to ease the reusability of the constituents by minimising the communicating and synchronism between the constituents. It is easy to work with both at the system degree and the component degree. It has the job of tight matching that makes it less portable.


It is largely used in field devices. It has been constructed by the combine attempts of research group and industries. It besides takes into history the non functional demand along with the map demands of the system. However it does non hold a specific Integrated Development Environment ( IDE ) . Commonly it is used incorporated with Unified Modeling Languages ( UML ) that makes it more estimable and efficient. For its proving largely black box engineerings are used. However the usage of white box engineerings is under research.

CORBA Based Technologies

The Common Object Request Broker Architecture is merchandise of OMG. It provides a platform for the development of Object Management Group ( OMG ) . Assorted types of CORBA exist in pattern. The two chief discrepancies of CORBA are the Minimum CORBA and the Real Time CORBA. The minimal CORBA is used in a resource restraints system whereas the Real Time CORBA is used in clip critical. The binding of constituents and platform in CORBA are performed at run-time. This makes it hard to analyse the system. Since it uses the binary constituents, so review of it is about impossible.

Software Component Services for Real Time Embedded System

No uncertainty popularity of Software Component Model widely spread from last few old ages. It is merely due to it ‘s widely usage in the development of distributed information system and desktop application. The popularity of Software Component Model is less in the field of Embedded Real Time System as comparison to development of desktop application and distributed information system. The ground behind this narrative is particular demands of Embedded Real Time System. Normally JavaBeans & A ; ActiveX SCM are used in the development of desktop application and Enterprise JavaBeans & A ; COM+ are used in distributed information system. The major hinderance for the use of this Software Component Model in the field of Embedded Real Time System are clip predictability and limited use of resources ( CPU, Memory ) . No uncertainty different research workers realize this thing and they defines new SCM for ERTS. Koala, PECOS and SaveCCM are defined as a consequence of their research. However COM ( Component Object Model ) and DCOM ( Distributed Component Object Model ) are besides supplying the base for developing the ERTS. But these theoretical accounts are non properly compatibles. No uncertainty it is consider every bit good known due its credence in industry [ 20 ] .

Component services appear as a widespread solution for the package component theoretical account in the Embedded Real Time System. Logging, synchronism etc, are illustrations of constituent services [ 20 ] .

Loging service

These services are used for decide the timing and executing way of an application. There is no demand for recompiling the constituent. Interface logging entry can be done with the add-on in constellation file of application [ 20 ] .


These services provide the solution in that instance where same informations accessed by different yarn at a same clip. Normally this type of state of affairs arises in constituent province. This service provides a mechanism like precedences. A common exclusion policy and different reader / author policy are the illustrations of this mechanism. In common exclusion policy on the precedence base merely one yarn executes. Staying yarn will barricade. In 2nd policy reader instance yarn can read the same clip but in instance of write it works as exclusion policy. This service makes the component independent in regard of environment like individual yarn or multi thread environment [ 20 ] .

Execution Time Measurement

It measures the constituent executing clip in all instances. Like worst, best etc [ 20 ] .

Chapter 4

In package industry constituent based package development is acquiring particular attending due its reusability and modularity. Components one time developed can be used in assortment of different packages. In order to easy incorporate them into any application they must be built utilizing some criterions. So here component development theoretical accounts come into drama. A batch of constituent theoretical accounts are developed which provide criterions for interfacing, calling and integrating for the constituents. In embedded existent clip systems this attack is besides really popular but the range of these constituent development theoretical accounts is non really broad. A batch of good constituents theoretical accounts are unfit for embedded existent clip systems merely because there is some resource limitations, clocking restraints and synchronism in these systems. In order to broden the range of constituent development theoretical accounts we need to come up with some alternate manner. Widening an existant constituent with these adition features seems a good attack. So in this thesis I worked on widening an existant com constituent for smart device. This will broden the range of constituent theoretical accounts in embedded existent clip systems. I used the constructs of proxy objects to widen the functionality of an bing com componend and add logging to that constituent. In order to widen a constituent we foremost need to bring forth its codification containing categories and maps. For code coevals of com provides an first-class environment. So I developed an circuit board for Visual which will bring forth the codification of a com constituent for smart devices and widen it with adding logging service to it. Before I go into the inside informations of codification generator I would foremost wish to depict some rudimentss of Ocular studio.

Ocular Studio

In 1997 Microsoft intorduced different ocular scheduling linguistic communications for development intent of their operating system. At the same clip Microsoft besides introduced an IDE for these progrmming linguistic communications. Microsoft provide a IDE ( Integrated Development Environment ) for developing the console and graphical user interface applications ( e.g. Window Forms, Web Appplications, Web services ) . These applications are supported for these plateforms Microsoft Windows, Windows CE, Windows Mobile, .Net and.Net Compatc model. Ocular Studio support different scheduling linguistic communications C # , C/C++ , Visual Basic etc. Ocular Studio supply different featurs like Code Editor, Debugger, Designer and Extensibilty etc.

However Ocular Studion provide the characteristic of Code Editor as other IDE codification editor. Another best characteristic is backgroud digest. When we satart to compose the codification in codification editor automatically a background digest is start. In instance of sentence structure and digest mistake it provide the feedback like underline the mistake with ruddy colour.

Ocular Studio debugger characteristic provide the fucntionality as machine degree and beginning degree debugger. As debugger Visual Studio provide the characteristic to put the breakpoint for monitoring and detecting the beginning codification. With the aid of debugger a developer can easy happen the bugg or take the mistake from the beginning codification [ 17 ] .


This term is used in different sense. But in package development it ‘s average as addition functionality of package. Ocular Studio Microsoft provide the extensibility characteristic in the signifier of Add-In, Macros and Packages etc. Extensibility is large characteristic of Ocular Studio. Visual Studio 2008 provide a new option for extensibility in the signifier of Ocular Studio Shell. This new feauter plants in two manners i ) Integration mode two ) Isolated manner. Integration manner is good for programming linguistic communication every bit compared to insulate manner [ 3 ] .

What is Ocular Studio Add-Ins

Microsoft used a specific term Add-in for package application. This Software application can be add in another primary plan. The chief intent of this application is to widen the functionality of Primary plan [ 1 ] . Circuit board can be define in different footings in simple words Add-in is a package plan that can be used to heighten the capablenesss of the larger package plan [ 2 ] . Add-In has a power full characteristic to widen the functionality of Ocular Studio by the integrating characteristic [ 3 ] . Add-In is a compiled dll file. Ocular Studio can lade this dll file at the clip of startup of IDE because its wholly integrate with the IDE. As comparison to Macros an Add-IN can deploy or travel without traveling of its beginning codification [ 3 ] . Add-In besides prvide a manner by which a developer can easy heighten the IDE environment.

Add-In provide same functionalities like macro. Like a macro Add-In can entree on objects and mechanization characteristics. However with the presense of all similarites a digest differnce is besides found between Add-In and macro. After the digest of add-in it becomes the dll. And IDE load it. But in.NET macros interprets with the aid of macro engine. Becaue add-in like a dll so it can be independently administer without its beginning codification. This characteristic of add-in become its better as comparison to macro. But macro can be distribute with its beginning codification. Another characteristic of Add-In is its linguistic communication independent. A developer can develop Add-In in any.NET supported linguistic communication. But on the other manus Macro can develope merely in Visual Basic. [ 6 ] .

A Ocular Studio Add-In for Software Component Services in Smart Devices

Now I will show the stairss to utilize the codification generator with screen shootings of the graphical user interface. I have created an Add-in for the codification coevals public-service corporation. After the successful creative activity of “ CodeGenbyAddIn ” Circuit board it can be found in Tools bill of fare of the Microsoft Visual Studio IDE.

To establish the codification generator public-service corporation chink on Tools.

Then chink on CodeGenbyAddIn.

Figure * . * : Add-in Location Screen Shot

The codification generator public-service corporation window will open. Choose the library type you want to utilize. Then you need to snap on browse button to choose a.tlb file. When you click on browse button a file shoping window will start up which will let you to shop to the location of your.tlb/.dll/.exe file. Choose the.tlb/.dll/.exe file you want to bring forth the codification for and click clear.

Figure * . * : File browse window

The full way of the file you selected will now be seeable. Now click on the burden com type library button. The category hierarchy along with the maps of the selected.tlb/.dll/.exe file will now be seeable in the white box of the window. Check the maps you want to bring forth codification for and so snap on the generate codification button to bring forth the codification for the selected maps.

Figure * . * : Class and Function Hierarchy

A new case of Microsoft Visual Studio IDE will open with the ATLSmartDevice undertaking opened. Initially the empty undertaking was created manually. Code generator Add-in will bring forth the codification for the selected category and maps on runtime and topographic point it in the SimpleCalcClassProxy.h, SimpleCalcClassProxy.rgs and SimpleCalcClassProxy.cpp files. In the below figure you can see clearly the codification generated for the SimpleCalcClassProxy.cpp.

Figure * . * : ATL Smart Device

5. Test Example

Software Testing execute an of import function in the Software development. Like traditional package development, in constituent based package technology package proving and proof is considered as of import portion of development. This stage of package development life rhythm make certain the success of system and besides assessed the end product of system. Is it meet the demands? The chief intents of proving stage are proof & A ; confirmation, estimation system dependability and better the system quality.

Like other application in this Add-In application I gave a particular purpose to proving. There are a batch of proving techniques being used in the package technology field. I had to take such proving techniques which will be efficient and good for my instance. So I selected debugger for white box proving to guarantee that each statement of my application is executed at least one time. While utilizing debugger for white box proving I created to a specific set of input informations which will enable the plan control to put to death every statement. This will guarantee the rightness of plan logic but it can non find the cogency of concern logic and system specification. In order to verify the concern logic and system specification, and whether all the system specifications are implemented, I used black box proving. I created different trial instances to look into that all the usage instances are tested at least one time. I wrote trial instances covering all the possible scenarios.

After all the logic and specification is tested I moved to prove the cogency of the generated end product of my application. This is a critical portion in the testing of any package. So I started with a simple illustration. I created a MyComObject of Com type library for a simple reckoner with one category named SimpleCalc, one interface named ISimpleCalc and four basic maps which are Add ( ) , Subtract ( ) , Multiply ( ) and Divide ( ) .

public ISimpleCalc



STDMETHOD ( Add ) ( int iFirstValue, int iSecondValue, int* piResult ) ;

STDMETHOD ( Subtract ) ( int iFirstValue, int iSecondValue, int* piResult ) ;

STDMETHOD ( Multiply ) ( int iFirstValue, int iSecondValue, int* piResult ) ;

STDMETHOD ( Divide ) ( int iFirstValue, int iSecondValue, int* piResult ) ;

} ;

Now to prove the com type library I created a managed client named MyManagedClient.

Then I used MyComObject with MyManagedClient and recorded the end product.

//group exposure of com object and managed client

This MyComObject is a simple com constituent without proxy object and no logging service is implemented in it. MyManagedClient created an case of interface ISimpleCalc and called all the four maps which are Add ( ) , Subtract ( ) , Multiply ( ) and Divide ( ) . These maps are defined in the CSimpleCalc category. Below is the codification for MyComObject which shows that there is no logging service implemented in it.

Header file

// SimpleCalc.h: Declaration of the CSimpleCalc

// Used from MSDN library

# pragma one time


# include “ resource.h ”

# endif


# include “ resourceppc.h ”

# endif


# include “ resourcesp.h ”

# endif


# include “ resourceayg.h ”

# endif

# include “ MyCOMObject.h ”

// CSimpleCalc

category ATL_NO_VTABLE CSimpleCalc:

public CComObjectRootEx & lt ; CComMultiThreadModel & gt ; ,

public CComCoClass & lt ; CSimpleCalc, & A ; CLSID_SimpleCalc & gt ; ,

public ISimpleCalc



CSimpleCalc ( )



# ifndef _CE_DCOM


# endif

BEGIN_COM_MAP ( CSimpleCalc )




HRESULT FinalConstruct ( )


return S_OK ;


null FinalRelease ( )




STDMETHOD ( Add ) ( int iFirstValue, int iSecondValue, int* piResult ) ;

STDMETHOD ( Subtract ) ( int iFirstValue, int iSecondValue, int* piResult ) ;

STDMETHOD ( Multiply ) ( int iFirstValue, int iSecondValue, int* piResult ) ;

STDMETHOD ( Divide ) ( int iFirstValue, int iSecondValue, int* piResult ) ;

} ;

OBJECT_ENTRY_AUTO ( __uuidof ( SimpleCalc ) , CSimpleCalc )

CPP File

// SimpleCalc.cpp: Execution of CSimpleCalc

// Used from MSDN Library

# include “ stdafx.h ”

# include “ SimpleCalc.h ”

// CSimpleCalc

STDMETHODIMP CSimpleCalc: :Add ( int iFirstValue, int iSecondValue, int* piResult )


// TODO: Add your execution codification here

*piResult = iFirstValue + iSecondValue ;

return S_OK ;


STDMETHODIMP CSimpleCalc: :Subtract ( int iFirstValue, int iSecondValue, int* piResult )


// TODO: Add your execution codification here

*piResult = iFirstValue – iSecondValue ;

return S_OK ;


STDMETHODIMP CSimpleCalc: :Multiply ( int iFirstValue, int iSecondValue, int* piResult )


// TODO: Add your execution codification here

*piResult = iFirstValue * iSecondValue ;

return S_OK ;


STDMETHODIMP CSimpleCalc: :Divide ( int iFirstValue, int iSecondValue, int* piResult )


// TODO: Add your execution codification here

if ( iSecondValue! = 0 )


*piResult = iFirstValue / iSecondValue ;

return S_OK ;




*piResult = 0 ;

return E_FAIL ;



In the following measure I will implement the logging service utilizing the proxy objects.