Sunday, March 22, 2020

Is Globalization the Main Culprit for the 2008 Global Financial Crisis

The global financial crisis that began in late 2007 but erupted in 2008 was considered one of the worst threats to the global economy. The global financial crisis was characterized by credit crunch and the collapse of stock markets.Advertising We will write a custom research paper sample on Is Globalization the Main Culprit for the 2008 Global Financial Crisis? specifically for you for only $16.05 $11/page Learn More The results of the crisis were massive since it led to the evaporation of investment decisions by firms, loss of jobs and loss of income. There was generally an economic recession in majority of the developed world and hence it slowed economy in the developing world. It is true that globalization is linked to the global financial crises. I agree that globalization is the main culprit of the financial crises; this is largely because the agents of globalization are largely associated with the emergence of global financial crises as will be exp lained below: Main Analysis Globalization can be defined as the intensification of trade and other economic activities between countries of the globe in terms goods, services and also investment. After the cold war, majority of the countries embraced the basic principles of globalization like free trade. The plain understanding of globalization is in the perspective of free trade, the function of foreign company and trade. Globalization as a phenomenon is often linked with financial de regulation and the neo liberal economic revolution; but the Asian financial crisis, the Enron scandal and the growing inequalities together with the financial crisis have lead to more concerns on the neo-liberal strategy. The negative effects of globalization on a national economy can be so disastrous according to the works of Joseph Stiglitz. There has been a lot of opposition to globalization since it is associated with the volatility of commodity prices and its impact on the distant economies. The ever spiraling increase in the global prices of food and fuel is considered a result of globalization. In the 2008, for example, the surge in the prices of fuel and food commodities which are the fundamental commodities in the global market negatively impacted on the world economy. The main reason why there was an increased volatility in the global market during the 2008 financial crisis as opposed to other crisis is due to the globalized economy (Turner and Khondkar 42).Advertising Looking for research paper on business economics? Let's see if we can help you! Get your first paper with 15% OFF Learn More Globalization has eroded the powers and the sovereignty of the state, the role of the state to regulate and to steer forward the economy has been largely ignored at the expense of the market, these are the problems and the vulnerabilities that often emerge as a result of the globalization of the world economy. Financial liberalization involves the elimination of tari ffs, and duties have resulted in an unrestricted cross border transaction. The 2008 economic crisis was largely associated to the collapse of the Lehman bothers, which was the largest American investment bank; this brought to fore the function and the capacity of state institutions and revived the debate that despite the growth of globalization forces, there should always an efficient state structure (Turner and Khondkar 58). The trend of globalization had been increasing after the end of the cold war when America was declared the world superpower following the collapse of the USSR. This trend of globalization had been characterized by the increasing levels of trade, intensified movement of people and the advancement of technology that has brought the people and the entire world into a closer economic, political and cultural unit. It is this increasing independence that led to the 2008 global financial crises due to the fact that the monumental accumulation of global debt in the Ame rican financial institutions was unsound. The 2008 economic crisis had roots in the 1997 financial crisis in the Asian region; after the collapse of the Asian markets, people opted for the USA as a favorite investment destination. This led to the increase in the value of stock market and the rise in the price of housing. This movement of capital from one location to another like for example the Asian Region to the US was made possible by globalization and hence globalization is directly linked to the global financial crisis of 2008 (Bulliet et al 824). The institutionalization of global phenomenon like the financial globalization has contributed to the increase in the inequality gap between the developed and the developing countries; this is largely associated with international capital flows. Financial globalization was touted as the best mode of enhancing savings, relax the credit stress, and improve the income of the developing countries and to stimulate economic growth.Advertisi ng We will write a custom research paper sample on Is Globalization the Main Culprit for the 2008 Global Financial Crisis? specifically for you for only $16.05 $11/page Learn More This was never to be the case as financial globalization could not meet these expectations but instead it helped intensify economic instability. Trade liberalization together with its expected impact like prospect of economic growth, employment and income inequality came under close scrutiny. The emergence of financial globalization and wealth inequality has resulted in the unequal flows of capital and also uneven progress in the opening of capital accounts; unlike in Asia and Western countries, those of Africa and the Latin America have lagged behind in opening their capital accounts. The world has witnessed uneven financial globalization which is linked to the global financial crises (ILO report 39). Emmerich and the group in their book titled Globalization 2.0: roadmap to t he future from leading minds have identified seven virtues of globalization and in these virtues, one has been linked to the global financial crisis, and this is the thrift; Emmerich, Ijioui and Ceyp related this virtue with 2008 global financial crisis and the increasing opulence in some parts of the world. They argued that in the western world, people had socialized themselves with the period of cheap money and hence they considered it primitive to save money leading to the decline in savings in Anglo-Saxon countries like the Britain, Canada and the US. These countries were paragon of economic and financial culture and hence they adopted the culture of non-saving. When the global recession hit, commercial banks had run out of savings, the population had little to spend and hence generally low liquidity level which resulted in the collapse of commercial banks (Emmerich, Ijioui and Ceyp 80). When the global financial crisis is analyzed in the context of globalization, then the insta bility that is created by the speculation about trade is worth mentioning.Advertising Looking for research paper on business economics? Let's see if we can help you! Get your first paper with 15% OFF Learn More The global financial crises did not only concern the financial markets but also the international institutions and its productive structure since globalization is controlled at the core and its effects will only be triggered at the center and will be felt across the globe as exemplified by the 2008 crisis that was triggered by the financial markets in the USA and was felt all over the globe. Due to the forces of globalization, financial crisis can be mad-made; the realization that the global world desperately needs oil and the fact the Washington consensus legalized trade liberalization makes the world vulnerable to the whims of cartels, especially if they have the knowledge and the ability to determine the timelines of the speculative course and the subsequent collapse of the speculation who can take advantage of speculative trade to push the prices of crude oil upwards (Chodussudovsky 1). Conclusion The occurrence of the global financial crisis in the year 2008 was considered glob alization at its death-bed; there was an imminent dissolution of the globalized world. This was further exacerbated by the fact that the global financial crisis was followed by the world economic crisis, which was a reflection of how the global chain reaction can be triggered and can interact to pull a destructive fashion. There have been some demands that the goals of globalization should be redefined that is; world leaders should consider other ways of cooperation and also they should create institutions that should be used in solving international disputes. With the current developments with regard to the three forms of globalization; global markets, infrastructural development and global corporations, then the future appear bleak since these forms of globalization are man-made and hence volatile and prone to suffering from the vagaries of nature. Globalization has led to simultaneous impoverishment of individuals from different nations largely due to the global market mechanism factor. The several global financial crises are not only due to the volatility of the financial markets but also due to the collapse of state institutions and the development of rapid profit ventures. Works Cited Bulliet et al. The Earth and Its Peoples, Volume 2, 5th Ed. New York: Cengage Learning, 2008. Print. Chodussudovsky, Michel. Global financial meltdown. Global Research, 2011. Web. https://www.globalresearch.ca/global-financial-meltdown/10268 Emmerich, Heike., Ijioui, Raschid and Ceyp, Michael. Globalization 2.0: A Roadmap to the Future from Leading Minds. New York: Springer, 2009. Print. ILO report. world of work report; income inequalities in the age of globalization. ILO Report, 2008. Web. http://www.ilo.org/inst/lang–en/index.htm Turner, Bryan and Khondker Habibul. Globalization East and West. New York: SAGE Publications Ltd, 2009. Print. This research paper on Is Globalization the Main Culprit for the 2008 Global Financial Crisis? was written and submitted by user Thalia N. to help you with your own studies. You are free to use it for research and reference purposes in order to write your own paper; however, you must cite it accordingly. You can donate your paper here.

Thursday, March 5, 2020

Application of 2-D gas chromatography for environmental analysis The WritePass Journal

Application of 2-D gas chromatography for environmental analysis Abstract Application of 2-D gas chromatography for environmental analysis Abstract IntroductionPrinciple for Two-Dimensional Gas Chromatography (GCÃâ€"GC)Application of GCÃâ€"GC in Environmental AnalysisAnalysis of PCBs, PCDDs and PCDFsPesticide AnalysisAir AnalysisConclusionsReferencesRelated Abstract The conventional one-dimensional gas chromatography (1D-GC) compared to a comprehensive two-dimensional gas chromatography (GCÃâ€"GC) which provides the highest capacity, improved resolution and many of sensitivity. Additionally, it was create two-dimensional structure chromatogram, which is the proof of assistance in the composite class. Samples can often be minimized or even eliminated in some cases for the practice, as technology provides excellent separation power. All these benefits make GCÃâ€"GC in the toxic compounds involved in the determination of trace level environmental analysis of a very good tool in complex matrices. This paper summarizes some of the environmental analysis and review and monitoring of the GCÃâ€"GC applications Introduction Many years of humans society development led to many of the world distribution of chemicals in the atmosphere, the Earths surface and land border. Many of these compounds are harmful to the worlds ecosystems and the people. Analysis of these compounds in the environment is important. When analytes have high vapor pressure, gas chromatography is the selection method. The main problem in the environmental analysis is to analyze the existence of material is usually very complex matrix trace. Result, a huge research work into the analysis of major environmental pollutants [1]. Methods used in environmental analysis is usually the same as in all aspects of practice. It includes sampling, sample preparation, separation and detection. All of these steps may benefit from change, it is usually the biggest limitations imposed by the separation step. In gas chromatography (GC) cases, the majority of environmental samples containing analyte and matrix components of many closely eluting peaks in a chromatographic dimension (1D) the maximum total capacity is greatly exceeded, and many coelutions and unresolved in the separation region was observed. This led to the analyte of interest and quantify the poor separation [1]. Poor resolution in the chromatographic analysis of sample preparation and detection of high demand for equipment placement. Expensive and labor-intensive sample preparation, and solvent waste may cause a lot of harmful to the environment.   By microextraction method development, such as liquid-liquid microextraction (LLME) and solid phase microextraction (SPME) and non-dissolved sample introduction system (ie, direct thermal desorption), has the potential to greatly simplify the sample preparation process, without sacrificing sensitivity and selectivity [2-5]. On investigation, lack of resolution often means using mass spectrometry (MS), including high-resolution mass spectrometry (HRMS), in some cases, is necessary. Figure 1 illustrates the GC-MS encountered in the common problems [36]. In the analysis of food extracts commonly 1D-GC clinch with insecticides (Fig. 1b), trace interest (in this case chlorfenvinphos) coelute analyte and sample matrix is ​​more abundant components. Results obtained for such compounds, mass spectrometry (Figure 1e) frequently contains compounds derived from fragments of interference, leading to poor matching and library mass spectrometry (Fig. 1d). MS overlap algorithm may greatly improve the quality of the information of coeluting peak, but they are not always successful, when the number of coelutions is high. Figure 1a shows, full 2D-GC (GCÃâ€"GC) to increase space and improve the chromatographic separation of the resolution, resulting in the separation of analytes of interest (chlorfenvinphos) from coeluting compounds and matrix components. Result, improved the quality of the analyte mass (Fig. 1c), taking into account the proof of a more confident analysis of material (Figure 1d). It is possible that some coelutions exist; these may often solve efficiently overlap with the MS, leading to better results, while reducing the number of components when the coeluting. GCÃâ€"GC separation with the increased power res ulting in a successful demonstration and quantification of analytes. Fig. 1 GCÃâ€"GC–TOF MS versus 1D-GC–TOF MS for the analysis of a carrot extract. The highest-capacity problem in terms of conventional gas chromatography through multi-dimensional gas chromatography to cope (MDGC) implementation. In this method, one-dimensional (1D) chromatogram of a complex and unresolved part is subjected to the stationary phase coated with a second column separation of the other selectivity [1]. Although this method increases the 1D chromatographic part of the choice of chromatographic resolutions, this method with automation challenging, and only a few sample components can be adequately addressed. However, the many applications is good for the PCBs, pesticides and toxaphene analysis, among other things, the report with different degrees of success [6-12]. Overall, however, is the exact number of separation will be beneficial, if the entire sample is subjected to a separation in two dimensions. This became possible a comprehensive two-dimensional gas chromatography (GCÃâ€"GC) in the introduction. Principle for Two-Dimensional Gas Chromatography (GCÃâ€"GC) 2D-GC is a comprehensive method of fundamental solution to meet the highest capacity. A typical structure of GCÃâ€"GC set in Figure 2. The basic structure of GCÃâ€"GC using virtually is the same as the composition of 1D-GC. These include syringes, oven, columns and detectors. In a typical GCÃâ€"GC system, using non-polar stationary phase coated with a thick coating of a long column was installed as the main column. The exports through a special interface or modem is connected to the entrance of the second dimension column coated with stationary phase of another selectivity. Modulator connected not only to primary and secondary column; its main role is repeated trapping of the effluent fractions from the first dimension and periodic injection of them to the form of narrow pulses separated into further chromatographic analysis. Because the operation of 2D-GC in the fast condition, the detector in the GCÃâ€"GC selection is limited to those capable of fast data collection rate. For e xample, GCÃâ€"GC detector can include flame ionization detector (FID), electron capture detector (ECD), single atomic emission detector (AED), sulfur compounds optical detector (SCD), nitrogen photodetector compounds (NCD) and time of flight mass spectrometer (TOF MS). Fig. 2 A block diagram of a GCÃâ€"GC system. Modulator is the important part of the instrument, because it guarantees the separation is comprehensive and multidimensional [13]. In 1991, the first implementation of the GCÃâ€"GC, the field has witnessed a number of modulator design [14]. Initially, the use of thermal adjustment of the heat modulator was implemented; however, the modular cryogenic liquid (liquid carbon dioxide or nitrogen) is currently the main use. Modulator at low temperatures within the system, each design has its own distinct advantages and limitations, making it suitable for analysis of the specific type. For example, the analysis of water pollutants has been developed an interface [19], when the buildings, and an in-house applications modulator in the quantitative analysis of PAHs and PCBs has been described [15]. Then, the modulator of the different types of analyte in the analysis of organohalogenated been evaluated [16]. The implementation of GCÃâ€"GC provides the following advantage to surpass the 1D separation method: improvement separation strength; improved sensitivities; and constructs or highly predetermined, stratography spectrum. In the environment analysis, GCÃâ€"GC has the potential to improve the toxic compound through the separation from the coeluting analysis and the matrix component, increases the detection limit such chemical product and provides the ideal for the surveillance application the two-dimensional stratography spectrum which constructs. Finally, this possibly causes to reduce to the smallest sample preparation procedure, and reduces analysis time. Other applications are also possible. For example, recently, GCÃâ€"GC the product estimate which divided into for the diesel oil hydrocarbon environment had used, was important affected many ecosystems [17] the oil leak. Application of GCÃâ€"GC in Environmental Analysis Water and Sediment Analysis The water is the most basic material to the life in planet. In order to estimate that the tap water safety for human consumption, the rapid, precise and the accurate method needs to analysis the water. The sediment is also important for river and the lake; The analysis of water pollutant is time-consuming sample preparation, follows by GC-MS analyzes. In the initial period realized that GCÃâ€"GC has the great potential improvement to analysis water and sediment. In its earliest applications in this region, GCÃâ€"GC was explained possibly from the common matrix interference which is separating the BTEX (benzene, toluene, ethyl benzene and xylene) and methyl alcohol tert butyl ether (MTBE), when and SPME [18]. The separation strength of GCÃâ€"GC is improved; MTBE and the benzene are the foundation line solution in the 2nd chromatograph analysis space. This research showed GCÃâ€"GC has the great potential for water   pollutant analysis by combination this technology with microextraction (head space SPME). Certain Earths freshwater body is polluted daily by petroleum and the oil contamination. In the 1970s, it is pays attention the petroleum sample stratography spectrum to exhibit a model, has not solved, foundation line which rises â€Å"hillock† [20]. Chromatogram is the complex part, including compound many different kinds, refers to â€Å"unsolution complex mixture† at present [21]. GCÃâ€"GC-FID uses in analysis of two different freshwater sediments [21]. Observed the conventional sample preparation procedure, the author has used the superior resolution, and has constructed the chromatogram of sediment for UCM different levele by GCÃâ€"GC. The chromatogram obtained for two samples provides by clue direction contamination important source researcher. , The research showed GCÃâ€"GC the potential importantly in the environment law, for an environmental chemistry basic tool, environmental audit. The nonylphenol polyethylene ethoxides degenerated product, was possible feminine hormone splitter [22]. Increases the concern, NPs from the urban district [23] the water and the deposition present are found. GCÃâ€"GC-TOF MS is the NP isomer separation from technical mixture [24] used. 41 components are identified. Figure 3 explanation GCÃâ€"GC-TOF MS application to NP isomer respective ion trace analysis from identical research. Two NP stave products were explained that m/z 135 (chart 3a) and m/z 149 (chart 3b). Two chromatogram exhibition group type separation, emphasizes by the connection compound peak maximum value in the identical homologous family incline line. It from as a result of various NP isomer structure similarity, the complete separation is the very difficult this chart is obvious. However, other resolution strength by GCÃâ€"GC provided â€Å"cleanly† the mass spectrum to provide, made the analysis proof to be easier. Fig. 3. Extracted ion GCÃâ€"GC–TOF MS chromatograms of a technical nonylphenyl (NP) mixture GCÃâ€"GC for to the environment pollutants analysis was recently the application current in oceanic deposit [25]. A qualitative method has developed, fast and is unified according to the tendency by the ultrasonic wave assistances extraction to the complex samples high resolution analysis provides to GCÃâ€"GC-TOF UAE which is fast and high efficiency selective sampling pretreatment procedure is utilized solid sample [30]. A high efficiency and has the selective sample preparation method, when the powerful separation method GCÃâ€"GC combine with UAE can causes 1500 kind of more than several not aromatic hydrocarbon (PAHs) the compound and the certificate resolution, NPs and dialkylated benzene. Once more, GCÃâ€"GC not only ability from each other isolation analysis, and has proven from the sample matrix priceless. The carcinogen which and the mutagen suspected, PAHs is many industry activity by-product and the universal existence is distributed in the environment. Because it requests the hard sledding and has the selective sample preparation, they in the deposition samples trace determination are difficult. The improvement to complex matrixs PAHs, the Cavagnino trace analysis with GCÃâ€"GC-FID [large-volume splitless injection (LVSI) technology]. Sample complex which analyzes is many deposition sample representative who obtains from the river and the lake. Separated and investigates seven PAHs which diluted in the synthesis diesel oil to demonstrate the LVSI- GCÃâ€"GC-FID potential achievement in the low ppb level for to trace amount analysis one powerful and the rapid tool in complex matrix PAHs. While, Ong. and so on has developed a PAHs rapid surveillance method probably in the soil sample, utilizes liquid extraction (PLE) GCÃâ€"GC-FID [27]. The current publishing work is merely GCÃâ€"GC latent serviceable demonstration to deposition sample PAH analysis. In brief, with the resolution which improves, improvement many sensitivities and the stratography spectrum which orders, GCÃâ€"GC may add on the result which effective and the rapid sample preparation method produces cannot be achieved by the routine analysis procedure. Analysis of PCBs, PCDDs and PCDFs Polychlorinated dibenzodioxins (PCDDs), polychlorinated dibenzofurans (PCDFs) and some polychlorinated biphenyl (PCB) congeners is dominated by bioaccumulation and biomagnification in the environment and thus is a dangerous The wildlife and people. Many are suspected carcinogens and induced changes of [28]. Of PCBs, dioxins and furans in the environment assessment of certain requirements of a method to isolate and quantify them in complex samples such as food, soil and water. GCÃâ€"GC provides one advantageous method in complex matrixs PCDDs and the PCDFs analysis. In its one of early experiments, a liquid crystal main column and a limitless secondary column (according to steam pressure separation) uses in (according to the planarity separation) separates the tone and from technical mixture [30] non-straight PCB congeners. The connection GCÃâ€"GC microelectron captures investigates (MECD) is toxic PCBs, PCDDs and the PCDFs determination is the application in the cod liver sample [29]. The analysis result showed all 12 priority PCB from liver sample congeners, and most toxic Dai Aoxin and fu nan the full separation and the proof nail fast with 90 PCBs and 17 contain poison PCDDs and PCDFs. Moreover, when compares with the standard sample preparation procedure, the liver sample pretreatment does not have the selectivity and reduces to is smallest. It has included the direct injection and fractionation followed cell degree of illness gradually draws back, the centrifuge process to enter GCÃâ€"GC the system. Figure 4 showing from the 2nd stratography spectrum which obtains to the cod liver samples analysis. Recently, an item of multilaboratory research has been conducted in food sample, analyzes PCDD/Fs and World Health Organization PCBs through once more GCÃâ€"GC-MECD and the GC-HRMS comparison and the explanation GCÃâ€"GC great potential in the rapid surveillance application [31]. With the standard analysis method comparison GCÃâ€"GC, GCÃâ€"GC the performance is unified (GCÃâ€"GC-ID-TOF MS) has to 13C mark isotopic dilution (ID) TOF MS conventional GC-HRMS to appraise [32]. Quantification 17 PCDD/Fs and four PCBs nail fast in the soil and in the deposition sample are two methods are comparable. However, GCÃâ€"GC implementation request only smallest sample preparation, and causes the signal improvement (factor 5-10), superior resolution, lower instrumentation expense, and improved TOF the MS data [32] the ghost overlaps legitimately. As highest capacity which and resolution result increases, the unknown compounds proof is possible. Fig. 4 GCÃâ€"GC–ECD chromatogram of a cod liver sample spiked with 90 PCBs [29]. Pesticide Analysis Forms the challenge to the pesticide analysis to analyze the chemist to prepare about the sample to make the law and the chromatography. Is similar other toxic compound, the pesticide is usually distributed in the trace amount environment. Moreover, they are extreme complex matrix part of for example foods, the soil and the water sample. Needs to be like today presses to the rapid high resolution analysis method. GCÃâ€"GC the application early showed the method potential regular implementation to the pesticide analysis in persons organization in the future. Supercritical invariable extraction (SFE) with GCÃâ€"GC-FID together utilizes the analysis in persons blood serum [33] the pesticide. To were few from the sharp persons blood serum extractions 15 pesticides foundation line segments achieve in four minutes. Later, GCÃâ€"GC-FID to estimate that the child pesticide exposure has been utilized through the use urine and the blood serum [34] low-power. This special example in were few showed 16 pesticide complete separations in four minutes. Recently, has been demonstrated including PCBs and the organic chlorine pesticide 59 organization pollutants proof and the quantification [35]. But GCÃâ€"GC-ID-TOF MS completed the comparable result author who ran in standard routine analysis (GC-ID-TOFMS) to indicate that analyzed like this, three different injection needs. GCÃâ€"GC the application earl y showed the method potential regular implementation to the pesticide analysis in persons organization in the future. Supercritical invariable extraction (SFE) with GCÃâ€"GC-FID together utilizes the analysis in persons blood serum [33]. Pesticide determination in food extract is similarly important. Separated using GCÃâ€"GC-TOF MS and identifies 58 pesticides to nail fast completely on the vegetable was explained [36]. This completed with has been smallest and the non-selective sample preparation: The celery or the carrot sample and the sodium acetate and the ethyl acetate have chopped, mixed, was mixed, has been separated, and is dried. The extract is injected entered GCÃâ€"GC [36]. Recently, separated 12 halogenate compound kind of groups five different GCÃâ€"GC column combination to appraise, including PCBs, PCDDs, PCDFs, multi-chlorobenzene diphenyl ester (PCDEs), multi-chlorobenzene naphthalene (PCNs), multi-chlorobenzene dibenzothiophenes (PCDTs), multi-chlorobenzene terphenyl (PCTs), multi-chlorobenzene alkane (PCAs), toxaphene, multi-bromination biphenyl (PBBs), multi-bromination diphenyl ether (PBDEs) and organic chlorine pesticide (OCPs) [37]. Although this article focal point is the different compound kind of major group separates, was also explained in the family separation. When the separation and proof all 28 OCPs are pure pesticide mixture has only been demonstrated that majority has been separated fully, since, when injects along other 11 compound kind of [37]. Therefore, its as if that the column establishment which disposes appropriately with one, GCÃâ€"GC may use takes mainly shields step for the environment sample contamination and along pol lutant many other kind of pesticides, with smallest sample preparation. Air Analysis Volatile organic compound (VOCs) in metropolis photochemical smog [38] the generation plays a strong character. The World Health Organization thought that possibly has to the air granular materials exposition to the human health [39] the ill effect. But, uncertainty existence about from VOCs health effect in metropolis granular material (PM) [40]. Therefore, requests rapid, reliable and information method guarantee in air pollutant successful surveillance, proof and discovery. Many PAHs and PAHs (oxy-PAHs) which oxidizes is the carcinogen which and the mutagen suspected, with, therefore they are in the metropolis aerosol analysis profitable target analysis. GCÃâ€"GC-FID and GCÃâ€"GC four-pole MS (QMS) is applied permits from Finland about 1500 peaks goal PAHs [41] investigates in the metropolis air sample and the proof. But woman is unified the method for the compound proof and the quantification, used GCÃâ€"GC-FID the combination to confirm the good reproducibility. 13 non-goal PAHs has been identified, and ten goal PAHs by quota. Found PAH centralism scope (0.5-5.5 ng/m3) with in Europe [41] other parts of standard methods obtained the result was comparable. The cigarette smoke is estimate extreme complex mixture component [43] which has not recognized including about 4,700 kind of identifications compound and 100,000. GCÃâ€"GC-TOFMS utilizes the solution approximately from the cigarette smoke [43] 30,000 peaks. After this, analyzes cigarette smoke condensate simpler sample determination neutrality score [44], basic score [45] and acidic score [46] chemical composition. Conventional GC-MS possible to separate 200 unknown peaks and identifies 115 hydrocarbons from the cigarette condensate limitless neutral scores; To identical sample GCÃâ€"GC analysis, however, has achieved 4,000 kind of compound separations and 1,800 hydrocarbons [44] proved. In another research, GCÃâ€"GC-TOF has identified 377 kind of nitrogen-containing compound to the cigarette condensates basic scores MS analysis, in 155 is the pyridine derivative, 104 kinds kui lin or different kui lin derivative and 56 kind of pyrazine derivative [45]. Conclusions GCÃâ€"GC has achieved the condition rapidly for to the volatile organic compound analysis most powerful tool. It appoints oneself achievement to be suitable completely for in the complex sample surveillance analysis technology. In the environment analyzed area, this includes PCBs by the analysis many example testimony to the common environment pollutant, PCDDs, PCDFs, PAHs and the pesticide in the complex environment matrix. Moreover, GCÃâ€"GC has the potential to simplify the sample preparation procedure (even completely to eliminate them), when simultaneously causes when the shorter overall analysis time high resolution stratography spectrum. Regarding widely a new analysis method which adopts, not only it is certainly reliable and renewable, but it should also exhibit the significant advantage to surpass the method which accepts. The example reported the showing GCÃâ€"GC method advantage in this review in the traditional 1DGC separation. In GCÃâ€"GC historical first years period, the instrumentation development is the main focal point; However, from GCÃâ€"GC systems commercialization, the application quantity which reported greatly increases in the environment analysis and other scientific fields. Therefore, we may anticipate that the transition automation GCÃâ€"GC is unified on-line sample which the correspondence uses to prepare gradually the equipment in the regular environmental monitoring. References 1. Marriott PJ. Haglund P, Ong RCY. Clin Chim Acta. 2003, 328:1–19. 2. Pawliszyn J. Solid phase microextraction, theory and practice. Wiley, New York. 1997. 3. Pawliszyn J. (1999) Applications of solid phase microextraction. Royal Society of Chemistry, Cambridge. 4. Dettmer K, Engewald W. Anal Bioanal Chem. 2002, 373: 490–500. 5. Butrym E. LC-GC. 1999, 17:S19–S24. 6. de Geus H-J, Wester PG, Schelvis A, de Boer J, Brinkman UATh. J Environ Monit. 2000, 2:503–511. 7. Mrowetz SHJ. J Chromatogr A. 1983, 279:173–187. 8. Duinker JC, Schultz DE, Petrick G. Mar Pollut Bull. 1998, 19:19–25. 9. Storr-Hansen E. Int J Environ Anal Chem.1991, 43:253–266. 10. Silvis LD, Kapila S, Yan Q, Elseewi AA. J Chromatogr A.1994, 688:221–230. 11. Schurig V, Reich S. Chirality. 1998, 10:425–429. 12. Liem DAK. Trends Anal Chem. 1999, 18:499–507. 13. Giddings JC. Anal Chem. 1984, 6:1258A–1270A. 14. Liu Z, Phillips JB. J Chromatogr Sci.1991, 29:227–231. 15. Hyà ¶tylinen T, Kallio M, Hartonen K, Jussila M, Palonen S, Riekkola M-L. Anal Chem. 2002, 74:4441–4446. 16. Kristenson EM, Korytr P, Danielsson C, Kallio M, Brandt M, Mkel J, Vreuls RJJ, Beens J, Brinkman UATh. J Chromatogr A. 2003, 1019:65–77. 17. Arey JS, Nelson RK, Xu L, Reddy CM. Anal Chem. 2005,   77:7172–7182. 18. Gaines RB, Ledford EB, Stuart JD. J Microcol Sep. 1998, 10:597–604. 19. Beens J, Dalluge J, Adahchour M, Vreuls JJR, Brinkman UATh. J Microcol Sep. 2001, 13:134–140. 20. Blumer M, Souza G, Sass J. Mar Biol. 1970, 5:195–202. 21. Frysinger GS, Gaines RB, Xu L, Reddy CM. Environ Sci Technol. 2003, 37:653–1662. 22. Mueller SO. Anal Bioanal Chem. 2004, 378:582–587. 23. Ieda T, Horii Y, Petrick G, Yamashita N, Ochiai N, Kannan K. Environ Sci Technol. 2005, 39:7202–7207. 24. Moeder M, Martin C, Schlosser D, Harynuk J, Gà ³recki T. J Chromatogr A. 2006, 1107:233–239. 25. Morales-Munoz S, Vreuls RJJ, Luque de Castro MD. J Chromatogr A. 2005, 1086:122–127. 26. Cavagnino D, Magni P, Zilioli G, Trestianu S. J Chromatogr A. 2003, 1019:211–220. 27. Ong R, Lundstedt S, Haglund P, Marriott P. J Chromatogr A. 2003, 1019:221–232. 28. Schwarzenbach RP, Gschwend PM, Imboden DM. Environmental organic chemistry, 2nd edn. Wiley-Interscience, Hoboken, NJ. 2003. 29. Korytr P, Leonards PEG, de Boer J, Brinkman UATh. J Chromatogr A. 2002, 958:203–218. 30. Haglund P, Harju M, Ong R, Marriott P. J Microcol Sep. 2001, 13:306–311. 31. Danielsson C, Wiberg K, Korytr P, Bergek S, Brinkman UATh, Haglund P. J Chromatogr A. 2005, 1086:61–70. 32. Focant J-F, Reiner EJ, MacPherson K, Kolic T, Sjà ¶din A, Patterson DG Jr, Reese SL, Dorman FL, Cochran J. Talanta. 2004,   63:1231–1240. 33. Liu Z, Sirimanne SR, Patterson DG Jr, Needham LL. Anal Chem. 1994, 66:3086–3092. 34. Dimandja J-M, Grainger J, Patterson DG Jr, Turner WE, Needham LL. J Exp Anal Environ Epidem. 2000, 10:761–768. 35. Focant J-F, Sjodin A, Turner WE, Patterson DG Jr. Anal Chem. 2004, 76:6313–6320. 36. Dalluge J, van Rijn M, Beens J, Vreuls RJJ, Brinkman UATh. J Chromatogr A. 2002, 965:207–217. 37. Korytr P, Leonards PEG, de Boer J, Brinkman UATh. J Chromatogr A. 2005, 1086:29–44. 38. Fowler D, Coyle M, Ashmore MR, Bower J, Williams ML, Smith R, Dollard GJ, Lee DS, Jenkin M, Stedman JR, Cox RA, Derwent RG, Harrison RM, Hewitt CN, Maynard RL, Penkett SA, Weston KJ, Woods PJ, Burgess RA, Anderson R. Fourth Report of the Oxidants Review Group 75-104. UK Department of the Environment, Transport and Regions, London. 1997. 39. WHO. Health aspects of air pollution with particulate matter, ozone and nitrogen dioxide. World Health Organization, Bonn. 2003. 40. Welthagen W, Schnelle-Kreis J, Zimmermann R. J Chromatogr A. 2003, 1019:233–249. 41. Kallio M, Hyà ¶tilinen T, Lehtonen M, Jussila ML, Hartonen K, Shimmo M, Riekkola M-L. J Chromatogr A. 2003, 1019:251– 260. 42. Schnelle-Kreis J, Welthagen W, Sklorz M, Zimmermann R. J Sep Sci. 2005, 28:1648–1657. 43. Dallà ¼ge J, van Stee LLP, Xu X, Williams J, Beens J, Vreuls RJJ, Brinkman UATh. J Chromatogr A.2002, 974:169–184. 44. Lu X, Zhao M, Kong H, Cai J, Wu J, Wu M, Hua R, Liu J, Xu G. J Chromatogr A. 2004, 1043:265–273. 45. Lu X, Zhao M, Cai J, Kong H, Wu J, Wu M, Hua R, Liu J, Xu G. J Sep Sci. 2004, 27:101–109. 46. Lu X, Cai J, Zhao M, Kong H, Wu J, Wu M, Hua R, Liu J, Xu G. Anal Chem. 2004, 74:4441–4451.

Tuesday, February 18, 2020

Institute of applied entrepreneurship Assignment

Institute of applied entrepreneurship - Assignment Example I would like to personally thank you for reviewing my letter of employment and genuinely hope you will find my entrepreneurial competencies to be a valuable fit for your grand organisation with a rich history in the United Kingdom. 1. Introduction Thornton’s Chocolate was founded in 1911 by Joseph William Thornton, establishing a very recognisable brand in the United Kingdom ever since. Now that Cadbury has been taken over by Kraft company, Thornton’s is now considered the largest independent chocolatier and confectionary business in the UK. Through decades of brand-building activities and increases in sales revenues, Thornton’s now boasts 360 different shops and a variety of franchises across the United Kingdom supported by 2011 revenues of ?218 million (Thornton’s 2012). Thornton’s has, however, experienced problems with maintaining market share among major competitors and the business is losing sales revenues, especially in the High Street stores that sell Thornton’s products. Thornton’s has always maintained a premium positioning strategy, justifying a higher-priced model associated with legitimate and consumer-perceived brand quality. Because of this, the business is seeking a revitalisation and restorative business strategy designed to give the business a more contemporary brand image with important target markets. This letter of employment is to illustrate entrepreneurial characteristics both internally and as related to the employment candidate to illustrate how the candidate’s competencies can benefit the new positioning of Thornton’s for sustainable success and profitability. 2. Defining the entrepreneurial organisation An entrepreneurial organisation is one that is willing to absorb risks, as being able to compete against well-established competitors, such as Cadbury, requires making decisions that are innovative and do not have a precedent established. This is necessary to achieve unique competitive advantage and differentiate one business from another that offers similar products with like characteristics and benefits. It is the risk-taking prowess of important organisational leaders that establish the foundation for an entrepreneurial organisation (Covin and Miles 1999). Once this entrepreneurial spirit has been established, the entrepreneurial organisation becomes one that is equipped to develop new products and services. A corporate entrepreneur focuses on establishing efficiencies and productive structures that can assist the organisation in aligning strategic intentions with external market conditions (Dess, Lumpkin and McKee 1999). Outside of basic managerial or executive-level decision-making such as budgeting and cost control, the entrepreneurial organisation recognises opportunities to make positive changes and then aligns the internal operational and staffing models to achieve strategic goals related to the opportunity. The entrepreneurial organisation m aintains staff and managers that are able to juggle innovative ideas in their imaginations that translate into creative work to better position the business competitively. This type of organisation looks toward people and product as tools for achieving profit growth (Gaglio and Katz 2001). Innovations should occur in human resources policies and procedures as well as related to the actual product or service in order to be considered

Monday, February 3, 2020

Strategic Action Plan Essay Example | Topics and Well Written Essays - 500 words

Strategic Action Plan - Essay Example The location of the site is approximately one mile from a residential area and a surface local water withdrawal point. Farmers get irrigation water downstream from the site. Even though the drums are not marked, there is a strong belief that wastes from the industrial activities conducted 60 years ago include chemicals like chromium waste, PCBs, Toluene diisocyanate (TDI) and Acryl amide. The first step entails the process of identifying the natural properties of the chemicals present in the waste site, which may cause negative health impacts when exposed to human beings and other living things (Lu, & Kacew, 2002). Water and soil analysis will be conducted to ascertain the natural properties of the four chemicals present in the site and their adverse effects following their exposure. The water will be drawn from the stream near the damp site while soil will be collected from the surrounding farms. This step involves assessment of the significant aspects on quantitative and qualitative reaction to the chemicals present in the waste site. The major aspects considered in the hazard characterization process entail action mechanism, difference in reaction by the species, level and route of exposure (Lu, & Kacew, 2002). This procedure evaluates the numerical link amid exposure to the chemicals and effects. The process entails assessment of the dose at which an injurious effect s from the toxicants takes place. Exposure assessment considers the magnitude, frequency and duration of exposure to the chemicals for the entire populace, individuals or specific subgroups. In this step, a survey of the population leaving near the waste site will be conducted. Data collected via semi-structured questionnaires to ascertain evidence of illnesses, infertility, fetal birth abnormalities and death linked to the chemicals will help in ascertaining the risk of exposure (Acton, 2012). Determination of exposure will be conducted via computer models which, include questionnaires

Sunday, January 26, 2020

Concepts of Object Oriented Techniques with OO Issues

Concepts of Object Oriented Techniques with OO Issues Abstract Object-oriented frameworks offer reuse at a high design level promising several benefits to the development of complex systems. This paper sought to 1) define the concepts of object oriented techniques in addition with the OO issues, development techniques and concepts of object oriented programming, it is also introduced the UML as an ordinary and key tool for object-oriented design, additionally 2) we look further into the frameworks from the perspective of object-oriented techniques. In this section, it is aimed to define a reasonable promise between object oriented technology and frameworks. At the end, some future horizons for object oriented technology and frameworks are presented. I. Introduction Computing power and network bandwidth have increased dramatically over the past decade. However, the design and implementation of complex software remains expensive and error-prone. Much of the cost and effort stems from the continuous re-discovery and re-invention of core concepts and components across the software industry. In particular, the growing heterogeneity of hardware architectures and diversity of operating system and communication platforms makes it hard to build correct, portable, efficient, and inexpensive applications from scratch. Object-oriented (OO) techniques and frameworks are promising technologies for reifying proven software designs and implementations in order to reduce the cost and improve the quality of software. A framework is a reusable, semi-complete application that can be specialized to produce custom applications [19]. In contrast to earlier OO reuse techniques based on class libraries, frameworks are targeted for particular business units (such as dat a processing or cellular communications[1]) and application domains (such as user interfaces or real-time avionics). Frameworks like MacApp, ET++, Interviews, ACE, Microsofts MFC and DCOM, JavaSofts RMI, and implementations of OMGs CORBA play an increasingly important role in contemporary software development. II. Object oriented concepts and techniques History The concept of objects and instances in computing had its first major breakthrough with the PDP-1 system at MIT which was probably the earliest example of capability based architecture. Another early example was Sketchpad created by Ivan Sutherland in 1963; however, this was an application and not a programming paradigm. Objects as programming entities were introduced in the 1960s in Simula 67, a programming language designed for performing simulations, created by Ole-Johan Dahl and Kristen Nygaard of the Norwegian Computing Center in Oslo. (They were working on ship simulations, and were confounded by the combinatorial explosion of how the different attributes from different ships could affect one another. The idea occurred to them of grouping the different types of ships into different classes of objects; each class of objects being responsible for defining its own data and behavior.) Such an approach was a simple extrapolation of concepts earlier used in analog programming. On ana log computers, mapping from real-world phenomena/objects to analog phenomena/objects (and conversely), was (and is) called simulation. Simula not only introduced the notion of classes, but also of instances of classes, which is probably the first explicit use of those notions. The ideas of Simula 67 influenced many later languages, especially Smalltalk and derivatives of Lisp and Pascal. The Smalltalk language, which was developed at Xerox PARC[2] (by Alan Kay and others) in the 1970s, introduced the term object-oriented programming to represent the pervasive use of objects and messages as the basis for computation. Smalltalk creators were influenced by the ideas introduced in Simula 67, but Smalltalk was designed to be a fully dynamic system in which classes could be created and modified dynamically rather than statically as in Simula 67. Smalltalk and with it OOP were introduced to a wider audience by the August 1981 issue of Byte magazine. In the 1970s, Kays Smalltalk work had influenced the Lisp community to incorporate object-based techniques which were introduced to developers via the Lisp machine. Experimentation with various extensions to Lisp (like LOOPS and Flavors introducing multiple inheritance and mixins), eventually led to the Common Lisp Object System (CLOS, a part of the first standardized object-oriented programming language, ANSI Common Lisp), which integrates functional programming and object-oriented programming and allows extension via a Meta-object protocol. In the 1980s, there were a few attempts to design processor architectures which included hardware support for objects in memory but these were not successful. Examples include the Intel iAPX 432 and the Linn Smart Rekursiv. Object-oriented programming developed as the dominant programming methodology during the mid-1990s, largely due to the influence of Visual FoxPro 3.0 or possibly C++. Its dominance was further enhanced by the rising popularity of graphical user interfaces, for which object-oriented programming seems to be well-suited. An example of a closely related dynamic GUI library and OOP language can be found in the Cocoa frameworks on Mac OS X, written in Objective-C, an object-oriented, dynamic messaging extension to C based on Smalltalk. OOP toolkits also enhanced the popularity of event-driven programming (although this concept is not limited to OOP). Some feel that association with GUIs (real or perceived) was what propelled OOP into the programming mainstream. At ETH ZÃ ¼rich, Niklaus Wirth and his colleagues had also been investigating such topics as data abstraction and modular programming (although this had been in common use in the 1960s or earlier). Modula-2 (1978) included both, and their succeeding design, Oberon, included a distinctive approach to object orientation, classes, and such. The approach is unlike Smalltalk, and very unlike C++. Object-oriented features have been added to many existing languages during that time, including Ada, BASIC, Fortran, Pascal, and others. Adding these features to languages that were not initially designed for them often led to problems with compatibility and maintainability of code. More recently, a number of languages have emerged that are primarily object-oriented yet compatible with procedural methodology, such as Python and Ruby. Probably the most commercially important recent object-oriented languages are Visual Basic.NET (VB.NET) and C#, both designed for Microsofts .NET platform, and Java, developed by Sun Microsystems. VB.NET and C# both support cross-language inheritance, allowing classes defined in one language to subclass classes defined in the other language. Just as procedural programming led to refinements of techniques such as structured programming, modern object-oriented software design methods include refinements such as the use of design patterns, design by contract, and modeling languages (such as UML). The term OOPS, which refers to an object-oriented programming system, was common in early development of object-oriented programming. III. Fundamental concepts and features Class Defines the abstract characteristics of a thing (object), including the things characteristics (its attributes, fields or properties) and the things behaviors (the things it can do, or methods, operations or features). One might say that a class is a blueprint or factory that describes the nature of something. For example, the class Dog would consist of traits shared by all dogs, such as breed and fur color (characteristics), and the ability to bark and sit (behaviors). Classes provide modularity and structure in an object-oriented computer program. A class should typically be recognizable to a non-programmer familiar with the problem domain, meaning that the characteristics of the class should make sense in context. Also, the code for a class should be relatively self-contained (generally using encapsulation). Collectively, the properties and methods defined by a class are called members. Object A pattern (exemplar) of a class. The class Dog defines all possible dogs by listing the characteristics and behaviors they can have; the object Lassie is one particular dog, with particular versions of the characteristics. A Dog has fur; Lassie has brown-and-white fur. Instance One can have an instance of a class; the instance is the actual object created at runtime. In programmer jargon, the Lassie object is an instance of the Dog class. The set of values of the attributes of a particular object is called its state. The object consists of state and the behavior thats defined in the objects class. More on Classes, Metaclasses, Parameterized Classes, and Exemplars There are two broad categories of objects: classes and instances. Users of object-oriented technology usually think of classes as containing the information necessary to create instances, i.e., the structure and capabilities of an instance is determined by its corresponding class. There are three commonly used (and different) views on the definition for class: A class is a pattern, template, or blueprint for a category of structurally identical items. The items created using the class are called instances. This is often referred to as the class as a `cookie cutter' view. As you might guess, the instances are the cookies. A class is a thing that consists of both a pattern and a mechanism for creating items based on that pattern. This is the class as an `instance factory' view; instances are the individual items that are manufactured (created) using the classs creation mechanism. A class is the set of all items created using a specific pattern. Said another way, the class is the set of all instances of that pattern. We should note that it is possible for an instance of a class to also be a class. A metaclass is a class whose instances themselves are classes. This means when we use the instance creation mechanism in a metaclass, the instance created will itself be a class. The instance creation mechanism of this class can, in turn, be used to create instances although these instances may or may not themselves be classes. A concept very similar to the metaclass is the parameterized class. A parameterized class is a template for a class wherein specific items have been identified as being required to create non-parameterized classes based on the template. In effect, a parameterized class can be viewed as a fill in the blanks version of a class. One cannot directly use the instance creation mechanism of a parameterized class. First, we must supply the required parameters, resulting in the creation of a non-parameterized class. Once we have a non-parameterized class, we can use its creation mechanisms to create instances. In this paper, we will use the term class to mean metaclass, parameterized class, or a class that is neither a metaclass nor a parameterized class. We will make a distinction only when it is necessary to do so. Further, we will occasionally refer to non-class instances. A non-class instance is an instance of a class, but is itself not a class. An instance of a metaclass, for example, would not be a non-class instance. In this paper, we will sometimes refer to instantiation. Instantiation has two common meanings: as a verb, instantiation is the process of creating an instance of a class, and as a noun, an instantiation is an instance of a class. Some people restrict the use of the term object to instances of classes. For these people, classes are not objects. However, when these people are confronted with the concepts of metaclasses and parameterized classes, they have a difficulty attempting to resolve the problems these concepts introduce. For example, is a class that is an instance of a metaclass an object even though it is itself a class? In this paper, we will use the term object to refer to both classes and their instances. We will only distinguish between the two when needed. Black Boxes and Interfaces Objects are black boxes. Specifically, the underlying implementations of objects are hidden from those that use the object. In object-oriented systems, it is only the producer (creator, designer, or builder) of an object that knows the details about the internal construction of that object. The consumers (users) of an object are denied knowledge of the inner workings of the object, and must deal with an object via one of its three distinct interfaces: The public interface. This is the interface that is open (visible) to everybody. The inheritance interface. This is the interface that is accessible only by direct specializations of the object. (We will discuss inheritance and specialization later in this chapter.) In class-based object-oriented systems, only classes can provide an inheritance interface. The parameter interface. In the case of parameterized classes, the parameter interface defines the parameters that must be supplied to create an instance of the parameterized class. Another way of saying that an item is in the public interface of an object is to say that the object exports that item. Similarly, when an object requires information from outside of itself (e.g., as with the parameters in a parameterized class), we can say that the object needs to import that information. Aggregation It is, of course, possible for objects to be composed of other objects. Aggregation is either: The process of creating a new object from two or more other objects, or An object that is composed of two or more other objects. For example, a date object could be fashioned from a month object, a day object, and a year object. A list of names object, for example, can be thought of as containing many name objects. A monolithic object is an object that has no externally-discernible structure. Said another way, a monolithic object does not appear to have been constructed from two or more other objects. Specifically, a monolithic object can only be treated as a cohesive whole. Those outside of a monolithic object cannot directly interact with any (real or imagined) objects within the monolithic object. A radio button in a graphical user interface (GUI) is an example of a monolithic object. Composite objects are objects that have an externally-discernible structure, and the structure can be addressed via the public interface of the composite object. The objects that comprise a composite object are referred to as component objects. Composite objects meet one or both of the following criteria: The state of a composite object is directly affected by the presence or absence of one or more of its component objects, and/or The component objects can be directly referenced via the public interface of their corresponding composite object. It is useful to divide composite objects into two subcategories: heterogeneous composite objects and homogeneous composite objects: A heterogeneous composite object is a composite object that is conceptually composed of component objects that are not all conceptually the same. For example, a date (made up of a month object, a day object, and a year object) is a heterogeneous composite object. A homogeneous composite object is a composite object that is conceptually composed of component objects that are all conceptually the same. For example, a list of addresses is a homogeneous composite object. The rules for designing heterogeneous composite objects are different from the rules for designing homogeneous composite objects. Specialization and Inheritance Aggregation is not the only way in which two objects can be related. One object can be a specialization of another object. Specialization is either: The process of defining a new object based on a (typically) more narrow definition of an existing object, or An object that is directly related to, and more narrowly defined than, another object. Specialization is usually associated with classes. It is usually only in the so-called classless object-oriented systems that we think of specialization for objects other than classes. Depending on their technical background, there are a number of different ways in which people express specialization. For example, those who are familiar with an object-oriented programming language called Smalltalk refer to specializations as subclasses and to the corresponding generalizations of these specializations as superclasses. Those with a background in the C++ programming language use the term derived class for specialization and base class for corresponding generalizations. It is common to say that everything that is true for a generalization is also true for its corresponding specialization. We can, for example, define checking accounts and savings accounts as specializations of bank accounts. Another way of saying this is that a checking account is a kind of bank account, and a savings account is a kind of bank account. Still another way of expressing this idea is to say that everything that was true for the bank account is also true for the savings account and the checking account. In an object-oriented context, we speak of specializations as inheriting characteristics from their corresponding generalizations. Inheritance can be defined as the process whereby one object acquires (gets, receives) characteristics from one or more other objects. Some object-oriented systems permit only single inheritance, a situation in which a specialization may only acquire characteristics from a single generalization. Many object-oriented systems, however, allow for multiple inheritance, a situation in which a specialization may acquire characteristics from two or more corresponding generalizations. Our previous discussion of the bank account, checking account, and savings account was an example of single inheritance. A telescope and a television set are both specializations of device that enables one to see things far away. A television set is also a kind of electronic device. You might say that a television set acquires characteristics from two different generalizations, device that enables one to see things far away and electronic device. Therefore, a television set is a product of multiple inheritance. Abstract Classes We usually think of classes as being complete definitions. However, there are situations where incomplete definitions are useful, and classes that represent these incomplete definitions are equally useful. For example, in everyday conversation, we might talk about such items as bank accounts, insurance policies, and houses. In object-oriented thinking, we often isolate useful, but incomplete, concepts such as these into their own special classes. Abstract classes are classes that embody coherent and cohesive, but incomplete, concepts, and in turn, make these characteristics available to their specializations via inheritance. People sometimes use the terms partial type and abstract superclass as synonyms for abstract class. While we would never create instances of abstract classes, we most certainly would make their individual characteristics available to more specialized classes via inheritance. For example, consider the concept of an automobile. On one hand, most people know what an automobile is. On the other hand, automobile is not a complete definition for any vehicle. It would be quite accurate to describe automobile as the set of characteristics that make a thing an automobile, in other words, the essence of automobile-ness. Operations The public interface of an object typically contains three different categories of items: operations (sometimes referred to as method selectors, method interfaces, messages, or methods), constants, and exceptions. An operation in the public interface of an object advertises a functional capability of that object. For example, deposit would be an operation in the public interface of a bank account object, what is current temperature would be an operation in the public interface of a temperature sensor object, and increment would be an operation in the public interface of a counter object. The actual algorithm for accomplishing an operation is referred to as a method. Unlike operations, methods are not in the public interface for an object. Rather, methods are hidden on the inside of an object. So, while users of bank account objects would know that they could make a deposit into a bank account, they would be unaware of the details as to how that deposit actually got credited to the bank account. We refer to the operations in the public interface of an object as suffered operations. Suffered operations are operations that meet two criteria: they are things that happen to an object, and they are in the public interface of that object. For example, we can say that a bank account suffers the operation of having a deposit made into it. The bank account can also suffer the operation of being queried as to its current balance. Some people also refer to suffered operations as exported operations. There are three broad categories of suffered operations, i.e.: A selector is an operation that tells us something about the state of an object, but cannot, by definition, change the state of the object. An operation that tells us the current balance of a bank account is an example of a selector operation. A constructor is an operation that has the ability to change the state of an object. For example, an operation in the public interface to a mailbox object that added a message to the mailbox would be a constructor operation. (Please note that some people restrict the definition of the term constructor to those operations that cause instances of a class to come into existence.) In the context of a homogeneous composite object, an iterator is an operation that allows its users to visit (access) each of the component objects that make up the homogeneous composite object. If we have a list of addresses, for example, and we wish to print the entire list, an iterator would allow us to visit each address object within the list and then, in turn, to print each address. Iterators can be further divided into two broad categories: active (open) iterators and passive (closed) iterators. Active iterators are objects in their own right. Passive iterators are implemented as operations in the interface of the object over which they allow iteration. Passive iterators are further broken down into selective iterators and constructive iterators. Passive selective iterators do not allow their users to change the object over which the iteration takes place. Passive constructive iterators do allow users to change the object over which iteration takes place. We can also describe suffered operations as primitive or composite. A primitive operation is an operation that cannot be accomplished simply, efficiently, and reliably without direct knowledge of the underlying (hidden) implementation of the object. As an example, we could argue that an operation that added an item to a list object, or an operation that deleted an item from a list object were primitive operations with respect to the list object. Suppose that we wanted to create a swap operation, an operation that would swap in a new item in a list, while at the same time swapping out an old item in the same list. This is not a primitive operation since we can accomplish this with a simple combination of the delete operation (deleting the old item) followed by the add operation (adding the new item). The swap operation is an example of a composite operation. A composite operation is any operation that is composed, or can be composed, of two or more primitive operations. Sometimes objects need help in maintaining their characteristics. Suppose, for example, that we wanted to create a generic ordered list object. An ordered list is a list that must order its contents from the smallest to the largest. Specifically, every time we add an item to our ordered list, that item would have to be placed in its proper position with respect to all the other items already in the list. By generic, we mean a template that can be instantiated with the category (class) of items we wish to place in the ordered list. It would not be unreasonable to implement this object as a parameterized class. Obviously, one of the parameters would be the category of items (e.g., class) that we desired to place in the list. For example, could instantiate (make an instance) the generic ordered list with a name class resulting in the creation of an ordered list of names class. There is a problem, however. Given that we could instantiate the generic ordered list with just about any category of items, how can we be sure that the ordered lists will know how to properly maintain order no matter what we use to instantiate the generic ordered list? Suppose, for example, that we wanted an ordered list of fazoomas. How could the generic list class tell if one fazooma was greater than or less than another fazooma? A solution would be for the generic ordered list to require a second parameter, a parameter over and above the category of items (class) that we desired to place in the list. This second parameter would be a The Constants In addition to suffered operations, the public interface of an object can also contain constants. Constants are objects of constant state. Imagine that we want to create a bounded list of addresses class. A bounded list is a list that has a fixed maximum number of elements. A bounded list can be empty, and it can contain fewer than the maximum number of elements. It can even contain the maximum number of elements, but it can never contain more than the defined maximum number of elements. Assume that we place a constant in the public interface of our bounded list of addresses. This constant represents the maximum number of elements that can be placed in the bounded list. Assume also that there is a suffered operation that will tell us how many elements (addresses, in our example) are currently in the bounded list. We can now determine how much room is available in the bounded list by inquiring how many addresses are already in the list, and then subtracting this from the previously-defined constant. In some cases, as with the bounded list example above, constants are provided more for convenience than necessity. In other cases, such as in the case of encryption algorithms needing a seed value, constants are an absolute requirement. Exceptions A third category of items that can be found in the public interface of objects is exceptions. Exceptions have two different definitions: an event that causes suspension of normal application execution, and a set of information directly relating to the event that caused suspension of normal application execution. Exceptions can be contrasted with an older, less reliable technology: error codes. The idea behind error codes was fairly simple. You would request that an application, or part of an application, accomplish some work. One of the pieces of information that would be returned to the requester would be an error code. If all had gone well, the error code would typically have a value of zero. If any problems had occurred, the error code would have a non-zero value. It was also quite common to associate different non-zero values of an error code with specific errors. Error codes suffered from two major problems: No one was forced to actually check the value of returned error codes. Changes (additions, deletions, and modifications) in the meanings of the special values assigned to error codes were not automatically passed on to interested parties. Tracking the effects of a changed error code value often consumed a significant amount of resources. To understand how exceptions directly address both of these issues, we first need to understand how exceptions typically work: Exceptions may be defined by the environment or by the user. When an exceptional (but not unforeseen) condition occurs, an appropriate exception is activated. (People use different terms to express the activation of an exception. The most common is raise. Less commonly, people use the terms throw or activate.) This activation may be automatic (controlled by the environment) or may be expressly requested by the designer of the object or application. Examples of exceptional conditions include trying to remove something from an empty container, directing an elevator on the top floor to go up, and attempting to cause a date to take on an invalid value like February 31, 1993. Once the exception is activated, normal application execution stops and control is transferred to a locally defined exception handler, if one is present. If no locally defined exception handler is present or if the exception handler is not equipped to handle the exception, the exception is propagated to the next higher level of the application. Exceptions cannot be ignored. An exception will continue to be sent to higher levels of the application until it is either turned off or the application ceases to function. An exception handler checks to see what type of exception has been activated. If the exception is one that the handler recognizes, a specific set of actions is taken. Executing a set of actions in response to an exception is known as handling the exception. Handling an exception deactivates the exception; the exception will not be propagated any further. Unlike error codes, exceptions cannot be ignored. Once an exception has been activated, it demands attention. In object-oriented systems, exceptions are placed in the public interfaces of objects. Changes in the public interfaces of objects very often require an automatic rechecking of all other objects that invoke operations in the changed objects. Thus, changes in exceptions result in at least a partially automated propagation of change information. Object Coupling and Object Cohesion Engineers have known for centuries that the less any one part of a system knows about any other part of that same system, the better the overall system. Systems whose components are highly independent of each other are easier to fix and enhance than systems where there are strong interdependencies among some or all of the components. Highly independent system components are possible when there is minimal coupling among the components, and each component is highly cohesive. Coupling is a measure of the strength of the connection between any two system components. The more any one component knows about another component, the tighter (worse) the coupling is between those two components. Cohesion is a measure of how logically related the parts of an individual component are to each o Concepts of Object Oriented Techniques with OO Issues Concepts of Object Oriented Techniques with OO Issues Abstract Object-oriented frameworks offer reuse at a high design level promising several benefits to the development of complex systems. This paper sought to 1) define the concepts of object oriented techniques in addition with the OO issues, development techniques and concepts of object oriented programming, it is also introduced the UML as an ordinary and key tool for object-oriented design, additionally 2) we look further into the frameworks from the perspective of object-oriented techniques. In this section, it is aimed to define a reasonable promise between object oriented technology and frameworks. At the end, some future horizons for object oriented technology and frameworks are presented. I. Introduction Computing power and network bandwidth have increased dramatically over the past decade. However, the design and implementation of complex software remains expensive and error-prone. Much of the cost and effort stems from the continuous re-discovery and re-invention of core concepts and components across the software industry. In particular, the growing heterogeneity of hardware architectures and diversity of operating system and communication platforms makes it hard to build correct, portable, efficient, and inexpensive applications from scratch. Object-oriented (OO) techniques and frameworks are promising technologies for reifying proven software designs and implementations in order to reduce the cost and improve the quality of software. A framework is a reusable, semi-complete application that can be specialized to produce custom applications [19]. In contrast to earlier OO reuse techniques based on class libraries, frameworks are targeted for particular business units (such as dat a processing or cellular communications[1]) and application domains (such as user interfaces or real-time avionics). Frameworks like MacApp, ET++, Interviews, ACE, Microsofts MFC and DCOM, JavaSofts RMI, and implementations of OMGs CORBA play an increasingly important role in contemporary software development. II. Object oriented concepts and techniques History The concept of objects and instances in computing had its first major breakthrough with the PDP-1 system at MIT which was probably the earliest example of capability based architecture. Another early example was Sketchpad created by Ivan Sutherland in 1963; however, this was an application and not a programming paradigm. Objects as programming entities were introduced in the 1960s in Simula 67, a programming language designed for performing simulations, created by Ole-Johan Dahl and Kristen Nygaard of the Norwegian Computing Center in Oslo. (They were working on ship simulations, and were confounded by the combinatorial explosion of how the different attributes from different ships could affect one another. The idea occurred to them of grouping the different types of ships into different classes of objects; each class of objects being responsible for defining its own data and behavior.) Such an approach was a simple extrapolation of concepts earlier used in analog programming. On ana log computers, mapping from real-world phenomena/objects to analog phenomena/objects (and conversely), was (and is) called simulation. Simula not only introduced the notion of classes, but also of instances of classes, which is probably the first explicit use of those notions. The ideas of Simula 67 influenced many later languages, especially Smalltalk and derivatives of Lisp and Pascal. The Smalltalk language, which was developed at Xerox PARC[2] (by Alan Kay and others) in the 1970s, introduced the term object-oriented programming to represent the pervasive use of objects and messages as the basis for computation. Smalltalk creators were influenced by the ideas introduced in Simula 67, but Smalltalk was designed to be a fully dynamic system in which classes could be created and modified dynamically rather than statically as in Simula 67. Smalltalk and with it OOP were introduced to a wider audience by the August 1981 issue of Byte magazine. In the 1970s, Kays Smalltalk work had influenced the Lisp community to incorporate object-based techniques which were introduced to developers via the Lisp machine. Experimentation with various extensions to Lisp (like LOOPS and Flavors introducing multiple inheritance and mixins), eventually led to the Common Lisp Object System (CLOS, a part of the first standardized object-oriented programming language, ANSI Common Lisp), which integrates functional programming and object-oriented programming and allows extension via a Meta-object protocol. In the 1980s, there were a few attempts to design processor architectures which included hardware support for objects in memory but these were not successful. Examples include the Intel iAPX 432 and the Linn Smart Rekursiv. Object-oriented programming developed as the dominant programming methodology during the mid-1990s, largely due to the influence of Visual FoxPro 3.0 or possibly C++. Its dominance was further enhanced by the rising popularity of graphical user interfaces, for which object-oriented programming seems to be well-suited. An example of a closely related dynamic GUI library and OOP language can be found in the Cocoa frameworks on Mac OS X, written in Objective-C, an object-oriented, dynamic messaging extension to C based on Smalltalk. OOP toolkits also enhanced the popularity of event-driven programming (although this concept is not limited to OOP). Some feel that association with GUIs (real or perceived) was what propelled OOP into the programming mainstream. At ETH ZÃ ¼rich, Niklaus Wirth and his colleagues had also been investigating such topics as data abstraction and modular programming (although this had been in common use in the 1960s or earlier). Modula-2 (1978) included both, and their succeeding design, Oberon, included a distinctive approach to object orientation, classes, and such. The approach is unlike Smalltalk, and very unlike C++. Object-oriented features have been added to many existing languages during that time, including Ada, BASIC, Fortran, Pascal, and others. Adding these features to languages that were not initially designed for them often led to problems with compatibility and maintainability of code. More recently, a number of languages have emerged that are primarily object-oriented yet compatible with procedural methodology, such as Python and Ruby. Probably the most commercially important recent object-oriented languages are Visual Basic.NET (VB.NET) and C#, both designed for Microsofts .NET platform, and Java, developed by Sun Microsystems. VB.NET and C# both support cross-language inheritance, allowing classes defined in one language to subclass classes defined in the other language. Just as procedural programming led to refinements of techniques such as structured programming, modern object-oriented software design methods include refinements such as the use of design patterns, design by contract, and modeling languages (such as UML). The term OOPS, which refers to an object-oriented programming system, was common in early development of object-oriented programming. III. Fundamental concepts and features Class Defines the abstract characteristics of a thing (object), including the things characteristics (its attributes, fields or properties) and the things behaviors (the things it can do, or methods, operations or features). One might say that a class is a blueprint or factory that describes the nature of something. For example, the class Dog would consist of traits shared by all dogs, such as breed and fur color (characteristics), and the ability to bark and sit (behaviors). Classes provide modularity and structure in an object-oriented computer program. A class should typically be recognizable to a non-programmer familiar with the problem domain, meaning that the characteristics of the class should make sense in context. Also, the code for a class should be relatively self-contained (generally using encapsulation). Collectively, the properties and methods defined by a class are called members. Object A pattern (exemplar) of a class. The class Dog defines all possible dogs by listing the characteristics and behaviors they can have; the object Lassie is one particular dog, with particular versions of the characteristics. A Dog has fur; Lassie has brown-and-white fur. Instance One can have an instance of a class; the instance is the actual object created at runtime. In programmer jargon, the Lassie object is an instance of the Dog class. The set of values of the attributes of a particular object is called its state. The object consists of state and the behavior thats defined in the objects class. More on Classes, Metaclasses, Parameterized Classes, and Exemplars There are two broad categories of objects: classes and instances. Users of object-oriented technology usually think of classes as containing the information necessary to create instances, i.e., the structure and capabilities of an instance is determined by its corresponding class. There are three commonly used (and different) views on the definition for class: A class is a pattern, template, or blueprint for a category of structurally identical items. The items created using the class are called instances. This is often referred to as the class as a `cookie cutter' view. As you might guess, the instances are the cookies. A class is a thing that consists of both a pattern and a mechanism for creating items based on that pattern. This is the class as an `instance factory' view; instances are the individual items that are manufactured (created) using the classs creation mechanism. A class is the set of all items created using a specific pattern. Said another way, the class is the set of all instances of that pattern. We should note that it is possible for an instance of a class to also be a class. A metaclass is a class whose instances themselves are classes. This means when we use the instance creation mechanism in a metaclass, the instance created will itself be a class. The instance creation mechanism of this class can, in turn, be used to create instances although these instances may or may not themselves be classes. A concept very similar to the metaclass is the parameterized class. A parameterized class is a template for a class wherein specific items have been identified as being required to create non-parameterized classes based on the template. In effect, a parameterized class can be viewed as a fill in the blanks version of a class. One cannot directly use the instance creation mechanism of a parameterized class. First, we must supply the required parameters, resulting in the creation of a non-parameterized class. Once we have a non-parameterized class, we can use its creation mechanisms to create instances. In this paper, we will use the term class to mean metaclass, parameterized class, or a class that is neither a metaclass nor a parameterized class. We will make a distinction only when it is necessary to do so. Further, we will occasionally refer to non-class instances. A non-class instance is an instance of a class, but is itself not a class. An instance of a metaclass, for example, would not be a non-class instance. In this paper, we will sometimes refer to instantiation. Instantiation has two common meanings: as a verb, instantiation is the process of creating an instance of a class, and as a noun, an instantiation is an instance of a class. Some people restrict the use of the term object to instances of classes. For these people, classes are not objects. However, when these people are confronted with the concepts of metaclasses and parameterized classes, they have a difficulty attempting to resolve the problems these concepts introduce. For example, is a class that is an instance of a metaclass an object even though it is itself a class? In this paper, we will use the term object to refer to both classes and their instances. We will only distinguish between the two when needed. Black Boxes and Interfaces Objects are black boxes. Specifically, the underlying implementations of objects are hidden from those that use the object. In object-oriented systems, it is only the producer (creator, designer, or builder) of an object that knows the details about the internal construction of that object. The consumers (users) of an object are denied knowledge of the inner workings of the object, and must deal with an object via one of its three distinct interfaces: The public interface. This is the interface that is open (visible) to everybody. The inheritance interface. This is the interface that is accessible only by direct specializations of the object. (We will discuss inheritance and specialization later in this chapter.) In class-based object-oriented systems, only classes can provide an inheritance interface. The parameter interface. In the case of parameterized classes, the parameter interface defines the parameters that must be supplied to create an instance of the parameterized class. Another way of saying that an item is in the public interface of an object is to say that the object exports that item. Similarly, when an object requires information from outside of itself (e.g., as with the parameters in a parameterized class), we can say that the object needs to import that information. Aggregation It is, of course, possible for objects to be composed of other objects. Aggregation is either: The process of creating a new object from two or more other objects, or An object that is composed of two or more other objects. For example, a date object could be fashioned from a month object, a day object, and a year object. A list of names object, for example, can be thought of as containing many name objects. A monolithic object is an object that has no externally-discernible structure. Said another way, a monolithic object does not appear to have been constructed from two or more other objects. Specifically, a monolithic object can only be treated as a cohesive whole. Those outside of a monolithic object cannot directly interact with any (real or imagined) objects within the monolithic object. A radio button in a graphical user interface (GUI) is an example of a monolithic object. Composite objects are objects that have an externally-discernible structure, and the structure can be addressed via the public interface of the composite object. The objects that comprise a composite object are referred to as component objects. Composite objects meet one or both of the following criteria: The state of a composite object is directly affected by the presence or absence of one or more of its component objects, and/or The component objects can be directly referenced via the public interface of their corresponding composite object. It is useful to divide composite objects into two subcategories: heterogeneous composite objects and homogeneous composite objects: A heterogeneous composite object is a composite object that is conceptually composed of component objects that are not all conceptually the same. For example, a date (made up of a month object, a day object, and a year object) is a heterogeneous composite object. A homogeneous composite object is a composite object that is conceptually composed of component objects that are all conceptually the same. For example, a list of addresses is a homogeneous composite object. The rules for designing heterogeneous composite objects are different from the rules for designing homogeneous composite objects. Specialization and Inheritance Aggregation is not the only way in which two objects can be related. One object can be a specialization of another object. Specialization is either: The process of defining a new object based on a (typically) more narrow definition of an existing object, or An object that is directly related to, and more narrowly defined than, another object. Specialization is usually associated with classes. It is usually only in the so-called classless object-oriented systems that we think of specialization for objects other than classes. Depending on their technical background, there are a number of different ways in which people express specialization. For example, those who are familiar with an object-oriented programming language called Smalltalk refer to specializations as subclasses and to the corresponding generalizations of these specializations as superclasses. Those with a background in the C++ programming language use the term derived class for specialization and base class for corresponding generalizations. It is common to say that everything that is true for a generalization is also true for its corresponding specialization. We can, for example, define checking accounts and savings accounts as specializations of bank accounts. Another way of saying this is that a checking account is a kind of bank account, and a savings account is a kind of bank account. Still another way of expressing this idea is to say that everything that was true for the bank account is also true for the savings account and the checking account. In an object-oriented context, we speak of specializations as inheriting characteristics from their corresponding generalizations. Inheritance can be defined as the process whereby one object acquires (gets, receives) characteristics from one or more other objects. Some object-oriented systems permit only single inheritance, a situation in which a specialization may only acquire characteristics from a single generalization. Many object-oriented systems, however, allow for multiple inheritance, a situation in which a specialization may acquire characteristics from two or more corresponding generalizations. Our previous discussion of the bank account, checking account, and savings account was an example of single inheritance. A telescope and a television set are both specializations of device that enables one to see things far away. A television set is also a kind of electronic device. You might say that a television set acquires characteristics from two different generalizations, device that enables one to see things far away and electronic device. Therefore, a television set is a product of multiple inheritance. Abstract Classes We usually think of classes as being complete definitions. However, there are situations where incomplete definitions are useful, and classes that represent these incomplete definitions are equally useful. For example, in everyday conversation, we might talk about such items as bank accounts, insurance policies, and houses. In object-oriented thinking, we often isolate useful, but incomplete, concepts such as these into their own special classes. Abstract classes are classes that embody coherent and cohesive, but incomplete, concepts, and in turn, make these characteristics available to their specializations via inheritance. People sometimes use the terms partial type and abstract superclass as synonyms for abstract class. While we would never create instances of abstract classes, we most certainly would make their individual characteristics available to more specialized classes via inheritance. For example, consider the concept of an automobile. On one hand, most people know what an automobile is. On the other hand, automobile is not a complete definition for any vehicle. It would be quite accurate to describe automobile as the set of characteristics that make a thing an automobile, in other words, the essence of automobile-ness. Operations The public interface of an object typically contains three different categories of items: operations (sometimes referred to as method selectors, method interfaces, messages, or methods), constants, and exceptions. An operation in the public interface of an object advertises a functional capability of that object. For example, deposit would be an operation in the public interface of a bank account object, what is current temperature would be an operation in the public interface of a temperature sensor object, and increment would be an operation in the public interface of a counter object. The actual algorithm for accomplishing an operation is referred to as a method. Unlike operations, methods are not in the public interface for an object. Rather, methods are hidden on the inside of an object. So, while users of bank account objects would know that they could make a deposit into a bank account, they would be unaware of the details as to how that deposit actually got credited to the bank account. We refer to the operations in the public interface of an object as suffered operations. Suffered operations are operations that meet two criteria: they are things that happen to an object, and they are in the public interface of that object. For example, we can say that a bank account suffers the operation of having a deposit made into it. The bank account can also suffer the operation of being queried as to its current balance. Some people also refer to suffered operations as exported operations. There are three broad categories of suffered operations, i.e.: A selector is an operation that tells us something about the state of an object, but cannot, by definition, change the state of the object. An operation that tells us the current balance of a bank account is an example of a selector operation. A constructor is an operation that has the ability to change the state of an object. For example, an operation in the public interface to a mailbox object that added a message to the mailbox would be a constructor operation. (Please note that some people restrict the definition of the term constructor to those operations that cause instances of a class to come into existence.) In the context of a homogeneous composite object, an iterator is an operation that allows its users to visit (access) each of the component objects that make up the homogeneous composite object. If we have a list of addresses, for example, and we wish to print the entire list, an iterator would allow us to visit each address object within the list and then, in turn, to print each address. Iterators can be further divided into two broad categories: active (open) iterators and passive (closed) iterators. Active iterators are objects in their own right. Passive iterators are implemented as operations in the interface of the object over which they allow iteration. Passive iterators are further broken down into selective iterators and constructive iterators. Passive selective iterators do not allow their users to change the object over which the iteration takes place. Passive constructive iterators do allow users to change the object over which iteration takes place. We can also describe suffered operations as primitive or composite. A primitive operation is an operation that cannot be accomplished simply, efficiently, and reliably without direct knowledge of the underlying (hidden) implementation of the object. As an example, we could argue that an operation that added an item to a list object, or an operation that deleted an item from a list object were primitive operations with respect to the list object. Suppose that we wanted to create a swap operation, an operation that would swap in a new item in a list, while at the same time swapping out an old item in the same list. This is not a primitive operation since we can accomplish this with a simple combination of the delete operation (deleting the old item) followed by the add operation (adding the new item). The swap operation is an example of a composite operation. A composite operation is any operation that is composed, or can be composed, of two or more primitive operations. Sometimes objects need help in maintaining their characteristics. Suppose, for example, that we wanted to create a generic ordered list object. An ordered list is a list that must order its contents from the smallest to the largest. Specifically, every time we add an item to our ordered list, that item would have to be placed in its proper position with respect to all the other items already in the list. By generic, we mean a template that can be instantiated with the category (class) of items we wish to place in the ordered list. It would not be unreasonable to implement this object as a parameterized class. Obviously, one of the parameters would be the category of items (e.g., class) that we desired to place in the list. For example, could instantiate (make an instance) the generic ordered list with a name class resulting in the creation of an ordered list of names class. There is a problem, however. Given that we could instantiate the generic ordered list with just about any category of items, how can we be sure that the ordered lists will know how to properly maintain order no matter what we use to instantiate the generic ordered list? Suppose, for example, that we wanted an ordered list of fazoomas. How could the generic list class tell if one fazooma was greater than or less than another fazooma? A solution would be for the generic ordered list to require a second parameter, a parameter over and above the category of items (class) that we desired to place in the list. This second parameter would be a The Constants In addition to suffered operations, the public interface of an object can also contain constants. Constants are objects of constant state. Imagine that we want to create a bounded list of addresses class. A bounded list is a list that has a fixed maximum number of elements. A bounded list can be empty, and it can contain fewer than the maximum number of elements. It can even contain the maximum number of elements, but it can never contain more than the defined maximum number of elements. Assume that we place a constant in the public interface of our bounded list of addresses. This constant represents the maximum number of elements that can be placed in the bounded list. Assume also that there is a suffered operation that will tell us how many elements (addresses, in our example) are currently in the bounded list. We can now determine how much room is available in the bounded list by inquiring how many addresses are already in the list, and then subtracting this from the previously-defined constant. In some cases, as with the bounded list example above, constants are provided more for convenience than necessity. In other cases, such as in the case of encryption algorithms needing a seed value, constants are an absolute requirement. Exceptions A third category of items that can be found in the public interface of objects is exceptions. Exceptions have two different definitions: an event that causes suspension of normal application execution, and a set of information directly relating to the event that caused suspension of normal application execution. Exceptions can be contrasted with an older, less reliable technology: error codes. The idea behind error codes was fairly simple. You would request that an application, or part of an application, accomplish some work. One of the pieces of information that would be returned to the requester would be an error code. If all had gone well, the error code would typically have a value of zero. If any problems had occurred, the error code would have a non-zero value. It was also quite common to associate different non-zero values of an error code with specific errors. Error codes suffered from two major problems: No one was forced to actually check the value of returned error codes. Changes (additions, deletions, and modifications) in the meanings of the special values assigned to error codes were not automatically passed on to interested parties. Tracking the effects of a changed error code value often consumed a significant amount of resources. To understand how exceptions directly address both of these issues, we first need to understand how exceptions typically work: Exceptions may be defined by the environment or by the user. When an exceptional (but not unforeseen) condition occurs, an appropriate exception is activated. (People use different terms to express the activation of an exception. The most common is raise. Less commonly, people use the terms throw or activate.) This activation may be automatic (controlled by the environment) or may be expressly requested by the designer of the object or application. Examples of exceptional conditions include trying to remove something from an empty container, directing an elevator on the top floor to go up, and attempting to cause a date to take on an invalid value like February 31, 1993. Once the exception is activated, normal application execution stops and control is transferred to a locally defined exception handler, if one is present. If no locally defined exception handler is present or if the exception handler is not equipped to handle the exception, the exception is propagated to the next higher level of the application. Exceptions cannot be ignored. An exception will continue to be sent to higher levels of the application until it is either turned off or the application ceases to function. An exception handler checks to see what type of exception has been activated. If the exception is one that the handler recognizes, a specific set of actions is taken. Executing a set of actions in response to an exception is known as handling the exception. Handling an exception deactivates the exception; the exception will not be propagated any further. Unlike error codes, exceptions cannot be ignored. Once an exception has been activated, it demands attention. In object-oriented systems, exceptions are placed in the public interfaces of objects. Changes in the public interfaces of objects very often require an automatic rechecking of all other objects that invoke operations in the changed objects. Thus, changes in exceptions result in at least a partially automated propagation of change information. Object Coupling and Object Cohesion Engineers have known for centuries that the less any one part of a system knows about any other part of that same system, the better the overall system. Systems whose components are highly independent of each other are easier to fix and enhance than systems where there are strong interdependencies among some or all of the components. Highly independent system components are possible when there is minimal coupling among the components, and each component is highly cohesive. Coupling is a measure of the strength of the connection between any two system components. The more any one component knows about another component, the tighter (worse) the coupling is between those two components. Cohesion is a measure of how logically related the parts of an individual component are to each o