Security. Jerey Voas

Size: px
Start display at page:

Download "Security. Jerey Voas"

Transcription

1 Testing Software for Characteristics Other than Correctness: Safety, Failure tolerance, and Security Jerey Voas Reliable Software Technologies (URL: Ridgetop Circle Sterling, VA phone: (703) fax: (703) Abstract Software testing suers from a variety of theoretical and pragmatic limitations. These problems have made software development organizations cynical as to the value of testing, particularly at system testing levels, yet most organizations do not dispute the cost eectiveness of unit and integration testing. This paper introduces a variety of behavioral software quality characteristics, other than traditional \black or white" correctness, that can be tested for via fault-injection methods. These methods in no way replace traditional testing for defects or reliability testing, but test for other characteristics that are important for demonstrating trustworthiness. The fault-injection methods that we will describe are empirical and do not require an oracle (human nor automated), which immediately avoids one big problem of testing. And the fault-injection techniques that we will employ do not use syntactic mutation methods. 1 Introduction Software testing suers from a host of dierent limitations, some of which are pragmatic, while others are theoretical. Yet despite these limitations, software testing continues to be employed universally as the software quality assessment method of choice. The reasons for this are numerous, mainly that testing provides a demonstration that the computations embedded in the syntax provide the intended semantics. It is very hard to see that in any other manner than via dynamic execution even a formal proof of correctness leaves some degree of doubt in the mind of the developer until he or she observes satisfactory output from the code. 1

2 Developing correct software should not always be assumed as the ultimate goal for all of today's systems. There are cases where absolute correctness is not what reduces the chances of a catastrophe, but rather software systems that produce \acceptable", safe output states. For example, in a digital control system of a manufacturing plant, all that may besought is for the software to close a valve in the system given certain input vectors. Potentially, such code might be trivial enough to demonstrate the correctness thereof, yet the overall manufacturing plant could be unsafe, due to the possibility that the software will actually produce a correct result that could enable a system catastrophe. Although this might seem counterintuitive, it is true that external events to the code are potential contributors to undesirable outputs, and said outputs could be produced by correct code. Such plaguing circumstances have lead to the upsurge of interest and research in software quality approaches to characteristics such as \safe software", failure-tolerant systems, and fail-safe systems. Software testing is conditioned on the assumption that the inputs that you test it on are data values for which the software should produce output, i.e., the test cases are in the domain of the function that the software implements. So for instance if the program is not expected to input negative integers or handle them very infrequently, then it is foolish to test the code on them (unless there are arguments for doing so related to enhanced reusability). This assumption that the code only need to work for \expected" input data must be dropped when we start testing for characteristics other than correctness. This paper is intended to briey introduce the reader to the benets that software faultinjection techniques provide for software characteristics other than correctness. Software fault-injection is an extremely tricky business to implement \right," where right is a combination of eciency, plausible fault classes, and error recovery from the injected anomalies that may besointolerable to the code that it \chokes." But if you can get it right, the benets rival those of any other software quality assessment technique, including dynamic testing and formal verication. To begin, we acknowledge that the techniques that we are about to review have been published elsewhere (and in far greater detail with anecdotal results) [5, 7], and several have been transitioned into commercial products. Admittedly, these techniques are computational, but ultimately, you get what you pay for! These techniques do not require an oracle, simply source code, inputs that the code executes on, and denitions of fault (or what we more frequently refer to as anomaly) classes. These techniques haveevolved over 8 years the software fault-injection capabilities have become more rened, the commercial tools more ecient, and the results from various applications more convincing. This work began in 1988 from a crude understanding about software mutation, and from that, became a new theory for why programs can't fail, providing a new software testability paradigm [6, 1]. Then we developed a failure tolerance model that is similar to the testability model, but with the key distinction being that the failure tolerance model considers the potential of the software receiving bad data from external sources, such ashuman operator errors or failed hardware devices. And nally from there, we developed a metric to assess information system vulnerability. 2

3 2 Basic Terminology Our techniques apply fault-injection to source code. To use our techniques then, we must uniquely identify specic syntactic program constructs as well as the internal data states created during execution. To uniquely identify syntactic constructs, we dene a location to be either an assignment statement, an input statement, an output statement, or the <condition> part of an if or while statement. A program state is a set of mappings between all variables (declared and dynamically allocated) and their values at a particular pointinthe program's execution. Note that in a program state we include both the input to the program used during its execution and the value of the program counter. 1 We identify program states only between two dynamically consecutive locations in the code. The execution of a location is considered to be atomic. Hence data states can only be viewed between particular locations. For example, the data state: f(input, 3), (a, 5), (b, 5), (c, undened), (pc, 10)g tells us that the program input that started this execution was a 3, the variables a and b have the value 5, the variable c is undened, and the next instruction to be executed occurs at line 10. Before program execution on an input begins, all variables are undened. In our approach, the input value that starts a program execution is always contained as a member of every program state created during that execution. A program state error is an incorrect variable/value pairing in a program state where correctness is determined according to a specication. To develop the model, we assume that an assertion could be developed for each state that determines if the state is or is not correct. Note that in the nal analysis we will not need to do so. 2 We will refer to program state errors as infections, and will use these two terms interchangeably. If a program state error exists, the program state and variable with the incorrect value at that point are deemed infected. An infected program state may have more than one infected variable. Propagation of a program state error occurs when a program state error aects z O, the output state of the program. Cancellation occurs when the existence of a program state error is not discernible in the program output (i.e., after viewing the output of a program, we have no indication that any program state error ever occurred). The importance of studying how problems propagate in programs cannot be understated: when problems do not propagate, testing cannot detect them, and when they do, unsafe or unsecure events can be exacerbated. If location l is an assignment statement, then lhs(l) is the variable that is being assigned at l, and rhs(l) is the expression being calculated at l. 3 If location l is a conditional statement or loop termination expression, then lhs(l) is referenced from the program counter, and rhs(l) is the boolean expression being evaluated at l. Let S denote a specication, P denote an implementation of S, x denote a program input, denote the set of all possible inputs to P, Q denote the probability distribution 1 For our purposes, the terms \program counter" and \source code line counter" mean exactly the same thing. 2 Determining the correctness of any given program state during the execution of a program is hard (if not impossible) because of the vague nature of program specications. Fortunately, our models are developed using the theoretical existence of tests for correctness at each state. This means that determining the actual correctness of every state is not necessary. 3 lhs is short for \left-hand side" and rhs is short for right-hand side. 3

4 of, l denote a program location in P,andi denote a particular execution (or what we term an \iteration") of location l caused by inputx. Furthermore, let A lp ix represent the program state produced after executing location l on the i th execution of P from input x. In our model often nd it useful to group program states into sets with similar properties. For instance, assume that location l is executed m xl times byinputx. Now consider all of the program states that are created by this input immediately after l is executed. The following equation allows us to formalize such a set: A lp x = fa lp ix j 0 i m xl g We can then create a set of these sets for every x 2 : lp = fa lp x j x 2 g In our fault-injection methods, a simulated infection is the result of changing the value ofavariable so that the program state is known to be altered. As we have already stated, A lp ix denotes the program state created after the i th iteration of location l on input x AlP ix denotes this same program state after a simulated infection is injected into A lp ix.simulated infections are our way to perform fault-injection without relying on mutation techniques. 3 Testing for Safety and Failure-Tolerance We will now describe our approach to testing for the safety and failure tolerance of the code with respect to simulated infections. What this provides is an estimated probability for how likely code execution is to result in output states that are unsafe or simply undesirable from these simulated infections. Much like testing requires an oracle, this method requires a description of what is unsafe or undesirable, but this method does not require what is typically considered as an oracle. 4 Note that what we produce (via our fault-injection) approaches is \numbers." There are those persons in software engineering who crusade against placing numbers on software quality, believing that either numbers cannot be believed or simply are too inaccurate. It is our belief that the only thing wrong with numbers is that the interpretation typically ascribed to them is a total oversell as to their true meaning. It is our contention that numbers are the only way to assess anything meaningful about software quality, provided that the numbers are used as relative measures of quality,notabsolute measures of quality. Ifyou ascribe 10 ;5 to a piece of software, and the smaller the metric the higher the quality, then if another piece of software has a score of 10 ;15, it should be true that the software with 10 ;15 is of higher quality. If not, the numbers are meaningless. The problem in software engineering is that we have taken numbers as absolute, guarantors of quality, which is a foolish interpretation. Numbers have worked well in assessing analog system quality, and therefore it is natural to assume that they would work well for digital systems. The numbers that the approaches that we are about to describe produce are simple probabilistic estimates that can serve as 4 Testing for correctness generally involves a determining a correct answer per input, as opposed to safety that determines a range of tolerable answers per input, including the eects that external events might have on the computation. 4

5 relative predictors of possible future behavior if future circumstances are similar, but the likelihood of this cannot be determined, and hence absolute conclusions cannot be drawn. For critical software, there are three classes of output states that can be produced from a program execution: (1) correct, (2) incorrect but acceptable (non-hazardous), and (3) hazardous. Software failure tolerance refers to the abilityof the software to produce \acceptable" outputs regardless of the program states that are encountered during execution what constitutes an acceptable output is dened by the system level requirements. Software safety refers to the ability of the software to produce \non-hazardous" outputs regardless of the program states that are encountered during execution what constitutes an output hazard is dened by the system level safety requirements. By our denitions, software safety is simply a special form of software failure tolerance. Fault-tolerance refers to a class of outputs that can be tolerated, and software safety refers to a class of outputs that cannot be tolerated. For example, for an input value of 1 to the software, suppose that the correct output value is But suppose that the numerical algorithms we use produce an output of If the set of acceptable, non-hazardous values is [99.0, 101.0] and only this range, then this value is acceptable, and hence the software was failure-tolerant with respect to an inaccurate algorithm. Further suppose that the software, for some reason, does not receive the correct input value of 1 when it should due to some external problem, and instead receives a value of 0.0. And nally suppose that along with its low-accuracy numerical algorithm, the software produces an output value of 102.0, which is hazardous since it is out of the range of [99.0, 101.0]. The latter hypothetical example reveals an interesting situation. The external environment to the software is in a true state that should present the software with an input value of 1, but for anomalous circumstances, the software is presented with an input value of 0. For the external environment in which the software resides, the only acceptable outputs from the software are in [99.0, 101.0] for the true external environment state. If might well be the case that when the actual environment's state is 0.0, a result of from the software is acceptable. Hence merely testing the software with a value of 0 would not reveal the potential impact of such a problem it is only when we simulate this anomalous circumstance that we realize that an input value of 0 could produce a hazardous result if the input value should have been 1.0, even though is a correct result for an input of 0. Simulated infections that we will inject can sometimes result in disastrous output states states that can lead to catastrophes from the systems that they control. For example, if an automatic teller machine gives you no cash when you make a withdrawl, yet debits your account with a maximum withdrawl, that might be considered as catastrophic. When a system gets into a \bad state" during execution, the next eventthatwewould like to occur would be a recovery from the bad state back to an acceptable state. In other words, we do not want the bad state to propagate. If propagation does (or even can) occur, we would like to demonstrate that the \bad state" has no damaging consequences. To improve software's failure tolerance, there are two classes of \problems" that should be protected against: software faults and hardware failures. In the past, the EPA failure tolerance assessment method has simulated both of these fault classes, providing observations of the impact to computations when a hardware sensor sends corrupt data or when the software itself computes intermediate corrupt data (with respect to the specication). The EPA technique simulates fault-classes by inserting instrumentation into the code that forces 5

6 changes (termed \simulated infections") into the state of the program as it executes. A simulated infection is simply a modied data value assigned to some variable or variables during execution. 5 The following algorithm exploits simulated infections to allow observation of the impact of dierent classes of \bad states" [5]. Simulated infections mimic the eects of both programmer faults and hardware failures. Simulated infections are created by perturbation functions. The process of injecting a simulated infection into an executing program is called perturbing the program. A perturbation function is the code instrumentation that takes in a program state as one of its inputs, changes the state according to certain rules that are either fed in to the function or hard-wired in, and produces as output a dierent program state. We are concerned with whether undesirable output events can be observed given the simulated infections employed. The following algorithm provides this information. It determines the proportion of outputs that satisfy the logical predicate, PRED, where PRED determines for any particular input if z O is unacceptable: Algorithm 1: Extended Propagation Analysis (EPA) For each l in P : 1. Set count to Randomly select an input x according to Q, and if P halts on x in a xed period of time, nd the corresponding A lp x in lp if such is created. Set Z to A lp 1x. 3. Alter Z, and denote the new data state as Z. Execute the succeeding code on Z. (If by chance l is executed more than once because of the value we placed into Z, alter each state that occurs immediately after l.) 4. If the output satises PRED, increment count. 5. Repeat steps 2{4 n ; 1 times. 6. Divide count by n yielding alp Q. The value 1 ; alp Q is a measure of failure tolerance, and the value alp Q is the proportion of times z O was undesirable. Today, it is becoming widespread for mechanical systems to be under the control of a \software" brain. The types of safety-critical mechanical systems that we envision this rare-event failure tolerance technique being applied to will consist of three key types of components: (1) a software brain, (2) sensors that feed information into the software brain, and (3) the mechanical parts that perform the desired functionality of the mechanical device. Mechanical systems are governed by physical and chemical laws of nature, and because of this, each component of the mechanical system will deviate from absolute correct behavior from time to time. Since the software brain will make controlling decisions that are based on the information received from these imperfect mechanical parts, it is vital that the mechanical 5 Since true infections are incorrect program state values, our injected infections are termed \simulated" since we cannot know if our modications in the state are forcing the program into an incorrect or possible correct state. 6

7 parts be the highest quality possible to ensure accurate information is provided to the brain. High quality mechanical parts may be prohibitively expensive{one way to circumventthis cost might be to replace high quality parts with redundant cheaper parts. Another option is of course to make the software more tolerant of the imprecisions in the incoming information. Our technique can play aninteresting role here: aiding system developers in determining the impact that varying mechanical component qualities will have on the quality ofthe entire system. For example, the technique would be able to determine what impact a less accurate sensor would have on the outputs of the software before any decision is made as to which sensors are chosen. If the impact is deemed harmful according to our technique, then the system developer has two options: (1) insert software mechanisms to \smooth out" the inaccuracies of the sensor data to a level that does not promote harmful outputs, or (2) opt for higher quality mechanical parts. If the impact of inaccurate incoming information to the software is deemed as unharmful, then the system designer has evidence that the tolerances and imperfections of a particular component are acceptable. So although our technique assesses the failure tolerance of the software, for software embedded in mechanical systems, that tolerance is with respect to imperfect mechanical systems upon which the software depends for state information, and in that sense, this technique is truly a system design tool. In summary, when testing to discover faults, high failure tolerance is annoying. Failure tolerance requires that software be robust and able to recover from unexpected problems, as well as not reveal problems if they exist. During testing, we want faults revealed during operational deployment, we want faults masked. If testing is based primarily on a particular input distribution, then inputs of low probability are less likely to trigger failures during execution. The software segments exercised by these inputs are, therefore, more likely to contain undiscovered faults. However, if the software has high failure tolerance when executing high probability input test cases, faults are still likely to remain hidden during operation i.e., the software will tolerate problems that arise during the operational life-time of the code. It is this interesting paradox that has motivated our workinthisarea. 4 Testing for Vulnerability/Security It came to our attention after much discussion with computer security researchers that their main problem is a special case of failure tolerance, where software failure in their domain is simply the failure of a system to enforce the security policies dened for the system. Hence it should be possible to test for how likely softwareistoallow for security policies to not be enforced via modications to the implementation of Algorithm 1. A vulnerability in a software system is simply a weakness in a system that allows, under some set of circumstances, an intrusion or modication of data to occur, i.e., a vulnerability allows a threat to be successful. Weaknesses could include logic aws, particular input events, or combinations of the two. We dene \level of vulnerability" (or conversely \level of security") as the degree to which access is allowed to an operational capabilitythatis supposedly protected against. For example, if access to inner layers of an operating system are supposed to be protected from users without system authorization, and if such users can frequently gain access, then the operating system will be classied as having a high level of 7

8 vulnerability. The vulnerability testing technique can be specialized to dierent kinds of threats. We began researching this technique with the previous algorithm in hand. As mentioned, that algorithm provides a prediction of the \level of safety" for anomalies such as incoming hardware failures and programmer faults. For simulated infections, we considered incoming simulated threats (such as those catalogued by Landwehr et.al. [3], COAST, and CERT). To be able to test for possible security weaknesses in software, our vulnerability testing method must be able to understand what three dierent types of events are with respect to the code: code weaknesses, input sequences to the software, and intrusions or other security violations of the code. 5 Experimenting with Dierent Input Distributions It is useful information to be able to say something about how likely software is to produce undesirable, unsafe, or vulnerable states according to some input prole, Q. But what if the software someday winds up executing in an environment that is radically dierent thanq? We now highlight recent work we have done for testing how likely the software is to produce safe, acceptable, and non-vulnerable states when the software is executing in the rarest of operating modes. We consider an operating mode to be rare if the likelihood of that mode being observed during operation is small. We have developed a testing technique that studies how software will behave when inputs are being sampled from the \ultra-dependable" region of its input space. The ultradependable region is the portion of the input space that contains inputs that are unlikely to be selected for execution under typical testing and operation. When we observeapro- gram executing on inputs that were selected from the ultra-dependable region of the input space, we gain knowledge of how robust, safe, and secure the software will be during unusual operational events. When we observe decit in these characteristics during our analysis, this triggers a warning. Likewise, if no warning is triggered from our analysis, this suggests that the software is suciently hardened against anomalous events. This suggestion is not a guarantee of future acceptable behavior, but is an indicator of that desired behavior. Q is a key parameter used by EPA, and unfortunately it may be dicult to determine what distribution best represents how your software will be used in practice [4]. You would expect that if you had two dierent distributions, q 0 and q 00,thatwere almost identical (although there were subtle dierences), that the impact of these dierences on the quality of the behavior would be small. What would you expect if you knew that q 0 and q 00 were complete opposites, meaning that q 00 were the inverse of q 0? Would you also expect small dierences on the quality ofthebehavior? We willnow summarize a hypothesis (inspired by Hecht [2]) about employing our fault-injection testing methods with the distribution represented by the complete opposite of the operational prole: If Q is your operational prole, n was a relatively small number, and j j is large, then not only are there many test cases that are not being used with the EPA algorithms nor during testing according to Q, but the likelihood that any of the rarest (most unlikely) test cases being selected is extremely small. To 8

9 compensate, you should force yourself to select some of the lowest probability events in Q, to assess how robust your code is in the rarer scenarios. Realize that when you test according to some distribution Q, even if you test an enormous number of times, the majority of the test cases used are from the subset of that are most likely to be selected. As you sample more and more according to your assumed operational prole, you are potentially getting repeat test cases. Sampling more and more does improve your chances of selecting \infrequent test cases" (which we term as the \ultra-dependable" region of the input space). But to select members of the ultra-dependable region may require sampling an intractable number of test cases if the distribution has narrow spikes. This suggests that it may be meaningful to combine the EPA algorithms with those test cases that represent the ultra-dependable region of an input space, i.e., not the operational prole. This predicts how robust the software will be during unusual operational events. When our predictions are small, this suggests that the software will not perform acceptably if unusual events occur during deployment. Likewise, if our predictions are large, this suggests that the software is suciently hardened against anomalous events. This suggestion is not a guarantee of future failure-tolerant behavior, but is an indicator of that desired behavior. The idea of inverting operational input distributions is not without limits. When you invert a prole to sample the \rarer" test cases, their \rareness" is achieved solely because of the infrequency with which they are sampled during operational use, and not because they are necessarily a small subset of. It is possible that the \rarer" test cases represent a substantial portion of. And also recognize that there are operational distributions for which inversion is useless: a uniform distribution will invert back to the original distribution. Hence distributions with greater variance will be more amenable to this process. 6 Summary We have highlighted three software characteristics that can be analyzed for by non-testing methods. Because the empirical methods that we described do not require a traditional oracle, that persistent limitation of traditional testing is avoided. Nor do these methods require formal analysis, complete and unambiguous requirements, nor any of the other usual requirements of formal methods. Our methods are computationally intensive, not manually intensive. The information they provide is unique among software assessment methods, and hence for certain applications, the computational costs of these methods can be justied. Dijsktra's famous adage of: testing cannot reveal the absence of faults is applicable to our techniques as well. If while using our technique, PRED is not satised, that does not mean that PRED can never be satised. But if you observe thatpred is satised, it is left to you to mitigate the potential of that event occurring in the future, i.e., our technique has only warned of future, pending problems, and now that mustbeinvestigated. It is possible that a particular simulated infection (which did ultimately result in a PRED-satised output) is not plausible for P to create during operation. Here, mitigation is automatic if however a PRED-satised output was observed from a plausible simulated infection, it is prudent to invoke appropriate failure-tolerance improvement procedures for thwarting the propagation of such data state corruptions. Such steps include: (1) higher quality external hardware, (2) 9

10 reduction in the possibilityofhuman factor errors, (3) redundant hardware, and (4) software assertions that are capable of warning and potentially correcting state corruptions. References [1] M. FRIEDMAN AND J. VOAS. Software Assessment: Reliability, Safety, Testability. John Wiley and Sons, New York, ISBN X. [2] H. HECHT. Rare Conditions: An Important Cause of Failures. In Proc. of the Eighth Annual Conference on Computer Assurance, pages 81{85, National Institute of Standards, June [3] C. LANDWEHR, A. BULL, J. MCDERMOTT AND W. CHOI. A Taxonomy of Computer Program Security Flaws. ACM Computing Surveys, 26(3):211{254, September [4] J. D. MUSA. Operational Proles in Software Reliability Engineering. IEEE Software, 10(2), March [5] J. VOAS AND K. MILLER. Dynamic Testability Analysis for Assessing Fault Tolerance. High Integrity Systems Journal, 1(2):171{178, [6] J. VOAS AND K. MILLER. Software Testability: The New Verication. IEEE Software, 12(3):17{28, May [7] J. VOAS, G. MCGRAW, A. GHOSH, F. CHARRON, AND K. MILLER. Dening an Adaptive Software Security Metric from a Dynamic Software Fault-tolerance Measure. In Proc. of Ninth Annual Conference on Computer Assurance, National Institute of Standards and Technology, Gaithersburg, MD, June

System Input. System S. COTS Component Z. Input to Z A B. Pass or Fail? Assert. System Output. Fault Injector

System Input. System S. COTS Component Z. Input to Z A B. Pass or Fail? Assert. System Output. Fault Injector Mitigating the Potential for Damage Caused by COTS and Third-Party Software Failures Jerey Voas Reliable Software Technologies 1 Introduction The adage, \if you want something done right, do it yourself"

More information

Chapter 1: Key Concepts of Programming and Software Engineering

Chapter 1: Key Concepts of Programming and Software Engineering Chapter 1: Key Concepts of Programming and Software Engineering Software Engineering Coding without a solution design increases debugging time - known fact! A team of programmers for a large software development

More information

programming languages, programming language standards and compiler validation

programming languages, programming language standards and compiler validation Software Quality Issues when choosing a Programming Language C.J.Burgess Department of Computer Science, University of Bristol, Bristol, BS8 1TR, England Abstract For high quality software, an important

More information

French Scheme CSPN to CC Evaluation

French Scheme CSPN to CC Evaluation French Scheme CSPN to CC Evaluation Antoine COUTANT ITSEF AMOSSYS 4 bis allée du bâtiment 35000 Rennes antoine.coutant@amossys.fr Abstract. Since 2008, French certication body created a new scheme for

More information

Software development process

Software development process OpenStax-CNX module: m14619 1 Software development process Trung Hung VO This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 2.0 Abstract A software development

More information

A Model for Assessing the Liability of Seemingly Correct Software Jerey M. Voas Larry K. Voas y Keith W. Miller z Abstract Current research on software reliability does not lend itself to quantitatively

More information

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References Outline Computer Science 331 Introduction to Testing of Programs Mike Jacobson Department of Computer Science University of Calgary Lecture #3-4 1 Denitions 2 3 4 Implementation and Evaluation 5 Debugging

More information

Multiagent Reputation Management to Achieve Robust Software Using Redundancy

Multiagent Reputation Management to Achieve Robust Software Using Redundancy Multiagent Reputation Management to Achieve Robust Software Using Redundancy Rajesh Turlapati and Michael N. Huhns Center for Information Technology, University of South Carolina Columbia, SC 29208 {turlapat,huhns}@engr.sc.edu

More information

Li Gong. University of Cambridge. Hogan in her recent paper [4] presented the requirements and the characteristics

Li Gong. University of Cambridge. Hogan in her recent paper [4] presented the requirements and the characteristics On Security in Capability-Based Systems Li Gong University of Cambridge Computer Laboratory Cambridge CB2 3QG, England November 1988 1 Introduction Hogan in her recent paper [4] presented the requirements

More information

whether or not software will fail during testing. The advantage of our denition is that it incorporates other factors than coverage that play an impor

whether or not software will fail during testing. The advantage of our denition is that it incorporates other factors than coverage that play an impor Improving the Software Development Process Using Testability Research Jerey M. Voas Keith W. Miller Reliable Software Technologies Corp. Department of Computer Science Penthouse Suite 101 Jones Hall 1001

More information

Comparing Methods to Identify Defect Reports in a Change Management Database

Comparing Methods to Identify Defect Reports in a Change Management Database Comparing Methods to Identify Defect Reports in a Change Management Database Elaine J. Weyuker, Thomas J. Ostrand AT&T Labs - Research 180 Park Avenue Florham Park, NJ 07932 (weyuker,ostrand)@research.att.com

More information

A simple algorithm with no simple verication

A simple algorithm with no simple verication A simple algorithm with no simple verication Laszlo Csirmaz Central European University Abstract The correctness of a simple sorting algorithm is resented, which algorithm is \evidently wrong" at the rst

More information

INTRUSION PREVENTION AND EXPERT SYSTEMS

INTRUSION PREVENTION AND EXPERT SYSTEMS INTRUSION PREVENTION AND EXPERT SYSTEMS By Avi Chesla avic@v-secure.com Introduction Over the past few years, the market has developed new expectations from the security industry, especially from the intrusion

More information

Handbook for the Computer Security Certification of Trusted Systems

Handbook for the Computer Security Certification of Trusted Systems Handbook for the Computer Security Certification of Trusted Systems Chapter 1: Overview Chapter 2: Development Plan Chapter 3: Formal Model of the Security Policy Chapter 4: Descriptive Top-Level Specification

More information

A framework for creating custom rules for static analysis tools

A framework for creating custom rules for static analysis tools A framework for creating custom rules for static analysis tools Eric Dalci John Steven Cigital Inc. 21351 Ridgetop Circle, Suite 400 Dulles VA 20166 (703) 404-9293 edalci,jsteven@cigital.com Abstract Code

More information

[Refer Slide Time: 05:10]

[Refer Slide Time: 05:10] Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture

More information

Intelligent Agents. Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge

Intelligent Agents. Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge Intelligent Agents Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge Denition of an Agent An agent is a computer system capable of autonomous action in some environment, in

More information

Basic Testing Concepts and Terminology

Basic Testing Concepts and Terminology T-76.5613 Software Testing and Quality Assurance Lecture 2, 13.9.2006 Basic Testing Concepts and Terminology Juha Itkonen SoberIT Contents Realities and principles of Testing terminology and basic concepts

More information

8 Divisibility and prime numbers

8 Divisibility and prime numbers 8 Divisibility and prime numbers 8.1 Divisibility In this short section we extend the concept of a multiple from the natural numbers to the integers. We also summarize several other terms that express

More information

Improved Software Testing Using McCabe IQ Coverage Analysis

Improved Software Testing Using McCabe IQ Coverage Analysis White Paper Table of Contents Introduction...1 What is Coverage Analysis?...2 The McCabe IQ Approach to Coverage Analysis...3 The Importance of Coverage Analysis...4 Where Coverage Analysis Fits into your

More information

Writing Thesis Defense Papers

Writing Thesis Defense Papers Writing Thesis Defense Papers The point of these papers is for you to explain and defend a thesis of your own critically analyzing the reasoning offered in support of a claim made by one of the philosophers

More information

An introduction to designing reliable cloud services

An introduction to designing reliable cloud services An introduction to designing reliable cloud services January 2014 Contents Overview 2 Cloud service reliability versus resiliency 4 Recovery-oriented computing 5 Planning for failure 7 Designing for and

More information

Managing large sound databases using Mpeg7

Managing large sound databases using Mpeg7 Max Jacob 1 1 Institut de Recherche et Coordination Acoustique/Musique (IRCAM), place Igor Stravinsky 1, 75003, Paris, France Correspondence should be addressed to Max Jacob (max.jacob@ircam.fr) ABSTRACT

More information

An Overview of Business Continuity Planning

An Overview of Business Continuity Planning ExpEcting the UnExpEctEd: An Overview of Business Continuity Planning 9100 Olson Memorial Hwy Golden Valley, MN 55427 Office: (763) 201-8000 Email: info@integratedcom.net Executive Summary Disaster can

More information

How To Choose the Right Vendor Information you need to select the IT Security Testing vendor that is right for you.

How To Choose the Right Vendor Information you need to select the IT Security Testing vendor that is right for you. Information you need to select the IT Security Testing vendor that is right for you. Netragard, Inc Main: 617-934- 0269 Email: sales@netragard.com Website: http://www.netragard.com Blog: http://pentest.netragard.com

More information

Clustering and scheduling maintenance tasks over time

Clustering and scheduling maintenance tasks over time Clustering and scheduling maintenance tasks over time Per Kreuger 2008-04-29 SICS Technical Report T2008:09 Abstract We report results on a maintenance scheduling problem. The problem consists of allocating

More information

Victor Shoup Avi Rubin. fshoup,rubing@bellcore.com. Abstract

Victor Shoup Avi Rubin. fshoup,rubing@bellcore.com. Abstract Session Key Distribution Using Smart Cards Victor Shoup Avi Rubin Bellcore, 445 South St., Morristown, NJ 07960 fshoup,rubing@bellcore.com Abstract In this paper, we investigate a method by which smart

More information

Surveillance of algorithmic trading

Surveillance of algorithmic trading Surveillance of algorithmic trading A proposal for how to monitor trading algorithms Lars-Ivar Sellberg Executive Chairman, MSc Electrical Engineering/IT BA Financial Economics Copyright 2009-2013. All

More information

A Methodology for Safety Critical Software Systems Planning

A Methodology for Safety Critical Software Systems Planning A Methodology for Safety Critical Software Systems Planning EHAB SHAFEI 1, IBRAHIM F. MOAWAD 2, HANY SALLAM 1, ZAKI TAHA 3, MOSTAFA AREF 3 1 Operation Safety and Human Factors Department, 2 Information

More information

Prediction of Software Development Modication Eort Enhanced by a Genetic Algorithm

Prediction of Software Development Modication Eort Enhanced by a Genetic Algorithm Prediction of Software Development Modication Eort Enhanced by a Genetic Algorithm Gerg Balogh, Ádám Zoltán Végh, and Árpád Beszédes Department of Software Engineering University of Szeged, Szeged, Hungary

More information

Sample Size and Power in Clinical Trials

Sample Size and Power in Clinical Trials Sample Size and Power in Clinical Trials Version 1.0 May 011 1. Power of a Test. Factors affecting Power 3. Required Sample Size RELATED ISSUES 1. Effect Size. Test Statistics 3. Variation 4. Significance

More information

System Aware Cyber Security

System Aware Cyber Security System Aware Cyber Security Application of Dynamic System Models and State Estimation Technology to the Cyber Security of Physical Systems Barry M. Horowitz, Kate Pierce University of Virginia April, 2012

More information

CHAPTER 5 Round-off errors

CHAPTER 5 Round-off errors CHAPTER 5 Round-off errors In the two previous chapters we have seen how numbers can be represented in the binary numeral system and how this is the basis for representing numbers in computers. Since any

More information

Calculation of Risk Factor Using the Excel spreadsheet Calculation of Risk Factor.xls

Calculation of Risk Factor Using the Excel spreadsheet Calculation of Risk Factor.xls Calculation of Risk Factor Using the Excel spreadsheet Calculation of Risk Factor.xls Events, Impact and Software Validation Table of Contents Many software products in complex computer systems like LIS

More information

CDM Vulnerability Management (VUL) Capability

CDM Vulnerability Management (VUL) Capability CDM Vulnerability Management (VUL) Capability Department of Homeland Security Office of Cybersecurity and Communications Federal Network Resilience Vulnerability Management Continuous Diagnostics and Mitigation

More information

The Software Quality Certication Triangle Jerey Voas Reliable Software Technologies Abstract The problem of certifying software's quality is being attacked in three distinct ways: (1) accrediting personnel,

More information

Introduction to Computers and Programming. Testing

Introduction to Computers and Programming. Testing Introduction to Computers and Programming Prof. I. K. Lundqvist Lecture 13 April 16 2004 Testing Goals of Testing Classification Test Coverage Test Technique Blackbox vs Whitebox Real bugs and software

More information

Software testing. Objectives

Software testing. Objectives Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating

More information

How To Model A Boiler System Controller

How To Model A Boiler System Controller Stepwise Development and Verication of a Boiler System Specication Peter Bishop and Glenn Bruns and Stuart Anderson Abstract The rigorous development and verication of a boiler system specication is presented.

More information

System Specification. Objectives

System Specification. Objectives System Specification cmsc435-1 Objectives To explain how dependability requirements may be identified by analyzing the risks faced by critical systems To explain how safety requirements are generated from

More information

Does function point analysis change with new approaches to software development? January 2013

Does function point analysis change with new approaches to software development? January 2013 Does function point analysis change with new approaches to software development? January 2013 Scope of this Report The information technology world is constantly changing with newer products, process models

More information

Goldberg, D. E. (1989). Genetic algorithms in search, optimization, and machine learning. Reading, MA:

Goldberg, D. E. (1989). Genetic algorithms in search, optimization, and machine learning. Reading, MA: is another objective that the GA could optimize. The approach used here is also adaptable. On any particular project, the designer can congure the GA to focus on optimizing certain constraints (such as

More information

Cosmological Arguments for the Existence of God S. Clarke

Cosmological Arguments for the Existence of God S. Clarke Cosmological Arguments for the Existence of God S. Clarke [Modified Fall 2009] 1. Large class of arguments. Sometimes they get very complex, as in Clarke s argument, but the basic idea is simple. Lets

More information

Basic circuit troubleshooting

Basic circuit troubleshooting Basic circuit troubleshooting This worksheet and all related files are licensed under the Creative Commons Attribution License, version 1.0. To view a copy of this license, visit http://creativecommons.org/licenses/by/1.0/,

More information

Software Safety Basics

Software Safety Basics Software Safety Basics (Herrmann, Ch. 2) 1 Patriot missile defense system failure On February 25, 1991, a Patriot missile defense system operating at Dhahran, Saudi Arabia, during Operation Desert Storm

More information

How To Find Out What A Key Is In A Database Engine

How To Find Out What A Key Is In A Database Engine Database design theory, Part I Functional dependencies Introduction As we saw in the last segment, designing a good database is a non trivial matter. The E/R model gives a useful rapid prototyping tool,

More information

Standard for Software Component Testing

Standard for Software Component Testing Standard for Software Component Testing Working Draft 3.4 Date: 27 April 2001 produced by the British Computer Society Specialist Interest Group in Software Testing (BCS SIGIST) Copyright Notice This document

More information

Manufacturers versus Component Part and Raw Material Suppliers: How to Prevent Liability By Kenneth Ross *

Manufacturers versus Component Part and Raw Material Suppliers: How to Prevent Liability By Kenneth Ross * Manufacturers versus Component Part and Raw Material Suppliers: How to Prevent Liability By Kenneth Ross * Introduction One of the more perplexing and potentially dangerous areas of product liability practice

More information

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction Software Testing Rajat Kumar Bal Introduction In India itself, Software industry growth has been phenomenal. IT field has enormously grown in the past 50 years. IT industry in India is expected to touch

More information

The Role of Automation Systems in Management of Change

The Role of Automation Systems in Management of Change The Role of Automation Systems in Management of Change Similar to changing lanes in an automobile in a winter storm, with change enters risk. Everyone has most likely experienced that feeling of changing

More information

CHAPTER 3. Methods of Proofs. 1. Logical Arguments and Formal Proofs

CHAPTER 3. Methods of Proofs. 1. Logical Arguments and Formal Proofs CHAPTER 3 Methods of Proofs 1. Logical Arguments and Formal Proofs 1.1. Basic Terminology. An axiom is a statement that is given to be true. A rule of inference is a logical rule that is used to deduce

More information

Socio-Technical Systems

Socio-Technical Systems Software Engineering Socio-Technical Systems Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain what a socio-technical system is and the distinction between this and a

More information

Why COTS Software Increases Security Risks Gary McGraw and John Viega Reliable Software Technologies 21515 Ridgetop Circle, Suite 250, Sterling, VA 20166 phone: (703) 404-9293, fax: (703) 404-9295 email:

More information

TAOS: Testing with Analysis and Oracle Support. Debra J. Richardson. University of California. 714-856-7353 djr@ics.uci.edu.

TAOS: Testing with Analysis and Oracle Support. Debra J. Richardson. University of California. 714-856-7353 djr@ics.uci.edu. TAOS: Testing with Analysis and Oracle Support Debra J. Richardson Information and Computer Science University of California Irvine, California 92717-3425 714-856-7353 djr@ics.uci.edu Abstract Few would

More information

Chapter 12 Modal Decomposition of State-Space Models 12.1 Introduction The solutions obtained in previous chapters, whether in time domain or transfor

Chapter 12 Modal Decomposition of State-Space Models 12.1 Introduction The solutions obtained in previous chapters, whether in time domain or transfor Lectures on Dynamic Systems and Control Mohammed Dahleh Munther A. Dahleh George Verghese Department of Electrical Engineering and Computer Science Massachuasetts Institute of Technology 1 1 c Chapter

More information

TranScend. Next Level Payment Processing. Product Overview

TranScend. Next Level Payment Processing. Product Overview TranScend Next Level Payment Processing Product Overview Product Functions & Features TranScend is the newest, most powerful, and most flexible electronics payment system from INTRIX Technology, Inc. It

More information

Mathematical Induction

Mathematical Induction Mathematical Induction (Handout March 8, 01) The Principle of Mathematical Induction provides a means to prove infinitely many statements all at once The principle is logical rather than strictly mathematical,

More information

WHITE PAPER. Running. Windows Server 2003. in a Post-Support World. By Nick Cavalancia

WHITE PAPER. Running. Windows Server 2003. in a Post-Support World. By Nick Cavalancia Running Windows Server 2003 in a Post-Support World By Nick Cavalancia TABLE OF CONTENTS Introduction 1 The Challenge of Staying on Windows Server 2003 2 Building a Vulnerability Mitigation Strategy 4

More information

Developing software which should never compromise the overall safety of a system

Developing software which should never compromise the overall safety of a system Safety-critical software Developing software which should never compromise the overall safety of a system Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 21 Slide 1 Objectives To introduce

More information

Static Analysis of Dynamic Properties - Automatic Program Verification to Prove the Absence of Dynamic Runtime Errors

Static Analysis of Dynamic Properties - Automatic Program Verification to Prove the Absence of Dynamic Runtime Errors Static Analysis of Dynamic Properties - Automatic Program Verification to Prove the Absence of Dynamic Runtime Errors Klaus Wissing PolySpace Technologies GmbH Argelsrieder Feld 22 82234 Wessling-Oberpfaffenhofen

More information

Risk, Return and Market Efficiency

Risk, Return and Market Efficiency Risk, Return and Market Efficiency For 9.220, Term 1, 2002/03 02_Lecture16.ppt Student Version Outline 1. Introduction 2. Types of Efficiency 3. Informational Efficiency 4. Forms of Informational Efficiency

More information

CDM Software Asset Management (SWAM) Capability

CDM Software Asset Management (SWAM) Capability CDM Software Asset Management (SWAM) Capability Department of Homeland Security Office of Cybersecurity and Communications Federal Network Resilience Table of Contents 1 PURPOSE AND SCOPE... 2 2 THREAT

More information

Chapter 8 Software Testing

Chapter 8 Software Testing Chapter 8 Software Testing Summary 1 Topics covered Development testing Test-driven development Release testing User testing 2 Program testing Testing is intended to show that a program does what it is

More information

Error oracle attacks and CBC encryption. Chris Mitchell ISG, RHUL http://www.isg.rhul.ac.uk/~cjm

Error oracle attacks and CBC encryption. Chris Mitchell ISG, RHUL http://www.isg.rhul.ac.uk/~cjm Error oracle attacks and CBC encryption Chris Mitchell ISG, RHUL http://www.isg.rhul.ac.uk/~cjm Agenda 1. Introduction 2. CBC mode 3. Error oracles 4. Example 1 5. Example 2 6. Example 3 7. Stream ciphers

More information

IMPLEMENTATION NOTE. Validating Risk Rating Systems at IRB Institutions

IMPLEMENTATION NOTE. Validating Risk Rating Systems at IRB Institutions IMPLEMENTATION NOTE Subject: Category: Capital No: A-1 Date: January 2006 I. Introduction The term rating system comprises all of the methods, processes, controls, data collection and IT systems that support

More information

Solving Equations. How do you know that x = 3 in the equation, 2x - 1 = 5?

Solving Equations. How do you know that x = 3 in the equation, 2x - 1 = 5? Question: Solving Equations How do you know that x = 3 in the equation, 2x - 1 = 5? Possible answers to the question are: 1. If you use guess and check, the only number that works for x is 3. 2. Why should

More information

How To Close The Loop On A Fully Differential Op Amp

How To Close The Loop On A Fully Differential Op Amp Application Report SLOA099 - May 2002 Fully Differential Op Amps Made Easy Bruce Carter High Performance Linear ABSTRACT Fully differential op amps may be unfamiliar to some designers. This application

More information

Software Verification and System Assurance

Software Verification and System Assurance Software Verification and System Assurance John Rushby Based on joint work with Bev Littlewood (City University UK) Computer Science Laboratory SRI International Menlo Park CA USA John Rushby, SR I Verification

More information

Increasing Data Center Resilience While Lowering PUE

Increasing Data Center Resilience While Lowering PUE Increasing Data Center Resilience While Lowering PUE Nandini Mouli, Ph.D. President/Founder esai LLC mouli.nandini@gmail.com www.esai.technology Introduction esai LLC esai LLC: Is a Disadvantaged woman-owned

More information

Software Engineering. Introduction. Software Costs. Software is Expensive [Boehm] ... Columbus set sail for India. He ended up in the Bahamas...

Software Engineering. Introduction. Software Costs. Software is Expensive [Boehm] ... Columbus set sail for India. He ended up in the Bahamas... Software Engineering Introduction... Columbus set sail for India. He ended up in the Bahamas... The economies of ALL developed nations are dependent on software More and more systems are software controlled

More information

Socio technical Systems. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 2 Slide 1

Socio technical Systems. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 2 Slide 1 Socio technical Systems Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 2 Slide 1 Objectives To explain what a socio technical system is and the distinction between this and a computer

More information

Five High Order Thinking Skills

Five High Order Thinking Skills Five High Order Introduction The high technology like computers and calculators has profoundly changed the world of mathematics education. It is not only what aspects of mathematics are essential for learning,

More information

What mathematical optimization can, and cannot, do for biologists. Steven Kelk Department of Knowledge Engineering (DKE) Maastricht University, NL

What mathematical optimization can, and cannot, do for biologists. Steven Kelk Department of Knowledge Engineering (DKE) Maastricht University, NL What mathematical optimization can, and cannot, do for biologists Steven Kelk Department of Knowledge Engineering (DKE) Maastricht University, NL Introduction There is no shortage of literature about the

More information

Factoring & Primality

Factoring & Primality Factoring & Primality Lecturer: Dimitris Papadopoulos In this lecture we will discuss the problem of integer factorization and primality testing, two problems that have been the focus of a great amount

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

A very short history of networking

A very short history of networking A New vision for network architecture David Clark M.I.T. Laboratory for Computer Science September, 2002 V3.0 Abstract This is a proposal for a long-term program in network research, consistent with the

More information

Example 1. Consider the following two portfolios: 2. Buy one c(s(t), 20, τ, r) and sell one c(s(t), 10, τ, r).

Example 1. Consider the following two portfolios: 2. Buy one c(s(t), 20, τ, r) and sell one c(s(t), 10, τ, r). Chapter 4 Put-Call Parity 1 Bull and Bear Financial analysts use words such as bull and bear to describe the trend in stock markets. Generally speaking, a bull market is characterized by rising prices.

More information

Special Situations in the Simplex Algorithm

Special Situations in the Simplex Algorithm Special Situations in the Simplex Algorithm Degeneracy Consider the linear program: Maximize 2x 1 +x 2 Subject to: 4x 1 +3x 2 12 (1) 4x 1 +x 2 8 (2) 4x 1 +2x 2 8 (3) x 1, x 2 0. We will first apply the

More information

Oscillations of the Sending Window in Compound TCP

Oscillations of the Sending Window in Compound TCP Oscillations of the Sending Window in Compound TCP Alberto Blanc 1, Denis Collange 1, and Konstantin Avrachenkov 2 1 Orange Labs, 905 rue Albert Einstein, 06921 Sophia Antipolis, France 2 I.N.R.I.A. 2004

More information

25 Integers: Addition and Subtraction

25 Integers: Addition and Subtraction 25 Integers: Addition and Subtraction Whole numbers and their operations were developed as a direct result of people s need to count. But nowadays many quantitative needs aside from counting require numbers

More information

2) Write in detail the issues in the design of code generator.

2) Write in detail the issues in the design of code generator. COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage

More information

SYSTEMS AND SOFTWARE REQUIREMENTS SPECIFICATION (SSRS) TEMPLATE. Version A.4, January 2014 FOREWORD DOCUMENT CONVENTIONS

SYSTEMS AND SOFTWARE REQUIREMENTS SPECIFICATION (SSRS) TEMPLATE. Version A.4, January 2014 FOREWORD DOCUMENT CONVENTIONS SYSTEMS AND SOFTWARE REQUIREMENTS SPECIFICATION (SSRS) TEMPLATE Version A.4, January 2014 FOREWORD This document was written to provide software development projects with a template for generating a System

More information

Fall 2011. Andrew U. Frank, October 23, 2011

Fall 2011. Andrew U. Frank, October 23, 2011 Fall 2011 Andrew U. Frank, October 23, 2011 TU Wien, Department of Geoinformation and Cartography, Gusshausstrasse 27-29/E127.1 A-1040 Vienna, Austria frank@geoinfo.tuwien.ac.at Part I Introduction 1 The

More information

The Influence of Software Vulnerabilities on Business Risks 1

The Influence of Software Vulnerabilities on Business Risks 1 The Influence of Software Vulnerabilities on Business Risks 1 Four sources of risk relevant for evaluating the influence of software vulnerabilities on business risks Authors Hilbrand Kramer, MSc (Royal

More information

Cartesian Products and Relations

Cartesian Products and Relations Cartesian Products and Relations Definition (Cartesian product) If A and B are sets, the Cartesian product of A and B is the set A B = {(a, b) :(a A) and (b B)}. The following points are worth special

More information

Clinical Risk Management: Agile Development Implementation Guidance

Clinical Risk Management: Agile Development Implementation Guidance Document filename: Directorate / Programme Document Reference NPFIT-FNT-TO-TOCLNSA-1306.02 CRM Agile Development Implementation Guidance v1.0 Solution Design Standards and Assurance Project Clinical Risk

More information

VHDL Test Bench Tutorial

VHDL Test Bench Tutorial University of Pennsylvania Department of Electrical and Systems Engineering ESE171 - Digital Design Laboratory VHDL Test Bench Tutorial Purpose The goal of this tutorial is to demonstrate how to automate

More information

6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008

6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008 MIT OpenCourseWare http://ocw.mit.edu 6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

Website Maintenance Information For My Clients Bob Spies, Flying Seal Systems, LLC Updated: 08- Nov- 2015

Website Maintenance Information For My Clients Bob Spies, Flying Seal Systems, LLC Updated: 08- Nov- 2015 Website Maintenance Information For My Clients Bob Spies, Flying Seal Systems, LLC Updated: 08- Nov- 2015 This document has several purposes: To explain what website maintenance is and why it's critical

More information

3 Some Integer Functions

3 Some Integer Functions 3 Some Integer Functions A Pair of Fundamental Integer Functions The integer function that is the heart of this section is the modulo function. However, before getting to it, let us look at some very simple

More information

Introduction to Logistic Regression

Introduction to Logistic Regression OpenStax-CNX module: m42090 1 Introduction to Logistic Regression Dan Calderon This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract Gives introduction

More information

Price Dispersion. Ed Hopkins Economics University of Edinburgh Edinburgh EH8 9JY, UK. November, 2006. Abstract

Price Dispersion. Ed Hopkins Economics University of Edinburgh Edinburgh EH8 9JY, UK. November, 2006. Abstract Price Dispersion Ed Hopkins Economics University of Edinburgh Edinburgh EH8 9JY, UK November, 2006 Abstract A brief survey of the economics of price dispersion, written for the New Palgrave Dictionary

More information

Benefits of Machine Learning. with Behavioral Analysis in Detection of Advanced Persistent Threats WHITE PAPER

Benefits of Machine Learning. with Behavioral Analysis in Detection of Advanced Persistent Threats WHITE PAPER Benefits of Machine Learning with Behavioral Analysis in Detection of Advanced Persistent Threats WHITE PAPER Overview The Evolution of Advanced Persistent Threat Detection Computer viruses have plagued

More information

A prolog based HIPAA online compliance auditor

A prolog based HIPAA online compliance auditor A prolog based HIPAA online compliance auditor Anthony Ho Sharada Sundaram March 20, 2008 1 Introduction With the passing of HIPAA in 1996, multiple health-organizations have become increasingly interested

More information

A Better Understanding of the Effects of Software Defects in Weather Simulation

A Better Understanding of the Effects of Software Defects in Weather Simulation Dongping Xu Department of Electrical and Computer Engineering xdp@iastate.edu WRF/MM5 User s Workshop, Boulder, CO, June 22-25, 2004, pp. 225-228. A Better Understanding of the Effects of Software Defects

More information

Complete Web Application Security. Phase1-Building Web Application Security into Your Development Process

Complete Web Application Security. Phase1-Building Web Application Security into Your Development Process Complete Web Application Security Phase1-Building Web Application Security into Your Development Process Table of Contents Introduction 3 Thinking of security as a process 4 The Development Life Cycle

More information

Automated Testing Tool

Automated Testing Tool Automated Testing Tool Damon Courtney, Gerald Lester, Lauren Vaughn and Tim Thompson October 2, 2006 Abstract This paper presents details of the design and implementation of a Automated Testing Tool for

More information

Position Paper: Validation of Distributed Enterprise Data is Necessary, and RIF can Help

Position Paper: Validation of Distributed Enterprise Data is Necessary, and RIF can Help Position Paper: Validation of Distributed Enterprise Data is Necessary, and RIF can Help David Schaengold Director of Business Solutions Revelytix, Inc Sept 19, 2011, Revised Oct 17, 2011 Overview Revelytix

More information

Architecture bits. (Chromosome) (Evolved chromosome) Downloading. Downloading PLD. GA operation Architecture bits

Architecture bits. (Chromosome) (Evolved chromosome) Downloading. Downloading PLD. GA operation Architecture bits A Pattern Recognition System Using Evolvable Hardware Masaya Iwata 1 Isamu Kajitani 2 Hitoshi Yamada 2 Hitoshi Iba 1 Tetsuya Higuchi 1 1 1-1-4,Umezono,Tsukuba,Ibaraki,305,Japan Electrotechnical Laboratory

More information