Vous êtes sur la page 1sur 100

Abstract

We study the following problem: A data distributor has given sensitive data to a set of supposedly trusted agents (third parties). Some of the data is leaked and found in an unauthorized place (e.g. on the web or somebody!s laptop). "he distributor must assess the likelihood that the leaked data came from one or more agents as opposed to having been independently gathered by other means. We propose data allocation strategies (across the agents) that improve the probability of identifying leakages. "hese methods do not rely on alterations of the released data (e.g. watermarks). #n some cases we can also in$ect %realistic but fake& data records to further improve our chances of detecting leakage and identifying the guilty party.

Objective:
"he main ob$ective of the pro$ect is provide strong proof against the guilty who had leaked the data and if the possible to detect whenever the data is leaked by the guilty.

About IEEE Community:

History
"he #''' corporate office is on the ()th floor of * +ark Avenue in ,ew -ork .ity "he #''' is incorporated under the ,ot/for/+rofit .orporation 0aw of the state of ,ew -ork 1nited States.234 #t was formed in (56* by the merger of the #nstitute of 7adio 'ngineers (#7' founded (5(8) and the American #nstitute of 'lectrical 'ngineers (A#'' founded (993). "he ma$or interests of the A#'' were wire communications (telegraph and telephony) and light and power systems. "he #7' concerned mostly radio engineering and was formed from two smaller organizations the Society of Wireless and "elegraph 'ngineers and the Wireless #nstitute. With the rise of electronics in the (5*:s electronics engineers usually became members of the #7' but the applications of electron tube technology became so e;tensive that the technical boundaries differentiating the #7' and the A#'' became difficult to distinguish. After World War ## the two organizations became increasingly competitive and in (56( the leadership of both the #7' and the A#'' resolved to consolidate the two organizations. "he two organizations formally merged as the #''' on <anuary ( (56*. ,otable +residents of #''' and its founding organizations include 'lihu "homson (A#'' (995=(95:) Ale;ander >raham ?ell (A#'' (95(=(958) .harles +roteus Steinmetz (A#'' (5:(=(5:8) 0ee @e Aorest (#7' (5*:) Arederick '. "erman (#7' (53() William 7. Bewlett (#7' (5C3) 'rnst Weber (#7' (5C5D #''' (56*) and #van >etting (#''' (5)9). #'''Es .onstitution defines the purposes of the organization as Fscientific and educational directed toward the advancement of the theory and practice of 'lectrical 'lectronics .ommunications and .omputer engineering as well as computer science the allied branches of engineering and the related arts and sciences.F2(4 #n pursuing these goals the #''' serves as a ma$or publisher of scientific $ournals and a conference organizer. #t is also a leading developer of industrial standards (having developed over 5:: active industry standards) in a broad range of disciplines including electric power and energy biomedical technology and healthcare information technology information assurance telecommunications consumer electronics transportation aerospace and nanotechnology. #''' develops and participates in educational activities such as accreditation of electrical engineering programs in institutes of higher learning. "he #''' logo is a diamond/shaped design which illustrates the right hand grip rule embedded in ?en$amin AranklinEs kite which was created in the (56* merger. 2C4 #''' also sponsors or cosponsors more than (::: international technical conferences each year. #''' has a dual complementary regional and technical structure / with organizational units based on geography (e.g. for e;ample the #''' +hiladelphia Section #''' South

Africa Section 2(4) and technical focus (e.g. the #''' .omputer Society). #t manages a separate organizational unit (#'''/1SA) which recommends policies and implements programs specifically intended to benefit the members the profession and the public in the 1nited States. "he #''' consists of *9 societies organized around specialized technical fields with more than *:: local organizations that hold regular meetings. "he #''' Standards Association is in charge of the standardization activities of the #'''. +ublications #''' produces *:G of the worldEs literature in the electrical and electronics engineering and computer science fields publishing well over (:: peer/reviewed $ournals.264 "he content in these $ournals as well as the content from several hundred annual conferences are available in the #'''Es online digital library.2)4 #''' publications have received a >reen294 rating the from SB'7+AH7oI'J guide254 for affirming "authors and/or their companies shall have the right to post their IEEEcopyrighted material on their own servers without permission" (#''' +ublication +olicy 9.(.5.@2(:4). "his open access policy effectively allows authors at their choice to make their article openly available. 7oughly (H* of the #''' authors take this route. 0ike most other standards bodies #''' distributes its standards documents for a fee.

Educational opportunities
"he #''' provides learning opportunities within the engineering sciences research and technology. "he goal of the #''' education programs is to ensure the growth of skill and knowledge in the electricity/related technical professions and to foster individual commitment to continuing education among #''' members the engineering and scientific communities and the general public. #''' offers educational opportunities such as IEEE eLearning Library,2((4 the Education Partners Program 2(84 Standards in Education2(*4 and Continuing Education nits (.'1s).2(34 IEEE eLearning Library is a collection of online educational courses designed for self/ paced learning. 'ducation +artners e;clusive for #''' members offers on/line degree programs certifications and courses at a (:G discount. "he Standards in 'ducation website e;plains what standards are and the importance of developing and using them. "he site includes tutorial modules and case illustrations to introduce the history of standards the basic terminology their applications and impact on products as well as news related to standards book reviews and links to other sites that contain information on standards. .urrently twenty/nine states reKuire +rofessional @evelopment Bours

(+@B) to maintain +.'. licensure encouraging engineers to seek .ontinuing 'ducation 1nits (.'1s) for their participation in continuing education programs. .'1s readily translate into +rofessional @evelopment Bours (+@Bs) (( .'1 is eKuivalent to (: +@Bs). .ountries outside the 1nited States such as South Africa also reKuire continuing professional development (.+@) credits. #n South Africa the #''' South Africa Section is a voluntary association of the 'ngineering .ouncil of South Africa ('.SA) a signatory of Washington Accord. "o maintain registration with '.SA professional engineers (+r 'ng) must pursue .+@ and now the #''' via its local reflection in South Africa can enable .+@ provision. #n 8:(: it is anticipated that #''' ';pert ,ow courses will feature in the .+@ listing for the #''' membership in South Africa to derive benefit. #''' also sponsors a website2(C4 designed to help young people understand better what engineering means and how an engineering career can be made part of their future. Students (ages 9=(9) parents and teachers can e;plore the site to prepare for an engineering career ask e;perts engineering/related Kuestions play interactive games e;plore curriculum links and review lesson plans. "his website also allows students to search for accredited engineering degree programs in .anada and the 1nited StatesD visitors are able to search by stateHprovinceHterritory country degree field tuition ranges room and board ranges size of student body and location (rural suburban or urban).

Standards and development process


Iain article: #''' Standards Association #''' is one of the leading standards/making organizations in the world. #''' performs its standards making and maintaining functions through the #''' Standards Association (#'''/SA). #''' standards affect a wide range of industries including: power and energy biomedical and healthcare #nformation "echnology (#") telecommunications transportation nanotechnology information assurance and many more. #n 8::C #''' had close to 5:: active standards with C:: standards under development. Jne of the more notable #''' standards is the #''' 9:8 0A,HIA, group of standards which includes the #''' 9:8.* 'thernet standard and the #''' 9:8.(( Wireless ,etworking standard.

Membership and member grades


Iost #''' members are electrical engineers and electronics engineers but the organizationEs wide scope of interests has attracted engineers in other disciplines (e.g. computer science mechanical and civil engineering) as well as biologists physicists and mathematicians. An individual can $oin the #''' as an student member professional member or associate member. #n order to Kualify for membership the individual must comply with certain academic or professional criteria and abide to the code of ethics and bylaws of the organization. Student memberships are available to those who are enrolled in a accredited institution of higher education as undergrad or graduate students for a

reduced fee. A professional membership however reKuires from the individual proof of having been graduated from an higher education institution and received the diploma or engineer. #n the case of some countries like the 1.S.A. and .anada a bachelor in electrical electronics or computer science are almost automatically considered for membership. An associate membership is given to an individual whose area of e;pertise falls outside the scope of the #''' andHor donEt have at the time of enrollment all the reKuirements for applying for full memberships. Jther individuals who donEt want to be directly linked to electrical engineering for reasons of having membership on another sister organizations may choose to be called affiliates before that professional members of the #'''. Students and Associates have all the privileges of members e;cept the right to vote and hold certain offices. 1pon meeting certain reKuirements a member can apply for a Senior Iembership which is the highest recognition a professional member can host for his(her) contributions and advancement to the field of electrical and electronics engineering. Although an application for Senior Iember is personal and optional the applicant must have at least two letters of recommendation from other senior members and rigorously fulfill the reKuirements of education achievement remarkable contribution and e;perience in the field. "he Senior Iembers are a selected group who are entitled to hold specific #''' officer positions and is the reKuirement for those who are nominated and elevated to the grade IEEE !ellow a distinctive honor.

Awards
"hrough its awards program the #''' advances the interests of its members by recognizing their contributions in advancing the fields of interest to #''' to the benefit of society. ?y this means the image and prestige of the organization its members and the profession are all enhanced. "he #''' Awards +rogram honors members and other professionals for their service to the society. Aor nearly a century the #''' Awards +rogram has paid tribute to technical professionals whose e;ceptional achievements and outstanding contributions have made a lasting impact on technology society and the engineering profession.

ata Mining

Introduction to ata Mining in S!" Server


#t!s always necessary to e;plain e;actly what is meant by the term data mining.-ou would hope that any particular technology has a name that is either absolutely clear as to what it means (such as reporting) or completely devoid of meaning but catchy so the association is uniKue (such as Silverlight). Bowever this is not the case for data mining. "he term data mining has been used to mean anything from ad hoc Kueries rules/based notifications or pivot/chart analysis to evil government domestic/ spying programs. As it is used in this book data mining is the process of analyzing data to find hidden patterns using automatic methodologies. "his type of data mining is often referred to using other terms such as machine learning "nowledge discovery in databases #$%%& or predictive analytics. Although each of these terms has a slightly different connotation they overlap enough to be functionally eKuivalent with data mining in the sense used here. ?y far the trendiest term today is predictive analytics which many companies ironically are using to differentiate what they do from LLdata mining.!! "he inherent implication is that data mining is limited to the discovery of patterns whereas predictive analytics allows the application of the patterns to new data to impute (or predict) unknown values. "he motivation behind using the term predictive analytics is precisely this dilution of the meaning of data mining as it has been used in recent years. +redictive analytics however is an incomplete term because it ignores the descriptive nature of data mining. "herefore until a marketing genius comes up with a clever meaningless name like LLSparky !! the term we use will remain data mining. So what does data mining do and why do you need itM Jver the past several years compute power has increased e;ponentially according to the well/known Ioore!s law.Bowever unbeknownst to most hard/drive capacity has increased at an order of magnitude greater than that of processor power. "hat is the capability to store data has greatly outpaced the capability to process it. As a result large volumes of data have been generated and persisted in databases. Iuch of this data comes from business software such as financial applications enterprise resource planning ('7+) systems customer relationship management (.7I) systems and server logs from web servers or even the database servers hosting the data. "he result of this unceasing data collection is that organizations have become data/rich and knowledge/poor. "he collections of data are so vast that the practical use of these stores of data becomes limited. "he main purpose of data mining is to e;tract knowledge from the data at hand increasing its intrinsic value and making the data useful

1sing traditional methods you can write Kueries or slice the data using JnlineAnalytical +rocessing (J0A+) tools to find out how many male students attend college versus female students. -ou could also write a Kuery to see the relationship between parental encouragement and attendance plans. ?ut what about male students who are encouraged by their parentsM Jr what about female students who are not encouraged by their parentsM -ou must write dozens of such Kueries to cover all the possible combinations.

#usiness $roblems %or ata Mining


@ata mining techniKues can be used in virtually all business applications answering various types of businesses Kuestions. #n truth given the software available today all you need is the motivation and the know/how. #n general data mining can be applied whenever something could be known but is not. "he following e;amples describe some scenarios: &ecommendation generationN What products or services should you offer to your customersM >enerating recommendations is an important business challenge for retailers and service providers. .ustomers who are provided appropriate and timely recommendations are likely to be more valuable (because they purchase more) and more loyal (because they feel a stronger relationship to the vendor). Aor e;ample if you go to online stores such as Amazon.com or ?arnesandnoble.com to purchase an item you are provided with recommendations about other items you may be interested in. "hese recommendations are derived from using data mining to analyze purchase behavior of all of the retailer!s customers and applying the derived rules to your personal information. Anomaly detection N Bow do you know whether your data is LLgood!! or notM @ata mining can analyze your data and pick out those items that don!t fit with the rest. .redit card companies use data mining=driven anomaly detection to determine if a particular transaction is valid. #f the data mining system flags the transaction as anomalous you get a call to see if it was really you who used your card. #nsurance companies also use anomaly detection to determine if claims are fraudulent. ?ecause these companies process thousands of claims a day it is impossible to investigate each case and data mining can identify which claims are likely to be false. 'nomaly detection can even be used to validate data entryNchecking to see if the data entered is correct at the point of entry. Churn analysis N Which customers are most likely to switch to a competitorM "he telecom banking and insurance industries face severe competition. Jn average obtaining a single new mobile phone subscriber costs more than O8::. 'very business would like to retain as many customers as possible. Churn analysis can help marketing

managers identify the customers who are likely to leave and why and as a result they can improve customer relations and retain customers. &is' managementNShould a loan be approved for a particular customerM Since the subprime mortgage meltdown this is the single most common Kuestion in banking. @ata mining techniKues are used to determine the ris" of a loan application helping the loan officer make appropriate decisions on the cost and validity of each application. Customer segmentation NBow do you think of your customersM Are your customers the indescribable masses or can you learn more about your customers to have a more intimate and appropriate discussion with them. Customer segmentation determines the behavioral and descriptive profiles for your customers. "hese profiles are then used to provide personalized marketing programs and strategies that are appropriate for each group. (argeted ads N Web retailers or portal sites like to personalize their content for their Web customers. 1sing navigation or online purchase patterns these sites can use data mining solutions to display targeted advertisements to their Web navigators. )orecasting N Bow many cases of wine will you sell ne;t week in this storeM What will the inventory level be in one monthM @ata mining (orecasting techni)ues can be used to answer these types of time/related Kuestions.

ata Mining (as's


Aor each Kuestion that can be asked of a data mining system there are many tasks that may be applied. #n some cases an answer will become obvious with the application of a single task. #n others you will e;plore and combine multiple tasks to arrive at a solution. "he following sections describe the general data mining tasks. Classi%ication Classi(ication is the most common data mining task. ?usiness problems such as churn analysis risk management and targeted advertising usually involve classification. .lassification is the act of assigning a category to each case. 'ach case contains a set of attributes one of which is the class attribute. "he task reKuires finding a model that describes the class attribute as a function of input attributes. #n the .ollege +lans data set shown in Aigure the class is the .ollege+lans attribute with two states: -es and ,o. A classification model will use the other attributes of a case (the input attributes) to determine patterns about the class (the output attribute). @ata mining algorithms that reKuire a target to learn against are considered supervised algorithms. "ypical classification algorithms include decision trees neural network and ,aPQve ?ayes.

Clustering Clustering is also called segmentation. #t is used to identify natural groupings of cases based on a set of attributes. .ases within the same group have more or less similar attribute values. "he following Aigure shows a very simple customer data set containing two attributes: Age and #ncome. "he clustering algorithm groups the data set into three segments based on these two attributes. .luster ( contains a younger population with low income. .luster 8 contains middle age customerswith higher income. .luster * is a group of older individuals with a relatively low income. .lustering is an unsupervised data mining task. "here is no single attribute used to guide the training process so all input attributes are treated eKually. Iost clustering algorithms build the model through a number of iterations and stop when the model converges (that is the boundaries of these segments are stabilized).

Aigure: .lustering

Association 'ssociation is also called mar"et bas"et analysis. A typical association business problem is to analyze a sales transaction table and identify those products often in the same shopping basket. "he common usage of association is to identify common sets of items and rules for the purpose of cross/selling as shown in Aigure

Aigure:Association 7ule #n terms of association each piece of information is considered an item. "he association task has two goals: to find those items that appear together freKuently and from that to determine rules about the associations. &egression "he regression task is similar to classification e;cept that instead of looking for patterns that describe a class the goal is to find patterns to determine a numerical value. Simple linear line/fitting techniKues are an e;ample of regression where the result is a function to determine the output based on the values of the inputs. Iore advanced forms of regression support categorical inputs as well as numerical inputs. "he most popular techniKues used for regression are linear regression and logistic regression. Jther techniKues supported by SR0 Server @ata Iining are regression trees (part of the Iicrosoft @ecision "rees algorithm) and neural networks. 7egression is used to solve many business problemsN for e;ample to predict a coupon redemption rate based on the face value distribution method distribution volume and season or to predict wind velocities based on temperature air pressure and humidity.

)orecasting !orecasting is yet another important data mining task. What will the stock value of Iicrosoft .orporation (,AS@AR symbol ISA") be tomorrowM What will the sales amount of wine be ne;t monthM Aorecasting can help answer these Kuestions. As input it takes seKuences of numbers indicating a series of values through time and then it imputes future values of those series using a variety of machine/learning and statistical techniKues that deal with seasonality trending and noisiness of data. "he following Aigure shows two curves. "he solid line curve is the actual time/series data on Iicrosoft stock value and the dotted curve is a time/series model that predicts values based on past values.

Aigure:"ime/Series Se*uence Analysis Se)uence analysis is used to find patterns in a series of events called a se)uence. Aor e;ample a@,AseKuence is a long series composed of four different states: A > . and ".Aclick seKuence on the Web contains a series of 170s. #n certain circumstances you may model customer purchases as a seKuence of data. Aor e;ample a customer first buys a computer and then buys speakers and finally buys a webcam. ?oth seKuence and time/series data are similar in that they contain ad$acent observations that are order/ dependent. "he difference is that where a time series contains numerical data a seKuence series contains discrete states. Aigure shows Web click seKuences from a news website. 'ach node is a 170 category and the lines represent transitions between them. 'ach transition is associated with a weight representing the probability of the transition between one 170 and another.

Aigure:SeKuence Analysis

eviation Analysis %eviation analysis is used to find rare cases that behave very differently from the norm. @eviation analysis is widely applicable the most common usage being credit card fraud detection. #dentifying abnormal cases among millions of transactions is a very challenging task. Jther applications include network intrusion detection manufacture error analysis and so on. "here is no standard techniKue for deviation analysis. 1sually analysts apply decision trees clustering or neural network algorithms for this task.

ata Mining $roject Cycle


#usiness $roblem )ormation What are the problems you are trying to solveM What techniKues are you going to apply to solve the problemM Bow do you know if you will be successfulM "hese are important Kuestions to ask before embarking on any pro$ect. -ou may find that a simple J0A+ reporting or data integration solution may be sufficient. A predictive or data mining solution involves determining the unknown relying on a belief that making sense of that unknown will add value. "his is a shaky precipice from which to begin any business endeavor. 0uckily successful data mining solutions have been shown to have an average of (C:/percent return on investment (7J#) so that makes $ustification easier. ata Collection ?usiness data is stored in many systems across an enterprise. Aor e;ample at Iicrosoft there are hundreds of online transaction processing (J0"+) databases and more than ): data warehouses. "he first step is to pull the relevant data into a database or a data mart where the data analysis is applied. Aor e;ample if you want to analyze your website!s click stream the first step is to download the log data from your web servers. Sometimes you might be lucky and find that there is already an e;isting data warehouse on the sub$ect of your analysis. Bowever in many cases the data in the datawarehouse is not rich enough and must be supplementedwith additional data. Aor e;ample the log data from the web servers contains only data about web behavior and little (if any) data about the customers. -ou may need to gather customer information from other company systems or purchase demographic data to build models that meet your business reKuirements. ata Cleaning and (rans%ormation @ata cleaning and transformation are the most resource/consuming steps in a data mining pro$ect. "he purpose of data cleaning is to remove noise and irrelevant information from the data set. "he purpose of data trans(ormation is to modify the source data in ways that make it useful for mining. Sarious techniKues are applied to clean and transform data including the following: +umerical trans%ormationN Aor continuous data such as income and age a typical transformation is to bin (or discreti*e) the data into buckets. Aor e;ample you may want to bin Age into five predefined age groups. SR0 Server @ata Iining has automatic discretization methods but if you have meaningful groupings theymay be more informative both from a business sense and an algorithmic sense. Additionally continuous data is often normali*ed. ,ormalization maps all numerical values to a range
(such as between : and () or to have a specific standard deviation (such as ().

,roupingN @iscrete data often has more distinct values than are useful. -ou can group these values to reduce the model comple;ity. Aor e;ample the column +rofession may have many different types of engineers such as Software 'ngineer "elecom 'ngineer Iechanical 'ngineer and so on. -ou can group all of these professions to the single value 'ngineer. AggregationN Aggregation is an important transformation to derive additional value from your data. Suppose you want to group customers based on their phone usage. #f the call detail record information is too detailed for the model you must aggregate all the calls into a few derived attributes such as total number of calls and the average call duration. "hese derived attributes can later be used in the model. Missing value handlingN Iost data sets contain missing values. "his can be caused by many different things. Aor e;ample you may have two customer tables coming from two J0"+ databases that when merged have missing values because the tables are not aligned. Another e;ample occurs when customers don!t supply data values such as age. Another is when you have stock market values with blanks because the markets are closed on weekends and holidays. Addressing missing values is important because it is reflected in the business value of your solution. -ou may need to retain the missing data (for e;ample customers who refuse to report their age may have other interesting things in common). -ou may need to discard the entire record (having too many unknowns could pollute your model). Jr you may simply be able to replace missing values with some other value (such as the previous value for time/series data such as stock market values or the most popular value). Aor more advanced cases you can use data mining to predict the most likely value for each missing case. &emoving outliers + ,utliers are abnormal data and can be real or (as is often the case) errors. Abnormal data has an effect on the Kuality of your results. "he best way to deal with outliers typically is to simply remove them before beginning the analysis. Aor e;ample you could remove :.C percent of the customers with highest or lowest income to eliminate any situations of people having negative or e;tremely unlikely incomes. SR0Server #ntegration Services (SS#S) which is includedwith Iicrosoft SR0 Server is an e;cellent tool for performing data cleaning and transformation tasks.

Model #uilding Iodel building is the core of data mining though it is not as time/ and resource/intensive as data transformation.When you understand the shape of the business problem and the type of data mining task it is relatively easy to pick algorithms that are suitable. 1sually you don!t know which algorithm is the best fit for the problem until you have built the model. "he accuracy of an algorithm depends on the nature of the data. Aor e;ample a decision tree algorithm is usually a very good choice for any classifications. Bowever if the relationships among attributes are complicated a neural

network may perform better. A good approach is to build multiple models using different algorithms and then compare the accuracy of these models. 'ven with a single algorithm you can tune the parameter settings to optimize the model accuracy. Model Assessment #n the model assessment stage you use tools to determine the accuracy of the models that were created and you e;amine the models to determine the meaning of discovered patterns and how they apply to your business. Aor e;ample a model may determine that -elationship T .usband /ender T 0ale with (::/percent confidence. Although the rule is valid it doesn!t contain any business value. #t is very important to work with business analysts who have the proper domain knowledge to validate the discoveries. Sometimes the model doesn!t contain useful patterns. "his is generally because the set of variables in the model are not the right ones to solve your business problem. -ou may need to repeat the data cleaning and transformation steps or even redefine your problem in order to derive more meaningful variables. @ata mining is an e;ploratory process and it often takes a few iterations before you find the right model. &eporting and $rediction #n many organizations the goal of data miners is to deliver reports to marketing e;ecutives. SR0 Server @ata Iining is integrated with SR0 Server 7eporting Services to generate reports directly from data mining results. 7eports may contain predictions (such as lists of customerswith the highest value potential) or the rules found in the data mining analysis. "o provide predictions you apply the selected model against new cases ofdata. .onsider a banking scenario where you build a model about loan risk prediction. 'very day there are thousands of new loan applications. -ou can use the risk prediction model to predict the potential risk for each of these loan applications. Application Integration -ou can close the analysis loop by embedding data mining directly into business applications. Aor e;ample .7I applications may have data mining features that group customers into segments or allow you to select leads based on their likelihood to convert into paying customers. '7+ applications may use data mining features to forecast production and inventory depletion. A manufacturing application can predict product/defect rates and determine the causes for these defects. Jnline stores can give customers real/time product recommendations. #ntegrating data mining into applications enables you to create applications that can be updated continuously and are customized to every user or usage scenario. Model Management #n some situations the patterns found by data mining are more stable and can simply be left alone. #n most cases however the patterns vary freKuently. Aor e;ample in an online store new products appear almost every day meaning that new rules about the products are also appearing almost every day. "he

validity of a mining model can be very short/lived. When the validity of a model has worn out it must be retrained on new data. 1ltimately updating models should be done in an automated process based on business needs. Such automation can be performed using SS#S. Similar to data mining models also must be secured. "he patterns discovered by data mining are the summary of sensitive data and can contain the most important facts about your business. Iining models should be treated as first/class citizens in any #" department where administrators can assign and revoke user access rights as necessary.

ata "ea'age etectionIntroduction:


#n the course of doing business sometimes sensitive data must be handed over to supposedly trusted third parties. Aor e;ample a hospital may give patient records to researchers who will devise new treatments. Similarly a company may have partnerships with other companies that reKuire sharing customer data. Another enterprise may outsource its data processing so data must be given to various other companies.We call the owner of the data the distributor and the supposedly trusted third parties the agents. Jur goal is to detect when the distributor!s sensitive data has been leaked by agents and if possible to identify the agent that leaked the data. We consider applications where the original sensitive data cannot be perturbed. +erturbation is a very useful techniKue where the data is modified and made %less sensitive& before being handed to agents. Aor e;ample one can add random noise to certain attributes or one can replace e;act values by ranges 2(94. Bowever in some cases it is important not to alter the original distributor!s data. Aor e;ample if an outsourcer is doing our payroll he must have the e;act salary and customer bank account numbers. #f medical researchers will be treating patients (as opposed to simply computing statistics) they may need accurate data for the patients. "raditionally leakage detection is handled by watermarking e.g. a uniKue code is embedded in each distributed copy. #f that copy is later discovered in the hands of an unauthorized party the leaker can be identified. Watermarks can be very useful in some cases but again involve some modification of the original data. Aurthermore watermarks can sometimes be destroyed if the data recipient is malicious. #n this paper we study unobtrusive techniKues for detecting leakage of a set of ob$ects or records. Specifically we study the following scenario: After giving a set of ob$ects to agents the distributor discovers some of those same ob$ects in an unauthorized place. (Aor e;ample the data may be found on a web site or may be obtained through a legal discovery process.) At this point the distributor can assess the likelihood that the leaked data came from one or more agents as opposed to having been independently gathered by other means. 1sing an analogy with cookies stolen from a cookie $ar if we catch Areddie with a single cookie he can argue that a friend gave him the cookie. ?ut if we catch Areddie with C cookies it will be much harder for him to argue that his hands were not in the cookie $ar. #f the distributor sees %enough evidence& that an agent leaked data he may stop doing business with him or may initiate legal proceedings. #n this paper we develop a model for assessing the %guilt& of agents. We also present algorithms for distributing ob$ects to agents in a way that improves our chances of identifying a leaker. Ainally we also consider the option of adding %fake& ob$ects to the distributed set. Such ob$ects do not correspond to real entities but appear realistic to the agents. #n a sense the fake ob$ects acts as atype of watermark for the entire set without modifying any individual members. #f it turns out an agent was given one or more fake ob$ects that were leaked then the distributor can be more confident that agent was guilty..

ata "ea'age etection: .a/)inding the probablity o% the agent that has lea'ed the data: " = Ut( t8 t* t3 VVVVVVtn W. ///////////////////////////// 1 = Uu( u8 u* u3VVVVVVu(W. ///////////////////////////// 7i = Ur( r8 r* VVVVVVVVVV.rnW ///////////////////////////// "otal no of Jb$ects. "otal no of Agents. "otal no of Jb$ects with agents.

7i . ". i.e. 7 is subset of " and is always less than ". S = U s( s8 s* VVVVVVVVVV.sn W ///////////////////////////// >i = ///////////////////////////// "otal no of leaked Jb$ects. >uilty Agent.

"he probability to find the guitly agent is as followed.

Case Study: .onsider the following in the developed web application if the employees download the articles. "otal no of articles //////////// (8D Articles downloaded by 'mp( are //////////// * and their id!s are a( a8 a*D Articles downloaded by 'mp 8 are //////////// * and their id!s are a( a* aC. Articles donwloaded by 'mp* are //////////// ( and is id is a3. So we have " T (8D 1 T *D 7 T )D S T total no of leaked articles which is the input,ow by using the above defined formula we can obtain the probability of the guilty agent in this case the employee.

,ow if administrator find!s article with id a3 is leaked then the probablility to identify the guilty agent as 'mp* is (::G. And in the second case if the leaked article is a( the admin can suspect the employees emp( and emp8. ?y using the above formula we can find the probability for any number of cases and with better accuracy. Input: Bere input is the ob$ect which is to be detected. Output: "he output is probabilty of the agent who has leaked the data.

.b/ ata Allocation $roblems#n this we deal with the data allocation problems. We discuss about the techniKues how intelligent they can be distributed to the agents so that the probability of finiding the guilty agent is ma;imum. )a'e Objects: 1nderstanding the concept of fake ob$ects..onsider the following two scenarios to uderstand the concept of fake ob$ects. "he scenarios are as which are discussed in the base paper. #n most cases individual ob$ects are perturbed e.g. by adding random noise to sensitive salaries or adding a watermark to an image. #n our case we are perturbing the set of distributor ob$ects by adding fake elements. "he distributed data ob$ects are medical records and the agents are hospitals. #n this case even small modifications to the records of actual patients may be undesirable. Bowever the addition of some fake medical records may be acceptable since no patient matches these records and hence no one will ever be treated based on fake records.

+ote:(he creation o% %a'e but real0loo'ing objects is a non0trivial problem whose thorough investigation is beyond the scope o% this paper.
Bere we model the creation of a fake ob$ect for agent 1i as a black/bo; function .7'A"'AAX'J?<'."(7iD AiD condi) that takes as input the set of all ob$ects 7i the

subset of fake ob$ects Ai that 1i has received so far and condi and returns a new fake ob$ect. "his function needs condi to produce a valid ob$ect that satisfies 1i!s condition. Set 7i is needed as input so that the created fake ob$ect is not only valid but also indistinguishable from other real ob$ects. Aor e;ample the creation function of a fake payroll record that includes an employee rank and a salary attribute may take into account the distribution of employee ranks the distribution of salaries as well as the correlation between the two attributes. 'nsuring that key statistics do not change by the introduction of fake ob$ects is important if the agents will be using such statistics in their work. Ainally function .7'A"'AAX'J?<'."() has to be aware of the fake ob$ects Ai added so far again to ensure proper statistics. "he distributor can also use function .7'A"'AAX'J?<'."() when it wants to send the same fake ob$ect to a set of agents. #n this case the function arguments are the union of the 7i and Ai tables respectively and the intersection of the conditions condi!s. Although we do not deal with the implementation of .7'A"'AAX'J?<'."() we note that there are two main design options. "he function can either produce a fake ob$ect on demand every time it is called or it can return an appropriate ob$ect from a pool of ob$ects created in advance.

As a conclusion it is made clear that fake ob$ects can be anything depending on the distributor and these paper doesnot deal with creation of fake ob$ects but .7'A"'AAX'J?<'."() method is defined in order to distribute the ob$ects to the agents with fake ob$ect or without fake ob$ect depending on the reKuest.

(o allocate the data to the users the %ollowing %our conditions are de%ined(a) 'A // (b) 'A = (c) SA // Where ' = ';plicit 7eKuest. S = Sample 7eKuest. A = Aake Jb$ect. A = Without Aake Jb$ect. (d)SA //

(he allocation stratergies are clearly e1plained below: Sample &e*uest without any %a'e object: Sample 7eKuest allows the agents to access all the ob$ects without any condition and they does not receive any fake ob$ect. )or E1ample: "he employees can access all the articles regardless of category and articles are not watermarked. E1plict &e*uest without any %a'e object: E1plict re*uest allows the agents to access the ob$ects with some specific condition and they does not receive any fake ob$ect. )or E1ample: "he employees can only access the articles of only one specified category and articles are not marked.

Sample &e*uest with %a'e object: Sample 7eKuest allows the agents to access all the ob$ects without any condition and they receive an fake ob$ect. )or E1ample: "he employees can access all the articles regardless of category and articles are watermarked. E1plict &e*uest with %a'e object: E1plict re*uest allows the agents to access the ob$ects with some specific condition and they receive an fake ob$ect. )or E1ample: "he employees can only access the articles of only one specified category and articles marked.

.a/Allocation %or E1plict ata &e*uest.E)/ with %a'e objects .b/ Agent Selection %or e0random and e0optimal 2I+ #oth the above case C&EA(E)A3CEO#4EC(./ Start ME(HO ,E+E&A(ES A )A3EO#4EC(-5 1ser 7eKuest 7 ';plicit

.heck the .ondition Select the agent and add the fake. #A ?Y : ob$ect 'valuate "he 0oop. .reate Aake Jb$ect is #nvoked 1ser 7eceives the Jutput.

'lse

';it

0oop #terates for n number of reKuests

Stop

.a/Allocation %or E1plict ata &e*uest.E)/ with %a'e objects:

#nput: 'mployee reKuest an article within a particular category i.e. with an ';plicit condition. Jutput: 'mployee receives the reKuested articled with the fake ob$ect water marked in the document.

)low Char %or implementation o% the %ollowing Alogirhtms: .a/ Allocation %or Sample ata &e*uest.E)/ without any %a'e objects: .b/ Agent Selection %or e0random and e0optimal %#n ?oth the following cases Select Method./ returns the value o% 6 &i n &j 2 Start

1ser 7eKuest 7 ';plicit

.heck the .ondition Select the agent and add the fake. #A ?Y : ob$ect 'valuate "he 0oop. SelectJb$ect() Iethod is #nvoked

'lse

';it

0oop #terates for n number of reKuests

1ser 7eceives the Jutput.

Stop

Allocation %or Sample ata &e*uest.E)/ without any %a'e objects:

#nput : 'mployee can reKuest any kind of article independent of category ie. a sample reKuest. Jutput: 'mployee receive the reKuested articled without any fake ob$ect water marked in the document.

Screenshots of fake ob$ects that are watermarked. #n the following one can observe that the encrypted form of username the company!s logo and date time when the user downloaded the article has been watermarked dynamically.

Models 7sed:
E+(I(IES A+ A,E+(S A distributor owns a set " T ft(D : : : D tmg of valuable data ob$ects. "he distributor wants to share some of the ob$ects with a set of agents 1(D18D :::D1n but does not wish the ob$ects be leaked to other third parties. "he ob$ects in " could be of any type and size e.g. they could be tuples in a relation or relations in a database. An agent 1i receives a subset of ob$ects 7i Z " determined either by a sample reKuest or an e;plicit reKuest: Z Sample reKuest 7i T SAI+0'("Dmi): Any subset of mi records from " can be given to 1i. Z ';plicit reKuest 7i T '[+0#.#"("D condi): Agent 1i receives all the " ob$ects that satisfy condi.

A,E+( ,7I"( MO E" Assumption 8- Aor all tD t: 8 S such that t 6T t: the provenance of t is independent of the provenance of t:. "he term provenance in this assumption statement refers to the source of a value t that appears in the leaked set. "he source can be any of the agents who have t in their sets or the target itself (guessing). "o simplify our formulas the following assumption states that $oint events have a negligible probability. As we argue in the e;ample below this assumption gives us more conservative estimates for the guilt of agents which is consistent with our goals. Assumption 9- An ob$ect t 8 S can only be obtained by the target in one of two ways: Z A single agent 1i leaked t from its own 7i setD or Z "he target guessed (or obtained through other means) t without the help of any of the n agents. #n other words for all t 8 S the event that the target guesses t and the events that agent 1i (i T (D : : : D n) leaks ob$ect t are dis$oint. ?efore we present the general formula for computing the probability +rf>i$Sg that an agent 1i is guilty we provide a simple e;ample. Assume that the distributor set " the agent sets 7!s and the target set S are: " T ft(D t8D t*gD 7( T ft(D t8gD 78 T ft(D t*gD S T ft(D t8D t*g: #n this case all three of the distributor!s ob$ects have been leaked and appear in S. 0et us first consider how the target may have obtained ob$ect t( which was given to both agents. Arom Assumption 8 the target either guessed t( or one of 1( or 18 leaked it. We know that the probability of the former event is p so assuming that probability that each of the two agents leaked t( is the same we have the following cases: the target guessed t( with probability pD agent 1( leaked t( to S with probability (( / p)H8D agent 18 leaked t( to S with probability (( / p)H8

Similarly we find that agent 1( leaked t8 to S with probability ( p since he is the only agent that has t8. >iven these values the probability that agent 1( is not guilty namely that 1( did not leak either ob$ect is: +r U>(\SW T ((/((/p)H8) ; ((/((/p) and the probability that 1( is guilty is:
+r U>(\SW T ((/((/p)H8) ; ((/((/p)

,ote that if Assumption 8 did not hold our analysis would be more comple; because we would need to consider $oint events e.g. the target guesses t( and at the same time one or two agents leak the value. #n our simplified analysis we say that an agent is not guilty when the ob$ect can be guessed regardless of whether the agent leaked the value. Since we are %not counting& instances when an agent leaks information the simplified analysis yields conservative values (smaller probabilities). #n the general case (with our assumptions) to find the probability that an agent 1i is guilty given a set S first we compute the probability that he leaks a single ob$ect t to S. "o compute this we define the set of agents St T f1i$t 8 7ig that have t in their data sets. "hen using Assumption 8 and known probability p we have:

6.1 Fake Objects

"he distributor can also use function .7'A"'AAX'J?<'."() when it wants to send the same fake ob$ect to a set of agents. #n this case the function arguments are the union of the 7i and Ai tables respectively and the intersection of the conditions condi!s. Although we do not deal with the implementation of .7'A"'AAX'J?<'."() we note that there are two main design options. "he function can either produce a fake ob$ect on demand every time it is called or it can return an appropriate ob$ect from a pool of ob$ects created in advance. Algorithms:

Alogirhtm 8:

Algorithm 9:

Algorithm ::

Algorithm ;:

Algorithm <:

Algorithm =:

Modules:
E1isting System
"he ';isting System can detect the hackers but the total no of cookies (evidence) will be less and the organization may not be able to proceed legally for further proceedings due to lack of good amount of cookies and the chances to escape of hackers are high.

$roposed system
#n the +roposed System the hackers can be traced with good amount of evidence. #n this proposed system the leakage of data is detected by the following methods viz.. generating Aake ob$ects Watermarking and by encrypting the data.

Modules: #n this pro$ect we have the following modules:


Module8 Module 9 Module : Administrator Module: All the privileges of the website are only available with the administrator. Admin has privileges to accomplish the following responsibilitiesHtasks: Ianage 1sers (Add 'dit @elete 0ockH1nlock Assign +ermissions). Ianage Articles (Add 'dit 1pdate @elete). Ianage .ategories (Add 'dit 1pdate @elete). Send Iessages 1pload @ocuments : Administrator Iodule : 'mployees Iodule : @ata 0eakage @etection Iodule

Employee Module: Some of the privilages are restricted to the employee by the administrator.Jnly few permissions are available with the employees. 'mployees has the following taskHresponsibiltes. 'mployees have 7ead/only access to the content. 'mployees can 7ead the articles @ownload the @ocuments 7ead the messages which are send by the Admin @iscuss the content in the @iscussion ?oard.

ata "ea'age etection: "he main scope of this module is provide complete information about the dataHcontent that is accessed by the users within the website. AormsAuthentication techniKue is used to provide security to the website in order to prevent the leakage of the data. .ontinously observation is made automatically and the information is send to the administrator so that he can identify whenever the data is leaked. Above all the important aspect providing proof against the >uilty Jb$ects."he following techniKues are used. o Aake Jb$ect >eneration. o Water Iarking.

Implementing (he $rojectCreating Membership: Analysis:


"he implemented website provide content to the users and also allows users to contribute to the site in several ways such as @isscusion ?oard. Also the site provides different content to different users. All of these features rely on our site being able identify its users in some way to prevent another person from using a particular user!s account. Aor all this work user accounts will need to be created and maintained and users will need to be correctly identiied by their accounts.

(he esign:

(he %ollowing are the summary o% tables which are designed

(he %ollowing is the summary o% the Classes and the methods available in the classes-

Implementation: Some o% the sample code is shown below which is used in the project
using using using using using using System; System.Collections.Generic; System.Linq; System.Text; System.Data; System.Data.SqlClient;

namespace master { public class DALCategory : DbOb ect { public DALCategory!" { #

public DALCategory!int categoryi$% DateTime a$$e$ate% string a$$e$by% string title% string $escription% string imageurl" { # public DALCategory!string ne&connectionstring" : base!ne&connectionstring" { # public int create!int categoryi$% DateTime a$$e$$ate% string a$$e$by% string title% string $escription% string imageurl" { int ro&se''ecte$; Sql(arameter)* parameters + { ,,ne& Sql(arameter!-.categoryi$-% SqlDbType./nt% 012"% ne& Sql(arameter!-.a$$e$$ate-%SqlDbType.DateTime%012"% ne& Sql(arameter!-.a$$e$by-%SqlDbType.3arC4ar%02"% ne& Sql(arameter!-.title-%SqlDbType.3arC4ar%102"% ne& Sql(arameter!-.$escription-%SqlDbType.53arC4ar%2666"% ne& Sql(arameter!-.imageurl-%SqlDbType.53arC4ar%178"% ne& Sql(arameter!-.9eturn3alue-%SqlDbType./nt%2"% #; ,,parameters)6*.3alue + categoryi$; parameters)6*.3alue + a$$e$$ate; parameters):*.3alue + a$$e$by; parameters)1*.3alue + title; parameters)0*.3alue + $escription; parameters)2*.3alue + imageurl; parameters)7*.Direction + (arameterDirection.Output; try { 9un(roce$ure!-insertcategory-% parameters% out ro&se''ecte$"; # catc4 !Sql;xception e" { i' !e.5umber ++ 186:" { return !int"master.DALCategory.(roc9esultCo$es.AccountAlrea$yOn<ile; # else { t4ro& ne& ;xception!-An error occurre$ &4ile executing t4e Accounts=Create>ser store$ proce$ure-%e"; # # return !int"parameters)8*.3alue; #

public enum (roc9esultCo$es { AccountAlrea$yOn<ile + ?:66 #; public bool >p$ate!int categoryi$% DateTime a$$e$$ate% string a$$e$by% string title% string $escription% string imageurl" { int ro&se''ecte$; Sql(arameter)* parameters + { ne& Sql(arameter!-.categoryi$-% SqlDbType./nt% 012"% ne& Sql(arameter!-.a$$e$$ate-%SqlDbType.DateTime%012"% ne& Sql(arameter!-.a$$e$by-%SqlDbType.3arC4ar%02"% ne& Sql(arameter!-.title-%SqlDbType.3arC4ar%102"% ne& Sql(arameter!-.$escription-%SqlDbType.53arC4ar%2666"% ne& Sql(arameter!-.imageurl-%SqlDbType.53arC4ar%178" #; parameters)6*.3alue + categoryi$; parameters):*.3alue + a$$e$$ate; parameters)1*.3alue + a$$e$by; parameters)0*.3alue + title; parameters)2*.3alue + $escription; parameters)7*.3alue + imageurl; 9un(roce$ure!--% parameters% out ro&se''ecte$"; return ro&se''ecte$ ++ :; # public bool Delete!int categoryi$" { int ro&se''ecte$; Sql(arameter)* parameters + {ne& Sql(arameter!-.categoryi$-%SqlDbType./nt%012"#; parameters)6*.3alue + categoryi$; 9un(roce$ure!--% parameters% out ro&se''ecte$"; return ro&se''ecte$ ++ :; # public Data9o& 9etrie@e!int categoryi$" { Sql(arameter)* parameter + {ne& Sql(arameter!-.categoryi$-%SqlDbType./nt%012"#; parameter)6*.3alue + categoryi$; DataSet $s + 9un(roce$ure!--% parameter% -categories-"; i' !$s.Tables)6*.9o&s.Count ++ 6" { t4ro& ne& ;xception!-5o user 'oun$ on 'ile 'or email:A categoryi$"; # else { return $s.Tables)6*.9o&s)6*; # # public DataSet 9etrie@e!"

{ # # #

DataSet $s + 9un(roce$ure!-retrie@e-% -categories-"; return $s;

Creating Articles
Analysis
We have to design classes methods and databasae tables to manage articles. "o meet the reKuirement of the administrator so that he can upload Articles class "ables to manage articles and .ategories. the articles the following methods have been implemented.So we need the following reKuirements in this section:

(he esign
@atabase @esign:

(he %ollowing are the summary o% the tables that are designed:

(he %ollowing is the summary o% methods and classes:

Implementation: Some o% the sample code is shown below remaining code is avaliable in the project Code implemented %or Managin articles:
using using using using using using using using using using using System; System.Collections; System.Con'iguration; System.Data; System.Text; System.Beb; System.Beb.Security; System.Beb.>/; System.Beb.>/.CtmlControls; System.Beb.>/.BebControls; System.Beb.>/.BebControls.Beb(arts;

using System.Data.SqlClient; public partial class A$min=A$$Articles : System.Beb.>/.(age { string connectionstring + -Data Source +SO>DEA; /nitial Catalog +DataLeaFageDetection; /ntegrate$ Security + True;-; SqlConnection cnn + ne& SqlConnection!"; protecte$ @oi$ (age=Loa$!ob ect sen$er% ;@entArgs e" { cnn.ConnectionString + connectionstring; cnn.Open!"; TextGox7.Text + DateTime.5o&.ToString!"; TextGox8.Text + Session)-username-*.ToString!"; # protecte$ @oi$ Gutton0=ClicF!ob ect sen$er% ;@entArgs e"

{ SqlComman$ cm$ + ne& SqlComman$!-/nsert into $l$=Articles @alues!H- A TextGox1.Text A -H%H- A TextGox0.Text A -H%H- A TextGox2.Text A -H%H- A TextGox7.Text A -H%H- A TextGox8.Text A -H%H- A TextGox:.Text A -H%H- A TextGoxI.Text A -H%H- A TextGoxJ.Text A -H"-% cnn"; cm$.;xecute5onKuery!"; cnn.Close!"; # #

ata "ea'age Module:


(o Implement data "ea'age etection %ollwing techni*ues have been used8-)orms Authenticaiton: Aorms Authenticaiton code is as shown below:
<ormsAut4entication./nitialiLe!"; SqlComman$ cm$ + conn.CreateComman$!"; cm$.Comman$Text + -select roles%/slocFe$out 'rom $l$=>sers &4ere ;mployee/D +H- A txtusername.Text A -H an$ (ass&or$ +HAtxtpass&or$.TextA -H -; ,,cm$.(arameters.A$$!-.username-% SqlDbType.53arC4ar% 82".3alue + txtusername.Text; ,,cm$.(arameters.A$$!-.pass&or$-% SqlDbType.53arC4ar% :1J".3alue + <ormsAut4entication.Cas4(ass&or$<orStoring/nCon'ig<ile!Login:.(ass&or$% -m$7-"; SqlData9ea$er rea$er + cm$.;xecute9ea$er!"; i'!rea$er.9ea$!"" { <ormsAut4enticationTicFet ticFet + ne& <ormsAut4enticationTicFet!:% txtusername.Text% DateTime.5o&% DateTime.5o&.A$$Dinutes!06"% true% rea$er.GetString!6"% <ormsAut4entication.<ormsCooFie(at4"; string 4as4 + <ormsAut4entication.;ncrypt!ticFet"; Session)-username-* + txtusername.Text; string return>rl + 9equest.KueryString)-9eturn>rl-*; i' !return>rl ++ null" return>rl + -Come(age.aspx-; CttpCooFie cooFie + ne& CttpCooFie!<ormsAut4entication.<ormsCooFie5ame% 4as4"; i' !ticFet./s(ersistent" cooFie.;xpires + ticFet.;xpiration; 9esponse.CooFies.A$$!cooFie"; computername + Dns.GetCost5ame!"; /(A$$ress)* /pa$$ress + Dns.GetCostA$$resses!computername"; Session)-/pa$$ress-* + /pa$$ress)6*; lastlogin$ate + DateTime.5o&;

SqlComman$ cm$: + ne& SqlComman$!->p$ate $l$=>sers set LastLoginActi@ity + H- A lastlogin$ate.ToString!" A -H%/pa$$ress + H- A Session)-/pa$$ress-* A -H &4ere ;mployee/D + H- A txtusername.Text A -H-% conn"; cm$:.;xecute5onKuery!"; 9esponse.9e$irect!return>rl"; # else i' !Con@ert.To/nt01!TextGox:.Text" M+ 0" { Label0.Text + -/n@ali$ Login-; SqlComman$ cm$1 + ne& SqlComman$!->p$ate $l$=users set Total5oo'<aile$Attempts + H- A 3ie&State)-count-* A -H &4ere ;mployee/D + H- A txtusername.Text A -H-% conn"; cm$1.;xecute5onKuery!"; return; # else i' !Con@ert.To/nt01!TextGox:.Text" N 0" { SqlComman$ cm$1 + ne& SqlComman$!->p$ate $l$=users set /sLocFe$out+ H:H &4ere ;mployee/D + H- A txtusername.Text A -H-% conn"; cm$1.;xecute5onKuery!"; Label0.Text + -Eour Account Cas been-; return; # rea$er.Close!"; conn.Close!";

9- 7pdated techni*ues o% watermar'ing which do not distub the te1t(he %ollowing code shows the implementation o% water mar'ingusing System; using System.Data; using System.Con'iguration; using System.Beb; using System.Beb.Security; using System.Beb.>/; using System.Beb.>/.BebControls; using System.Beb.>/.BebControls.Beb(arts; using System.Beb.>/.CtmlControls; using System.Text; using System./O; using iTextS4arp.text; using iTextS4arp.text.p$'; ,,, MsummaryN ,,, Summary $escription 'or p$'e$itor ,,, M,summaryN public class p$'e$itor { public static byte)* BriteTo($'!<ile/n'o source<ile% string stringToBriteTo($'%string 'ile%string pat4%DateTime $ate" {

($'9ea$er rea$er + ne& ($'9ea$er!source<ile.<ull5ame"; using !DemoryStream memoryStream + ne& DemoryStream!"" { ($'Stamper p$'Stamper + ne& ($'Stamper!rea$er% ne& <ileStream!'ile% <ileDo$e.OpenOrCreate""; 'or !int i + :; i M+ rea$er.5umberO'(ages; iAA" { 9ectangle pageSiLe + rea$er.Get(ageSiLeBit49otation!i"; ($'ContentGyte p$'(ageContents + p$'Stamper.Get>n$erContent!i"; p$'(ageContents.GeginText!"; Stream input/mageStream + ne& <ileStream!pat4% <ileDo$e.Open% <ileAccess.9ea$% <ileS4are.9ea$"; Gase<ont base<ont + Gase<ont.Create<ont!Gase<ont.C;L3;T/CA=GOLD% ;nco$ing.ASC//.;nco$ing5ame% 'alse"; p$'(ageContents.Set<ontAn$SiLe!base<ont% :6"; p$'(ageContents.Set9GGColor<ill!6% 6% 6"; ,,'loat textAngle + !'loat"<ooT4eoryDat4.GetCypotenuseAngle/nDegrees<rom!pageSiLe.Ceig4t% pageSiLe.Bi$t4"; p$'(ageContents.S4o&TextAligne$!($'ContentGyte.AL/G5=C;5T;9% stringToBriteTo($'% 716% I86% 086"; p$'(ageContents.S4o&TextAligne$!($'ContentGyte.AL/G5=C;5T;9% $ate.ToString!"% :16% 86% 086"; iTextS4arp.text./mage image + iTextS4arp.text./mage.Get/nstance!input/mageStream"; image.SetAbsolute(osition!:66% :66"; p$'(ageContents.A$$/mage!image"; p$'(ageContents.;n$Text!"; # p$'Stamper.<orm<lattening + true; p$'Stamper.Close!"; return memoryStream.ToArray!"; # # #

:-(he )ollowing code shows the implementaion o% the algorithmsusing using using using using using using using using System; System.Data; System.Con'iguration; System.Beb; System.Beb.Security; System.Beb.>/; System.Beb.>/.CtmlControls; System.Beb.>/.BebControls; System.Beb.>/.BebControls.Beb(arts;

,,, MsummaryN ,,, Summary $escription 'or Con@erter

,,, M,summaryN public class Con@erter { public static string ;ncrypt!string StringData" { i' !StringData ++ --" return --; string ;ncrypte$ + null; 'oreac4 !c4ar c in StringData" { string tmp: + System.Con@ert.To/nt01!c".ToString!"; 'oreac4 !c4ar $ in tmp:" { ;ncrypte$ A+ !!c4ar"!$ A :I"".ToString!"; # ;ncrypte$ A+ -O-; # return ;ncrypte$.9emo@e!;ncrypte$.Lengt4 ? :"; ; # public static string Decrypt!string ;ncrypte$Data" { ;ncrypte$Data + ;ncrypte$Data.Trim!".9eplace!- -% -".9eplace!- -% -ODCO-"; i' !;ncrypte$Data ++ --" return --; i' !;ncrypte$Data ++ null" return null; string)* C4ars + ;ncrypte$Data.Split!!c4ar"I7"; string Data + null; 'oreac4 !string &or$ in C4ars" { string tmp + null; 'oreac4 !c4ar c in &or$" { tmp A+ !c4ar"!c ? :I"; Data A+ !c4ar"System.Con@ert.To/nt01!tmp"; # # return Data;

# #

UNIFIED MODELLING LANGUAGE (UML)


An Overview o% 7M": "he 1I0 is a language for Sisualizing Specifying .onstructing @ocumenting "hese are the artifacts of a software/intensive system. A conceptual model o% 7M": "he three ma$or elements of 1I0 are "he 1I0!s basic building blocks "he rules that dictate how those building blocks may be put together. Some common mechanisms that apply throughout the 1I0. #asic building bloc's o% the 7M" "he vocabulary of 1I0 encompasses three kinds of building blocks: "hings 7elationships @iagrams "hings are the abstractions that are first/class citizens in a model. 7elationships tie these things together. @iagrams group the interesting collection of things. "hings in 1I0: "here are four kind of things in the 1I0

(. Structural things 8. ?ehavioral things. *. >rouping things 3. Annotational things "hese things are the basic ob$ect oriented building blocks of the 1I0."hey are used to write well/formed models.

S"71."17A0 "B#,>S Structural things are the nouns of the 1I0 models. "hese are mostly static parts of the model representing elements that are either conceptual or physical. #n all there are seven kinds of Structural things. Class: A class is a description of a set of ob$ects that share the same attributes operations relationships and semantics. A class implements one or more interfaces. >raphically a class is rendered as a rectangle usually including its name attributes and operations as shown below. &E"A(IO+SHI$S I+ (HE 7M": "here are four kinds of relationships in the 1I0: (. @ependency 8. Association *. >eneralization 3. 7ealization C"ASS IA,&AMS .lass diagrams are the most common diagrams found in modeling ob$ect/oriented systems. A class diagram shows a set of classes interfaces and collaborations and their relationships. >raphically a class diagram is a collection of vertices and arcs.

Contents: .lass @iagrams commonly contain the following things: .lasses #nterfaces .ollaborations @ependency generalization and association relationships

7SE CASES 1se .ase diagrams are one of the five diagrams in the 1I0 for modeling the dynamic aspects of systems(activity diagrams seKuence diagrams state chart diagrams and collaboration diagrams are the four other kinds of diagrams in the 1I0 for modeling the dynamic aspects of systems). 1se .ase diagrams are central to modeling the behavior of the system a sub/system or a class. 'ach one shows a set of use cases and actors and relationships. .ommon +roperties: A 1se .ase diagram is $ust a special kind of diagram and shares the same common properties as do all other diagrams/ a name and graphical contents that are a pro$ection into the model. What distinguishes a use case diagram from all other kinds of diagrams is its particular content. Contents: 1se .ase diagrams commonly contain: 1se .ases Actors @ependency generalization and association relationships 0ike all other diagrams use case diagrams may contain notes and constraints.

1se .ase diagrams may also contain packages which are used to group elements of your model into larger chunks. Jccasionally you will want to place instances of use cases in your diagrams as well especially when you want to visualize a specific e;ecuting system.

I+(E&AC(IO+ IA,&AMS: An #nteraction diagram shows an interaction consisting of a set of ob$ects and their relationships including the messages that may be dispatched among them. #nteraction diagrams are used for modeling the dynamic aspects of the system. A seKuence diagram is an interaction diagram that emphasizes the time ordering of the messages. >raphically a seKuence diagram is a table that shows ob$ects arranged alongs the [/a;is and messages ordered in increasing time along the -/a;is and messages ordered in increasing time along the -/a;is. Contents: #nteraction diagrams commonly contains: Jb$ects 0inks Iessages 0ike all other diagrams interaction diagrams may contain notes and constraints.

SE!7E+CE IA,&AMS: A seKuence diagram is an interaction diagram that emphasizes the time ordering of the messages. >raphically a seKuence diagram is a table that shows ob$ects arranged along the [/a;is and messages ordered in increasing time along the -/a;is. "ypically you place the ob$ect that initiates the interaction at the left and increasingly more sub/routine ob$ects to the right. ,e;t you place the messages that these ob$ects

send and receive along the -/a;is in order of increasing time from top to the bottom. "his gives the reader a clear visual cue to the flow of control over time. SeKuence diagrams have two interesting features: (. "here is the ob$ect lifeline. An ob$ect lifeline is the vertical dashed line that represents the e;istence of an ob$ect over a period of time. Iost ob$ects that appear in the interaction diagrams will be in e;istence for the duration of the interaction so these ob$ects are all aligned at the top of the diagram with their lifelines drawn from the top of the diagram to the bottom. 8. "here is a focus of the control. "he focus of control is tall thin rectangle that shows the period of time during which an ob$ect is performing an action either directly or through the subordinate procedure. "he top of the rectangle is alignes with the actionD the bottom is aligned with its completion. AC(I>I(? IA,&AM: An Activity @iagram is essentially a flow chart showing flow of control from activity to activity. "hey are used to model the dynamic aspects of as system ."hey can also be used to model the flow of an ob$ect as it moves from state to state at different points in the flow of control. An activity is an ongoing non/atomic e;ecution with in a state machine. Activities ultimately result in some action which is made up of e;ecutable atomic computations that result in a change of state of distinguishes a use case diagram from all other kinds of diagrams is its particular content. Contents 1se case diagrams commonly contain: 1se cases Actors @ependency generalizations and association relationships

0ike all other diagrams use case diagrams may contain notes and constraints 1se case diagrams may also contain packages which are used to group elements of your model into larger chunks. Jccasionally you will want to place instances of use cases of your diagrams as well especially when you want to visualize a specific e;ecuting system.

Iicrosoft.,'" Aramework
"he .,'" Aramework is a new computing platform that simplifies application development in the highly distributed environment of the #nternet. "he .,'" Aramework is designed to fulfill the following ob$ectives:

"o provide a consistent ob$ect/oriented programming environment whether ob$ect code is stored and e;ecuted locally e;ecuted locally but #nternet/distributed or e;ecuted remotely.

"o provide a code/e;ecution environment that minimizes software deployment and versioning conflicts. "o provide a code/e;ecution environment that guarantees safe e;ecution of code including code created by an unknown or semi/trusted third party. "o provide a code/e;ecution environment that eliminates the performance problems of scripted or interpreted environments. "o make the developer e;perience consistent across widely varying types of applications such as Windows/based applications and Web/based applications. "o build all communication on industry standards to ensure that code based on the .,'" Aramework can integrate with any other code.

"he .,'" Aramework has two main components: the common language runtime and the .,'" Aramework class library. "he common language runtime is the foundation of the .,'" Aramework. -ou can think of the runtime as an agent that manages code at e;ecution time providing core services such as memory management thread management and remoting while also enforcing strict type safety and other forms of code accuracy that ensure security and robustness. #n fact the concept of code

management is a fundamental principle of the runtime. .ode that targets the runtime is known as managed code while code that does not target the runtime is known as unmanaged code. "he class library the other main component of the .,'" Aramework is a comprehensive ob$ect/oriented collection of reusable types that you can use to develop applications ranging from traditional command/line or graphical user interface (>1#) applications to applications based on the latest innovations provided by AS+.,'" such as Web Aorms and [I0 Web services. "he .,'" Aramework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the e;ecution of managed code thereby creating a software environment that can e;ploit both managed and unmanaged features. "he .,'" Aramework not only provides several runtime hosts but also supports the development of third/party runtime hosts. Aor e;ample AS+.,'" hosts the runtime to provide a scalable server/side environment for managed code. AS+.,'" works directly with the runtime to enable Web Aorms applications and [I0 Web services both of which are discussed later in this topic. #nternet ';plorer is an e;ample of an unmanaged application that hosts the runtime (in the form of a I#I' type e;tension). 1sing #nternet ';plorer to host the runtime enables you to embed managed components or Windows Aorms controls in B"I0 documents. Bosting the runtime in this way makes managed mobile code (similar to Iicrosoft] Active[] controls) possible but with significant improvements that only managed code can offer such as semi/trusted e;ecution and secure isolated file storage. "he following illustration shows the relationship of the common language runtime and the class library to your applications and to the overall system. "he illustration also shows how managed code operates within a larger architecture. )eatures o% the Common "anguage &untime

"he common language runtime manages memory thread e;ecution code e;ecution code safety verification compilation and other system services. "hese features are intrinsic to the managed code that runs on the common language runtime. With regards to security managed components are awarded varying degrees of trust depending on a number of factors that include their origin (such as the #nternet enterprise network or local computer). "his means that a managed component might or might not be able to perform file/access operations registry/access operations or other sensitive functions even if it is being used in the same active application. "he runtime enforces code access security. Aor e;ample users can trust that an e;ecutable embedded in a Web page can play an animation on screen or sing a song but cannot access their personal data file system or network. "he security features of the runtime thus enable legitimate #nternet/deployed software to be e;ceptionally feature rich. "he runtime also enforces code robustness by implementing a strict type/ and code/ verification infrastructure called the common type system (."S). "he ."S ensures that all managed code is self/describing. "he various Iicrosoft and third/party language compilers >enerate managed code that conforms to the ."S. "his means that managed code can consume other managed types and instances while strictly enforcing type fidelity and type safety. #n addition the managed environment of the runtime eliminates many common software issues. Aor e;ample the runtime automatically handles ob$ect layout and manages references to ob$ects releasing them when they are no longer being used. "his automatic memory management resolves the two most common application errors memory leaks and invalid memory references. "he runtime also accelerates developer productivity. Aor e;ample programmers can write applications in their development language of choice yet take full advantage of the

runtime the class library and components written in other languages by other developers. Any compiler vendor who chooses to target the runtime can do so. 0anguage compilers that target the .,'" Aramework make the features of the .,'" Aramework available to e;isting code written in that language greatly easing the migration process for e;isting applications. While the runtime is designed for the software of the future it also supports software of today and yesterday. #nteroperability between managed and unmanaged code enables developers to continue to use necessary .JI components and @00s. "he runtime is designed to enhance performance. Although the common language runtime provides many standard runtime services managed code is never interpreted. A feature called $ust/in/time (<#") compiling enables all managed code to run in the native machine language of the system on which it is e;ecuting. Ieanwhile the memory manager removes the possibilities of fragmented memory and increases memory locality/ of/reference to further increase performance. Ainally the runtime can be hosted by high/performance server/side applications such as Iicrosoft] SR0 Server^ and #nternet #nformation Services (##S). "his infrastructure enables you to use managed code to write your business logic while still en$oying the superior performance of the industryEs best enterprise servers that support runtime hosting.

-+E( )ramewor' Class "ibrary "he .,'" Aramework class library is a collection of reusable types that tightly integrate with the common language runtime. "he class library is ob$ect oriented providing types from which your own managed code can derive functionality. "his not only makes the .,'" Aramework types easy to use but also reduces the time associated with learning new

features of the .,'" Aramework. #n addition third/party components can integrate seamlessly with classes in the .,'" Aramework. Aor e;ample the .,'" Aramework collection classes implement a set of interfaces that you can use to develop your own collection classes. -our collection classes will blend seamlessly with the classes in the .,'" Aramework. As you would e;pect from an ob$ect/oriented class library the .,'" Aramework types enable you to accomplish a range of common programming tasks including tasks such as string management data collection database connectivity and file access. #n addition to these common tasks the class library includes types that support a variety of specialized development scenarios. Aor e;ample you can use the .,'" Aramework to develop the following types of applications and services:

.onsole applications. Scripted or hosted applications. Windows >1# applications (Windows Aorms). AS+.,'" applications. [I0 Web services. Windows services.

Aor e;ample the Windows Aorms classes are a comprehensive set of reusable types that vastly simplify Windows >1# development. #f you write an AS+.,'" Web Aorm application you can use the Web Aorms classes. Client Application evelopment .lient applications are the closest to a traditional style of application in Windows/based programming. "hese are the types of applications that display windows or forms on the desktop enabling a user to perform a task. .lient applications include applications such as word processors and spreadsheets as well as custom business applications such as data/entry tools reporting tools and so on. .lient applications usually employ windows

menus buttons and other >1# elements and they likely access local resources such as the file system and peripherals such as printers. Another kind of client application is the traditional Active[ control (now replaced by the managed Windows Aorms control) deployed over the #nternet as a Web page. "his application is much like other client applications: it is e;ecuted natively has access to local resources and includes graphical elements.

#n the past developers created such applications using .H.__ in con$unction with the Iicrosoft Aoundation .lasses (IA.) or with a rapid application development (7A@) environment such as Iicrosoft] Sisual ?asic]. "he .,'" Aramework incorporates aspects of these e;isting products into a single consistent development environment that drastically simplifies the development of client applications. "he Windows Aorms classes contained in the .,'" Aramework are designed to be used for >1# development. -ou can easily create command windows buttons menus toolbars and other screen elements with the fle;ibility necessary to accommodate shifting business needs. Aor e;ample the .,'" Aramework provides simple properties to ad$ust visual attributes associated with forms. #n some cases the underlying operating system does not support changing these attributes directly and in these cases the .,'" Aramework automatically recreates the forms. "his is one of many ways in which the .,'" Aramework integrates the developer interface making coding simpler and more consistent. 1nlike Active[ controls Windows Aorms controls have semi/trusted access to a userEs computer. "his means that binary or natively e;ecuting code can access some of the resources on the userEs system (such as >1# elements and limited file access) without being able to access or compromise other resources. ?ecause of code access security many applications that once needed to be installed on a userEs system can now be safely

deployed through the Web. -our applications can implement the features of a local application while being deployed like a Web page. C@-+et %or Aindows Application

Jverview of the .,'" Aramework "he .,'" Aramework is a managed type/safe environment for application development and e;ecution. "he .,'" Aramework manages all aspects of your program!s e;ecution. #t allocates memory for the storage of data and instructions grants or denies the appropriate permissions to your application initiates and manages application e;ecution and manages the reallocation of memory from resources that are no longer needed. "he .,'" Aramework consists of two main components: the common language runtime and the .,'" Aramework class library. "he common language runtime can be thought of as the environment that manages code e;ecution. #t provides core services such as code compilation memory allocation thread management and garbage collection. "hrough the common type system (."S) it enforces strict type/safety and ensures that code is e;ecuted in a safe environment by also enforcing code access security. "he .,'" Aramework class library provides a collection of useful and reusable types that are designed to integrate with the common language runtime. "he types provided by the .,'" Aramework are ob$ect/oriented and fully e;tensible and they allow you to seamlessly integrate your applications with the .,'" Aramework. 0anguages and the .,'" Aramework "he .,'" Aramework is designed for cross/language compatibility which means simply that .,'" components can interact with each other no matter what supported language they were written in originally. So an application written in Iicrosoft Sisual ?asic .,'" might reference a dynamic/link library (@00) file written in Iicrosoft Sisual .` which in turn might access a resource written in managed Iicrosoft Sisual

.__ or any other .,'" language. "his language interoperability e;tends to full ob$ect/ oriented inheritance. A Sisual ?asic .,'" class might be derived from a .` class for e;ample or vice versa. "his level of cross/language compatibility is possible because of the common language runtime. When a .,'" application is compiled it is converted from the language in which it was written (Sisual ?asic .,'" .` or any other .,'"/compliant language) to Iicrosoft #ntermediate 0anguage (IS#0 or #0). IS#0 is a low/level language that the common language runtime can read and understand. ?ecause all .,'" e;ecutables and @00s e;ist as IS#0 they can freely interoperate. "he .ommon 0anguage Specification (.0S) defines the minimum standards to which .,'" language compilers must conform. "hus the .0S ensures that any source code successfully compiled by a .,'" compiler can interoperate with the .,'" Aramework. "he ."S ensures type compatibility between .,'" components. ?ecause .,'" applications are converted to #0 prior to deployment and e;ecution all primitive data types are represented as .,'" types. "hus a Sisual ?asic #nteger and a .` int are both represented in #0 code as a System.#nt*8. ?ecause both languages use a common type system it is possible to transfer data between components and avoid time/consuming conversions or hard/to/find errors. Sisual Studio .,'" ships with languages such as Sisual ?asic .,'" Sisual .` and Sisual .__ with managed e;tensions as well as the <Script scripting language. -ou can also write managed code for the .,'" Aramework in other languages. "hird/party tools and compilers e;ist for Aortran .obol +erl and a host of other languages. All of these languages share the same cross/language compatibility and inheritability. "hus you can write code for the .,'" Aramework in the language of your choice and it will be able to interact with code written for the .,'" Aramework in any other language. -+E( )ramewor' Architecture

"he Structure of a .,'" Application "o understand how the common language runtime manages code e;ecution you must e;amine the structure of a .,'" application. "he primary unit of a .,'" application is the assembly. An assembly is a self/describing collection of code resources and metadata. "he assembly manifest contains information about what is contained within the assembly. "he assembly manifest provides:

#dentity information such as the assembly!s name and version number A list of all types e;posed by the assembly A list of other assemblies reKuired by the assembly A list of code access security instructions including permissions reKuired by the assembly and permissions to be denied the assembly

'ach assembly has one and only one assembly manifest and it contains all the description information for the assembly. Bowever the assembly manifest can be contained in its own file or within one of the assembly!s modules.

An assembly contains one or more modules. A module contains the code that makes up your application or library and it contains metadata that describes that code. When you compile a pro$ect into an assembly your code is converted from high/level code to #0. ?ecause all managed code is first converted to #0 code applications written in different languages can easily interact. Aor e;ample one developer might write an application in Sisual .` that accesses a @00 in Sisual ?asic .,'". ?oth resources will be converted to #0 modules before being e;ecuted thus avoiding any language/incompatibility issues. 'ach module also contains a number of types. "ypes are templates that describe a set of data encapsulation and functionality. "here are two kinds of types: reference types (classes) and value types (structures). "hese types are discussed in greater detail in 0esson 8 of this chapter. 'ach type is described to the common language runtime in the assembly manifest. A type can contain fields properties and methods each of which should be related to a common functionality. Aor e;ample you might have a class that represents a bank account. #t contains fields properties and methods related to the functions needed to implement a bank account. A field represents storage of a particular type of data. Jne field might store the name of an account holder for e;ample. +roperties are similar to fields but properties usually provide some kind of validation when data is set or retrieved. -ou might have a property that represents an account balance. When an attempt is made to change the value the property can check to see if the attempted change is greater than a predetermined limit. #f the value is greater than the limit the property does not allow the change. Iethods represent behavior such as actions taken on data stored within the class or changes to the user interface. .ontinuing with the bank account e;ample you might have a "ransfer method that transfers a balance from a checking account to a savings account or an Alert method that warns users when their balances fall below a predetermined level. C"& E1ecution Model

.ompilation and ';ecution of a .,'" Application When you compile a .,'" application it is not compiled to binary machine codeD rather it is converted to #0. "his is the form that your deployed application takesNone or more assemblies consisting of e;ecutable files and @00 files in #0 form. At least one of these assemblies will contain an e;ecutable file that has been designated as the entry point for the application. When e;ecution of your program begins the first assembly is loaded into memory. At this point the common language runtime e;amines the assembly manifest and determines the reKuirements to run the program. #t e;amines security permissions reKuested by the assembly and compares them with the system!s security policy. #f the system!s security policy does not allow the reKuested permissions the application will not run. #f the application passes the system!s security policy the common language runtime e;ecutes the code. #t creates a process for the application to run in and begins application e;ecution. When e;ecution starts the first bit of code that needs to be e;ecuted is loaded into memory and compiled into native binary code from #0 by the common language runtime!s <ust/#n/"ime (<#") compiler. Jnce compiled the code is e;ecuted and stored in memory as native code. "hus each portion of code is compiled only once when an

application e;ecutes. Whenever program e;ecution branches to code that has not yet run the <#" compiler compiles it ahead of e;ecution and stores it in memory as binary code. "his way application performance is ma;imized because only the parts of a program that are e;ecuted are compiled. 8: "he .,'" ?ase .lass 0ibrary

"he .,'" base class library is a collection of ob$ect/oriented types and interfaces that provide ob$ect models and services for many of the comple; programming tasks you will face. Iost of the types presented by the .,'" base class library are fully e;tensible allowing you to build types that incorporate your own functionality into your managed code.

"he .,'" Aramework base class library contains the base classes that provide many of the services and ob$ects you need when writing your applications. "he class library is organized into namespaces. A namespace is a logical grouping of types that perform related functions. Aor e;ample the System.Windows.Aorms namespace contains all the types that make up Windows forms and the controls used in those forms. ,amespaces are logical groupings of related classes. "he namespaces in the .,'" base class library are organized hierarchically. "he root of the .,'" Aramework is the System namespace. Jther namespaces can be accessed with the period operator. A typical namespace construction appears as follows: System System.@ata System.@ata.SR0.lient "he first e;ample refers to the System namespace. "he second refers to the System.@ata namespace. "he third e;ample refers to the System.@ata.SR0.lient namespace. "able (.( introduces some of the more commonly used .,'" base class namespaces.

"able (/(. 7epresentative .,'" ,amespaces ,amespace @escription "his namespace is the root for many of the low/level types reKuired System by the .,'" Aramework. #t is the root for primitive data types as well and it is the root for all the other namespaces in the .,'" base class library. "his namespace contains classes that represent a variety of different System..ollections container types such as Array0ist Sorted0ist Rueue and Stack. -ou also can find abstract classes such as .ollection?ase which are useful for implementing your own collection functionality.

"his namespace contains classes involved in component System..omponentIodel creation and containment such as attributes type converters and license providers. "his namespace contains classes reKuired for database access System.@ata and manipulations as well as additional namespaces used for data access. System.@ata..ommon "his namespace contains a set of classes that are shared by the .,'" managed data providers. "his namespace contains classes that make up the managed data provider for J0' @? data access. "his namespace contains classes that are optimized for interacting with Iicrosoft SR0 Server. "his namespace e;poses >@#_ functionality and provides classes that facilitate graphics rendering. #n this namespace you will find types for handling file system #HJ.

System.@ata.Jle@b

System.@ata.SR0.lient

System.@rawing

System.#J

System.Iath

"his namespace is home to common mathematics functions such as e;tracting roots and trigonometry. "his namespace provides support for obtaining information and dynamic creation of types at runtime. "his namespace is home to types dealing with permissions cryptography and code access security. "his namespace contains classes that facilitate the

System.7eflection

System.Security

System."hreading

implementation of multithreaded applications. "his namespace contains types involved in creating standard

System.Windows.Aorms Windows applications. .lasses that represent forms and controls reside here as well. "he namespace names are self/descriptive by design. Straightforward names make the .,'" Aramework easy to use and allow you to rapidly familiarize yourself with its contents. 7eference "ypes and Salue "ypes "ypes in the .,'" Aramework come in two varieties: value types and reference types. "he primary difference between value types and reference types has to do with the way variable data is accessed. "o understand this difference a little background on memory dynamics is reKuired. Application data memory is divided into two primary components the stack and the heap. "he stack is an area of memory reserved by the application to run the program. "he stack is analogous to a stack of dinner plates. +lates are placed on the stack one on top of another. When a plate is removed from the stack it is always the last one to have been placed on top that is removed first. So it is with program variables. When a function is called all the variables used by the function are pushed onto the stack. #f that function calls additional functions it pushes additional variables onto the stack. When the most

recently called function terminates all of its variables go out of scope (meaning that they are no longer available to the application) and are popped off the stack. Iemory consumed by those variables is then freed up and program e;ecution continues. "he heap on the other hand is a separate area of memory reserved for the creation of reusable ob$ects. "he common language runtime manages allocation of heap memory for ob$ects and controls the reclamation of memory from unused ob$ects through garbage collection. All the data associated with a value type is allocated on the stack. When a variable of a value type goes out of scope it is destroyed and its memory is reclaimed. A variable of a reference type on the other hand e;ists in two memory locations. "he actual ob$ect data is allocated on the heap. A variable containing a pointer to that ob$ect is allocated on the stack. When that variable is called by a function it returns the memory address for the ob$ect to which it refers. When that variable goes out of scope the ob$ect reference is destroyed but the ob$ect itself is not. #f any other references to that ob$ect e;ist the ob$ect remains intact. #f the ob$ect is left without any references it is sub$ect to garbage collection. (See 0esson 6 of this chapter.) ';amples of value types include primitives such as #nteger (int) ?oolean (bool) .har (char) and so on as well as user/defined types such as Structure (struct) and 'numeration (enum). .lasses represent the ma$ority of reference types. Jther reference types include the interface delegate and array types. .lasses and structures are discussed in 0esson * of this chapter and other reference and value types are discussed in .hapter *. 1sing .,'" Aramework "ypes in -our Application When you begin writing an application you automatically begin with a reference to the .,'" Aramework base class library. -ou reference it so that your application is aware of the base class library and is able to create instances of the types represented by it. Salue "ypes

int my#ntegerD "his line tells the runtime to allocate the appropriate amount of memory to hold an integer variable. Although this line creates the variable it does not assign a value to it. -ou can assign a value using the assignment operator as follows: my#nteger T 38D -ou can also choose to assign a value to a variable upon creation as shown in this e;ample: int my#nteger T 38D 7eference "ypes .reating an instance of a type is a two/step process. "he first step is to declare the variable as that type which allocates the appropriate amount of memory for that variable but does not actually create the ob$ect. "he following synta; declares an ob$ect: System.Windows.Aorms.Aorm myAormD "his line tells the runtime to set aside enough memory to hold a Aorm variable and assigns it the name myAorm but it does not actually create the Aorm ob$ect in memory. "he second step called instantiation actually creates the ob$ect. An e;ample of instantiation follows: myAorm T new System.Windows.Aorms.Aorm()D "his line makes a call to the constructor method of the type

System.Windows.Aorms.Aorm by way of the ,ew (new) keyword. "he constructor is a special method that is invoked only at the beginning of an ob$ect!s lifetime. #t contains any code that must be e;ecuted for the ob$ect to work (assigning values to properties for e;ample). #f any parameters were reKuired by the constructor they would be contained

within the parentheses at the end of the line. "he following e;ample shows declaration and instantiation of a hypothetical Widget class that reKuires a string as a parameter in the constructor. Widget myWidgetD myWidget T new Widget(F"his string is reKuired by the constructorF)D #f desired you can also combine both declaration and instantiation into a single statement. ?y declaring and instantiating an ob$ect in the same line you reserve the memory for the ob$ect and immediately create the ob$ect that resides in that memory. Although there was a significant performance penalty for this shortcut in previous versions of Sisual ?asic Sisual ?asic .,'" and Sisual .` are optimized to allow this behavior without any performance loss. "he following e;ample shows the one/step declaration and instantiation of a new Aorm: System.Windows.Aorms.Aorm myAorm T new System.Windows.Aorms.Aorm()D ?oth value types and reference types must be initialized before use. Aor class and structure fields in Sisual ?asic .,'" types are initialized with default values on declaration. ,umeric value types (such as integer) and floating/point types are assigned zeroD ?oolean variables are assigned AalseD and reference types are assigned to a null reference. #n .` variables of a reference type have a default value of null. #t is recommended that you do not rely on the default value. "hese variables should not be used until they have been initialized. 1sing Salue "ype and 7eference "ype Sariables A variable that represents a value type contains all the data represented by that type. A variable that represents a reference type contains a reference to a particular ob$ect. "his distinction is important. .onsider the following e;ample:

int ; yD ; T (CD y T ;D ; T *:D HH What is the value of yM #n this e;ample two integer variables named ; and y are created. [ is assigned a value of (C and then y is assigned the value of ;. ,e;t the value of ; is changed to *: and the Kuestion is posed: what is the value of yM "he answer to this Kuestion might seem obvious and it is y T (C because ; and y are two separate variables and have no effect on each other when changed. When the line y T ; is encountered the value of ; is copied to the value of y and there is no further connection between the two variables. "his situation changes however in the case of reference types. 0et!s reconsider the previous e;ample using a reference type (Aorm) instead of a value type. System.Windows.Aorms.Aorm ; yD ; T new System.Windows.Aorms.Aorm()D ;."e;t T F"his is Aorm (FD y T ;D ;."e;t T F"his is Aorm 8FD HH What value does y."e;t returnM What value does y."e;t returnM "his time the answer is less obvious. ?ecause System.Windows.Aorms.Aorm is a reference type the variable ; does not actually contain a AormD rather it points to an instance of a Aorm. When the line y T ; is encountered the runtime copies the reference from variable ; to y. "hus the variables ; and y now point to the same instance of Aorm. ?ecause these two variables refer to the same instance of the ob$ect they will return the same values for properties of that ob$ect. "hus y."e;t returns %"his is Aorm 8&. "he #mports and 1sing Statements

1p to this point of the chapter if you wanted to access a type in the .,'" Aramework base class library you had to use the full name of the type including every namespace to which it belonged. Aor e;ample: System.Windows.Aorms.Aorm "his is called the fully/Kualified name meaning it refers both to the class and to the namespace in which it can be found. -ou can make your development environment %aware& of various namespaces by using the #mports (Sisual ?asic .,'") or using (Sisual .`) statement. "his techniKue allows you to refer to a type using only its generic name and to omit the Kualifying namespaces. "hus you could refer to System.Windows.Aorms.Aorm as simply Aorm. #n Sisual ?asic .,'" the #mports statement must be placed at the top of the code window preceding any other statement (e;cept Jption). #n Sisual .` the using statement must occur before any other namespace element such as a class or struct. "his e;ample demonstrates use of this statement: using System.Windows.AormsD When two types of the same name e;ist in more than one imported namespace you must use the fully Kualified name to avoid a naming conflict. "hus if you are using Iy,ameSpaceJne and Iy,ameSpace"wo and each contains a Widget class you would have to refer to Iy,ameSpaceJne.Widget or Iy,ameSpace"wo.Widget to ensure the correct result. #n .` you can resolve namespace conflicts such as these by creating an alias. An alias allows you to choose one name to refer to another class. -ou create an alias using the using keyword as shown below: using myAlias T Iy,ameSpace"wo.WidgetD After implementing an alias you can use it in code to represent the aliased class. Aor e;ample:

HH -ou can now refer to Iy,ameSpace"wo as myAlias. "he HH following two lines produce the same result: Iy,ameSpace"wo.Widget anotherWidget T new Iy,ameSpace"wo.Widget() D myAlias anotherWidget T new myAlias() D -ou cannot create aliases for types in this manner in Sisual ?asic .,'". 7eferencing ';ternal 0ibraries -ou might want to use class libraries not contained by the .,'" Aramework such as libraries developed by third/party vendors or libraries you developed. "o access these e;ternal libraries you must create a reference. "o create a reference to an e;ternal library (. #n the Solution ';plorer right/click the 7eferences node of your pro$ect. 8. Arom the pop/up menu choose Add 7eference. "he Add 7eference dialog bo; appears. *. .hoose the appropriate tab for the library you want to reference. .,'" libraries are available on the .,'" tab. 0egacy .JI libraries appear on the .JI tab and local Sisual Studio pro$ects appear on the +ro$ects tab. 3. 0ocate the library you want to reference and double/click it to add it to the Selected components bo;. .lick JX to confirm the choice of that reference.

Introduction to Object0Oriented $rogramming +rogramming in the .,'" Aramework environment is done with ob$ects. Jb$ects are programmatic constructs that represent packages of related data and functionality. Jb$ects are self/contained and e;pose specific functionality to the rest of the application environment without detailing the inner workings of the ob$ect itself. Jb$ects are created

from a template called a class. "he .,'" base class library provides a set of classes from which you can create ob$ects in your applications. -ou also can use the Iicrosoft Sisual Studio programming environment to create your own classes. "his lesson introduces you to the concepts associated with ob$ect/oriented programming. Jb$ects Iembers and Abstraction An ob$ect is a programmatic construct that represents something. #n the real world ob$ects are cars bicycles laptop computers and so on. 'ach of these items e;poses specific functionality and has specific properties. #n your application an ob$ect might be a form a control such as a button a database connection or any of a number of other constructs. 'ach ob$ect is a complete functional unit and contains all of the data and e;poses all of the functionality reKuired to fulfill its purpose. "he ability of programmatic ob$ects to represent real/world ob$ects is called abstraction. .lasses Are "emplates for Jb$ects .lasses can be thought of as blueprints for ob$ects: they define all of the members of an ob$ect define the behavior of an ob$ect and set initial values for data when appropriate. When a class is instantiated an in/memory instance of that class is created. "his instance is called an ob$ect. "o review a class is instantiated using the ,ew (new) keyword as follows: When an instance of a class is created a copy of the instance data defined by that class is created in memory and assigned to the reference variable. #ndividual instances of a class are independent of one another and represent separate programmatic constructs. "here is generally no limit to how many copies of a single class can be instantiated at any time. "o use a real/world analogy if a car is an ob$ect the plans for the car are the class. "he plans can be used to make any number of cars and changes to a single car do not for the most part affect any other cars. Jb$ects and Iembers

Jb$ects are composed of members. Iembers are properties fields methods and events and they represent the data and functionality that comprise the ob$ect. Aields and properties represent data members of an ob$ect. Iethods are actions the ob$ect can perform and events are notifications an ob$ect receives from or sends to other ob$ects when activity happens in the application. "o continue with the real/world e;ample of a car consider that a .ar ob$ect has fields and properties such as .olor Iake Iodel Age >as0evel and so on. "hese are the data that describe the state of the ob$ect. A .ar ob$ect might also e;pose several methods such as Accelerate Shift>ears or "urn. "he methods represent behaviors the ob$ect can e;ecute. And events represent notifications. Aor e;ample a .ar ob$ect might receive an 'ngineJverheating event from its 'ngine ob$ect or it might raise a .rash event when interacting with a "ree ob$ect. Jb$ect Iodels Simple ob$ects might consist of only a few properties methods and perhaps an event or two. Iore comple; ob$ects might reKuire numerous properties and methods and possibly even subordinate ob$ects. Jb$ects can contain and e;pose other ob$ects as members. Aor e;ample the "e;t?o; control e;poses a Aont property which consists of a Aont ob$ect. Similarly every instance of the Aorm class contains and e;poses a .ontrols collection that comprises all of the controls contained by the form. "he ob$ect model defines the hierarchy of contained ob$ects that form the structure of an ob$ect. An ob$ect model is a hierarchical organization of subordinate ob$ects contained and e;posed within a main ob$ect. "o illustrate let!s revisit the e;ample of a car as an ob$ect. A car is a single ob$ect but it also consists of subordinate ob$ects. A .ar ob$ect might contain an 'ngine ob$ect four Wheel ob$ects a "ransmission ob$ect and so on. "he composition of these subordinate ob$ects directly affects how the .ar ob$ect functions as a whole. Aor e;ample if the .ylinders property of the 'ngine subordinate ob$ect is eKual to 3 the .ar will behave differently than a .ar whose 'ngine has a .ylinders property

value of 9. .ontained ob$ects can have subordinate ob$ects of their own. Aor e;ample the contained 'ngine ob$ect might contain several Spark+lug ob$ects. 'ncapsulation 'ncapsulation is the concept that implementation of an ob$ect is independent of its interface. +ut another way an application interacts with an ob$ect through its interface which consists of its public properties and methods. As long as this interface remains constant the application can continue to interact with the component even if implementation of the interface was completely rewritten between versions. Jb$ects should only interact with other ob$ects through their public methods and properties. "hus ob$ects should contain all of the data they reKuire as well as all of the functionality that works with that data. "he internal data of an ob$ect should never be e;posed in the interfaceD thus fields rarely should be +ublic (public). 7eturning to the .ar e;ample. #f a .ar ob$ect interacts with a @river ob$ect the .ar interface might consist of a >oAorward method a >o?ackward method and a Stop method. "his is all the information that the @river needs to interact with the .ar. "he .ar might contain an 'ngine ob$ect for e;ample but the @river doesn!t need to know about the 'ngine ob$ectNall the @river cares about is that the methods can be called and that they return the appropriate values. "hus if one 'ngine ob$ect is e;changed for another it makes no difference to the @river as long as the interface continues to function correctly. +olymorphism +olymorphism is the ability of different classes to provide different implementations of the same public interfaces. #n other words polymorphism allows methods and properties of an ob$ect to be called without regard for the particular implementation of those members. Aor e;ample a @river ob$ect can interact with a .ar ob$ect through the .ar public interface. #f another ob$ect such as a "ruck ob$ect or a Sports.ar ob$ect e;poses the same public interface the @river ob$ect can interact with them without regard to the

specific implementation of that interface. "here are two principal ways through which polymorphism can be provided: interface polymorphism and inheritance polymorphism. #nterface +olymorphism An interface is a contract for behavior. 'ssentially it defines the members a class should implement but states nothing at all about the details of that implementation. An ob$ect can implement many different interfaces and many diverse classes can implement the same interface. All ob$ects implementing the same interface are capable of interacting with other ob$ects through that interface. Aor e;ample the .ar ob$ect in the previous e;amples might implement the #@rivable interface (by convention interfaces usually begin with #) which specifies the >oAorward >o?ackward and Balt methods. Jther classes such as "ruck Aorklift or ?oat might implement this interface and thus are able to interact with the @river ob$ect. "he @river ob$ect is unaware of which interface implementation it is interacting withD it is only aware of the interface itself. #nterface polymorphism is discussed in detail in 0esson *.

#nheritance +olymorphism #nheritance allows you to incorporate the functionality of a previously defined class into a new class and implement different members as needed. A class that inherits another class is said to derive from that class or to inherit from that class. A class can directly inherit from only one class which is called the base class. "he new class has the same members as the base class and additional members can be added as needed. Additionally the implementation of base members can be changed in the new class by overriding the base class implementation. #nherited classes retain all the characteristics of the base class and can interact with other ob$ects as though they were instances of the base class. Aor e;ample if the .ar class is the base class a derived class might be Sports car. "he Sport scar class might be the base class for another derived class the .onvertibleSports.ar. 'ach newly derived class might implement additional members but the functionality defined in the original .ar class is retained.

So%tware &e*uirements: 0anguage "echnologies @atabase #@' Jperating System : .`.,'" : Iicrosoft.,'" AS+.,'" A@J.,'" : IS SR0 S'7S'7 8::C : Sisual Studio 8::9 : Iicrosoft Windows [+ or 0ater Sersion

Hardware &e*uirements: +rocessor 7AI <-: CO E ESI,+: "he code design should be such that with less amount of coding we can achieve more results. "he speed of the system will be more if the coding is less. Whether the data in the system is usable and readable by the system is depending on the coding. #n the pro$ect the coding is being done such that proper validations are made to get the perfect input. ,o error inputs are accepted. #n addition care is taken such that the data integrity and referential integrity is not violated in the database. : #ntel +entium or more : C(8 I? (0inimum)

=- E>E"O$ME+( O) S?S(EM A+ (ES(I+, =-8 S?S(EM MAI+(E+A+CE: "he ob$ectives of this maintenance work are to make sure that the system gets into work all time without any bug. +rovision must be for environmental changes which may affect the computer or software system. "his is called the maintenance of the system. ,owadays there is the rapid change in the software world. @ue to this rapid change the system should be capable of adapting these changes. #n our pro$ect the process can be added without affecting other parts of the system. Iaintenance plays a vital role. "he system liable to accept any modification after its implementation. "his system has been

designed to favor all new changes. @oing this will not affect the system!s performance or its accuracy. =-9 S?S(EM (ES(I+,: "esting is done for each module. After testing all the modules the modules are integrated and testing of the final system is done with the test data specially designed to show that the system will operate successfully in all its aspects conditions. "he procedure level testing is made first. ?y giving improper inputs the errors occurred are noted and eliminated. "hus the system testing is a confirmation that all is correct and an opportunity to show the user that the system works. "he final step involves Salidation testing which determines whether the software function as the user e;pected. "he end/user rather than the system developer conduct this test most software developers as a process called %Alpha and ?eta test& to uncover that only the end user seems able to find. "his is the final step in system life cycle. Bere we implement the tested error/free system into real/life environment and make necessary changes which runs in an online fashion. Bere system maintenance is done every months or year based on company policies and is checked for errors like runtime errors long run errors and other maintenances like table verification and reports. 7+I( (ES(I+, 1nit testing verification efforts on the smallest unit of software design module. "his is known as %Iodule "esting&. "he modules are tested separately. "his testing is carried out during programming stage itself. #n these testing steps each module is found to be working satisfactorily as regard to the e;pected output from the module. Bere it self we need to test the integrity of each and every module .in case of client we need to check the integrity whatever the location we specify this is accurate of not can server read that particular location if server can read that particular location means it!s a validate location.

#n router module we need to test whether we specify the destination or not. #f yes then we need to activate the router by a single click on the corresponding .After that router calculate the shortest path by using the concept of straight line routing. #n case of server module we need to select a particular file to send we need to validate that particular file weather we can send that file or not. I+(E,&A(IO+ (ES(I+,

#ntegration testing is a systematic techniKue for constructing tests to uncover error associated within the interface. #n the pro$ect all the modules are combined and then the entire programmer is tested as a whole. #n the integration/ testing step all the error uncovered is corrected for the ne;t testing steps. Bere it self we need to merge all the module to check the integrity. Weather the selected location is a valid location or not heather server can read the client location or not whatever the file we are sending is the valid file or not.

>A"I A(IO+ (ES(I+, "o uncover functional errors that is to check whether functional characteristics confirm to specification or not specified. Bere we need to check the threshold limit of each and every module and validate the corresponding data means we can send up to 8::kb of data after that we can!t send that kind of validation we need to check here itself.

B- IM$"EME+(A(IO+ #mplementation is the most crucial stage in achieving a successful system and giving the user!s confidence that the new system is workable and effective. #mplementation of a modified application to replace an e;isting one. "his type of conversation is relatively easy to handle provide there are no ma$or changes in the system. 'ach program is tested individually at the time of development using the data and has verified that this program linked together in the way specified in the programs specification the computer system and its environment is tested to the satisfaction of the user. "he system that has been developed is accepted and proved to be satisfactory for the user. And so the system is going to be implemented very soon. A simple operating procedure is included so that the user can understand the different functions clearly and Kuickly. #nitially as a first step the e;ecutable form of the application is to be created and loaded in the common server machine which is accessible to the entire user and the server is to be connected to a network. "he final stage is to document the entire system which provides components and the operating procedures of the system. #mplementation is the stage of the pro$ect when the theoretical design is turned out into a working system. "hus it can be considered to be the most critical stage in achieving a successful new system and in giving the user confidence that the new system will work and be effective. "he implementation stage involves careful planning investigation of the e;isting system and it!s constraints on implementation designing of methods to achieve changeover and evaluation of changeover methods. #mplementation is the process of converting a new system design into operation. #t is the phase that focuses on user training site preparation and file conversion for installing a candidate system. "he important factor that should be considered here is that the conversion should not disrupt the functioning of the organization. #n this pro$ect we use sock programing as most. Airst we need to select a particular location in the client module it self .after that by using server module we need to send the

corresponding file to the client specified location we need to use the class file open dialog bo; class we need to use stream class to send the file and socket listener class to listen the reKuest from and socket accept class as well.

Class diagram:

So%tware evelopment:
"he term FsoftwareF refers to a computer program or a collection of programs that control the computerEs hardware in order to achieve some purpose. +rograms are written to solve a particular problem or to perform a specific task. "hey are written by programmers who must translate the reKuirements for solving the problem or carrying out the task into a language that the computer can understand. .omputers are highly comple; machines that can e;ecute millions of instructions per second but they have no inherent intelligence an will only do what they are instructed to do by the programmer. Ao this reason programs must be carefully designed correctly coded and thoroughly tested. Jne of the main tasks in any software development pro$ect will be to determine what the inputs and outputs to the program will be i.e. what data will be fed into the program (input) and what data is e;pected as a result of running the program (output). "he ne;t step will be to determine what processing needs to be carried out on the input data in order to produce the reKuired output. "he comple;ity of the processing involved will depend on the size of the software pro$ect. A simple model of a software system is shown below.

A simple model of a software system

(he So%tware evelopment "i%e Cycle


As with most undertakings planning is an important factor in determining the success or failure of any software pro$ect. 'ssentially good pro$ect planning will eliminate many of the mistakes that would otherwise be made and reduce the overall time reKuired to complete the pro$ect. As a rule of thumb the more comple; the problem is the more thorough the planning process must be. Iost professional software developers plan a software pro$ect using a series of steps generally referred to as the so(tware development li(e cycle . A number of models e;ist that differ in the number of stages defined and in the specific activities that take place within each stage. "he following e;ample is a generic model that should give you some idea of the steps involved in a typical software pro$ect.

A generic software development life cycle Analysis o% user re*uirements @uring this stage the problem is defined so that a clear understanding can be gained of what the system should do i.e. what the inputs to the system are what the output should be and the operational parameters within which the system is e;pected to work. #f the new system is to replace an e;isting system the problem may be defined in terms of the additional or enhanced functionality that is reKuired. $rogram design #n this stage a solution to the problem is designed by defining a logical seKuence of steps that will achieve each of the stated system ob$ectives. Such a seKuence of steps is often referred to as an algorithm . Some of the methods used to define program algorithms are described later in this section and include flowcharts and pseudocode. "hese tools allow the program designer to break a given problem down into a series of small tasks which the computer can perform to solve the problem. "he user interface will also be designed during this stage and will determine how input is obtained how output is displayed and what controls are available to the user. $rogram coding "his stage sometimes known as the implementation stage is where the algorithms are translated into a programming language and tends to be the longest phase of the development life/cycle. #n this case we are using Sisual ?asic to write the program. ocumentation and testing

"he documentation of the program fulfils two main ob$ectives. "he first is to provide a technical reference to facilitate ongoing maintenance and development of the software itself. "he second is to provide user documentation i.e. a set of instructions that inform the user about the features of the software and how to use them. "he aim of software testing is to find any errors (FbugsF) in the program to eliminate those errors (a process known as FdebuggingF) and as far as is reasonably practicable should be sufficiently rigorous to ensure that the software will function as e;pected under all forseeable circumstances. Operating and maintaining the system Jnce the software has been Frolled outF and any necessary user training has been completed it will be necessary to monitor the performance of the system over time to ensure that it is behaving as e;pected. "he system will need to be maintained and parts of it will need to be upgraded from time to time to handle evolving user needs or to cope with new problems. 'ventually as the system ages it may no longer be able to adeKuately cope with the demands of a growing number of users take advantage of advances in hardware technology or adapt to a constantly changing environment. When this time comes the system will need to be decommissioned and replaced by a new system. Bence the software development life cycle will begin again.

Aater %all model:


"he water%all model is a seKuential design process often used in software development processes in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of .onception #nitiation Analysis @esign .onstruction "esting +roductionH#mplementation and Iaintenance. "he waterfall development model originates in the manufacturing and construction industries: highly structured physical environments in which after/the/fact changes are prohibitively costly if not impossible. Since no formal software development methodologies e;isted at the time this hardware/oriented model was simply adapted for software development. "he first known presentation describing use of similar phases in software engineering was held by Berbert @. ?enington at Symposium on advanced programming methods for digital computers on 85 <une (5C6.2(4 "his presentation was about the development of software for SA>'. #n (59* the paper was republished284 with a foreword by ?enington pointing out that the process was not in fact performed in strict top/down but depended on a prototype. "he first formal description of the waterfall model is often cited as a (5): article by Winston W. 7oyce 2*4 though 7oyce did not use the term FwaterfallF in this article. 7oyce presented this model as an e;ample of a flawed non/working model (7oyce (5):). "his in fact is how the term is generally used in writing about software developmentNto describe a critical view of a commonly used software practice.234

Screen shots:

Conclusions In a perfect world there would be no need to hand over sensitive data to agents that may unknowingly or maliciously leak it. And even if we had to hand over sensitive data, in a perfect world we could watermark each object so that we could trace its origins with absolute certainty. However, in many cases we must indeed work with agents that may not be 100 trusted, and we may not be certain if a leaked object came from an agent or from some other source, since certain data cannot admit watermarks. In spite of these difficulties, we have shown it is possible to assess the likelihood that an agent is responsible for a leak, based on the overlap of his data with the leaked data and the data of other agents, and based on the probability that objects can be !guessed" by other means. #ur model is relatively simple, but we believe it captures the essential trade$offs. %he algorithms we have presented implement a variety of data distribution strategies that can improve the distributor&s chances of identifying a leaker. 'e have shown that distributing objects judiciously can make a significant difference in identifying guilty agents, especially in cases where there is large overlap in the data that agents must receive.

)uture Enhancements:

the investigation of agent guilt models that capture leakage scenarios that are not studied in this paper. (or e)ample, what is the appropriate model for cases where agents can collude and identify fake tuples* A preliminary discussion of such a model is available in +1,-. Another open problem is the e)tension of our allocation strategies so that they can handle agent re.uests in an online fashion /the presented strategies assume that there is a fi)ed set of agents with re.uests known in advance0.

Vous aimerez peut-être aussi