A Top-Down Approach to Identifying and Defining Words for Lyee Using Condition Data Flow Diagrams

Size: px
Start display at page:

Download "A Top-Down Approach to Identifying and Defining Words for Lyee Using Condition Data Flow Diagrams"

Transcription

1 A Top-Down Approach to Identifying and Defining Words for Lyee Using Condition Data Flow Diagrams Shaoying LIU Department of Computer Science Faculty of Computer and Information Sciences Hosei University, Tokyo, Japan URL: Abstract. We present a top-down approach to identifying and defining words for the Lyee system using the visual formalism known as Condition Data Flow Diagram used in the SOFL (Structured Object-Oriented Formal Language) formal engineering method. The proposed technique can assist the analyst to identify effectively the necessary words as outputs of operations in a structured manner and to represent the relations among words in a visual formalism. 1 Introduction The most important concern in writing a program for the Lyee (GovernmentaL MethodologY for SoftwarE ProvidencE) System is centered on the definitions of words. A word represents a data element and is usually defined in terms of other words or constants (concrete values of certain types) [1]. From the Lyee s point of view, a software is an operation producing an output word based on input words or constants. Once all the necessary words are defined precisely and necessary inputs for the definitions are given, regardless of the order in which the definitions of words are organized, the Lyee system can automatically work out the concrete value for the output word. It is claimed that an advantage of the Lyee paradigm of programming over the traditional programming paradigms (e.g., imperative programming) is to allow the programer or analyst to concentrate on the definitions of data elements (words in Lyee) without the need of considering how they are organized [1]. However, several problems need to be addressed before a correct Lyee program, a collection of definitions of words, can be constructed. The first one is how to know what words for a specific system need to be defined; whether the identified words are complete; and whether those definitions are consistent. The second problem is how to represent the definitions so that they will be easily understood by both the customer and the analyst. This point is important especially when dealing with large-scale systems. Another problem is how to find out appropriate expressions for defining the words. For example, suppose we know that word a 1 is defined in terms of words a 2 and a 3, represented formally as a 1 = E(a 2,a 3 )

2 but have no idea of how a 2 and a 3 can be used to define a 1 at the moment. The details of E is actually expected to be clarified as the analysis of the user requirements proceeds. To address these problems, a systematic method and comprehensible notation are helpful. In this paper we adopt the visual formalism known as Condition Data Flow Diagram, or CDFD for short, as a method and notation for identifying and defining words in a top-down and modular manner. As the brief introduction to this visual formalism in section 2 reveals, CDFD is a formalization of traditional Data Flow Diagram by integrating it with Petri nets and pre-postcondition notation. It allows one to describe comprehensibly all the related definitions of a word and to decompose an abstract definition of a word into detailed definition given in terms of other lower level words. Since the entire architecture of the word definitions can be organized as a hierarchy of CDFDs, the modularity of the entire word definitions can be achieved, which will help verification and evolution of the definitions. To make necessary distinction between CDFD representations and Lyee style definitions of words, we call the word definitions in CDFDs specification while the original Lyee style word definitions program. The rest of the paper is organized as follows. Section 2 gives a brief introduction to CDFDs while section 3 explains how they can be used to define words in a hierarchical manner. In section 4 I elaborate how data abstraction can help achieve high levels of functional abstraction before the system is implemented in Lyee, and section 5 gives an example to show the application of CDFDs leading to Lyee programs. Finally, in section 6 I give conclusions and outline the future research. 2 Brief Introduction to CDFD CDFD is a graphical notation for modeling system functions by defining data flows among processes. It is part of the SOFL (S tructured Object-Oriented F ormal Language) specification language, usually used for describing the architecture of specification. It was designed initially by integrating Data Flow Diagrams (DFD), Petri nets, and the formal specification language VDM-SL (Vienna Development Method - Specification Language) in 1992 as the result of my doctoral research project, and extended later to include Object-Oriented features based on my research efforts in collaboration with many international researchers over last ten years. SOFL has been applied to system modeling and design in both industrial and research projects [2][3]. A CDFD is usually composed of three kinds of components: processes, data flows, and data stores, as depicted by Figure 1. A process, represented graphically by a box, models a transformation from its input to output. For example, process P transforms input data flows a and b and generates two output data flows c and d, while process Q takes data flow c and produces either f or g but not both (this exclusive-or relationship between f and g is indicated by the short horizontal line between them). A data flow indicates that a data element moving from one process to another. For example, data flow c shows that a data element bound to c moves from process P to Q while d represents a data flow from P to W. A data store represents data depository (like a file or database), which can be accessed or updated by processes during their executions. For instance, data store s1, numbered 1, is updated by process P, indicated by the directed line from P to s1, whereas store s2 is read by both process Q and W, denoted by the directed lines from s2 to both Q and W. A CDFD is different from a traditional DFD like Yourdon s [4] in several ways. Firstly, A CDFD has an operational semantics [5] like Petri nets [6] whereas a DFD has

3 c Q f g a b P d e W h r Figure 1: An example of CDFD none. Take the CDFD in Figure 1 as an example. When both data flows a and b are available, process P is enabled and will be executed once its output data flows become unavailable. The execution will result in the generation of data flows c and d, which move to process Q and W, respectively. Then process Q executes and either f or g is produced. In the meanwhile, process W may also execute to generate both h and r. The executions of process Q and W can be performed in parallel. Secondly, the functionality of each process is defined with a pair of pre and postconditions, describing the condition that must be met by input data flows before the execution of the process and the condition that must be met by output data flows after the execution, respectively, whereas there is the lack of such a formal definition in DFDs. For example, we can define process P in an abstract form as follows: P (a, b; c, d; s1):[a>0 b>0, c= a + b d>a b s1 = s1 +a b] Where a>0 b>0 is the precondition; c = a + b d>a b s1 = s1 +a b is the postcondition of process P; and s1 denotes the intial value of variable s1 before the execution of P. Note that the output data flows c and d as well as store s1 are defined based on the input data flows a and b in the postcondition, but not necessarily in a deterministic manner. For example, data flow c is defined in a deterministic manner as c = a + b (c is equal to the sum of a and b) whereas data flow d is defined in a non-deterministic manner as d>a b (d is greater than the product of a and b). Finally, the relationships between either input data flows or output data flows of a process are precisely defined in CDFDs (e.g., data flows a and b are both required for execution of process P whereas only one of data flows d and e is necessary for execution of process W ), but such relationships in DFDs are ambiguous at the diagram level. Processes in a CDFD can be decomposed into the next lower level CDFDs if it is necessary to describe in detail how the inputs of the processes are transformed into their outputs. For example, assume that defining the functionality of process Q needs some intermediate data flows to bridge its input data flow c and output data flow f or g. In this case, it is reasonable to decompose Q into a lower level CDFD, as shown in Figure 2. To ensure the structural consistency between the decomposition and process Q, the input data flow to and the output data flows from the entire decomposed CDFD must be the same as those of process Q, respectively. Semantically, the decomposition of process Q refines the specification of Q given in the form of pre and postconditions.

4 f Q2 x y c Q1 Q3 g Figure 2: A decomposition of process Q That is, eventually process Q can be replaced by its decomposition in the CDFD of Figure 1. Since the aim of this paper is to adopt CDFDs for defining words in Lyee programs, I do not introduce the other constructs associated with CDFDs in the SOFL specification language. Readers who are interested in the detail of SOFL can refer to our previous publications on SOFL [7][8][9][10]. 3 Defining words using CDFDs To help identify and define necessary words for a specific software system, I suggest that top-down approach be taken based on CDFDs. Since programming using Lyee starts with identifying and defining the output words of the entire system (sometimes it may be a subsystem of a large one) in terms of other words, it is natural to use a process for the abstraction of such a definition whose output data flows denote the desired output words and input data flows represent the other necessary words in the definition. If the relation between the output words and input words cannot be defined deterministically for some reason (e.g., lacking necessary details), the process can be decomposed into a lower level CDFD so that the output words can be defined based on its input words through some intermediate words. This way will give the analyst opportunities to identify and define additional words necessary to the system, such as the intermediate words involved in the decompositions of high level processes. 3.1 Liner definitions By a liner definition of a word I mean that the word is defined based on other words without involving choices and recursive definitions. A simple example may help us explain how such a definition can be represented by a CDFD. Suppose we define words a, b, c, d, andf as follows: a = E 1 (b, c) (1) b = E 2 (d, f ) c = E 3 (4, 10) d =20 f =50 and we do not know exactly how E 1, E 2,andE 3 should be defined at the moment. These definitions are represented by the CDFD in Figure 3. The processes involved in this CDFD are defined as follows:

5 20 D d B 50 F f b A a 4 10 C c Figure 3: A CDFD representing the definitions of the words A(b, c; a;) : [true, a = E 1 (b, c)] B(d, f ; b;) : [true, b = E 2 (d, f )] C(4, 10; c;) : [true, c = E 3 (4, 10)] D(20; d;) : [true, d = 20] F (50; f ;) : [true, f = 50] The precondition of each process, such as A, means that there is no specific constraint on its input data flows (words in this particular case). Since we may not be able to build some expressions for defining the output words, such as E 1 and E 2,weneed to decompose them into the next lower level CDFDs, respectively, to figure out how the expressions can be defined in terms of some other lower level words. For example, suppose process A is decomposed into the CDFD in Figure 4. Thus, the definition of word a given previously will become: a = E1 1 (q3) q3 =E 2 1 (q1,q2) q1 =E 3 1 (b) q2 =E1 4 (c) Where E i 1(i =1..4) denote expressions. By replacing the definition of word a in (1), we update the definitions of the words to produce the following list: a = E1(q3) 1 q3=e1(q1,q2) 2 q1=e1(b) 3 q2=e1(c) 4 b = E 2 (d, f) c = E 3 (4,10) d =20 f =50 Of course, the decomposition of high level processes defining words can continue, if necessary, until all the words are defined in a deterministic manner. Note that the diagram of CDFD gives a two dimension representation of the words; it clearly shows which words are used to define which other words, while the formal definition of the related processes using pre and postconditions gives a precise formula for defining words.

6 b W1 q1 W3 c W2 q2 q3 W4 a Figure 4: The decomposition of process A Figure 5: A graphical representation of choice construct Therefore, the diagram and the process specifications are complementary in defining words. 3.2 Choice A choice of executing different statements for different results is a common construct in many programming languages, but in Lyee such a choice is reflected when the same word is defined using different other words and expressions (computation formula). It seems that unlike normal programming languages, the condition for deciding which definition of the same word will be used to compute its value is not given clearly; instead, the decision will be made based on the availability of the constituent words of the word in its definition. For example, suppose word w is defined as a choice as follows: (1) w = a x + c (2) w = b x + d In (1) w is defined in terms of the words: a, x, and c; but in (2) w is defined using: b, x, andd. Such definitions can be represented graphically as the process in Figure 5. Originally this process means that when either a, c, andx or d, b, andx are available, process A will execute and will generate w. In other words, which group of the data flows are used to generate w will depend on the availability of all the data flows in that group. This semantics is just well-suited for representing the definition of w as a choice. The formal textual specification of process A is: A(a, c, x x, b, d; w; ): [true, w = a x + c w = b x + d]

7 w a e Q c x P w a a 10 R f Figure 6: A CDFD for the recursive definition 3.3 Recursion Another possible structure in Lyee programs is recursive definitions of words. Consider the definition of word w below as an example. w = a x + c x = e + f f = a w f = a +10 Word w is defined using a, x, and c; x is defined in terms of e and f; and f is defined as a choice: either using a and w or a and 10. Thus, w is possibly defined recursively, that is, within the definition of w, w is used to define another word. Such a recursive definition is described by the CDFD in Figure 6. 4 Data abstraction In the SOFL specification language that uses CDFDs for descriptions of specification architecture, not only are data items of basic types, such as integers, real numbers, and characters, but several compound data types can also be used to define data flows. Thus, it enables us to achieve high levels of abstraction. In this section I give several examples to explain how the compound data types available in SOFL can be used to model complicated words. Suppose a word is expected to represent a collection of elements or values, it does not seem to have an easy way to express it in Lyee. But this can be done easily using a value of a set type in SOFL. Assume word w is used to hold such a compound data item. Then we declare it as: w : set of int; Thus, w may take the following values, each being a set of integers. (1) w = {3, 6, 9, 12} (2) w = {5, 15, 25} (3) w = {10, 20, 30, 40, 50}

8 If duplication of elements is allowed in a word of set type or the order of the occurrences of elements is significant in determining the feature of the word, we can use another type, known as sequence, to define the word, for example, w : seq of int; Thus, w may take the following values: (1) w =[3, 6, 9, 6, 12, 9] (2) w =[5, 15, 25, 35] (3) w = [10, 20, 20, 10, 30] If word w is expected to describe a composite value that has several fields, then we declare it as: w : composed of f 1 : TY 1 f 2 : TY 2... f n : TY n end; With this declaration the fields f 1, f 2,..., f n of word w will be accessed or updated, depending on the operations applied to them. For example, w can take the following composite value: w.f 1 =10 w.f 2 =20 w.f 3 =30 Where n =3. In addition to set, sequence, and composite types, there are also other types in SOFL, such as map types and union types. But since they are too complicated for abstraction of Lyee programs, I do not elaborate them here. The details of these types are given in our previous publications [7][11]. 5 Example I give an example to show the process of first using CDFDs to model the user requirements and then transforming it into Lyee-like word definitions. The system we deal withisacash Dispenser. 5.1 System description Suppose the cash dispenser is required to have the following functions: (1) Provide the buttons for showing the balance of, and withdraw money from, the account. (2) Insert a cashcard and supply a password. (3) If showing the balance is selected, the current balance is displayed. (4) If withdraw is selected, the requested amount of the money is withdrawn.

9 1 card_id amount account1 Withdraw e_msg cash Receive_ Command sel pr_meg pass account2 Show_ Balance balance Figure 7: The CDFD modeling a simplifed cash dispenser To model this system, we draw the CDFD in Figure 7. The overall output data flow, representing a word in Lyee s term, of the system is either withdrawn cash or displayed account balance. In addition to these two outputs, error messages, as a kind of output, may also be possible, such as e_meg and pr_meg given in the CDFD. The diagram conveys the user functional requirements and the dependency relations between the functions represented by the processes in the diagram. The selection of balance, denoting the command of showing the balance or w_draw, denoting the command of withdraw, is handled by the process Receive_Command. This process then generates a data flow sel to indicate which command has actually been selected, and passes this information to the process Check_P assword. When the requested cash card card_id and password pass are provided, this process will check whether the provided account exists in the system account database account_file, and if so, whether the password pass is the same as that of the account. If these pieces of information are confirmed, the process Check_P assword will pass the account information, denoted by account1 or account2, to either the process W ithdraw or Show_Balance, depending upon the value of data flow sel. If these pieces of information are, however, not be confirmed, an error message pr_meg will be issued. The process W ithdraw updates the account_file by reducing the amount from the current balance of the account1 if the requested amount of money is less or equal to the current balance. However, if this is not the case, the process will generate an error message to show that the amount requested is invalid. The process Show_Balance takes the confirmed account denoted by account2, which is the same as account1 in contents, and displays the current balance of the account, which is represented by the data flow balance. In contrast with the informal functional specification given at the beginning of this section, the functional abstraction expressed by the CDFD is obviously more precise and comprehensible in modeling the dependency relations between processes. To completely define the CDFD, all the processes, data flows, and stores must be defined precisely in a proper manner. To achieve this goal, we adopt the module structure in SOFL to provide a formal specification of the CDFD. The module for the cash dispenser is given as follows: module SYSTEM_Cash_Dispenser /* This module is the top level module.*/ type

10 Account = composed of account_no: nat password: nat balance: real end var ext #account_file: set of Account; /* the account_file is an external store that exists independently of the cash dispenser. */ inv forall[x: Account] 1000 <= x.password <= 9999; /* The password of every account must be a natural number with four digits. */ behav CDFD_1; /* Assume the cash dispenser CDFD is numbered 1. */ process Init() ext account_file post account_file = ~account_file end_process; /* The initialization process does nothing in updating the local store because there is no local store in the CDFD to initialize. */ process Receive_Command(balance: sign w_draw: sign) sel: bool post balance <> nil and sel = true or w_draw <> nil and sel = false comment This process recognizes the input command: show balance or withdraw cash. The output data flow sel is set to true if the command is showing balance; otherwise if the command is withdrawing cash, sel is set to false. end_process; process Check_P assword(card_id: nat, sel: bool, pass: nat) account1: Account pr_meg: string account2: Account ext rd account_file /*The type of this variable is omitted because this external variable has been declared in the var section. */ post sel = false and (exists![x: account_file] x.account_no = card_id and x.password = pass and account1 = x) or sel = true and (exists![x: account_file] x.account_no = card_id and

11 x.password = pass and account2 = x) or not (exists![x: account_file] x.account_no = card_id and x.password = pass) and pr_meg = Reenter your password or insert the correct card comment If sel is false and the input card_id and pass are correct with respect to the exiting information in account_file, the account information is passed to the output account1. If sel is true and the input card_id and pass are correct, the account information is passed to the output account2. However, if neither the card_id nor pass is correct, a prompt message pr_meg is given. end_process; process W ithdraw(amount: real, account1: Account) e_msg: string cash: real ext rw account_file pre account1 inset account_file /*input account1 must exist in the account_file*/ post (exists[x: account_file] x = account1 and x.balance >= amount and cash = amount) and account_file = union(diff(~account_file, {account1}), {modify(account1, balance -> account1.balance - amount)}) or not exists[x: account_file] x = account1 and x.balance >= amount and e_meg = The amount is too big ) comment The required precondition is that input account1 must belong to the account_file. If the request amount to withdraw is smaller than the balance of the account, the cash will be withdrawn. On the other hand, if the request amount is bigger than the balance of the account, an error message The amount is too big will be issued. end_process; process Show_Balance(account2: Account) balance: real post balance = account2.balance; end_process; end_module; Since there is no local store in the CDFD of this module, the initialization process Init does nothing in updating the local stores of the CDFD, as indicated by the postcondition of Init. Some relatively complicated process specifications are explained informally in the comment parts, such as processes Receive_Command, Check_P assword, and W ithdraw, but for the simple process like Show_Balance no comment is provided.

12 Notice that several operators defined in set types and composite types are used, such as union(), diff(), modify(), etc. Briefly speaking, the operation union(x, y) is the union of the two sets x and y; diff (x, y) yields the set whose elements belong to x but not y; andmodify(x, f >v1) yields a new composite object from the given composite object x by replacing the value of its field f with v Transformation Suppose this specification is verified and validated to meet the user requirements. We then need to transform it into a Lyee program for possible execution by the Lyee system. Two issues given below need to be addressed for the transformation. Derivation of the structure of word definitions in terms of the word relations based on the CDFD. Generation of the computation formulas used in the definitions of words based on the formal specification of the processes involved in the CDFD. These two issues are actually related closely with each other. If the specification of process is described implicitly, meaning that the relation between the input data flows and output data flows are written in a predicate, it is difficult to give a general rule for the derivation of the structure of word definitions and the associated computation formula. However, if the relation is described explicitly, meaning that the output data flows are defined with an expression, the structure of word definitions and the computation formula can be derived easily. Since most processes in the Cash Dispenser example are given in an implicit manner, their transformation into word definitions requires additional efforts from the programer. Since there is no sufficient knowledge about how to deal with this kind of problem in Lyee, I would like to leave this topic for discussion at the workshop. 6 Conclusions and future research I have presented a top-down approach to identifying and defining words for the Lyee system using the visual formalism known as Condition Data Flow Diagram used in the SOFL (Structured Object-Oriented Formal Language) formal engineering method. The proposed technique allows the analyst to identify effectively the necessary words as outputs of operations (processes) in a structured manner and to represent the relations among words in a visual formalism. Also, due to the availability of abstract data types in SOFL, such as set, sequence, and composite types, the functions of processes defining words can be expressed with a high level of abstraction, which allows the analyst to focus on the functions of the system before undertaking its implementation. To make the proposed technique really useful in supporting Lyee programming, we need to provide effective techniques and tool support for transforming a CDFD into a set of word definitions. I am interested in the investigation of this issue in the future. 7 Acknowledgement I would like to thank Prof. Hamid Fujita for his support and encouragement for this research.

13 References [1] The Institute of Computer Based Software Methodology and Technology, Introduction to Lyee - Revolution by Automatic Software Development, Distributed booklet, [2] Shaoying Liu, Masashi Asuka, Kiyotoshi Komaya, and Yasuaki Nakamura, Applying SOFL to Specify A Railway Crossing Controller for Industry, in Proceedings of 1998 IEEE Workshop on Industrial-strength Formal Specification Techniques (WIFT 98), Boca Raton, Florida USA, October , IEEE Computer Society Press. [3] Shaoying Liu, Masaomi Shibata, and Ryuichi Sat, Applying SOFL to Develop a Univeristy Information System, in Proceedings of 1999 Asia-Pacific Software Engineering Conference (APSEC 99), Takamatsu, Japan, December , pp , IEEE Computer Society Press. [4] Edward Yourdon, Modern Structured Analysis, Prentice Hall International, Inc., [5] Chris Ho-Stuart and Shaoying Liu, A Formal Operational Semantics for SOFL, in Proceedings of the 1997 Asia-Pacific Software Engineering Conference, Hong Kong, December 1997, pp , IEEE Computer Society Press. [6] Wilfried Brauer, Grzegorz Rozenberg, and Arto Salomaa, Petri Nets - An Introduction, Springer-Verlag, Berlin Heidelberg, [7] Shaoying Liu, A. Jeff Offutt, Chris Ho-Stuart, Yong Sun, and Mitsuru Ohba, SOFL: A Formal Engineering Methodology for Industrial Applications, IEEE Transactions on Software Engineering, vol. 24, no. 1, pp , January 1998, Special Issue on Formal Methods. [8] Shaoying Liu, Masashi Asuka, Kiyotoshi Komaya, and Yasuaki Nakamura, An Approach to Specifying and Verifying Safety-Critical Systems with Practical Formal Method SOFL, in Proceedings of Fourth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS 98), Monterey, California, USA, August , pp , IEEE Computer Society Press. [9] Shaoying Liu, An Evolution Approach for Software Development Using SOFL Methodology, in Proceedings of International Workshop on Principles of Software Evolution (submitted), [10] Shaoying Liu, Formal Engineering Methods for Information Systems Development, in Proceedings of 2nd International Conference on Information (INFORMATION2002), July. [11] Shaoying Liu, Verifying Consistency and Validity of Formal Specifications by Testing, in Proceedings of World Congress on Formal Methods in the Development of Computing Systems, Jeannette M. Wing, Jim Woodcock, and Jim Davies, Eds., Toulouse, France, September 1999, Lecture Notes in Computer Science, pp , Springer-Verlag.

A GUI and Testing Tool for SOFL

A GUI and Testing Tool for SOFL A GUI and Testing Tool for SOFL Shaoying Liu, Tetsuo Fukuzaki, Koji Miyamoto Hosei University, Japan IBM Japan Hiroshima City University, Japan Abstract SOFL is a formal language and method for system

More information

Integrating UML and SOFL for Object-Oriented Design

Integrating UML and SOFL for Object-Oriented Design Integrating UML and SOFL for Object-Oriented Design Shaoying Liu Department of Computer Science Hosei University, Tokyo, Japan Email: sliu@k.hosei.ac.jp Abstract This paper presents a decompositional approach

More information

item is defined with an appropriate type and each process is defined with a formal, textural notation based on the predicate logic

item is defined with an appropriate type and each process is defined with a formal, textural notation based on the predicate logic 4. The Module Definition 4.1 A module is a functional abstraction: it has a behavior represented by a graphical notation, known as condition data flow diagram (CDFD), and a structure to encapsulate data

More information

Verifying Formal Specifications Using Fault Tree Analysis

Verifying Formal Specifications Using Fault Tree Analysis Verifying Formal Specifications Using Fault Tree Analysis Shaoying Liu Faculty of Computer and Information Sciences Hosei University, Japan email: sliu@k.hosei.ac.jp Abstract Specification before implementation

More information

Verifying Consistency and Validity of Formal Specifications by Testing

Verifying Consistency and Validity of Formal Specifications by Testing Verifying Consistency and Validity of Formal Specifications by Testing Shaoying Liu Faculty of Information Sciences Hiroshima City University, Japan shaoying@cs.hiroshima-cu.ac.jp http://www.sel.cs.hiroshima-cu.ac.jp/

More information

An Investigation of the Approach to Specification-based Program Review through Case Studies

An Investigation of the Approach to Specification-based Program Review through Case Studies An Investigation of the Approach to Specification-based Program Review through Case Studies Fumiko Nagoya, Shaoying Liu, and Yuting Chen Department of Computer Science Faculty of Computer and Information

More information

11. The map types. The outline of this part: What is a map? The type constructor Operators Specification using map

11. The map types. The outline of this part: What is a map? The type constructor Operators Specification using map 11. The map types The outline of this part: What is a map? The type constructor Operators Specification using map 11.1 What is a map? A map is a finite set of pairs, describing a mapping between two sets.

More information

This article was originally published in a journal published by Elsevier, and the attached copy is provided by Elsevier for the author s benefit and for the benefit of the author s institution, for non-commercial

More information

The Semantics of Extended SOFL Λ

The Semantics of Extended SOFL Λ The Semantics of Extended SOFL Λ Jin Song Dong y, Shaoying Liu z y National University of Singapore Email: dongjs@comp.nus.edu.sg z Hosei University, Japan Email: sliu@k.hosei.ac.jp Abstract Recently SOFL

More information

1.1 Software Life Cycle

1.1 Software Life Cycle 1 Introduction The development of complex software systems on a large scale is usually a complicated activity and process. It may involve many developers, possibly with different backgrounds, who need

More information

Restricted Use Case Modeling Approach

Restricted Use Case Modeling Approach RUCM TAO YUE tao@simula.no Simula Research Laboratory Restricted Use Case Modeling Approach User Manual April 2010 Preface Use case modeling is commonly applied to document requirements. Restricted Use

More information

SOFL: A Formal Engineering Methodology for Industrial Applications

SOFL: A Formal Engineering Methodology for Industrial Applications 24 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 24, NO. 1, JANUARY 1998 SOFL: A Formal Engineering Methodology for Industrial Applications Shaoying Liu, Member, IEEE Computer Society, A. Jeff Offutt,

More information

AUTOMATED VISUALIZATION OF INPUT/ OUTPUT FOR PROCESSES IN SOFL FORMAL SPECIFICATIONS

AUTOMATED VISUALIZATION OF INPUT/ OUTPUT FOR PROCESSES IN SOFL FORMAL SPECIFICATIONS AUTOMATED VISUALIZATION OF INPUT/ OUTPUT FOR PROCESSES IN SOFL FORMAL SPECIFICATIONS Yu Chen 1 and Shaoying Liu 2 1 Graduate School of Computer and Information Sciences, Hosei University, Japan 2 Faculty

More information

Business Process Modelling

Business Process Modelling CS565 - Business Process & Workflow Management Systems Business Process Modelling CS 565 - Lecture 2 20/2/17 1 Business Process Lifecycle Enactment: Operation Monitoring Maintenance Evaluation: Process

More information

An Automatic Test Case Generator for Testing Safety-Critical Software Systems

An Automatic Test Case Generator for Testing Safety-Critical Software Systems An Automatic Test Case Generator for Testing Safety-Critical Software Systems Mehdi Malekzadeh Faculty of Computer Science and IT University of Malaya Kuala Lumpur, Malaysia mehdi_malekzadeh@perdana.um.edu.my

More information

Formal Methods. CITS5501 Software Testing and Quality Assurance

Formal Methods. CITS5501 Software Testing and Quality Assurance Formal Methods CITS5501 Software Testing and Quality Assurance Pressman, R. Software Engineering: A Practitioner s Approach. Chapter 28. McGraw-Hill, 2005 The Science of Programming, David Gries, 1981

More information

3.7 Denotational Semantics

3.7 Denotational Semantics 3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These

More information

Automatic Specification-Based Program Testing

Automatic Specification-Based Program Testing Automatic Specification-Based Program Testing Shaoying Liu Department of Computer Science Faculty of Computer and Information Sciences Hosei University, Tokyo, Japan Email: sliu@hosei.ac.jp HP: http://cis.k.hosei.ac.jp/~sliu/

More information

Reasoning About Imperative Programs. COS 441 Slides 10

Reasoning About Imperative Programs. COS 441 Slides 10 Reasoning About Imperative Programs COS 441 Slides 10 The last few weeks Agenda reasoning about functional programming It s very simple and very uniform: substitution of equal expressions for equal expressions

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Induction and Semantics in Dafny

Induction and Semantics in Dafny 15-414 Lecture 11 1 Instructor: Matt Fredrikson Induction and Semantics in Dafny TA: Ryan Wagner Encoding the syntax of Imp Recall the abstract syntax of Imp: a AExp ::= n Z x Var a 1 + a 2 b BExp ::=

More information

Modeling Systems Using Design Patterns

Modeling Systems Using Design Patterns Modeling Systems Using Design Patterns Jaroslav JAKUBÍK Slovak University of Technology Faculty of Informatics and Information Technologies Ilkovičova 3, 842 16 Bratislava, Slovakia jakubik@fiit.stuba.sk

More information

Lecture 3: Recursion; Structural Induction

Lecture 3: Recursion; Structural Induction 15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion

More information

UML Is Not a Methodology

UML Is Not a Methodology UML COSC 4354 1 UML Is Not a Methodology UML is an acronym for Unified Modeling Language UML is a language A language is simply a tool for communication and exchanging ideas UML is a notation, not a methodology

More information

Predicting and Learning Executability of Composite Web Services

Predicting and Learning Executability of Composite Web Services Predicting and Learning Executability of Composite Web Services Masahiro Tanaka and Toru Ishida Department of Social Informatics, Kyoto University Kyoto 606-8501 Japan mtanaka@ai.soc.i.kyoto-u.ac.jp, ishida@i.kyoto-u.ac.jp

More information

The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language

More information

An Agent Modeling Language Implementing Protocols through Capabilities

An Agent Modeling Language Implementing Protocols through Capabilities An Agent Modeling Language Implementing Protocols through Capabilities Nikolaos Spanoudakis 1,2 1 Technical University of Crete, Greece nikos@science.tuc.gr Pavlos Moraitis 2 2 Paris Descartes University,

More information

DESIGN AND IMPLEMENTATION OF AUTOMATED VISUALIZATION FOR INPUT / OUTPUT FOR PROCESSES IN SOFL FORMAL SPECIFICATIONS

DESIGN AND IMPLEMENTATION OF AUTOMATED VISUALIZATION FOR INPUT / OUTPUT FOR PROCESSES IN SOFL FORMAL SPECIFICATIONS DESIGN AND IMPLEMENTATION OF AUTOMATED VISUALIZATION FOR INPUT / OUTPUT FOR PROCESSES IN SOFL FORMAL SPECIFICATIONS Yu Chen 1 and Shaoying Liu 2 1 Graduate School of Computer and Information Sciences,

More information

These notes are intended exclusively for the personal usage of the students of CS352 at Cal Poly Pomona. Any other usage is prohibited without

These notes are intended exclusively for the personal usage of the students of CS352 at Cal Poly Pomona. Any other usage is prohibited without These notes are intended exclusively for the personal usage of the students of CS352 at Cal Poly Pomona. Any other usage is prohibited without previous written authorization. 1 2 The simplest way to create

More information

The Conference Review System with WSDM

The Conference Review System with WSDM The Conference Review System with WSDM Olga De Troyer, Sven Casteleyn Vrije Universiteit Brussel WISE Research group Pleinlaan 2, B-1050 Brussel, Belgium Olga.DeTroyer@vub.ac.be, svcastel@vub.ac.be 1 Introduction

More information

Transformation of analysis model to design model

Transformation of analysis model to design model 2010 International Conference on E-business, Management and Economics IPEDR vol.3 (2011) (2011) IACSIT Press, Hong Kong Transformation of analysis model to design model Lalji Prasad Truba College of Engineering

More information

USE CASE BASED REQUIREMENTS VERIFICATION

USE CASE BASED REQUIREMENTS VERIFICATION USE CASE BASED REQUIREMENTS VERIFICATION Verifying the consistency between use cases and assertions Stéphane S. Somé, Divya K. Nair School of Information Technology and Engineering (SITE), University of

More information

A Partial Correctness Proof for Programs with Decided Specifications

A Partial Correctness Proof for Programs with Decided Specifications Applied Mathematics & Information Sciences 1(2)(2007), 195-202 An International Journal c 2007 Dixie W Publishing Corporation, U. S. A. A Partial Correctness Proof for Programs with Decided Specifications

More information

Answer: the hierarchy of DFDs for the Cash Dispenser is shown in Figure 4.

Answer: the hierarchy of DFDs for the Cash Dispenser is shown in Figure 4. The answers for the exercises of Program Design as a reference) Exercise 1 1. Use a T.V. set as an example to explain the following concepts: (1) Reliability: we use a TV set as an example to explain all

More information

Chapter 1 Introduction

Chapter 1 Introduction Chapter 1 Introduction We hardly need to point out the importance of business process modelling and of respective automation in this place (see, e.g. [39, 45, 58, 110, 141]). Also the advantages and shortcomings

More information

Proving the Correctness of Distributed Algorithms using TLA

Proving the Correctness of Distributed Algorithms using TLA Proving the Correctness of Distributed Algorithms using TLA Khushboo Kanjani, khush@cs.tamu.edu, Texas A & M University 11 May 2007 Abstract This work is a summary of the Temporal Logic of Actions(TLA)

More information

Structure of Abstract Syntax trees for Colored Nets in PNML

Structure of Abstract Syntax trees for Colored Nets in PNML Structure of Abstract Syntax trees for Colored Nets in PNML F. Kordon & L. Petrucci Fabrice.Kordon@lip6.fr Laure.Petrucci@lipn.univ-paris13.fr version 0.2 (draft) June 26, 2004 Abstract Formalising the

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

Functional Modeling with Data Flow Diagrams

Functional Modeling with Data Flow Diagrams Functional Modeling with Data Flow Diagrams Amasi Elbakush 5771668 Teaching Assistant : Daniel Alami Utrecht University 1 Introduction Data Flow Diagrams (DFDs) are a visual representation of the flow

More information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan Institute of Engineering & Technology for Diploma Studies REQUIREMENTS GATHERING AND ANALYSIS The analyst starts requirement gathering activity by collecting all information that could be useful to develop system. In practice it is very difficult to gather all

More information

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur Module 3 Requirements Analysis and Specification Lesson 6 Formal Requirements Specification Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a formal

More information

SCOS-2000 Technical Note

SCOS-2000 Technical Note SCOS-2000 Technical Note MDA Study Prototyping Technical Note Document Reference: Document Status: Issue 1.0 Prepared By: Eugenio Zanatta MDA Study Prototyping Page: 2 Action Name Date Signature Prepared

More information

Configuration management for Lyee software

Configuration management for Lyee software Knowledge-Based Systems 16 (2003) 441 447 www.elsevier.com/locate/knosys Configuration management for Lyee software V. Gruhn*, R. Ijioui, D. Peters, C. Schäfer Faculty of Mathematics and Computer Science,

More information

Form Identifying. Figure 1 A typical HTML form

Form Identifying. Figure 1 A typical HTML form Table of Contents Form Identifying... 2 1. Introduction... 2 2. Related work... 2 3. Basic elements in an HTML from... 3 4. Logic structure of an HTML form... 4 5. Implementation of Form Identifying...

More information

LECTURE 8: SETS. Software Engineering Mike Wooldridge

LECTURE 8: SETS. Software Engineering Mike Wooldridge LECTURE 8: SETS Mike Wooldridge 1 What is a Set? The concept of a set is used throughout mathematics; its formal definition matches closely our intuitive understanding of the word. Definition: A set is

More information

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček Lecture 5 STRUCTURED ANALYSIS PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall 2015 1 Outline ² Yourdon Modern Structured Analysis (YMSA) Context diagram (CD) Data flow diagram

More information

FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT

FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT Otthein Herzog IBM Germany, Dept. 3100 P.O.Box 80 0880 D-7000 STUTTGART, F. R. G. ABSTRACT tn the IBM Boeblingen Laboratory some software was

More information

An Automatic Tool for Checking Consistency between Data Flow Diagrams (DFDs)

An Automatic Tool for Checking Consistency between Data Flow Diagrams (DFDs) An Automatic Tool for Checking Consistency between Data Flow Diagrams (DFDs) Rosziati Ibrahim, Siow Yen Yen Abstract System development life cycle (SDLC) is a process uses during the development of any

More information

System Analysis & design

System Analysis & design Assiut University Faculty of Computers and Information System Analysis & design Year 2 Academic Year 2014/ 2015 Term (2) 5 A PICTURE IS WORTH A 1,000 WORDS A process model is a graphical way of representing

More information

Guarded Operations, Refinement and Simulation

Guarded Operations, Refinement and Simulation Guarded Operations, Refinement and Simulation Steve Reeves and David Streader Department of Computer Science University of Waikato Hamilton, New Zealand stever,dstr@cs.waikato.ac.nz Abstract Simulation

More information

Software Engineering: Integration Requirements

Software Engineering: Integration Requirements Software Engineering: Integration Requirements AYAZ ISAZADEH Department of Computer Science Tabriz University Tabriz, IRAN Abstract: - This paper presents a discussion of software integration requirements,

More information

THE TASK-TO-PRESENTATION-DIALOG MAPPING PROBLEM

THE TASK-TO-PRESENTATION-DIALOG MAPPING PROBLEM THE TSK-TO-PRESENTTION-LOG MPNG PROBLEM Quentin Limbourg and Jean Vanderdonckt Université catholique de Louvain, Place des Doyens, 1 B-1348 Louvain-la-Neuve, Belgium {Limbourg, Vanderdonckt}@isys.ucl.ac.be

More information

CS Lecture 19: Loop invariants

CS Lecture 19: Loop invariants CS 1110 Lecture 19: Loop invariants Announcements Prelim 2 conflicts Today (April 2) is two weeks before the prelim, and the deadline for submitting prelim conflicts. Instructor travel This week and the

More information

(Refer Slide Time: 4:00)

(Refer Slide Time: 4:00) Principles of Programming Languages Dr. S. Arun Kumar Department of Computer Science & Engineering Indian Institute of Technology, Delhi Lecture - 38 Meanings Let us look at abstracts namely functional

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 3 September 5, 2018 Value-Oriented Programming (continued) Lists and Recursion CIS 120 Announcements Homework 1: OCaml Finger Exercises Due: Tuesday

More information

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II)

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) Software Engineering Prof.N.L.Sarda IIT Bombay Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue our discussion on process modeling. In the previous lecture

More information

CS4215 Programming Language Implementation. Martin Henz

CS4215 Programming Language Implementation. Martin Henz CS4215 Programming Language Implementation Martin Henz Thursday 26 January, 2012 2 Chapter 4 The Language simpl In this chapter, we are exting the language epl in order to provide a more powerful programming

More information

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia Topic: Software Verification, Validation and Testing Software Engineering Faculty of Computing Universiti Teknologi Malaysia 2016 Software Engineering 2 Recap on SDLC Phases & Artefacts Domain Analysis

More information

Modeling Crisis Management System With the Restricted Use Case Modeling Approach

Modeling Crisis Management System With the Restricted Use Case Modeling Approach Modeling Crisis Management System With the Restricted Use Case Modeling Approach Gong Zhang 1, Tao Yue 2, and Shaukat Ali 3 1 School of Computer Science and Engineering, Beihang University, Beijing, China

More information

Topic Formal Methods. ICS 121 Lecture Notes. What are Formal Methods? What are Formal Methods? Formal Specification in Software Development

Topic Formal Methods. ICS 121 Lecture Notes. What are Formal Methods? What are Formal Methods? Formal Specification in Software Development Lecture Notes What are? 1 Formal Method (FM) = specification language + formal reasoning Body of techniques supported by precise mathematics powerful analysis tools Rigorous effective mechanisms for system

More information

XIV. The Requirements Specification Document (RSD)

XIV. The Requirements Specification Document (RSD) XIV. The Requirements Specification Document (RSD) What is a RSD? What to include/not include in a RSD? Attributes of a Well-Written RSD Organization of a RSD Sample Table of Contents An Example 2002 John

More information

CS112 Lecture: Variables, Expressions, Computation, Constants, Numeric Input-Output

CS112 Lecture: Variables, Expressions, Computation, Constants, Numeric Input-Output CS112 Lecture: Variables, Expressions, Computation, Constants, Numeric Input-Output Last revised January 12, 2006 Objectives: 1. To introduce arithmetic operators and expressions 2. To introduce variables

More information

Shared Variables and Interference

Shared Variables and Interference Solved Shared Variables and Interference CS 536: Science of Programming, Fall 2018 A. Why Parallel programs can coordinate their work using shared variables, but it s important for threads to not interfere

More information

Module 5. Function-Oriented Software Design. Version 2 CSE IIT, Kharagpur

Module 5. Function-Oriented Software Design. Version 2 CSE IIT, Kharagpur Module 5 Function-Oriented Software Design Lesson 12 Structured Design Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the aim of structured design. Explain

More information

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD A Comparison of the Booch Method and Shlaer-Mellor OOA/RD Stephen J. Mellor Project Technology, Inc. 7400 N. Oracle Rd., Suite 365 Tucson Arizona 85704 520 544-2881 http://www.projtech.com 2 May 1993 The

More information

CMSC 330: Organization of Programming Languages

CMSC 330: Organization of Programming Languages CMSC 330: Organization of Programming Languages Operational Semantics CMSC 330 Summer 2018 1 Formal Semantics of a Prog. Lang. Mathematical description of the meaning of programs written in that language

More information

Shared Variables and Interference

Shared Variables and Interference Illinois Institute of Technology Lecture 24 Shared Variables and Interference CS 536: Science of Programming, Spring 2018 A. Why Parallel programs can coordinate their work using shared variables, but

More information

Integration Testing. Conrad Hughes School of Informatics. Slides thanks to Stuart Anderson

Integration Testing. Conrad Hughes School of Informatics. Slides thanks to Stuart Anderson Integration Testing Conrad Hughes School of Informatics Slides thanks to Stuart Anderson 19 February 2010 Software Testing: Lecture 10 1 Unit Test vs Integration Testing 1 The ideal in unit testing is

More information

Lecture-14 Lookup Functions

Lecture-14 Lookup Functions Lecture-14 Lookup Functions How do I write a formula to compute tax rates based on income? Given a product ID, how can I look up the product s price? Suppose that a product s price changes over time. I

More information

Lecture Notes on Ints

Lecture Notes on Ints Lecture Notes on Ints 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 26, 2010 1 Introduction Two fundamental types in almost any programming language are booleans and integers.

More information

Lecture 34 SDLC Phases and UML Diagrams

Lecture 34 SDLC Phases and UML Diagrams That Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 34 SDLC Phases and UML Diagrams Welcome

More information

Evaluation of Commercial Web Engineering Processes

Evaluation of Commercial Web Engineering Processes Evaluation of Commercial Web Engineering Processes Andrew McDonald and Ray Welland Department of Computing Science, University of Glasgow, Glasgow, Scotland. G12 8QQ. {andrew, ray}@dcs.gla.ac.uk, http://www.dcs.gla.ac.uk/

More information

Evolving Algebras and Partial Evaluation

Evolving Algebras and Partial Evaluation Evolving Algebras and Partial Evaluation Yuri Gurevich and James K. Huggins May 21, 2002 Keyword Codes: D.2.2; D.2.m; F.3.2 Keywords: Software Engineering, Tools and Techniques; Software Engineering, Miscellaneous;

More information

Software Paradigms (Lesson 4) Functional Programming Paradigm

Software Paradigms (Lesson 4) Functional Programming Paradigm Software Paradigms (Lesson 4) Functional Programming Paradigm Table of Contents 1 Introduction... 2 2 Evaluation of Functions... 3 3 Compositional (Construct) Operators... 4 4 Some Implementation Issues...

More information

Verbalizing Business Rules: Part 10

Verbalizing Business Rules: Part 10 Verbalizing Business Rules: Part 10 Terry Halpin rthface University Business rules should be validated by business domain experts, and hence specified using concepts and languages easily understood by

More information

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture 18 Switch Statement (Contd.) And Introduction to

More information

Static Safety Analysis of UML Action Semantics for Critical Systems Development

Static Safety Analysis of UML Action Semantics for Critical Systems Development Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

Design First ITS Instructor Tool

Design First ITS Instructor Tool Design First ITS Instructor Tool The Instructor Tool allows instructors to enter problems into Design First ITS through a process that creates a solution for a textual problem description and allows for

More information

SOFTWARE ENGINEERING DESIGN I

SOFTWARE ENGINEERING DESIGN I 2 SOFTWARE ENGINEERING DESIGN I 3. Schemas and Theories The aim of this course is to learn how to write formal specifications of computer systems, using classical logic. The key descriptional technique

More information

RECURSIVE DEFINITION, BASED ON A META-MODEL, FOR THE TYPE SYSTEM OF COMPLEX COMPUTING SYSTEMS ARCHITECTURES

RECURSIVE DEFINITION, BASED ON A META-MODEL, FOR THE TYPE SYSTEM OF COMPLEX COMPUTING SYSTEMS ARCHITECTURES An. Şt. Univ. Ovidius Constanţa Vol. 12(1), 2004, 45 58 RECURSIVE DEFINITION, BASED ON A META-MODEL, FOR THE TYPE SYSTEM OF COMPLEX COMPUTING SYSTEMS ARCHITECTURES Abstract A theoretical abstract analysis

More information

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems 3 Draft 5.02.00-0, 15 August 2005 (Santa Barbara). Extracted from ongoing work on future third edition of Eiffel: The Language. Copyright Bertrand Meyer 1986-2005. Access restricted to purchasers of the

More information

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute Week 02 Module 06 Lecture - 14 Merge Sort: Analysis So, we have seen how to use a divide and conquer strategy, we

More information

Integration Testing. Unit Test vs Integration Testing 1. Unit Testing vs Integration Testing 2. Unit testing: isolation, stub/mock objects

Integration Testing. Unit Test vs Integration Testing 1. Unit Testing vs Integration Testing 2. Unit testing: isolation, stub/mock objects Unit Test vs Testing 1 Testing Conrad Hughes School of Informatics Slides thanks to Stuart Anderson The ideal in unit testing is to isolate a single code unit and test it against its behavioural specification.

More information

Lecture Notes on Static Semantics

Lecture Notes on Static Semantics Lecture Notes on Static Semantics 15-411: Compiler Design Frank Pfenning Lecture 12 October 8, 2015 1 Introduction After lexing and parsing, a compiler will usually apply elaboration to translate the parse

More information

Lecture 8 Requirements Engineering

Lecture 8 Requirements Engineering Lecture 8 Requirements Engineering Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 18, 2008 Lecture Overview

More information

A Small Interpreted Language

A Small Interpreted Language A Small Interpreted Language What would you need to build a small computing language based on mathematical principles? The language should be simple, Turing equivalent (i.e.: it can compute anything that

More information

Experiences with OWL-S, Directions for Service Composition:

Experiences with OWL-S, Directions for Service Composition: Experiences with OWL-S, Directions for Service Composition: The Cashew Position Barry Norton 1 Knowledge Media Institute, Open University, Milton Keynes, UK b.j.norton@open.ac.uk Abstract. Having used

More information

Towards semantic merging of versions of BDI agent systems

Towards semantic merging of versions of BDI agent systems Towards semantic merging of versions of BDI agent systems Yingzhi Gou, Hoa Khanh Dam and Aditya Ghose School of Computer Science and Software Engineering University of Wollongong New South Wales 2522,

More information

Update on AADL Requirements Annex

Update on AADL Requirements Annex Open-PEOPLE Open Power and Energy Optimization PLatform and Estimator Update on AADL Requirements Annex Dominique BLOUIN* *Lab-STICC, Université de Bretagne Sud, Lorient, FRANCE AADL Standards Meeting,

More information

AN ONTOLOGICAL EVALUATION OF JACKSON'S SYSTEM DEVELOPMENT MODEL. Fiona Rohde. Department of Commerce The University of Queensland, 4072.

AN ONTOLOGICAL EVALUATION OF JACKSON'S SYSTEM DEVELOPMENT MODEL. Fiona Rohde. Department of Commerce The University of Queensland, 4072. AN ONTOLOGICAL EVALUATION OF JACKSON'S SYSTEM DEVELOPMENT MODEL Fiona Rohde Department of Commerce The University of Queensland, 4072. Australia ABSTRACT Within the discipline of information systems, numerous

More information

Sardar Vallabhbhai Patel Institute of Technology (SVIT), Vasad M.C.A. Department COSMOS LECTURE SERIES ( ) (ODD) Code Optimization

Sardar Vallabhbhai Patel Institute of Technology (SVIT), Vasad M.C.A. Department COSMOS LECTURE SERIES ( ) (ODD) Code Optimization Sardar Vallabhbhai Patel Institute of Technology (SVIT), Vasad M.C.A. Department COSMOS LECTURE SERIES (2018-19) (ODD) Code Optimization Prof. Jonita Roman Date: 30/06/2018 Time: 9:45 to 10:45 Venue: MCA

More information

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:

More information

CS 161 Computer Security

CS 161 Computer Security Wagner Spring 2014 CS 161 Computer Security 1/27 Reasoning About Code Often functions make certain assumptions about their arguments, and it is the caller s responsibility to make sure those assumptions

More information

Formal Methods for Software Engineers

Formal Methods for Software Engineers Formal Methods for Software Engineers Professor Ray Welland Department of Computing Science University of Glasgow ray@dcs.gla.ac.uk INF3120-FM 1 Overview Motivation Why have formal specifications? Where

More information

Object Oriented Issues in VDM++

Object Oriented Issues in VDM++ Object Oriented Issues in VDM++ Nick Battle, Fujitsu UK (nick.battle@uk.fujitsu.com) Background VDMJ implemented VDM-SL first (started late 2007) Formally defined. Very few semantic problems VDM++ support

More information

CHAPTER 19: Building a Preliminary Behavioral Model

CHAPTER 19: Building a Preliminary Behavioral Model 1 z 7 CHAPTER 19: Building a Preliminary Behavioral Model Things are always at their best in their beginning. Blaise Pascal Lettres Provinciales, 1656-1657, no. 4 IN THIS CHAPTER, YOU WILL LEARN: Why a

More information

Lecture Notes on Queues

Lecture Notes on Queues Lecture Notes on Queues 15-122: Principles of Imperative Computation Frank Pfenning Lecture 9 September 25, 2012 1 Introduction In this lecture we introduce queues as a data structure and linked lists

More information

An Improved Upper Bound for the Sum-free Subset Constant

An Improved Upper Bound for the Sum-free Subset Constant 1 2 3 47 6 23 11 Journal of Integer Sequences, Vol. 13 (2010), Article 10.8.3 An Improved Upper Bound for the Sum-free Subset Constant Mark Lewko Department of Mathematics University of Texas at Austin

More information

System Verilog Tagged Unions and Pattern Matching

System Verilog Tagged Unions and Pattern Matching System Verilog Tagged Unions and Pattern Matching (An extension to System Verilog 3.1 proposed to Accellera) Bluespec, Inc. Contact: Rishiyur S. Nikhil, CTO, Bluespec, Inc. 200 West Street, 4th Flr., Waltham,

More information

Chapter 4. Capturing the Requirements. 4th Edition. Shari L. Pfleeger Joanne M. Atlee

Chapter 4. Capturing the Requirements. 4th Edition. Shari L. Pfleeger Joanne M. Atlee Chapter 4 Capturing the Requirements Shari L. Pfleeger Joanne M. Atlee 4th Edition It is important to have standard notations for modeling, documenting, and communicating decisions Modeling helps us to

More information