当前位置:文档之家› On the relation between SAT and BDDs for equivalence checking

On the relation between SAT and BDDs for equivalence checking

On the relation between SAT and BDDs for equivalence checking
On the relation between SAT and BDDs for equivalence checking

On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda1 Rolf Drechsler2 Alex Orailoglu1 1Computer Science & Engineering Department 2Institute of Computer Science

University of California, San Diego University of Bremen

La Jolla, CA, 92093 28359 Bremen, Germany

Abstract

State-of-the-art verification tools are based on efficient operations on Boolean formulas. Traditional manipulation techniques are based on Binary Decision Diagrams (BDDs) and SAT solvers. In this paper, we study the relation between the two procedures and show how the number of backtracks obtained in the Davis-Putnam (DP) procedure is linked to the number of paths in the BDD. We utilize this relation to devise a method that uses BDD variable ordering techniques to run the DP procedure. Experimental results confirm that the proposed method results in a dramatic decrease in the number of backtracks and in the time needed to prove the Boolean satisfiability problem as well.

1 Introduction

Boolean Satisfiability (SAT) has received increased attention as a promising technique for Automatic Test Pattern Generation (ATPG) and equivalence checking [1], [2]. Virtually all SAT techniques rely on the use of the Davis-Putnam procedure (DP) [3], [4] to explore the search tree. If there is a pattern that differentiates the circuits under verification, then DP will eventually find it or prove that the SAT formula is unsatisfiable. Numerous techniques have been proposed to reduce the search tree. Some of these techniques such as iterated global implications [2] and recursive learning [5] are applied as a preprocessing step, while others are applied during the course of the application of the DP procedure. For example, clause recording [6] and cache-based backtracking [7] are used to avoid conflicts. An alternative research trend focuses on identifying variable orderings techniques that minimize the number of backtracks executed by the DP procedure to find a satisfying assignment1. The effectiveness of these techniques is sharply limited though in case the formula is unsatisfiable. On the other hand, Binary Decision Diagrams (BDDs), as introduced in [9], have been traditionally used to solve the equivalence checking problem due to their canonical property. However, it is this requirement for canonicity that makes BDDs inefficient in representing certain classes of functions. For example, integer multipliers have displayed exponential memory requirements for any variable ordering [10].

1 An excellent survey can be found in [8]. There has been increased interest in techniques that integrate SAT and BDDs to reduce the time and space needed to solve the equivalence checking problem [11], [12]. Though it has been noted that SAT and BDDs represent the same entity [7], there is little understanding of the relation between the two procedures and how the techniques of one domain can be utilized in the other.

In this paper we attempt to provide an improved understanding of the relation between these two procedures. We view the equivalence checking problem as a search in the decision trees of the two circuits for a path that leads to the terminal 1(0) in one but leads to the 0(1) terminal in the other. From this perspective, it would be desirable to decrease the number of paths, thus reducing the number of backtracks and time needed to solve the problem. We propose a dynamic variable ordering technique to run the DP procedure. The technique is geared towards minimization of the number of backtracks needed to prove the unsatisfiability of the CNF formula that results from proving the equivalence of two circuits. We compare our method with the greedy variable ordering of TEGUS [2]. Experimental results verify that the proposed approach results in a dramatic decrease in the number of backtracks and time needed to solve the problem.

The organization of the paper is as follows. Section 2 introduces the necessary preliminaries for the material in this paper. Section 3 presents the theoretical foundations for the relation between the DP procedure and BDDs. Section 4 proposes a dynamic BDD-based variable ordering technique for the DP procedure. Experimental results are given in Section 5, followed up by conclusions in Section 6.

2 Preliminaries

2.1 Binary Decision Diagrams

A Binary Decision Diagram (BDD) is a rooted directed acyclic graph with two terminal nodes that are referred to as the 0-terminal and the 1-terminal. Every non-terminal node is associated with a primary input variable such that it has two outgoing edges called the 0-edge corresponding to assigning the variable a false truth value, and the 1-edge corresponding to assigning the variable a true truth value. An Ordered Binary Decision Diagram (OBDD) is a BDD such that the input variables appear in a fixed order on all the paths of the graph, and no variable appears more than

once in the path. A Reduced Ordered BDD (ROBDD) is an OBDD that results from the repeated application of the following two rules:

1. Eliminate all redundant nodes whose edges point to the same node.

2. Share all equivalent sub-graphs.

Figure 1 illustrates an example of an ROBDD where the solid edges denote the 1-edges and the dashed edges denote the 0-edges. In the following treatment, only reduced ordered BDDs are considered and for short we denote them as BDDs.

2.2 The Davis-Putnam Procedure

A CNF formula ? is a set of clauses where each clause is the disjunction of a number of literals where a literal is a variable or its negation. Since each logic gate can be represented by a number of clauses [1], a CNF formula of a logic circuit is the conjunction of the CNF formulas of all the gates. A CNF formula is satisfiable if at least one set of assignments to the variables of the formula makes it evaluate to true.

Virtually all SAT solvers use the Davis-Putnam (DP) procedure in their core [3], [4] in order to find a satisfying assignment for the formula or conversely to prove the formula unsatisfiable. The DP procedure performs a backtracking depth-first search in the space of all truth assignments to find a satisfying assignment for the CNF formula. The performance of backtracking is greatly improved by employing unit clause propagation: whenever a unit clause arises, the variable occurring in that clause is assigned the truth-value that satisfies the clause. The formula is thereupon simplified which may lead to new unit clauses. Figure 2 outlines the DP procedure. The procedure returns true in case the CNF formula is satisfiable, false otherwise.

3 On the relation between the DP procedure and BDDs

In this section we study the relation between the DP procedure and the BDD representation of the same circuit. We first formalize the various properties of the CNF formulas generated from multi-level combinational logic circuits and show how these properties allow a measure of flexibility in the search for a satisfying assignment to the formula. Furthermore, we prove the relation between the number of backtracks obtained using the DP procedure and the number of paths in the corresponding BDD. This relation allows the calculation of optimal lower bounds for the number of backtracks needed to prove the equivalence of two equivalent circuits. We start by introducing some notation to provide a concise basis for the formalization of the derived results.

Let ?be a CNF formula, and V(?) denote the set of variables that ? depends on. A clause c i∈? is satisfied if there is some assignment to its literals such that the disjunction of the literals evaluates to true. The CNF formula ? is satisfied if there is a truth assignment to V(?) such that every clause c i∈? is satisfied.

Let C-CNF denote the set of CNF formulas generated from multi-level combinational logic circuits. Let C ∈ C-CNF be a multi-level combinational circuit, and let f be the underlying Boolean function of C. Since the logic value of all the internal and output signals of C can be derived from the values of the primary inputs, we consider the support of f to be the primary inputs only. We denote the set of primary inputs of ?by P(?). In addition, we introduce the variable χto reference the primary output of the circuit. The relation between ?, P(?) and V(?) is given by the next lemma.

Lemma 1 If ?∈ C-CNF, then it is possible to find a set of variables P(?)?V(?) such that ? can be satisfied by only splitting on the variables of P(?) in the DP procedure. Proof Since the internal nodes of a multi-level logic circuit are functions of the primary inputs, it is possible to determine their assignment given some assignment on the set of primary input variables, P(?)

.

the search of a satisfying assignment to the whole CNF formula. This subset of currently assigned primary inputs shall be denoted by S, and their truth assignments by A s. The restricted Boolean function that results from the application of A s to ? shall be denoted by f As.

In order to avoid fruitless searches, the DP procedure should avoid assigning truth-values to variables that can make no contribution to the satisfiability of the formula.

This notion is captured by the following definition. Definition 1 If A s is the truth assignment of a set S?P(?) and v∈P(?) but v?S then v is said to be redundant under A s if ? f As /?v = 0.

Definition 1 simply states that if the restricted Boolean function f As is insensitive to the change in v, then there is no point in assigning v a truth value. This notion allows us to tailor down the satisfiability of C-CNF formulas as given by the following theorem.

Theorem 1 A CNF formula ?∈ C-CNF is satisfied under a truth assignment A s of a set S?P(?) if ?v∈(P(?)-S): ? f As /?v = 0.

Proof If ?v∈(P(?)-S): ?f(A s)/?v= 0, then no truth assignment to any element that belongs to (P(?)-S) can change the function f(A s).Since all variables in S are

assigned truth values under A s and (P(?)-S) ∪S = P(?), then it follows from Lemma 1 that ?

is satisfied.

Theorem 2 defines our notion of satisfiability for CSAT. In addition, it opens the possibility for the primary output variable χto be assigned a truth-value while there exist clauses that are not evaluated to true and have some remaining unassigned literals. Example 1 illustrates such a case.

Example 1 The CNF formula of the circuit in Figure 3 is ?= (?a + d) ? (?b + d) ? (a + b + ?d) ? (c + ?z) ? (d + ?z) ?(?d + ?c + z). In this example, P(?) = {a, b, c}, χ = z and under the partial assignment A s = {c = 0}, where S = {c}, z is assigned the truth value false and ? = (?a + d) ? (?b + d) ? (a + b + ?d). We notice that under A s both ?f As/?a and ?f As/?b equal zero, since the function output value is already determined. Furthermore, there exists a truth assignment to the set of variables P(?)-S that satisfies the remaining clauses. This truth assignment is however of no interest since the primary output has already been assigned a truth-value. As an illustration for Definition 1, if A s = {a = 1} where S= {a} then ?= (c+ ?z) ?(?c+ z) and ?f As/?b = 0, yet z is not assigned a truth value. Thus, ? is not satisfied but b is redundant under A s.

We notice that Rule 1 in Section 2.1 for BDD reduction is equivalent to Definition 1 in the CSAT context and thus tracing a path from the root to the 1-terminal or 0-terminal in the BDD of circuit C is equivalent to finding a satisfying assignment to the CNF formula ?of C using the same variable ordering of the path in the BDD. This notion is captured in the following lemma.

Lemma 2Given a BDD βand a CSAT formula ?for some logic circuit C, then under a variable ordering π and a truth assignment Aπon a certain path of βto the terminal, ? is satisfiable using the same variable ordering and truth assignment.

Proof Assume the set of primary inputs is P. Then we can partition P into two sets, S and T, such that S contains all the variables that appear in πand T contains all the remaining variables. By Rule 1 of section 2.1, T is the set of all redundant nodes. But due to the equivalence of Rule 1 and Definition 1, it follows from Theorem 1 that ?is

satisfied.

for splitting in the DP procedure is the same as in the corresponding BDD, then considering an alternative path in the BDD leads to a backtrack in the DP procedure. Thus, the number of paths exceeds the total number of

backtracks exactly by 1.

The importance of Theorem 4 is that it allows benchmarking any variable ordering strategy for the DP procedure against an optimal lower bound. We now develop a variable ordering heuristic for the DP procedure that tries to trace the same variable ordering for every path in the corresponding minimal path BDD of the circuit.

4 Dynamic variable ordering strategy for the DP procedure

From the previous section, we conclude that the variable ordering strategy should differ for every path of the decision tree, and furthermore result in no splitting on a redundant variable under the current partial assignment. In this section, we propose a structural method that avoids redundant splitting and tries to make the fewest possible splittings to satisfy ?. The method is based on the following theorem.

Theorem 5 If a bounded gate lies on every path from the primary output χ to the unassigned primary input v∈(P(?)-S) under a current partial assignment A s for a set S?P(?), then ?f As/?v= 0.

Proof The existence of a bounded gate (a gate with a specified output) in every path to χ implies that no value assigned to v can affect the function of the circuit since these bounded gates will suppress the propagation of the logic value. Thus, since f(A s) remains unchanged under any assignment to v, ?f As/?v=

0.

Table 1: Comparing Greedy search to BDD-based variable ordering for the DP procedure.

procedure, we have to check that every path results in the same output assignment in both circuits. Applying the previous procedure of weight calculations to minimize the number of paths being compared, we trace the different paths of the BDD of the circuit in figure 4.a in the manner shown below.

From the initial weights given in figure 4.a, we split on x3 since it has the highest weight. Suppose x3 is assigned the true value. Then by unit clause propagation, gate h becomes bounded to the truth value false. The weight calculation procedure is executed again but this time by setting the weights of bounded gates to zero. Figure 4.b illustrates the new weights. Next, x1, x2 or x3 can be chosen to split on; the resultant search tree will always produce identical number of backtracks. Notice that bounded gates are marked with a ‘*’ in the corresponding figure. After finishing this half of the decision tree, x3is flipped and assigned to false. The new calculated weights are shown in Figure 4.c. Since x4 has the highest weight, we split on x4 thus reaching the terminals.

We now construct the minimum path BDD corresponding to this circuit as shown in Figure 4.d. We notice in the BDD that the splitting choices made by the previous procedure traverse this BDD in exact ordering for each path, thus producing the minimal number of backtracks, 5, corresponding to the minimal number of paths, 6.

As was just illustrated, the proposed method has produced optimal results for the proposed example; however, the method is not in general optimal since it depends on the structure of the circuit. As shall be demonstrated in the next section, the proposed method is capable of achieving near optimal results.

5 Experimental Results

In this section, we present experimental results for our proposed approach. The experiments have been carried out on a PC with an Intel Pentium 233 Mhz processor and 64MB of physical memory. We have used TEGUS [2] as a SAT solver and the CUDD [14] decision diagram package. In our experiments we consider the performance of the proposed approach to verify the equivalence of the ISCAS’85 benchmark circuits [15] against their non-redundant version. We benchmark our approach against the greedy search approach of TEGUS. Table 1 gives the results of such a comparison. Column 1 lists the circuit name. Column 2 provides the name of the output under verification. Columns 3 & 4 give the number of backtracks and time needed to prove the output using the TEGUS approach. Columns 5 & 6 give the number of backtracks and time needed to prove the output using the proposed approach. The possible “Abort” notation in columns 3 & 5 denotes reaching the 20 million backtrack threshold without reaching a successful resolution; the subsequent time columns in that case denote the time needed to reach this limit. Columns 7 & 8 report the percentage decrease in the number of backtracks and time, respectively. Column 9 provides the near minimal number of paths in the corresponding BDD. In obtaining the number of paths, we only consider a subspace of the possible variable orderings. We compare the number of paths that result from sifting [16] the corresponding BDD to a minimum size and picking the minimal path. For space considerations, we consider only three outputs from each circuit.

Comparing the greedy approach to the proposed variable ordering strategy, we observe that the proposed approach

TEGUS Greedy Search Proposed Approach Difference Minimal Path BDD Circuit Output

Name

Backtracks Time

(seconds) Backtracks Time

(seconds)

Backtracks Time #Paths

370gat Abort 771.00 943200 185.00 95.3% 76.01% 894606 432gat Abort 770.00 816012 235.00 95.9% 69.48% 798906 c0432

329gat 1646605 22.50 81912 5.94 95.0% 73.60% 57513 od1 Abort 1686.00 Abort 10351.00 - - 20000000 od18 Abort 1685.00 Abort 10245.00 - - 23000000 c0499

od31 Abort 1691.00 Abort 10627.00 - - 23000000 864 649741 12.30 164656 27.50 74.7% -123.58% 89937 850 37225 0.60 24171 3.45 35.1% -475.00% 21981 c0880

874 Abort 498.00 1083156 278.00 94.6% 44.18% 532793 1353 Abort 1921.00 Abort 8501.00 - - 21000000 1354 Abort 1892.00 Abort 8427.00 - - 23000000 c1355

1355 Abort 1984.00 Abort 8602.00 - - 23000000

57 Abort 718.00 147457 11.90 99.3% 98.34% 134221

60 Abort 1708.00 28161 20.10 99.9% 98.82% 26638 c1908

66 Abort 2058.00 14249 10.40 99.9% 99.49% 12638

399 24550 0.73 4528 1.34 81.6% -83.56% 1636 384 6107715 652.00 70997 57.20 98.8% 91.23% 65535 c3540

387 1582929 213.00 17312 17.00 98.9% 92.02% 16456 688 Abort 300.00 23974 13.00 99.9% 95.67% 13919

843 Abort 3383.00 211181 162.00

98.9% 95.21% 103569

C5315

818 85989 3.50 6537 2.18 92.4% 37.71% 2489 373 16 0.01 10 0.01 37.5% 0.00% 10 376 40952 1.30 15416 4.93 62.4% -279.23% 7152 C7522

359 2474096 114.00 585584 285.00 76.3% -150.00% 196592 2223 157 0.01 102 0.01 35.0% 0.00% 102 3895 174315 12.20 106423 108.00 38.9% -785.25% 109668 c6288

4591 2794411 255.00 1705027 2689.00 39.0% -954.51% 1793496

results on the average in 90% decrease in the number of backtracks. The time needed to complete the backtracks varies from reduction in 13 cases with an average of 70% decrease to increases in about 7 cases with an average increase of about 4 times. While at first glance the time results look inconclusive, it can be easily noted that the increases are essentially associated with low-backtrack, provable outputs, since in these cases the recurring weight assignment costs cannot be amortized across the small number of backtracks. Our approach greatly improves the performance of large search tree cases, the main focus of practical interest. We also notice that within the limit of 20 million backtracks, TEGUS fails to complete on 7 outputs while the proposed approach proves them in a relatively low number of backtracks.

As proved in Section 3, the minimum number of paths that can be obtained from the corresponding BDD is a lower bound on the number of backtracks that can be obtained in the DP procedure. The number of paths provides an ability to benchmark various ordering techniques and also provides an insight on the performance of the DP procedure. For example, the huge number of paths in case of the c0499 & c1355 circuits (they are functionally equivalent) suggests that they are hard-to-prove outputs using the DP procedure. In addition, in circuits, like the c6288, where the variation of the number of paths with respect to the variable ordering is small, the dynamic weight assignment technique constitutes a time consuming step with respect to the overall time, as the number of backtracks varies slightly with respect to the variable splitting strategy2.

6 Conclusions

In this paper we have studied the relation between the search tree of the DP procedure and the BDD of the corresponding function, establishing that the number of paths from the root node to the terminals of the BDD is directly related to the number of backtracks needed to prove the equivalence of two functionally equivalent circuits. This relation introduces the ability to calculate an optimal lower bound on the number of backtracks needed to prove the equivalence checking problem. In addition, this relation has led to the conclusion that the capture of the variable ordering of the minimal path BDD in the DP procedure implies a reduction in the number of backtracks needed to prove the problem. In order to exploit this relation, we have devised a variable ordering technique for the DP procedure that through experimental results has exhibited superior performance in terms of the number of backtracks and time needed to prove the equivalence problem. The relation between the two procedures offers novel ways of tight integration of different prover approaches in a verification tool.

2 After numerous experiments, we concluded that there is no apparent relation between the number of nodes and paths in a given BDD. References

[1] T. Larrabee, “Test Pattern Generation using Boolean Satisfiability,” IEEE Trans. on Computer Aided Design, Vol. 11, No. 1, pp. 4-15, January 1992.

[2] P. R. Stephan, R. K. Brayton, and A. Sangiovanni-Vincentelli, “Combinational Test Generation Using Satisfiability,” Technical Report UCB/ERL M92/112, Dept. of EECS, Univ. of California, Berkeley, Oct., 1992.

[3] M. Davis, G, Logemann, and D. Loveland, “A Machine Program for Theorem Proving,” Communications of the ACM, (5):394-397, July 1962. [4] M. Davis, and H. Putnam, “A Computing Procedure for Quantifier Theory,” Communications of the ACM, (7):201-215, 1960.

[5] J. Silva, T. Glass, “Combinational Equivalence Checking Using Boolean Satisfiability and Recursive Learning,” In Proc. of Design Automation, Test in Europe Conference, pp. 145-149, 1999.

[6] J. Silva, “An Overview of Backtrack Search Satisfiability Algorithms,” in Fifth International Symposium on AI and Mathematics, January 1998. [7] M. Prasad, P. Chong, K. Keutzer, “Why is ATPG easy?” In Proceedings of the 36th Design Automation Conference, pp. 22-28, 1999.

[8] J. Gu, P. W. Purdom, J. Franco, and B. W. Wah, in "Satisfiability Problem: Theory and Applications," DIMACS Series in Discrete Mathematics and Theoretical Computer Science, American Mathematical Society, pp. 19-152, 1997.

[9] R. E. Bryant, “Graph Based Algorithms for Boolean Function Manipulation,” IEEE Trans, in Computers, Vol. C-35, No. 8, pp. 677-691, August 1986.

[10] R. E. Bryant, “On the Complexity of VLSI Implementations and Graph Representations of Boolean Functions with Application to Integer Multiplication,” IEEE Transactions on Computers, Vol. 40, No. 2, pp. 205-213, Feb. 1991.

[11] J. Burch, V. Singhal, “Tight Integration of Combinational Verification Methods,” ACM/IEEE Int. Conference on Computer-aided Design 1998, pp. 570-576, San Jose, CA, USA.

[12] S. Reda, A. Salem, “Combinational Equivalence Checking using Binary Decision Diagrams and Boolean Satisfiability,” In Proc. of Design Automation, Test in Europe Conference, pp. 122-126, 2001.

[13] S. Minato, Binary Decision Diagrams and applications for VLSI CAD, Kluwer Academic Publishers, 1996.

[14] F. Somenzi, CUDD: Colorado University Decision Diagram Package. ftp://https://www.doczj.com/doc/8a14319235.html,/pub.

[15] F. Brglez and H. Fujiwara, “A Neural Netlist of 10 Combinational Benchmark Circuits and a Target Translator in Fortran,” In Intl. Symp. on Circuits and Systems, 663-698, June 1985.

[16] R. Rudell, “Dynamic Variable Ordering for Ordered Binary Decision Diagrams,” In Proc. of Int. Conf. On Computer Aided Design, pp. 42-47, 1993

初中英语语法知识点地点副词

初中英语语法知识点:地点副词 初中英语语法知识点:地点副词 表示地点的副词和表示位置关系的副词统称为地点副词。表示地点的:here, there, home, upstairs, downstairs, anywhere, everywhere, nowhere, somewhere, abroad, elsewhere等。地点副词常放在动词后面,如果是及物动词,一般就放在宾语后面。如:I remember having seen him somewhere. 副词可以用作表语,主要是地点副词,但时间副词和其他副词有时也可以用作表语。常见的这类副词有:表示地点的:here, there, home, upstairs, downstairs, anywhere, everywhere, nowhere, somewhere, abroad, elsewhere等。表示位置关系的:above, below, down, up, out, in, across, back, along, over, round, around, away, near, off, on, inside, outside, past等。在表示位置关系的副词中,有些副词也可用作介词(如:above, over, beyond, around, below, down, up, in, along, near, off, on, past等),在没有宾语时就是副词,有宾语时就是介词,如: Come in, please. (副词) They live in the next room. (介词) Let's take along. (副词) Let's walk along this street. (介词) She looked around. (副词) They sat around the table. (介词) Let's go on with the work...(副词) What subject will you speak on? (介词) 地点副词在句中的位置地点副词常放在动词后面,如果是及物动词,一般就放在宾语后面。如:I remember having seen him somewhere. Wuxia films are popular in China. 地点副词和时间副词并列使用时,一般要把地点副词放在时间副词之前。如: We had a meeting here yesterday. He did the work carefully here yesterday. 如果地点状语很长时,也可以放在时间状语之后。如: He was born in 1940 in a small village at the foot of Mount Tai。地点副词常可以用作表语副词可以用作表语,主要是地点副词,时间副词和其他副词有时也可以用作表语。如: They are inside. 他们在里面。 How long will she be away? 她要离开多久? When will you be back? 你什么时候回来? You haven't been around much. 你很少到这边来。 He'll be round in

MDA白皮书-模型驱动开发和UML+2.0

白皮书 模型驱动开发和UML 2.0 传统编程方式的终结? 本文档包含Telelogic AB专有信息。未经Telelogic AB书面许可,不得使用本文档内的任何信息,不得复印、影印本文档的任何部分。

前言 “模型驱动开发”——体会一下这几个词。它们说出了这个不断变化的工业中一个新的改变。这里不是说一种革命,而是一种缓慢的变化,但是肯定会渗透到我们开发系统的方式中。这种推动将降低代码的重要性,并且专注于一些开发中的真正事情:最终的应用程序被期望怎样工作,并确保你能够根据客户的需求可靠地建立起它来。 模型驱动开发是更伟大视景MDA中的一部分。MDA是模型驱动体系架构(Model-Dri ven Architecture)的简称,由对象管理组织OMG(Object Management Group)所驱动。M DA表示了一种模型驱动开发方法的概念框架。然而,尽管完整的MDA还没有成为现实,模型驱动开发现在已成为可能。实际上,它已以较低级的形式存在了较长一段时间,所以我们并不是在做某种新的东西(当然,除非你在听某些市场人员的宣传)。 没有魔法 如果模型驱动开发这么好的话,为什么不是每个人立刻加入到这个潮流中来呢?首先,模型驱动开发不是一个银子弹,能神奇地解决你所有的问题。总有某人需要去实现系统的功能,并且还找不到任何工具来完成这一点。所有你能发现的工具只是使这项工作更容易和直接一些。 第二,采用模型驱动开发,并不只是在开发项目的过程中更换一种工具。它还必须和已根深蒂固的开发过程结合起来(如果没有的话,你就可以开始使用模型驱动开发了;否则你就只能改善当前的情况),但实际上更重要的是,你还会担心它对现有应用程序的影响。决定改用基于模型的方法前确实需要有一些仔细的考虑,并且,一般说来,为了不影响当前的工作,你只会在新项目中改变开发方法。 第三,你还需要获得那些使用工具的人们的支持(你需要一些工具来应用模型驱动开发)。开发人员常会认为“模型驱动开发不是编程”而回避它,并且当心他们的工作难于被接受。他们还可能担心模型驱动开发将会使他们以前辛苦学来的一些技巧过时。他们的担心也不是完全没有理由。采用模型驱动开发后,市场确实很有可能会减少对那些精通好几种编程语言的开发人员的需求。但是另一方面,所有好的开发人员,首先和最主要的是,他们是问题的解决者。他们感兴趣的是尽可能地为手边的主要问题找到新的更好的解决方案。模型 第 2 页/共 2 页

中考英语语法考点重点解析

中考英语语法考点重点解析 中考英语语法考点重点分析(一) 中考是一种比较激烈的选拔性考试,它承担着为高级中学挑选优秀学生的任务,所以它一定要有必要的难度和区分度,我们在认真分析了近五年上海中考原题语法和词汇部分后(20xx年至20xx年),下面扼要的总结了些上海中考的重点和考点,帮助广大学生熟悉考试的具体要求和重点,为学生们备战中考提供必要的帮助。 初中生因为刚涉及英语学习,语法方面还没有过多学复合句等问题,中考的考核绝大多数是以词法为主,20xx年到20xx年语法单项选择15道题,涉及句法的题寥寥,一般在2道左右。20xx年单项选择增加到20道考核句法的题也没有超过两道。这体现了中考英语语法考核重在考察各种词法,强调最基础的学习和积累,为以后的高中学习打下牢固的基本功。 冠词和代词注意的问题: 例:The scientists from United States live in Ninth street.(20xx 上海中考题) A. the……the B. /……the C. /……/ D. the……/ 解析:这是考察冠词的一道典型试题,需要强调的是学生要牢牢记住一些冠词的特殊用法,如普通名词构成专有名词一定要用the 如:the Great wall长城 the Shanghai Museum 上海博物馆 the New Oriental School 新东方学校。另外注意零冠词的用法:街道、广场、

公园的前面不用任何冠词。所以这道题是选择D。 例:Liu xiang and Yao ming are world-famous sports stars.____ of them have set a good example to us .(20xx年上海中考题) A. all B. neither C. both D. none 例:There are many new high-rises on ___ side of Huaihai Road .What a magnificent view!(20xx年上海中考题) A. either B. neither C. both D. all 解析:代词部分尤其是不定代词部分历来是考试的重点。Both 是指两者的全肯定,是说都怎么样,而all是说全部都,这是在指三个人或者以上;none是指三个人或者以上都不怎么样,是否定的概念,neither是说两者的都不怎么样,也是否定的概念;最重要的是either这个单词,它表示两者都怎么样和both一样是肯定的,但是只说一个或者是任何一个。就上面这道题来讲,第一题说刘翔和姚明都给我们树立了榜样,两者的都肯定,所以选择C. 后一题是说淮海路两旁都是高楼大厦,按道理来讲应该是选择both,但是注意side 是一边,这是个单数,所以是说任意一边都是高楼大厦,选择A. 动词方面需要注意的问题: 一、近意动词的辨析选择 例:The VIPs from 21 countries will ___the APEC in Shanghai this autumn.(20xx年上海中考题) A. hold B. take part in C. join D. attend

初中英语语法大全知识点总结

英语语法大全 初中英语语法 学习提纲 一、词类、句子成分和构词法: 1、词类:英语词类分十种: 名词、形容词、代词、数词、冠词、动词、副词、介词、连词、感叹词。 1、名词(n.):表示人、事物、地点或抽象概念的名称。如:boy, morning, bag, ball, class, orange. 2、代词(pron.):主要用来代替名词。如:who, she, you, it . 3、形容词(adj..):表示人或事物的性质或特征。如:good, right, white, orange . 4、数词(num.):表示数目或事物的顺序。如:one, two, three, first, second, third, fourth. 5、动词(v.):表示动作或状态。如:am, is,are,have,see . 6、副词(adv.):修饰动词、形容词或其他副词,说明时间、地点、程度等。如:now, very, here, often, quietly, slowly. 7、冠词(art..):用在名词前,帮助说明名词。如:a, an, the. 8、介词(prep.):表示它后面的名词或代词与其他句子成分的关系。如in, on, from, above, behind. 9、连词(conj.):用来连接词、短语或句子。如and, but, before . 10、感叹词(interj..)表示喜、怒、哀、乐等感情。如:oh, well, hi, hello. 2、句子成分:英语句子成分分为七种:主语、谓语、宾语、定语、状语、表语、宾语补足语。 1、主语是句子所要说的人或事物,回答是“谁”或者“什么”。通常用名词或代词担任。如:I’m Miss Green.(我是格林小姐) 2、谓语动词说明主语的动作或状态,回答“做(什么)”。主要由动词担任。如:Jack cleans the room every day. (杰克每天打扫房间) 3、表语在系动词之后,说明主语的身份或特征,回答是“什么”或者“怎么样”。通常由名词、代词 或形容词担任。如:My name is Ping ping .(我的名字叫萍萍) 4、宾语表示及物动词的对象或结果,回答做的是“什么”。通常由名词或代词担任。如:He can spell the word.(他能拼这个词) 有些及物动词带有两个宾语,一个指物,一个指人。指物的叫直接宾语,指人的叫间接宾语。间 接宾语一般放在直接宾语的前面。如:He wrote me a letter . (他给我写了一封信) 有时可把介词to或for加在间接宾语前构成短语,放在直接宾语后面,来强调间接宾语。如: He wrote a letter to me . (他给我写了一封信) 5、定语修饰名词或代词,通常由形容词、代词、数词等担任。如:

社会化电子商务的驱动机制探究-最新范文

社会化电子商务的驱动机制探究 一、导论 论文首先将梳理社会化电子商务的概念,识别出社会化电子商务的内涵要素与外延范围;接下来将基于科技接受模型提出社会化电子商务中用户参与行为的驱动机制理论模型,为后续研究提供借鉴价值。二、理论背景与模型提出 社会化电子商务的重要驱动力量来自于用户的不断参与,如何驱动用户不断地参与社会化电子商务便成为了研究的重点问题。已有研究表明,虚拟社区成员的参与行为能给企业带来积极的营销效应,如提升品牌关系、建立社区承诺、创建忠诚顾客的友谊群组、促进购买行为和社区推广、激励新产品开发中的创意贡献等。四位学者在《虚拟社区成员参与心理机制研究述评》一文中,对近十年来有关虚拟社区参与行为的实证研究进行了系统回顾,并认为在后续研究中应当加强对虚拟社区参与行为心理机制的理论解释。而已有研究表明,一种电脑科技越能被成员所接受,成员参与使用该科技的行为意向就会越高。同时,当成员认为某个博客网站更容易使用,更具有乐趣时,他们对博客的参与意向也更高。鉴于“容易使用”与“更有乐趣”都属于科技接受模型的范畴,而博客与虚拟社区之间存在诸多关联之处,本研究将基于科技接受模型的视角分析虚拟社区成员参与行为的驱动机制。这一视角在我国当前社会化电子商务的大背景下也具有特殊的意义。原因在于,社会化电子商务在我国目前还处于起步阶段,社会化电子商务中的虚拟社区对于大多数用户来说还是一个新生事物,需要一个

接受过程。因此,在已有研究视角的基础上,基于科技接受模型视角的研究能够拓展相关领域的研究成果,加强相关领域的理论解释。科技接受模型源于理性行为理论(TheTheoryofReasonedAction,TRA)。理性行为理论由Fishbein和Azjen所提出,主要用以探讨实际行为,行为意向,行为态度,主观规范与信念之间的关系,目的是为了预测个人的实际行为,两位学者在理性行为理论中对于个人行为提出了两项基本假设:第一,个人行为在自我意志的控制之下而发生。第二,个人采取特定行为的意向是该行为发生的立即决定因素。理性行为理论被广泛运用于各领域之行为研究,以预测并解释个人的行为。Davis将理性行为理论简化,并聚焦于电脑科技研究领域提出了科技接受模型。该模型延续了理性行为理论中对于个人行为的两项前提假设,但是删除了理性行为理论中的“主观规范”及其前因变量“规范性信念与动机”,并以“感知有用性”与“感知易用性”作为使用态度的前因变量。科技接受模型自提出后,便在实证研究中广为应用,并为本研究垫定了坚实的研究基础,也进一步支持了基于科技接受模型视角研究虚拟社区成员参与行为的合理性。原因在于:第一,科技接受模型的产生,便是为了了解使用者对于信息科技的使用行为;第二,科技接受模型架构简单易用,并具有较好的解释能力;第三,科技接受模型运用的量表在信度和效度上都获得了支持,同时,科技接受模型也经过许多学者的探讨、实验与修正,不需要针对所涉及的科技的差异而特别制定衡量工具;第四,科技接受模型获得了许多实证研究的支持,验证了科技接受模型对于信息科技使用行为的解释力与重要性;第五,科

2020最新中考英语语法知识点汇总

马上就要中考了,祝大家中考都考上一个理想的高中!欢迎同学们下载,希望能帮助到你们! 2020最新中考英语语法知识点汇总

一、词类、句子成分和构词法: 1、词类:英语词类分十种: 名词、形容词、代词、数词、冠词、动词、副词、介词、连词、感叹词。 1、名词(n.):表示人、事物、地点或抽象概念的名称。如:boy, morning, bag, ball, class, orange. 2、代词(pron.):主要用来代替名词。如:who, she, you, it . 3、形容词(adj..):表示人或事物的性质或特征。如:good, right, white, orange . 4、数词(num.):表示数目或事物的顺序。如:one, two, three, first, second, third, fourth. 5、动词(v.):表示动作或状态。如:am, is,are,have,see .

6、副词(adv.):修饰动词、形容词或其他副词,说明时间、地点、 程度等。如:now, very, here, often, quietly, slowly. 7、冠词(art..):用在名词前,帮助说明名词。如:a, an, the. 8、介词(prep.):表示它后面的名词或代词与其他句子成分的关系。如in, on, from, above, behind. 9、连词(conj.):用来连接词、短语或句子。如and, but, before . 10、感叹词(interj..)表示喜、怒、哀、乐等感情。如:oh, well, hi, hello. 2、句子成分:英语句子成分分为七种:主语、谓语、宾语、定语、 状语、表语、宾语补足语。 1、主语是句子所要说的人或事物,回答是“谁”或者“什么”。通 常用名词或代词担任。如:I’m Miss Green.(我是格林小 姐) 2、谓语动词说明主语的动作或状态,回答“做(什么)”。主要由动词 担任。如:Jack cleans the room every day. (杰克每天打 扫房间) 3、表语在系动词之后,说明主语的身份或特征,回答是“什么”或者 “怎么样”。通常由名词、代词或形容词担任。如:My name is Ping ping .(我的名字叫萍萍) 4、宾语表示及物动词的对象或结果,回答做的是“什么”。通常由

初中英语语法知识点总结

英语语法大全 初中英语语法学习提纲 一、词类、句子成分和构词法: 1、词类:英语词类分十种: 名词、形容词、代词、数词、冠词、动词、副词、介词、连词、感叹词。 1、名词(n.):表示人、事物、地点或抽象概念的名称。如:boy, morning, bag, ball, class, orange. 2、代词(pron.):主要用来代替名词。如:who, she, you, it . 3、形容词(adj..):表示人或事物的性质或特征。如:good, right, white, orange . 4、数词(num.):表示数目或事物的顺序。如:one, two, three, first, second, third, fourth. 5、动词(v.):表示动作或状态。如:am, is,are,have,see . 6、副词(adv.):修饰动词、形容词或其他副词,说明时间、地点、程度等如:now, very, here, often, quietly, slowly. 7、冠词(art..):用在名词前,帮助说明名词。如:a, an, the. 8、介词(prep.):表示它后面的名词或代词与其他句子成分的关系。如in, on, from, above, behind. 9、连词(conj.):用来连接词、短语或句子。如and, but, before .

10、感叹词(interj..)表示喜、怒、哀、乐等感情。如:oh, well, hi, hello. 2、句子成分:英语句子成分分为七种:主语、谓语、宾语、定语、状语、表语、宾语补足语。 1、主语是句子所要说的人或事物,回答是“谁”或者“什么”。通常用名词或代词担任。如:I’m Miss Green.(我是格林小姐) 2、谓语动词说明主语的动作或状态,回答“做(什么)”。主要由动词担任。如:Jack cleans the room every day. (杰克每天打扫房间) 3、表语在系动词之后,说明主语的身份或特征,回答是“什么”或者“怎么样”。通常由名词、代词或形容词担任。如:My name is Ping ping .(我的名字叫萍萍) 4、宾语表示及物动词的对象或结果,回答做的是“什么”。通常由名词或代词担任。 如:He can spell the word.(他能拼这个词) 有些及物动词带有两个宾语,一个指物,一个指人。指物的叫直接宾语,指人的叫间接宾语。间接宾语一般放在直接宾语的前面。如:He wrote me a letter . (他给我写了一封信) 有时可把介词to或for加在间接宾语前构成短语,放在直接宾语后面,来强调间接宾语。如:He wrote a letter to me . (他给我写了一封信) 5、定语修饰名词或代词,通常由形容词、代词、数词等担任。如: Shanghai is a big city .(上海是个大城市)

wdm驱动开发之路

WDM驱动开发之路 写在前面:在专栏的前几期中,我们一起初步学习了vxd的开发技术。Vxd技术是很深奥的,不是一篇两篇文章能讲清楚,但你已经入了门,剩下的就要看你的修行了。多看书,多泡论坛(当然是上咱们的驱动开发网论坛了:->),多写程序…我的手不够用了。功到自然成嘛。不过话又说回来,vxd只是权宜之计,WDM才符合当今的潮流(程序员都是时髦人士,君不见先是VB、VC然后是asp、JSP、PHP,数也数不过来呀),Win9x寿终正寝时也就是vxd的末日,你不想随它而去吧(开个玩笑),那就随我来。 按笔者的想法,这篇文章写成连载形式,一次讲一个主题,并且必要时带着例子,让大伙step by step地把WDM驱动弄个透底,不想让大家觉得稀里糊涂,也不想让大家觉得白买杂志了。 今天我们一起讨论第一部分,了解篇。 (一)了解篇 WDM模型(Windows Driver Model)是微软公司为当前主流操作系统Windows98和Windows 2000的驱动程序设计的一种构架。它和传统的win3.x和win95使用的vxd的驱动是完全不同的体系结构。不过对于最终用户来说,WDM驱动程序在Windows98和Windows2000下的表现很相似。作为驱动开发人员来说,它在两者中有很多的不同。并且Windows98中的WDM只能算是Windowss2000中的WDM的一个了集。在Windows98中有一些驱动程序只能使用VXD来实现,如串行通讯驱动等。 要写驱动程序,首先要了解操作系统的结构。在WDM体系中,windows2000操作系统中是最标准的实现方式,Windows98则是部分兼容WDM结构。照微软的说法,Windows98和Windows2000 X86(Intel 架构)版本实现二进制码兼容(参见98DDK),Windows2000 x86版本与其它CPU平台版本实现源码级兼容(因为Windows 2000是基本NT相似的结构,最底层是硬件抽象层HAL,所有我们相信它们之间能源码级兼容)。但实际上,Windows2000的WDM实现中有很多例程在Windows98中没有实现,一旦试图加载这样的WDM驱动程序到Windows98中,则不能正常加载,当然我们也有办法实现它,那就是利用“桩”技术。具体可参见Walter Oney写的《Programming the Microsoft Windows Driver Model》一书。我们首先来看看Windows 2000的系统结构,然后再来看看Windows 98的。 图一是Windows 2000的系统结构图。从图中我们可以看出:整个系统被分为两个态,用户态和核心态。 从图中可以明显看出I/O操作最后是怎样作用到硬件上的。用户态应用程序对Windows 子系统进行win32 API调用,这个调用由系统服务接口作用到I/O管理器(严格地说,在Windows 系统中不存在I/O管理器这样的独立模块,这个只是为了方便叙述而将各种核心功能调用的集合称作I/O管理器,业界人士都这样称呼这个部分),I/O管理器进行必要的参数匹配和操作安全性检查,然后由这个请求构造出合适的IRP(IO Request Package,I/O请求包),并把此IRP传给驱动程序。简单情况下,驱动程序直接执行这个请求包,并与硬件打交道,从而完成I/O请求工作,最后由I/O管理器将执行结果返回给用户态程序。但在WDM体系结构中,大部分实行分层处理。即在图中“设备驱动“这部分,分成了若干层,典型地分成高层驱动程序、中间层驱动程序、底层驱动程序。每层驱动再把I/O请求划分成更简单的请求,以传给更下层的驱动执行。以文件系统驱动为例,最高层驱动只知道文件如何在磁盘上表示,但不知到怎样得到数据。最低层驱动程序只知道怎样从磁盘取出512B为单的数据块,但不知道文件怎样表示。举个更具体的生活例子。主人(最高层驱动)知道(并且需要)笔计本电脑,但不知道具体放在什么位置;而仆人(最底层驱动)却知道它放在具体什么地方,但

中考英语重点语法解析

中考英语重点语法解析 一.英语语法重点与难点 1、as…as…结构:你和汤姆是一样好的孩子。 You’re a boy as good as Tom.=You’re as good a boy as Tom. 2、(1)too…to与so…that sb. can’t…的句型转换:前者为简单句,主语只有一个,而后者为复合句,主语有两个,试比较: The man was too angry to be able to speak. The man was so angry that he wasn’t able to speak. (2) too…to…与not enough to句型的转换: He is too young to get married.=He is not old enough to get married. The book is too difficult for me to read.= The book is not easy enough for me to read. 3、形容词原级表示比较级含义: 约翰不象迈克那么苯。 John is not so stupid as Mike. John is less stupid than Mike. John is cleverer than Mike. 4、用比较级表示最高级:约翰是班里最高的男生。 John is taller than any other boy in the class. John is the tallest boy in the class. 5、the more….. the more….表示“越……越……”: The more books you read, the wider your knowledge is.

初中英语语法大全汇总

初中英语语法大全汇总 (一) 一.词类(Parts of Speech) 名词英文名称The Noun(缩写为n.) 表示人或事物的名称例词boy,clock,book等 冠词英文名称The Article(缩写为art.) 用在名词前帮助说明名词所指的人和或事物。例词a(an),the 代词英文名称The Pronoun(缩写为pron) 用来代替名词、形容词或是数词例词we,that,his,what 形容词英文名称The Adjective(缩写为adj.) 用以修饰名词,表示人或事物的特征 例词old,red,fine,good. 数词英文名称The Numeral(缩写为num.) 表示数量或是顺序。例词one,thirteen first 动词英文名称The Verb(缩写为v.) 表示动作或状态。例词sit,go,be(am,is,are) 副词英文名称The Adverb(缩写为adv.) 修饰动词、形容词或其他副词。例词not too,here,very 介词英文单词The Preposition(缩写为prep.) 表示名词、代词等和句中其他词的关系。例词in,on,of,to,under. 连词英文单词The Conjunction(缩写为conj.) 用来连接词与词、短语与短语或句与句。例词and,or,but. 感叹词英文单词The Interjection(缩写为interj.) 表示说话时的喜悦、惊讶等情感。例词oh,hello,hi,er. 二.名词(Nouns) 1.总的说来,名词分专有名词和普通名词两类。 专有名词: 表示具体的人,事物,地点或机构的专有名称。 Lucy China 中国Asia 亚洲Beijing 北京。 专有名词的第一个字母要大写。 普通名词: 表示某些人,某类事物,某种物质或抽象概念的名称。例如: teacher 老师tea 茶reform 改革 普通名词又可进一步分为四类 1) 个体名称: 表示单个的人和事物。 house 马car 汽车room 房间apple 苹果fun 风扇picture 照片 2) 集体名称: 表示一群人或一些事物的名称。 people 人们family 家庭army 军队government 政府group 集团 3) 物质名词:表示物质或不具备确定形状和大小的个体的物质。 fire 火steel 钢air 空气water 水milk 牛奶 4)抽象名词:表示动作,状态,品质或其他抽象概念。 labour 劳动health 健康life 生活friendship友情patience耐力 2.名词按其所表现的事物的性质分为可数名词和不可数名词。 可数名词(Countable Nouns)有复数形式,如: an apple two apples a car some cars 不可数名词(Uncountable Nouns)一般没有复数形式. 抽象名词, 物质名词和专有名词一般是不可数名词。 sand 沙sugar 糖 有少数名词即可作可数名词,也可作不可数名词,但含义不同。 glass 玻璃glass 玻璃杯paper 纸paper 报纸,文件 名词的功能 名词在句中作主语, 宾语,介词宾语,宾语补助语,表语以及名词短语作状语。 The bag is in the desk. bag 作主语。 书包在桌子里边。 I washed my clothes yesterday. clothes 作宾语。 昨天我洗了我的衣服。

城市居民绿色出行行为的驱动机理与政策研究

城市居民绿色出行行为的驱动机理与政策研究随着城镇化和机动化的快速发展,我国城市汽车保有量急剧增加,由此引发的城市道路交通拥堵、交通能耗增加、城市空气环境污染等一系列问题也日益严重,并逐步从大城市蔓延至中小城市,成为全社 会关注的热点问题。为缓解城市道路交通拥堵、降低交通能耗、减少空气环境污染,2012年我国已将绿色出行纳入到“十二五”规划,明确提出“鼓励居民选择绿色出行方式”、“倡导绿色出行”;2013年在“循环经济发展战略及近期行动计划”和“大气污染防治行动计划”中也明确提出“倡导绿色出行”、“鼓励绿色出行”;2014年在“能源发展战略行动计划”中再次明确提出“实行绿色交通行动计划”。居民是绿色出行的主体,而高人口密度和高社会经济发展水平的我国东部地区,其机动化程度和汽车保有量为全国最高,随之产生的一系列 问题也最为严重,因此,有必要探讨东部地区城市居民的绿色出行行 为驱动机理,以提出促进城市居民绿色出行的相关政策建议。本文旨在依据理论铺底—质化研究—量化检验—结论与政策建议的技术路线,对我国东部地区城市居民的绿色出行行为及其驱动机理进行系统的深入研究,厘清我国城市居民绿色出行行为的影响因素体系、影响因素变量与行为变量的作用关系以及各变量间的相互作用机制。首先在文献回顾的基础上,界定了城市居民绿色出行行为的概念和种类, 然后通过扎根理论这一质性研究方法找出了城市居民绿色出行行为 的关键影响因素并构建了城市居民绿色出行行为驱动机理理论模型。在此基础上,开发了我国城市居民绿色出行行为调查问卷,并依据东

部地区城市的大样本调查数据,统计分析了我国东部地区城市居民的出行方式选择、绿色出行行为现状及特征差异,深入研究了城市居民绿色出行行为影响因素的作用机制。最后梳理了国内外促进城市居民绿色出行的政策和措施,结合质化和量化分析结果,提出了促进我国 城市居民绿色出行的政策建议。主要研究内容和创新性工作总结如下:(1)城市居民绿色出行行为概念和种类的界定。在文献研究基础上,本文将城市居民绿色出行行为界定为,在综合考虑人、社会、环境和谐发展的前提下,城市居民有意识的选用低能耗、高能效、低污染、兼顾效率与公平、有益于城市与居民健康发展的出行方式的行为。并借鉴环境行为的分类方式,首次将城市居民绿色出行行为划分为调整型绿色出行行为和促进型绿色出行行为。其中,调整型绿色出行行为是指个体身体力行的日常实践行动,主要是指个体主动实施地、调整现有出行方式为绿色出行方式的行为;促进型绿色出行行为是指个体对其他特定个体的游说行为,具体指积极参与或游说、建议他人参与绿色出行相关组织或活动的行为。(2)城市居民绿色出行行为驱动机理的质化研究。本文采用扎根分析这一质性研究方法对我国东部地区32位代表性城市居民的深度访谈资料进行开放式编码、主轴编码和选择性编码等逐级编码,厘清了城市居民绿色出行行为的主要影响因素及作用机制,构建了包含出行者心理认知、行为意愿、出行特性、出行偏好、社会参照规范、制度技术情境和出行者属性等7类主范畴的城市居民绿色出行行为驱动机理理论模型,提出了出行者心理认知通过行为意愿作用于绿色出行行为、出行特性和出行偏好、社会参照

从零开始搭建Linux驱动开发环境

参考: 韦东山视频第10课第一节内核启动流程分析之编译体验 第11课第三节构建根文件系统之busybox 第11课第四节构建根文件系统之构建根文件系统韦东山书籍《嵌入式linux应用开发完全手册》 其他《linux设备驱动程序》第三版 平台: JZ2440、mini2440或TQ2440 交叉网线和miniUSB PC机(windows系统和Vmware下的ubuntu12.04) 一、交叉编译环境的选型 具体的安装交叉编译工具,网上很多资料都有,我的那篇《arm-linux- gcc交叉环境相关知识》也有介绍,这里我只是想提示大家:构建跟文件系统中所用到的lib库一定要是本系统Ubuntu中的交叉编译环境arm-linux- gcc中的。即如果电脑ubuntu中的交叉编译环境为arm-linux-

二、主机、开发板和虚拟机要三者互通 w IP v2.0》一文中有详细的操作步骤,不再赘述。 linux 2.6.22.6_jz2440.patch组合而来,具体操作: 1. 解压缩内核和其补丁包 tar xjvf linux-2.6.22.6.tar.bz2 # 解压内核 tar xjvf linux-2.6.22.6_jz2440.tar.bz2 # 解压补丁

cd linux_2.6.22.6 patch –p1 < ../linux-2.6.22.6_jz2440.patch 3. 配置 在内核目录下执行make 2410_defconfig生成配置菜单,至于怎么配置,《嵌入式linux应用开发完全手册》有详细介绍。 4. 生成uImage make uImage 四、移植busybox 在我们的根文件系统中的/bin和/sbin目录下有各种命令的应用程序,而这些程序在嵌入式系统中都是通过busybox来构建的,每一个命令实际上都是一个指向bu sybox的链接,busybox通过传入的参数来决定进行何种命令操作。 1)配置busybox 解压busybox-1.7.0,然后进入该目录,使用make menuconfig进行配置。这里我们这配置两项 一是在编译选项选择动态库编译,当然你也可以选择静态,不过那样构建的根文件系统会比动态编译的的大。 ->Busybox Settings ->Build Options

初中英语语法(考点)大全

初中英语语法汇总 一.词类(Parts of Speech) (2) 二.名词(Nouns) (2) 三.代词(Pronouns) (4) 四.数词(Numeral) (4) 五.动词(Verb) (5) 六.介词(Prepositions) (6) 七.冠词(Articles) (7) 八.形容词(The Adjective) (8) 九.句子的种类(Kinds of Sentences) (9) 十.一般疑问句和特殊疑问句 (9) 考试常用关键词汇(完备) (11)

一.词类(Parts of Speech) 名词英文名称The Noun(缩写为n.) 表示人或事物的名称,例词boy clock book等; 代词英文名称The Pronoun(缩写为pron 用来代替名词、形容词或是数词,例词we that his what; 数词英文名称The Numeral(缩写为num.) 表示数量或是顺序,例词one thirteen first; 动词英文名称The Verb(缩写为v.) 表示动作或状态,例词sit go be(am is are); 介词英文单词The Preposition(缩写为prep.)表示名词、代词等和句中其他词的关系,例词in on of to under; 冠词英文名称The Article(缩写为art.) 用在名词前帮助说明名词所指的人和或事物,例词a(an),the; 形容词英文名称The Adjective(缩写为adj.) 用以修饰名词,表示人或事物的特征,例词old red fine good;副词英文名称The Adverb(缩写为adv.) 修饰动词、形容词或其他副词,例词not too here very; 连词英文单词The Conjunction(缩写为conj.) 用来连接词与词、短语与短语或句与句,例词and or but;感叹词英文单词The Interjection(缩写为interj.) 表示说话时的喜悦、惊讶等情感。例词oh hello hi er; 二.名词(Nouns) 1.总的说来,名词分专有名词和普通名词两类。 专有名词: 表示具体的人,事物,地点或机构的专有名称。Lucy,China 中国,Asia 亚洲,Beijing 北京。 专有名词的第一个字母要大写; 普通名词: 表示某些人,某类事物,某种物质或抽象概念的名称。例如: teacher 老师,tea 茶,reform 改革,普通名词又可进一步分为四类; 1) 个体名称: 表示单个的人和事物。house 马car 汽车room 房间apple 苹果fun 风扇picture 照片 2) 集体名称: 表示一群人或一些事物的名称。people 人们family 家庭army 军队government 政府 group 集团 3) 物质名词:表示物质或不具备确定形状和大小的个体的物质。fire 火steel 钢air 空气water 水 milk 牛奶 4)抽象名词:表示动作,状态,品质或其他抽象概念。labour 劳动health 健康life 生活friendship友情 patience耐力 2.名词按其所表现的事物的性质分为可数名词和不可数名词。 可数名词(Countable Nouns)有复数形式,如:an apple,two apples,a car,some cars 不可数名词(Uncountable Nouns)一般没有复数形式.

BDD实践-easyb应用简述

BDD实践-easyb应用简述 行为驱动开发(Behaviour-Driven Development)(简写BDD)是一种设计方法。是测试驱动开发的进化,关注于设计。行为驱动开发中,定义系统的行为是主要工作,而对系统行为的描述则变成了测试标准。在实现中,BDD让客户和开发者使用同一种“语言”(DSL)来描述同一个系统,可以最大程度避免表达不一致带来的问题。同时结合测试,用系统行为的定义来验证实现代码。 在项目应用中,我们采用BDD众多框架的一种,Easyb来完成设计和测试工作。开发环境为Eclipse3.6版本,以下插件安装也选则和此版本对应的版本,不再说明。Easyb需要Groovy 环境支持,这里需要在Eclipse安装对应的插件,Groovy Eclipse Plugin(插件)是script语言Groovy的开发辅助工具,它提供编辑,编译,以及执行groovy脚本的功能。Groovy-Eclipse 2.5.0是最新版本。 Groovy-Eclipse 2.5.0 插件的更新地址,在线安装地址: https://www.doczj.com/doc/8a14319235.html,/release/GRECLIPSE/e3.6/ 安装包下载地址: https://www.doczj.com/doc/8a14319235.html,/release/GRECLIPSE/e3.6/archive-2.5.0.xx-20110511-1600-e36-R ELEASE.zip 安装完成Groovy插件后,需要安装Easyb插件。在线安装地址: https://www.doczj.com/doc/8a14319235.html,/svn/trunk/eclipse-plugins/org.easyb.eclipse.updatesite/ 安装包下载地址: https://www.doczj.com/doc/8a14319235.html,/files/easyb-0.9.8.tar.gz 配置完成上述环境就可以进行开发和测试工作了。 以下举例说明一个简单的应用。 首先说明需求情况。需求为在网络环境下,客户端需要远程调用一个应用服务,调用时只需要关心业务应用,指明需要的服务即可,不需要了解具体的路由过程。路由功能将由被设计的路由系统完成。 在这样的需求下,我们设计场景,即测试用例如下: 覆盖需求:客户端获取服务端地址。 用例名称:获取正确的应用服务发布端地址。 前置条件:1. 路由服务器启动。2. 应用服务发布端启动并注册到路由服务器。3. 应用服务请求端启动并注册到路由服务器。 操作步骤:应用服务请求端获取发布端地址。 预期结果:应用服务请求端获取正确的服务端地址。 我们把这个场景体现在Easyb中,首先建立一个story文件,文件命名为requester.story,作为服务请求方,从需求角度建立此文件。然后在该文件中建立一个场景,实现上述用例步骤。在Easyb中场景关键字是scenario。代码如下: 文件requester.story scenario"获取正确的应用服务发布端地址", { given"路由服务器启动" and given"应用服务发布端启动并注册到路由服务器" and given"应用服务请求端启动并注册到路由服务器" when"应用服务请求端获取发布端地址"

行为驱动开发

行为驱动开发 行为驱动开发(简称BDD)是测试驱动开发的升级版。它是一套软件工程实践方法,能帮助研发团队更快地构建和交付更有价值和更高质量的软件产品。采用BDD思想编写的测试读起来更像规格说明书而不是单元测试,所以它是使用测试作为表达和验证行为的一种手段。基于这个特性,BDD也非常适合应用在需求分析中。 一、行为驱动开发的原则 1.聚焦交付业务价值。使用验收标准作为目标,帮助业务实现更实际的可交付的功能。 2.团队共同确定交付标准。业务分析人员,开发人员,测试人员与最终用户一起定义和指定功能。 3.拥抱变化。项目开始时不锁定需求,而是假设需求,从用户那里得到早期的反馈,对需求的理解将在项目的整个生命周期中演进和变更。 4.不仅仅编写自动化测试,而是编写可执行规范和底层规范。团队将验收标准转换为自动化的验收测试,更准确地说是转换为可执行规范。在编写任何代码之前,开发人员将考虑代码实际上应该做什么,并将其表示为底层的可执行规范。可执行规范是一种自动化测试,它演示和验证应用程序如何交付特定的业务需求。自动化测试作为构建过程的一部分运行,并在对应用程序进行更改时运行,进行验收测试和回归测试。 5.交付活文档,并使用活文档来支持后续维护工作。在项目结束后持续维护项目可执行规范。 二、行为驱动开发的优势 1.专注业务目标,避免工程师把工作量浪费在不提供业务价值的功能上,能够降低成本,减少浪费。

2.完整的可执行规范,可充当开发人员的辅助技术文档,更容易理解现有的代码库并进行更改。 3.全面的自动化验收测试和回归测试,不仅可以提升执行效率,也能降低手工测试的出错率,使得迭代速度更快更可靠。 三、行为驱动开发的缺陷 1. 需要多个角色高度参与和协作,涉众如果不愿意或不能参与对话和协作,或者等到项目结束后才给出反馈,就很难充分利用BDD的优点。 2.比较适用于敏捷开发,但不太适用于瀑布式开发。 3.对参与角色能力要求很高,尤其是测试团队,不仅需要精通业务,对业务目标清晰,而且对测试技术能力要求更高,如果编写的自动化测试很烂,会导致更高的测试维护成本。

相关主题
文本预览
相关文档 最新文档