当前位置:文档之家› DB2 SQLJ 存储过程开发宝典,第 2 部分_217_IT168文库

DB2 SQLJ 存储过程开发宝典,第 2 部分_217_IT168文库

DB2 SQLJ 存储过程开发宝典,第 2 部分_217_IT168文库
DB2 SQLJ 存储过程开发宝典,第 2 部分_217_IT168文库

DB2 SQLJ 存储过程开发宝典,第 2 部分

简介: 在第 1 部分,我们已经介绍了 SQLJ 存储过程的基本知识,如何逐步完成开发和调试。现在,我们将总结说明在运行 SQLJ 存储过程时,经常遇到的错误,并对这些错误产生的原因进行分析,并给出相应的修正方法。此外,在开发过程中,有一些值得考虑或者需要进一步说明的问题,我们也将他们罗列出来,予以探讨。

引言

在第 1 部分,我们已经介绍了 SQLJ 存储过程的基本知识,如何逐步完成开发和调试。现在,我们将总结说明在运行 SQLJ 存储过程时,经常遇到的错误,并对这些错误产生的原因进行分析,并给出相应的修正方法。此外,在开发过程中,有一些值得考虑或者需要进一步说明的问题,我们也将他们罗列出来,予以探讨。

常见错误总结

由于程序代码本身、运行环境、参数配置等原因,SQLJ 存储过程在被调用时,可能会发生各种错误。对这些错误进行分析,明确其产生的原因,找到相应的应对措施,并加以归纳总结,对我们提高开发水平、保证产品质量和提高工作效率等方面具有重要的意义。这些信息对于 SQLJ 应用开发的初学者尤为重要,能够直接的帮助他们解决开发实际工作中遇到的问题,表 1 列出了常见的 SQLJ 存储过程运行错误,原因以及相应措施。

表 1. 常见错误

错误

原因

措施

SQL4306N Java 存储过程或用户定义的函数 名称(特定名称 特定名称)不能调用 Java 方法 方法,特征符为 字符串 DB2 通过 JAR 包名、类名、方法名和签名(Signature )无法找到创建存储过程时指定的被调用的方法。可能是引用的类不存在、jar 包没有安装、方法声明的参数列表与数据库期望的参数列表不匹配或者不是“public”实例方法 1.查看 Java 代码中的方法名和类名,检查存储过程

DDL 中 Java 方法名、类名和 jar 包名是否有误; 2.检查 jar/calss 文件是否在指定位置,如 sqllib/function 目录下; 3.检查存储过程 DDL 中的方法参数列表是否与 Java 代码匹配(使用 javap – s class_id 可以查看类中方法的签名),并且 Java 代码中该方法是 public

的。

SQL4304N Java 存储过程或用户定义的函数 名称(特定名称 特定名称)不能装入 Java 类 类,原因码为 原因码。 1. RC=1:在 CLASSPATH 上找不到该类。往往可能是我们在

DDL 发生了拼写错误;

2. RC=2:该类未实现必需的接口 COM.ibm.db2.app.StoredProc

或缺少 public 访问权标志。如果是 PARAMETER STYLE

DB2GENERAL 的存储过程,那么要求被调用 Java 类是 public

的并继承了接口 COM.ibm.db2.app.StoredProc 。

1.检查 Java 代码中的类 / 方法名和存储过程 DDL

中 Java 类 / 方法名是否一致;

2.检查 jar/calss 文件是否在 CLASSPATH 中,如

sqllib/function 目录下;

3.检查是否 DDL 指定了 PARAMETER STYLE

DB2GENERAL 而 Java 代码类是否是 public 并继承

接口 COM.ibm.db2.app.StoredProc 。

SQL4302N

过程或用户定义的函数 名称(特定名称 特定名称)由于异常 字符串 而

存储过程由于异常而异常终止。通常可能是查询返回是空的

数据集,或是 SQL 中使用“select into :hostvar”但是实际查

询返回多条数据,或 Java 运行中出现空指针异常等。

检查 db2diag.log 诊断日志,找到错误,修正 Java

代码。

异常终止。

SQL4301N

Java 或 .NET 解释器启动

或通信失败,原因码为 原

因码。

启动或与 JVM 通信时出错。可能是因为 Java 环境变量或 Java 数据库配置参数无效,如 JDK_PATH 和 JAVA_HEAP_SZ 配置失当 或 db2java.zip 不在 CLASSPATH 中等。 确保正确设置了 Java 数据库配置参数(jdk_path 和 java_heap_sz )。确保安装了支持的 Java 运行时

环境。确保内部 DB2 类(COM.ibm.db2)未被用户

类覆盖。

1. 检查 jdk_path 是否指向 JDK 的 bin 目录的父

目录,CLASSPATH 中包含 db2java.zip ;

2. 检查是否指定了足够大的 java_heap_sz 。 SQL20204N 用户定义的函数或过程 函数名 无法映射至单个 Java 方法。 存储过程找不到匹配的 Java 方法,或者找到多个匹配的 Java 方法。 理解 EXTERNAL NAME 的规范格式 [jar_id]:class_id(.|!)method_id ,即“:”分隔包名和类

名,“.”或“!”分隔类名和方法名,包名可选。 1.检查 DDL 是否指定了正确的 Java 方法名、类名和 jar 包名; 2.检查 jar/calss 文件是否存在,如在 sqllib/function

目录下;

3.检查是否有方法参数列表匹配问题。

SQL1042C 发生了意外的系统错误。 运行存储过程是出现该错误,往往是因为 DB2 实例级别的环

境问题、访问权限问题或参数配置问题。如 Java 程序访问无

权访问的文件、DB2 参数 DB2_FMP_COMM_HEAPSZ 设置为

零等。

检查 db2diag.log 诊断日志,找到系统错误的原因并

予以修正。如正确配置文件的访问权限,Java 代码

中只读写可读写的文件等。

更详细的信息,请参考文章 解决 DB2 UDB Java 存储过程的常见问题。

进一步探讨的若干问题

为了介绍的简明和连贯,在第 1 部分 SQLJ 存储过程的开发实例中,我们使用了比较简练的示例,分步骤说明如何完成 SQLJ 存储过程的编码和调试,没有展开篇幅,引入更多的讨论。下面我们以问答的形式,介绍在 SQLJ 存储过程的开发中,我们需要知晓的一些其它问题。

1. 如果不把 SQLJ 概要文件绑定到特定的数据库,可以运行 SQLJ 存储过程吗?

可以。在 SQLJ 应用开发模型和 SQLJ 存储过程开发流程的介绍中,我们都介绍了需要将 SQLJ 概要文件定制到特定的数据库。更进一步,在定制概要文件成功后,概要文件将被更新,增加定制信息,包括 DB2 package 名称和时间戳等内容。在执行 SQLJ 应用时,如果发现概要文件中含有定制信息,那么将使用生成的 DB2 package ,运行静态 SQL ,反之,如果概要文件中没有定制信息,那么将按动态 SQL 完成数据库操作。所以仅从 SQLJ 存储过程能否运行来说,概要文件定制这一步骤不是必需的。跳过这一步,SQLJ 存储过程仍然可以运行,但是 DB2 概要文件中没有任何定制化信息,存储过程将退化为动态执行 SQL 的 Java 应用,与直接使用 JDBC 编写的 Java 存储过程一样,但是这显然不是我们使用 SQLJ 的目的,所以一般情况下,我们都需要定制 SQLJ 概要文件。 2. 可以在同一 Java 源文件中,同时使用 SQLJ 和 JDBC 吗?

可以。SQLJ 和 JDBC 可以共享数据库连接,SQLJ 可以从 JDBC 的连接(connection)为参数创建连接上下文(connection context),JDBC 也可以从 SQLJ 连接上下文中获得连接,这样,SQLJ 和 JDBC 在同一数据库连接,可以共享事务单元;SQLJ 和 JDBC 也可以相互传递从数据库中返回的查询结果,可以通过 SQLJ 的迭代器的 getResultSet() 方法,得到JDBC 的 ResultSet。也可以通过 CAST 语句将 JDBC 的 ResultSet 转换为 SQLJ 的迭代器。参见清单 1。

清单1. SQLJ 和JDBC 交互的示例??????????????????????????????????

//...

MyContext ctx = new MyContext("jdbc:default:connection", false);

#sql [ctx] { INSERT INTO tableName (objId, col) VALUES (2, 'sales') };

// 由 SQLJ 连接上下文获得 JDBC 连接

Connection dbcon = ctx.getConnection();

// 以 JDBC 连接为参数创建 SQLJ 连接上下文

MyContext newCtx = new MyContext(dbcon);

#sql [newCtx] { INSERT INTO tableName (objId, col) VALUES (3, 'orders') };

//SQLJ 的迭代器传递数据给 JDBC 的 ResultSet

#sql [newCtx] myCursor = { SELECT col FROM tableName };

ResultSet rs = myCursor.getResultSet();

while (rs.next()) {

System.out.println(rs.getString(1));

}

//JDBC 的 ResultSet 传递数据给 SQLJ 的迭代器

Statement stmt = dbcon.createStatemnt();

ResultSet rs = stmt.executeQuery("SELECT col FROM tableName");

#sql myCursor = { CAST :rs };

while (myCursor.next()) {

System.out.println(https://www.doczj.com/doc/0014446360.html,()

);

3. 示例中所有 SQLJ 语句中都指定了连接上下文,它们可以省略吗?

有关 SQLJ 上下文的使用,情况稍微有点复杂。在本文前面的示例代码中,均使用了“#sql [ctx] { SQL statement};”格式嵌入 SQL 语句,但是如果我们使用的是 DB2 v8 之前的版本中,那么也可以省略 [ctx],即“sql { SQL statement};”,这时我们使用的是缺省的连接上下文,代码片段如清单 2 所示。

清单2. 在DB2 v8 之前的版本中使用缺省上下文?????????????????????????

public class MyClass {

public static void MyMethod(int objectID, String[] colName){

//...

try {

DefaultContext ctx = DefaultContext.getDefaultContext();

#sql { SELECT col into :hostVar FROM tableName WHERE objID=:objectID };

//...

} catch (SQLException e) {

//Log error message

}

} // end of MyMethod

} // end of MyClass

正如在第 1 部分讨论连接上下文时所指出的,在新的 DB2 版本中,我们不能以清单 2 中的方法创建和使用缺省上下文,因为在多线程的环境下使用同一连接上下文,将可能导致不可预测的后果。文章第 1 部分中的清单 12 和清单 14 给出了正确的示例,即声明一个 context SQLJ 类,并创建该类的实例,在 SQL 语句前指定该上下文实例,如“#sql [ctx] { SQL statement};”,这样,每一次调用存储过程时,将创建一个独立的连接上下文,避免了并发线程之间的相互干扰。

一般地,在 SQLJ 存储过程的开发中,我们只需要访问一个目标数据库。但是在 SQLJ 独立应用程序中,我们有时候可能在一个 SQLJ 源文件中需要使用多个 context 类,比如连接不同的数据库或者连接不同的 schema,那么我们可以声明多个 context SQLJ 类,将其实例化并在 SQL 语句前制定不同的连接上下文。在转换 SQLJ 源文件后,每一个 context 类将产生一个概要文件与其对应,包含了该连接上下文中所要执行的操作序列。每一个概要文件可以使用 db2sqljprint 格式化显示其内容,如清单 3。

清单3. 用db2sqljprint 格式化概要文件????????????????????????????????????????

/home/csliu/SQLJ_SP->db2sqljprint MyClass_SJProfile0.ser

===================================================

printing contents of profile MyClass_SJProfile0

created 1287489703356 (2010-10-19)

associated context is MyContext

profile loader is sqlj.runtime.profile.DefaultLoader@439f439f

contains 0 customizations

original source file: MyClass.sqlj

contains 2 entries

===================================================

profile MyClass_SJProfile0 entry 0

#sql { SELECT col FROM tableName WHERE objID= ? };

line number: 19

PREPARED_STATEMENT executed via EXECUTE_QUERY

role is SINGLE_ROW_QUERY

descriptor is null

contains 1 parameters

1. mode: IN, java type: int (int),

sql type: INTEGER, name: objectID, marker index: 41

result set type is POSITIONED_RESULT

result set name is null

contains 1 result columns

1. mode: OUT, java type: https://www.doczj.com/doc/0014446360.html,ng.String (https://www.doczj.com/doc/0014446360.html,ng.String),

sql type: VARCHAR, name: hostVar, marker index: -1

===================================================

profile MyClass_SJProfile0 entry 1

#sql { SELECT col FROM tableName };

line number: 23

PREPARED_STATEMENT executed via EXECUTE_QUERY

role is QUERY

descriptor is null

contains 0 parameters

result set type is NAMED_RESULT

result set name is MyStrIter

contains 1 result columns

1. mode: OUT, java type: https://www.doczj.com/doc/0014446360.html,ng.String (https://www.doczj.com/doc/0014446360.html,ng.String),

sql type: VARCHAR, name: name, marker index: -1

===================================================

其实,在 SQL 语句前,我们不仅可以指定连接上下文,有时我们为了控制 SQL 语句的执行或得到更多的有关 SQL 执行的信息,还可以指定执行上下文(ExecutionContext),即按如下格式嵌入 SQL:“#sql

[connection-context,execution-context] {sql-statement};”。每一个连接上下文都有一个缺省的执行上下文,所以我们可以从连接上下文中获取其缺省执行上下文;我们也可以通过调用 ExecutionContext 类的构造函数,创建执行上下文。然后通过调用 ExecutionContext 的相关方法,获取 SQL 执行的更多信息,或者控制 SQL 的执行(如批量执行等)。清单 4 示意了通过执行上下文的创建和使用。

清单4. 创建执行上下文并获取删除记录条数???????????????????????????????

int delCount1 = 0;

int delCount2 = 0;

DefaultContext connCtx = DefaultContext.getDefaultContext();

// 从连接上下文中获取其缺省执行上下文

ExecutionContext execCtx1 = connCtx.getExecutionContext();

// 调用 ExecutionContext 类的构造函数创建执行上下文

ExecutionContext execCtx2 = new ExecutionContext();

// 获取删除记录条数

#sql [connCtx, execCtx1] {DELETE FROM tableName WHERE objID > 200};

delCount1 = execCtx.getUpdateCount();

#sql [connCtx, execCtx2] {DELETE FROM tableName WHERE objID > 100};

delCount2 = execCtx.getUpdateCount();

在本文前面的所有示例中,都没有显式的指定执行上下文,SQLJ 会隐式地获取连接上下文的缺省执行上下文。

4. 为什么在修改和编译代码,重新调用(CALL)存储过程,结果没有变化?

在我们修改代码进行调试的过程中,有时我们会把注意力集中在如何修改代码上,而忽略了调试流程中一些次要的环节。在修改代码,成功编译,定制概要文件,重新创建并替换 jar 包之后,就开始重新运行存储过程,验证修改后的期望结果,可是我们发现运行结果与代码修改之前的完全相同。然而,在运行之前,我们需要重新启动 DB2 实例,重新装载 SQLJ 存储过程,这样我们才能观察并验证修改后的存储过程的行为和运行结果。

5. 为什么不能将信息写入操作系统的文件中?

考虑到系统的安全性,SQLJ 存储过程是 fenced 例程,只能由 fenced 用户在 FMP 空间运行,而 fenced 用户可能没有访问一些特定的操作系统文件的权限。在这种情况下,如果我们向 fenced 用户没有“写”权限的文件输出一些内容,那么会发生无法将信息写入操作系统文件的错误。解决办法就是给 fenced 用户赋予需要的文件访问权限。有关 fenced 用户的更多信息,可以通过 DB2 InfoCenter 查看。

6. 为什么在调用存储过程时产生 Out of memory 异常?

这一异常通常是因为 DB2 数据库管理器配置参数 JAVA_HEAP_SZ 设置得太小。该参数指定了运行 Java 存储和 UDF 的JVM 可使用的堆的大小,为了避免在 SQLJ 存储过程中耗尽内存,可以增大这个参数的值。但是需要注意的是,如果我们要调用多个存储过程,JAVA_HEAP_SZ 设置过大对整体资源的使用是不利的。所以要根据情况为 JAVA_HEAP_SZ 设置合理的大小。

7. 为什么编写的存储过程会在第一次和第二次调用结果不一样?

我们在调试 SQLJ 存储过程时,发现先后两次运行的结果不一样。清单 5 的 DDL 创建了这样一个存储过程。

清单5. 创建存储过程MySP2????????????????????????????????????????????????????????

CREATE PROCEDURE MySchema.MySP2(OUT money2pay int)

SPECIFIC MySchema.MySP2

DYNAMIC RESULT SETS 0

DETERMINISTIC

LANGUAGE JAVA

PARAMETER STYLE JAVA

NO DBINFO

FENCED

THREADSAFE

EXTERNAL NAME 'MYJAR:MyClass2.MyMethod';

该存储过程所引用的 MyClass2 代码见清单 6,从 product 数据表中累计所有待购产品的价格总和,并将该值返回,注意返回的参数需要声明为单项数组。

清单6. 类MyClass2 代码??????????????????????????????????????????????????????????????

import java.sql.*;

import sqlj.runtime.*;

import sqlj.runtime.ref.*;

#sql context MyContext;

#sql iterator MyIntIter (int price);

public class MyClass2 {

static int moneyCount = 0;

public static void MyMethod(int[] total2pay){

MyIntIter myCursor;

try {

MyContext ctx = new MyContext("jdbc:default:connection", false);

#sql[ctx] myCursor = { SELECT price FROM product };

while( myCursor.next() ){

moneyCount += myCursor.price();

}

total2pay[0] = moneyCount;

ctx.close();

} catch (SQLException e) {

//Log error message

}

} // end of MyMethod

} // end of MyClass2

清单 7 显示了我们先后两次运行存储过程 MySP2 的不同结果。

清单7. 两次运行存储过程MySP2????????????????????????????????????????????????

db2 "call MySchema.MySP2(?)"

Value of output parameters

--------------------------

Parameter Name : MONEY2PAY

Parameter Value : 100

Return Status = 0

db2 "call MySchema.MySP2(?)"

Value of output parameters

--------------------------

Parameter Name : MONEY2PAY

Parameter Value : 200

Return Status = 0

第一次我们查询到的所有待购产品的价格是 100,而第二次得到的却是 200,而我们在两次查询之间并没有对数据表中的数据做任何修改,所以正确的结果应该是两次都返回 100。所以,这一结果往往让我们感到很困惑,觉得无可适从。这时,我们需要查看一下 DB2 数据库管理器参数 KEEPFENCED 的设置,见清单 8。

清单8. 查看参数KEEPFENCED???????????????????????????????????????????????????

db2 get dbm cfg | grep KEEPFENCED

Keep fenced process (KEEPFENCED) = YES

我们观察一下将参数 KEEPFENCED 为 NO 之后,再运行存储过程 MySP2 的结果,如清单 9 所示。

清单9. 修改参数KEEPFENCED 后的运行结果????????????????????????????

db2 update dbm cfg using KEEPFENCED NO

DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed

db2stop force

SQL1064N DB2STOP processing was successful.

db2start

SQL1063N DB2START processing was successful.

db2 connect to SQLJ_DB

Database Connection Information

Database server = DB2/LINUXX8664 9.7.0

SQL authorization ID = CSLIU

Local database alias = SQLJ_DB

db2 "call MySchema.MySP2(?)"

Value of output parameters

--------------------------

Parameter Name : MONEY2PAY

Parameter Value : 100

Return Status = 0

db2 "call MySchema.MySP2(?)"

Value of output parameters

--------------------------

Parameter Name : MONEY2PAY

Parameter Value : 100

Return Status = 0

显然,将参数 KEEPFENCED 为 NO 之后,先后两次运行存储过程的结果完全相同。原来参数 KEEPFENCED 指出,在完成一次 SQLJ 存储过程的调用之后,是否保留 fenced 进程 db2fmp。fenced 进程是被独立创建的,将用户编写的 fenced 存储过程与数据库管理器代理进程隔离开来。进一步,我们发现在 SQLJ 代码中我们声明了静态(static)变量,如果我们在存储过程调用后,保留运行该存储过程的 db2fmp 进程(KEEPFENCED=YES),那么静态变量将一直保存在运行空间中,如果 KEEPFENCED=NO,那么每一次调用存储过程时,运行该存储过程的进程都会被重新创建,当然静态变量也会被重新初始化。

如果 SQLJ 中没有引入静态变量等全局共享的信息,KEEPFENCED 的设置不会引起多次运行结果的差异。在生产环境中,应该将这个参数设置为 YES,这样可以避免用来运行存储过程的 db2fmp 进程反复被关闭和创建,从而影响系统的性能。此外,NOT FENCED 存储过程不受这个配置参数影响,因为它们不在 db2fmp 进程中运行。

2. 为什么在移植存储过程时会遇到 SQL0818N 错误?

有时候,我们在服务器 A 上按照本文介绍的流程开发完 SQLJ 存储过程之后,需要将其移植到服务器 B 上,把所有运行时必需的文件,包括在 A 上生成的 jar 包和 .ser 概要文件,从服务器 A 拷贝到服务器 B 上,然后在 B 上将概要文件定制到目标数据库,生成 package。可是我们在 B 上运行创建的存储过程将产生 SQL0818N 错误。

我们知道,在定制概要文件时,生成的 DB2 package 有一个时间戳标识(即 Consistency Token),同时概要文件也被更新了,文件中增加了包时间戳(Package Consistency Token),可以通过本文前面提到的 db2sqljprint 格式化工具查看。在服务器 B 上,我们拷贝来的 jar 包中包含增加了包时间戳的概要文件,而我们又重新将概要文件进行定制,这时在数据库中的 package 对应的时间戳与包含在 jar 中的概要文件中的包时间戳不一致,从而导致 SQL0818N 错误。所以简单的说,在任何服务器环境下,必须保持运行存储过程时使用的定制化的概要文件中的包时间戳与数据库中的

package 的时间戳完全相同。对于 SQLJ 存储过程的移植,应该把所有 class 文件和概要文件拷贝到目标服务器,进行概要文件的定制后,再进行打包,安装 jar 并创建存储过程后调用运行。

结论

第 1 部分有关 SQLJ 的基本知识以及如何开发的介绍,可以帮助大家很快的熟悉 SQLJ 技术,体会到使用 SQLJ 技术的优势。本文我们总结归纳了开发过程中的常见错误和需要进一步思考到的一些重要问题,可以帮助 SQLJ 存储过程开发人员迅速提高对这一技术认识的深度,提高实际应用的开发水平,提高产品质量和工作效率。

关于作者

刘长生,IBM CDL软件工程师,具有多年软件开发经验,曾从事组件库技术的研究,目前从事 DB2 pureXML 相关的开发工作。

记叙文阅读答题技巧及套路

记叙文阅读答题技巧及套路(一) 语段阅读题答题总原则: (1)、先读题后读文。读题时注意从题干中找出“题眼”(即答题关键点),带着问题读文,使阅读具有明确的目标。 (2)、读文时,要注意整体把握文章的主要内容和中心意思。 (3)、准备答题时,必须再次细读题目,找准“题眼”。 (4)、答题时,具体题目涉及到相关段落,要对这些段落反复研读;如涉及全篇,则要再读全文。 记叙文的有关考点和技巧 一、在题目上设题: 1.问题目的含义:从表层义、深层义、蕴含的情感、主题等几个角度考虑。 2.问题目的作用:除了上述的几个角度外,再从结构上考虑是否是线索。 二、在情节上设题 1.概括事件:找准主要人物,主要事件。按照“他(她)做了什么事,结果如何”的模式进行概括。 2.概括部分情节 概括故事开端、发展、高潮、结局,或概括故事的起因、经过、结果。 思路:先划分出情节的各个阶段,再进行概括。防止出现误将高潮当作结局,或把经过当作结果的情况。 3. 概括情节的变化: 这类题大致有三种情况:(1)有提示性填空(2)只给几个空,不做其他提示(3)空也不给,不做任何的提示 思路:全局考虑,分析结构,划分情节发展的阶段,筛选出文中的关键词语或自己概括来填空。 三、在人物形象上设题 1.概括人物形象 人物形象是指人物的性格特征,精神品质,而不是指外表特征。 思路:从具体的写人方法(外貌、语言、动作、心理描写;正面、侧面描写;细节描写;对比、衬托手法等)入手,抓住抒情和议论语句,用赞扬(或批判)的情感,用积极向上(或贬斥)的语言概括出人物身上的优秀(或低俗)的品质或性格。 2.辨识塑造人物的手法及其作用 思路:这句话运用了……(外貌、语言、动作、心理描写;正面、侧面描写;细节描写;对比、衬托手法等)的描写手法(或写法),写出了人物……的性格特征(或精神品质)。突出了文章……的中心。3.评价人物形象 这类题常有两种类型:有模板;没有限制。 思路:(有模板,可以模仿模板的句式、语言风格)先写出人物的优秀品质,再加以赞美。语言要简洁,优美,富有激情。 4.补写人物心理 思路:先要明确人物此时所处的情境和此时应有的、合理的心理内容。语言表述时要注意人称,很多

软件项目集成开发流程及文档

软件项目集成开发 一、项目组织架构 A 项目经理 负责分析、设计和协调工作。随时监控各开发人员的工作,包括内容是否与要求发生偏差,进度是否滞后等等,同时给每个开发人员明确的任务书。 在项目周期内项目经理最好不要更换。大项目需要配备专门的系统分析师和系统设计师。 B 开发人员 熟悉针对软件开发的编程工具,并具有丰富的编程经验,负责完成不同层与模块的编程工作。 开发人员数量视系统模块数量和开发难度而定。 C 业务需求人员 熟悉业务工作流程,有丰富的业务经验。 业务需求人员的选择应覆盖系统所服务的业务部门。 D 文档整理人员 随时整理系统开发过程中相关的技术文档。 作为业务支撑,文档整理人员需熟悉软件开发的流程、文档管理、文档模板。 项目组织架构 项目经理 开发人员 业务需求人员 文档整理人员 测试工程师

E测试工程师 专门进行代码的测试工作,并且计划和执行源代码复审,负责有关返工的任何反馈意见(有条件可配置)。

二、项目流程管理 系统开发的过程必须符合IT 项目开发流程的规律,整个过程应包含但不仅限于以下环节: 需求调研是软件开发的最初阶段。需求调研的结果确立了软件开发的方向。软件设计是后续开发步骤及软件维护工作的基础。 在项目实施的过程中,项目实施者大多把精力放在了编码阶段,而需求调研和系统设计往往不被重视。没有严格的需求调研和分析,最终的软件产品会偏离用户的真正需求。如果没有设计,只能建立一个不稳定的系统结构。如下图所示:

在项目实施过程中,以上各个流程都不应该被忽略(重大项目更是如此),任何一个环节的遗失都可能引起项目方向的偏差,甚至失败。项目管理者可以在此基础上,完善项目管理流程,以降低项目实施的风险。 三、项目文档管理 项目管理者必须在系统开发过程中做好项目文档管理。项目文档是项目实施的依据,也是项目设计、编码、测试、修正、培训和验收的依据。 根据以上项目流程,项目实施过程中应包含以下所必须的文档:

常用放缩方法技巧

常用放缩方法技巧 证明数列型不等式,因其思维跨度大、构造性强,需要有较高得放缩技巧而充满思考性与挑战性,能全面而综合地考查学生得潜能与后继学习能力,因而成为高考压轴题及各级各类竞赛试题命题得极好素材。这类问题得求解策略往往就是:通过多角度观察所给数列通项得结构,深入剖析其特征,抓住其规律进行恰当地放缩;其放缩技巧主要有以下几种: ⑴添加或舍去一些项,如:; ⑵将分子或分母放大(或缩小) ⑶利用基本不等式,如:; ⑷二项式放缩:,, (5)利用常用结论: Ⅰ、得放缩 : Ⅱ、得放缩(1) : (程度大) Ⅲ、得放缩(2):(程度小) Ⅳ、得放缩(3):(程度更小) Ⅴ、分式放缩还可利用真(假)分数得性质:与 记忆口诀“小者小,大者大”。解释:瞧b,若b小,则不等号就是小于号,反之亦然、 Ⅵ、构造函数法构造单调函数实现放缩。例:,从而实现利用函数单调性质得放缩:。 一.先求与再放缩 例1、,前n项与为S n ,求证: 例2、 , 前n项与为S n ,求证: 二.先放缩再求与 (一)放缩后裂项相消 例3.数列,,其前项与为 ,求证: (二)放缩后转化为等比数列。 例4、满足: (1)用数学归纳法证明: (2),求证: 三、裂项放缩 例5、(1)求得值; (2)求证:、 例6、(1)求证: (2)求证: (3)求证: 例7、求证: 例8、已知,,求证:、 四、分式放缩 姐妹不等式:与 记忆口诀”小者小,大者大” 解释:瞧b,若b小,则不等号就是小于号,反之亦然、 例9、姐妹不等式:与 也可以表示成为 与 例10、证明: 五、均值不等式放缩 例11、设求证 例12、已知函数,a>0,b>0,若,且在[0,1]上得最大值为, 求证: 六、二项式放缩 ,, 例13、设,求证、 例14、 , 试证明:、

记叙文阅读技巧分析

中考语文现代文阅读(一) 小说、散文、记叙文阅读知识与技巧 1.为文章拟标题。找文章的线索或中心(1)核心人物(2)核心事物 (3)核心事件(6)作者情感 2.找主题句? 找首段或尾段的议论抒情句。 3.记叙线索及作用? 线索:(1)核心人物(2)核心事物 (3)核心事件(4)时间(5)地点(6)作者的情感 方法:2、寻找线索的几种方法:①文章的标题②各段反复出现的事物③文中议论抒情的语句④作者的思想感情。⑤某一人物的见闻感受 作用:是贯穿全文的脉络,把文中的人物和事件有机地连在一起,使文章条理清楚、层次清晰。 4.记叙顺序及作用? (1)顺叙(按事情发展先后顺序)作用:叙事有头有尾,条理清晰,读起来脉络清楚、给人印象深刻。 (2)倒叙(先写结果,再交待前面发生的事。) 作用:造成悬念、吸引读者,增强文章的趣味性。 (3)插叙(叙事时,插入相关的另一件事)作用:对情节起补充、衬托作用,丰富形象,突出中心。 5.记叙文中议论的作用?

引发读者思考,点明人物或事件的意义,突出中心,升华主题,起到画龙点睛的作用。 6.记叙文中抒情的作用?抒发作者真挚深沉的情感,引发读者的感情共鸣,使文章具有强大的感染力。 7.描写的种类及作用? (1)肖像描写(2)外貌描写(3)神态描写(4)动作描写(5)语言(对话)描写(6)心理描写(7)环境描写(8)细节描写景物描写作用:(1)交代背景(2)推动情节发展(3)渲染气氛(4)突出人物性格(5)烘托人物心情 8.文章内容(中心)? 方法:看题目、人物(事物)、事件,进行综合、概括。 格式:此文记叙了(描写了、说明了)……,表现了(赞美了、揭示了)……。 9.表现手法及作用? 衬托、象征、托物言志、借景抒情、欲扬先抑、正反对比、侧面烘托、虚实结合、以小见大、卒章显志、巧设悬念、首尾呼应、铺垫映衬(1)象征手法作用:把特定的意义寄托在所描写的事物上,表达了的情感,增强了文章的表现力。 (2)对比手法作用:通过比较,突出事物的特点,更好地表现文章……的主题。 (3)衬托(侧面烘托)手法作用:以次要的人或事物衬托主要的人或事物,突出主要的人或事物的特点、性格、思想、感情等。

常用放缩方法技巧

常用放缩方法技巧 证明数列型不等式,因其思维跨度大、构造性强,需要有较高的放缩技巧而充满思考性和挑战性,能全面而综合地考查学生的潜能与后继学习能力,因而成为高考压轴题及各级各类竞赛试题命题的极好素材。这类问题的求解策略往往是:通过多角度观察所给数列通项的结构,深入剖析其特征,抓住其规律进行恰当地放缩;其放缩技巧主要有以下几种: ⑴添加或舍去一些项,如: a a >+12;n n n >+)1( ⑵将分子或分母放大(或缩小) ⑶利用基本不等式,如:4lg 16lg 15lg )2 5lg 3lg (5lg 3lg 2=<=+n n n n (5)利用常用结论: Ⅰ. 的放缩 Ⅱ. 21k 的放缩(1) : 2111(1)(1) k k k k k <<+-(程度大) Ⅲ. 21k 的放缩(2):22111111()1(1)(1)211k k k k k k <==+-+--+(程度小) Ⅳ. 2 1k 的放缩(3):221 4112()412121k k k k <=+--+(程度更小) Ⅴ. 分式放缩还可利用真(假)分数的性质:)0,0(>>>++>m a b m a m b a b 和)0,0(>>>++

初中记叙文阅读答题技巧

初中记叙文阅读答题技巧 1:内容概括的形式命题:做这类题目,要抓住核心要素----人物和事件。当然,有时候,重要的时间、地点、人物的身份,事件的起因和结果也要体现在答题中,同时,要注意题目是否有字数方面的限制,在字数范围之类,尽可能详细,字数超过要删去次要信息。 2:记叙文的人称及作用:第一人称,便于直抒胸臆,读起来可以增添文章的真实感。第二人称,如同作者和读者对话,读起来给人一种亲切感。第三人称,不受时空的限制,能从多方面自由叙述。 3:记叙的详略:考试中,常以这样的形式考查:“什么内容为何要详写或略写?”,回答的基本格式是“什么内容与什么中心或人物关系不大,所以略写。或者是什么内容与什么中心或中心人物关系密切,能够更好的表达什么中心或更好的表现什么中心人物,所以详写。” 4:记叙的顺序及其作用:常见的有四种:顺叙、倒叙、插叙、和补叙。 顺叙的作用是:按事情的发展为序,使叙事的层次更清楚。 倒叙的作用是:构成强烈的悬念,吸引读者阅读下文。 插叙的作用是:对主要的情节起纯托或补充作用。 补叙的作用是:起补充、丰富、深化叙述的作用,使叙事更严谨,有时也起到突处强调的作用。 5:记叙的线索:记叙的线索可分为:以人为线,以物为线,以事为线,以人物思想感情变化为线(考查的较多),以时空转移为线。(这类题时常以填写题目出现)6:记叙文人物形象刻画多样性:概括描写和细节描写;外貌描写、心理描写、动作描写、语言描写和神态描写;正面描写和侧面描写等。 一般是以这样的题型出现:怎样的人物形象?对人物刻画的具体方法?并用例句进行分析其作用是怎样的?(比如:“————”句就是通过什么描写刻画了一个什么样的人物形象?) 7:记叙文里的环境描写及其作用:(以自然环境描写考查的多) 自然环境的作用:表现了人物的心理活动;渲染气氛;为下文做铺垫;推动故事情节的发展。(这几种考查的都较多)比如:划线句运用了什么描写?表现了人物的什么心理(表现了人物的什么性格?),渲染了什么气氛?为下文做了怎样的铺垫?) 8:记叙文语言评析:可以从语言本身的风格来评;可以从修辞格来评(这个方面考查的比较多:时常是回答例句用了怎样的修辞?其作用是怎样? 这类题型是:某句话中加点词语为何使用好?答题有三步:第一,这个词表示什么?是表示范围?是限制?或是估计等等;第二,联系本句内容做答;第三,使用了加点词后产生了怎样的效果?如果这个词或是句子好也可能是因为运用了什么修辞?首先回答运用了什么修辞,再回答其作用。如果是比喻或是拟人必须要回答“生动形象的写出了什么内容?)9:文段的作用:开头段的作用通常是总领下文或是点题;文中段时常是过渡段;文末段是总结全文,或是深化主旨等。 中考答题技巧---记叙文阅读答题技巧1.问文章体裁?答:此文是一篇。备选答案有:诗歌、小说(长篇小说、中篇小说、短篇小说、小小说)、散文(抒情散文、叙事散文、议论性散文即哲理散文)--要求形散而神不散、剧本、说明文、议论文2.记叙文六要素?时间、地点、人物、事件起因、经过、结果 3.文章内容?方法:看题目、人物(事物)、事件,进行综合、概括。强调三个部分:

项目开发流程输出文件清单

技术文件提交清单 1. APQP 标题 计划和项目的先期策划子标题 1.1.1 项目覆盖的产品图纸(2D,3D) 1.1.2 APQP项目策划计划表子标题 1.1. 2.1 项目开发建议和申请书、批准书项目经理提供1.1.2.2 多方论证CFT小组成员及职责 1.1. 2.3 市场调研报告项目经理提供1.1.2.4 技术标准资料清单 1.1. 2.5 顾客的技术要求项目经理提供1.1.2.6 同类产品质量报告 1.1. 2.7 新产品开发设计目标 1.1. 2.8 产品初始材料明细 1.1. 2.9 产品和过程特殊特性 1.1. 2.10 过程流程图 1.1. 2.11 新产品设备/工装/专用量具清单 1.1. 2.12 生产能力分析 1.1. 2.13 所需设备初步清单 1.1. 2.14 项目投资预算 1.1. 2.15 可行性报告 1.1. 2.16 设计和开发评审记录表 1.1. 2.17 管理者支持的批准文件 1.2. 产品试制过程子标题 1.2.1 过程开发计划 1.2.2 产品的模具设计图纸和数据(2D,3D) 1.2.3 模具试制进度计划表 1.2.4 采购目录 1.2.5 产品、材料试验清单 1.2.6 小组可行性承诺 1.2.7 过程流程图 1.2.8 生产场地平面布置图 1.2.9 潜在失效模式及后果分析 1.2.10 控制计划 1.2.11 工序能力分析计划

1.2.12 MSA分析计划 1.2.13 主要设备清单 1.2.14 人员培训申请单 1.2.15 培训记录行政部提供 1.2.14 产品包装标准规范营业部提出要求1.2.15 管理者支持 1.2.16 潜在失效模式及后果分析 1.2.17 控制计划 1.2.18 作业指导书 1.2.19 检验指导书 1.3 试生产过程子标题 1.3.1 试生产计划 1.3.2 生产日期及生产数量的确定 1.3.3 产品/过程质量评审 1.3.4 试生产总结-批准正式批量投产 1.3.5 产品质量策划总结和认定 1.3.6 管理者支持的批准文件 2 MSA测量系统的统计与分析子标题 2.1MSA分析计划品质部提供 2.2测量系统分析报告品质部提供 3潜在失效模式及后果分析(PFMEA) 4PPAP 子标题 4.1 过程流程图 4.2 作业指导书 4.3 产品检验标准(检验指导书) 4.4 潜在失效模式及后果分析(PFMEA) 4.5 控制计划 4.6 零件提交保证书 4.6 客户认可接收的文件客户提供 5SPC过程控制统计子标题 5.1PPK过程能力指数分析品质部提供5.2CPK制成能力控制指数分析品质部提供

第一轮复习 放缩法技巧全总结

放缩法在数列不等式中的应用 数列不等式是高考大纲在知识点交汇处命题精神的重要体现,在高考试题中占有重要地位,在近几年的高考试题中,多个省份都有所考查,甚至作为压轴题。而数列不等式的求解常常用到放缩法,笔者在教学过程中发现学生在用放缩法处理此类问题时,普遍感到困难,找不到解题思路。现就放缩法在数列不等式求解过程中常见的几种应用类型总结如下。 1. 直接放缩,消项求解 例1在数列{}{},n n a b 中,112,4a b ==,且1,,n n n a b a +成等差数列,11,,n n n b a b ++成等比数列. *N n ∈, (Ⅰ)求234,,a a a 及234,,b b b ,由此猜测{}{},n n a b 的通项公式,并证明你的结论; (Ⅱ)证明:1122111512 n n a b a b a b +++<+++L . 分析:(Ⅰ)数学归纳法。 (Ⅱ)本小题的分母可化为不相同的两因式的乘积,可将其放缩为等差型两项之积,通过裂项求和。 (Ⅰ)略解2(1)(1)n n a n n b n =+=+,. (Ⅱ)11115612 a b =<+.n ≥2时,由(Ⅰ)知(1)(21)2(1)n n a b n n n n +=++>+. 故112211111111622334(1)n n a b a b a b n n ??+++<++++ ?+++??+?? …… 111111116223341n n ??=+-+-++- ?+?? … 111111562216412n ??= +-<+= ?+??,综上,原不等式成立. 点评: 数列和式不等式中,若数列的通项为分式型,可考虑对其分母进行放缩,构造等差型因式之积。再用裂项的方法求解。 另外,熟悉一些常用的放缩方法, 如: ),,2,1(1 1121n k n k n n Λ=+≤+≤,n n n n n n n n n 111)1(11)1(11112--=-≤<+=+- 例2设数列{}n a 满足*,1,1311N c c ca a a n n ∈-+==+其中c 为实数

记叙文阅读答题技巧及习题练习(含答案)

记叙文阅读答题技巧 一、考点、热点回顾 1.问文章体裁? 答:此文是一篇。 备选答案有:诗歌 小说(长篇小说、中篇小说、短篇小说、小小说) 散文(抒情散文、叙事散文、议论性散文即哲理散文)——要求形散而神不散剧本 说明文 议论文 2.记叙文六要素? 时间、地点、人物、事件起因、经过、结果 3.文章内容? 方法:看题目、人物(事物)、事件,进行综合、概括。 强调三个部分:内容是什么,文章怎么样,作者怎么样。 答: 4.材料组织特点? 紧紧围绕中心选取典型事件,剪裁得体,详略得当。 5.划分层次? (1)按时间划分(找表示时间的短语) (2)按地点划分(找表示地点的短语) (3)按事情发展过程(找各个事件) (4)总分总(掐头去尾) 6.记叙线索及作用? 线索(明线和暗线)———核心人物、核心事物、核心事件、时间、地点、作者的情感 作用:是贯穿全文的脉络,把文中的人物和事件有机地连在一起,使文章条理清楚、层次清晰。7.为文章拟标题。 找文章的线索或中心,依据有

(1)核心人物(2)核心事物 (3)核心事件(4)作者情感 8.品味题目可以从—— A内容上 B主题上 C线索 D设置悬念上等方面进行品味。 示例:(1)主题上结合主旨必答,如象征性的散文题目,也可以这样回答:拟题巧妙,一语双关,本指…实指…,突出主题,耐人寻味。 (2)说明文:用了什么修辞手法,生动形象说明了……,点明了本文说明的主要内容,点明了本文说明对象。 9.了解人称的作用。 第一人称: 第二人称: 第三人称: 10.记叙顺序及作用? (1)顺叙(按事情发展先后顺序) 作用: (2)倒叙(先写结果,再交待前面发生的事。) 作用: (3)插叙(叙事时中断线索,插入相关的另一件事。) 作用: 11.语言特色?结合语境和修辞方法从下列语句中选择: 形象生动、清新优美、简洁凝练、准确严密、精辟深刻、通俗易懂、音韵和谐、节奏感强、诙谐幽默。 必须结合具体语句分析。一般指口语的通俗易懂,书面语的严谨典雅,文学语言的鲜明、生动、富于形象性和充满感情色彩。 12.写作手法及作用? 狭义的写作手法即“表达方式”,广义的写作手法是指写文章的一切手法,诸如表达方式、修辞手法、先抑后扬、想象、联想、象征、开门见山、托物言志、设置悬念、借景抒情、抑扬结合、正反对比、侧面烘托、虚实结合、以小见大、运用第二人称抒情、卒章显志、巧设悬念、首尾呼应、铺垫映衬、一线串珠、明线暗线等。常用具体如下: (1)拟人手法赋予事物以人的性格、思想、感情和动作,使物人格化,从而达到形象生动的效果。 (2)比喻手法形象生动、简洁凝练地描写事物、讲解道理。

软件项目开发工作流程

软件项目开发工作流程 一、简述 对于一个新项目,从可行性研究到产品交货整个生存阶段将经历如下十大流程: 1、项目可行性研究阶段 2、立项阶段 3、需求分析阶段 4、开发策划阶段 5、设计阶段 6、编码实现阶段 7、测试阶段 8、验收阶段 9、产品交付使用 10、维护阶段 二、项目组基本组成及岗位职责 新项目立项时会成立项目组,不同的项目组成员有不同的职责,一个项目组成员也可以身兼多职,但不可身兼全职。 a项目负责人:负责项目的管理、组织、对技术、进度、质量全面负责。 b质量保证人员:负责质量保证工作计划的落实和软件的质量保证。 C配臵管理人员:负责本项目的配臵管理工作,对本项目的文档、程序是否符合规程文件的要求进行形式化的检查。 D分析人员:主要负责本项目的需求分析工作。 E设计人员:主要负责本项目的设计工作。 F程序员:按设计要求和有关标准进行编程工作。 G测试人员:负责单元测试、组合测试和总装测试工作。 H文档人员:负责本项目有关文档的编写工作。 I产品经理:协助进行产品研制计划制定、产品发布与产品推广等,在产品开发中,充分代表用户的利益,提供建议,负责在产品功能与出品日期二者之间的权衡;负责产品市场营销、产品销售和市场推广过程。(通常由营销部门或中试部门人员担任) 三、软件开发流程 3.1 可行性研究阶段 如果是公司自主开发项目,可行性研究通常是由公司技术负责人根据公司产品规划和市场需求,在要开展新项目前通过部门负责人指定人员进行的前期调研工作,可行性研究负责人员对产品的市场需求、技术发展、市场定位、功能需

求、经济效益、进度需求、风险分析等进行可行性研究,提供产品立项建议,拟制可行性研究报告,由部门负责人指定营销部门配合可行性分析人员,技术负责人协助安排。可行性分析完毕后由总工办组织对可行性研究报告进行评审,评审通过后,总工办组织进行立项工作。 如果是系统集成部外接的系统集成项目,在系统集成部与客户签订合同之前,均应对将签项目进行资源、技术、市场的可行性分析,可行性分析通过后、签订合同前由总工办组织相关人员对合同条款进行评审,评审通过后,总工办组织进行立项工作。 本阶段提交的文档:项目可行性研究任务书(技术负责人或部门负责人下达) 项目可行性研究报告(可行性研究人员编写) 系统集成项目合同 质量记录:可行性分析评审报告 3.2立项阶段 可行性分析评审通过后,由开发部门经理下达立项任务,指定相关人员填写立项申请报告报批。报批通过后,由部门经理与技术负责人协商,下达开发任务书,经技术负责人审核确认后,报公司批准。批准立项后项目进度应以立项申请报告中的阶段进度为准,如果进度要调整,需填写进度调整申请报告报批。 本阶段提交的文档:项目立项申请报告 开发任务书 3.3 需求分析阶段 承办单位根据交办单位提出的技术要求和相应的软件任务书以及其它有关文件,与交办单位协作,确定详细的软件需求,该阶段完成的软件需求规格说明经审定和批准后将作为整个软件开发工作的基础列入配臵管理的基线,在本阶段可利用快速原型法使比较含糊的具有不确定性的软件需求(主要是功能)明确化。能给本公司开发的软件的“需求基线”确定提供一个讨论、进一步完善的基础。在本阶段,由产品经理负责,其他人员配合,编写产品规格说明书,此说明书面向最终用户和领导,主要描绘产品的形状以及功能、性能、功能特性、性能特性。由项目经理负责编写系统技术方案书,描述公司初次使用的技术的详细解决方案。本阶段完毕后对需求分析进行评审,出具需求分析评审报告。 本阶段提交的文档:软件需求规格说明书。 原型分析说明书 产品规格说明书 系统技术方案书 质量记录:需求分析评审报告 提交的软件:产品的原型(注:如果时间有限,可以只编写原型分析说明书而不作原型) 3.4开发策化阶段

六年级记叙文阅读方法

记叙文答题技巧 1.问文章内容类别? 答:此文是一篇。备选答案有:(写人、记事、写景、状物) 2.记叙文六要素? 时间、地点、人物、事件起因、经过、结果 3.文章的写作顺序: 常见的写作顺序有5种: (1)按时间先后顺序写。 写人、写事、写景时,常见的是以时间的先后为顺序记叙。(找表示时间的短语) 如《高大的皂荚树》一文,开头描写皂荚树的样子,接着按照“春、夏、秋、冬”一年四季的时间顺序,描写皂荚树给同学们带来的许多方便和快乐。 (2)按地点变换的顺序写。 常用于写游记、参观记、活动。(找表示地点的短语) 如《记金华的双龙洞》一文,是按金华城→罗甸→路上→洞口→外洞→孔隙→内洞→出洞的先后顺序,记叙金华双龙洞的总体情况和主要特征。又如《参观人民大会堂》一文,是 按“正门→中央大厅→大礼堂→会议厅→走出大门”几个不同地点来记叙的。 (3)按事情发展的顺序来写。 即按事情的起因、经过、结果的顺序来写。 如《中国石》一文中战士们爱拣石头、爱赛石,这是发现“中国石”的起因;拣石、洗石、发现了“中国石”,仔细端详“中国石”,这是拣到“中国石”的经过;战士们喜爱“中国石”,这是“中国石”带来的结果。这样写,让人明白事情发展的阶段性和来龙去脉。 (4)按不同方面内容的顺序写。 常用于写带有说明性的文章和状物的文章。 如《我的伯父鲁迅先生》一文,作者写了不同内容的四件事:讲《水浒传》、谈“碰壁”、救护车夫、关心女佣,表达了鲁迅先生“为自己想得少,为别人想得多”的高贵品质。 (5)按总分的顺序写。 A先总后分再总; 如《美丽的小兴安岭》一文,先总的讲小兴安岭的树多,“像绿色的海洋”,再按春、夏、秋、冬四季分别写小兴安岭的景色,最后总结:“小兴安岭一年四季景色诱人,是一个 美丽的大花园,也是一座巨大的宝库。” B先总后分; C先分后总。

项目开发流程文档

项目开发流程文档 目录:1,明确需求阶段 2,产品原型阶段 3,UI设计阶段 4,前端设计页面阶段 5,后台开发阶段 6,代码测试阶段 7,上线阶段 8,代码维护阶段 一:明确需求阶段 这个方面基本是产品经理来确定一个模块的需求,然后跟后台开发人员开会讨论需求的合理性以及存在的必要性,后台开发人员可以提出自己的意见,但是确定权归项目经理。 二:产品原型阶段 确定了需求之后,产品经理开始着手设计产品原型。原型设计好之后,交由需求方确定原型的合理性(这个步骤一般可以省略)。然后交由开发人员,讨论功能的合理性以及存在的必要性。这些过程完毕之后,产品原型正式生效。再由产品经理写一套开发文档。 三:UI设计阶段 这个阶段基本上就是一个模块的正式开始阶段,UI工程师根据产品经理给出的原型,设计出一套符合要求,且审美兼具的UI出来。 四.前端设计页面阶段 当UI设计师没每设计出一套UI出来,前端工程师就可以着手根据UI设计的原图。设计自己的思路,将UI原图用代码写出来,包括各种特效效果,色值,以及整个页面布局的合力性。 五. (中间插一个步骤:当三,四这两个步骤正在执行的时候,这是后台开发人员要做的 就是合理的设计数据库。数据库的设计需要一个经验比较丰富的开发人员来完成,因为数据库是一个项目的核心所在,也是一个公司业务的核心所在。它的重要性当然不言而喻,所以一个合理的数据库可以带来以后开发的便利,以及整个业务的融合性。) 六.后台开发阶段 很多人说:页面没有出来之前,后台可以先把代码写出来,等页面出来了,在进行嵌套。对于这种说法,我本人是持反对态度的。因为没有页面的出现,我们是很难进行数据的展示的,没有数据的展示,我们也很难发现我们代码中的bug。修改bug除了开启调式模式之外,另外一个就是通过服务器与客户端之间的一次次的请求中来发现问题的。所以我的意见就是

用放缩法证明不等式的方法与技巧

用放缩法证明不等式的方法与技巧 一.常用公式 1.)1(11)1(12-<<+k k k k k 2.12 112-+<<++k k k k k 3.22k k ≥()4≥k 4.1232k k ???????≥(2≥k ) 5. ?? ????--≤!!(!k k k 1)11211(待学) 6.b a b a +≤+ (待学) 二.放缩技巧 所谓放缩的技巧:即欲证A B ≤,欲寻找一个(或多个)中间变量C ,使A C B ≤≤, 由A 到C 叫做“放”,由B 到C 叫做“缩”. 常用的放缩技巧 (1)若0,,t a t a a t a >+>-< (2) < > 11> ,n >= (3)21111111 (1)1(1)(1)1n n n n n n n n n n - =<<=->++-- (4 )= <=<= (5)若,,a b m R + ∈,则,a a a a m b b m b b +>< + (6)21111111 112!3!!222 n n -+++???+<+++???+ (7)22211111111 11(1)()()232231n n n +++???+<+-+-+???+--(因为211(1)n n n < -) (7)1111111112321111n n n n n n n n n +++???+≤++???+=<+++++++ 或11111111123222222 n n n n n n n n n +++???+≥++???+==+++ (8 )1+???+>???+== 三.常见题型 (一).先求和再放缩: 1.设1111 2612 (1) n S n n = ++++ +,求证:1n S < 2.设1n b n = (n N * ∈),数列2{}n n b b +的前n 项和为n T ,求证:34n T < (二).先放缩再求和: 3.证明不等式:111 12112123 123n ++++

(完整版)中考记叙文阅读答题技巧套路整理

语段阅读题答题总原则: (1)先读题后读文。读题时注意从题干中找出“题眼”(即答题关键点),携带需要解答的题目,使阅览具有明确的目标。 (2)读文时,要注意群体把握文章的首要内部实质意义和中心意思。 (3)准备答题时,必须再次细读题目,确认“题眼”。 (4)答题时,具体题目涉及到相关段落,要对这些个段落重复研读;如涉及全篇,则要再读全文。 具体过程是:阅读理解文章题目——阅读文章——看清文章后面的试题——按试题要求回头有重点地再看原文——答题。文章要看两遍或以上。尤其是开头和结尾。 答题技巧归纳: 1. 文段中事例的概括: (1)必须包括两个要素:人物+事情;“谁做了什么”或“谁怎么样” (2)其他要素如:时间(季节、年代)、地点、环境如果有特定意义,也应概括在内。 2. 找主旨句:找首段或尾段的议论、抒情句,还有标题。 3. 文眼: 标题是“文眼”,统帅全文(新闻);有时交代首要人物、故事情节,有时交代首要事、物(“物”象征意义);有时还是“线索”。 4. 记叙的线索及作用: 线索:(1)焦点人物(2)焦点物质⑶焦点事件(4)时间(5)地点(6)笔者的情感 作用:是贯串全文的脉络,把文中的人物和事件有机地连在一路,使文章条理清楚、层次清晰。答题套路:如:文章以“……”线索,中间串写了“……”、“……”几件事,构成一种“冰糖葫芦”的“串”式结构,选材典型,脉络清晰,主旨鲜明。 5. 记叙的顺序及作用: (1)顺叙(按事情成长顺序)作用:叙事善始善终,条理清晰,读起来脉络清楚、印象深刻。(2)倒叙(先写结果,再交待前边发生的事。) 作用:造成牵挂、吸引读者,避免叙述的平板单调,增强文章的活泼性。 (3)插叙(叙事时中断线索,插进去相干的另外一件事。) 作用:对情节起增补、衬托作用,丰富形象,凸起中心。

中考语文记叙文阅读题型及解题技巧(重要)

中考语文记叙文阅读题型及解题技巧 一.辨析记叙线索和作用 1.线索::(1)以人物为线(2)以时间为线(3)以人物为线(4)以事件为线(5)以情感为线(6)以某物为线(7)以题目为线(8)明暗两线 2.作用:是贯穿全文的脉络,把文中的人物和事件有机地连在一起,使文章条理清楚、层次清晰。 3.答题套路:如:文章以“……”线索,中间串写了“……”、“……”几件事,组成一种“冰糖葫芦”的“串”式结构,选材典型,脉络清晰,主旨鲜明。 二.理清记叙顺序。 1.记叙顺序及作用 (1)顺叙(按事情发展先后顺序)。作用:叙事有头有尾,条理清晰,读起来脉络清楚、印象深刻。 (2)倒叙(先写结果,再交代前面发生的事。)。作用:造成悬念、吸引读者,避免叙述的平板单调,增强文章的生动性。 (3)插叙(叙事时中断线索,插入相关的另一件事。)。作用:对情节起补充、衬托作用,丰富形象,突出中心。 题型:一是分辨文章记叙的顺序类型;二是思考文章为什么要运用这样的顺序。 三、记叙文的表达方式: B、环境描写又可以分为:自然环境描写和社会环境描但还常常辅以描写、议论、抒情和说明。描写和记叙是议论和抒情的基础。 1.表达方式及作用 (1)描写:对人物、事件和环境等所作的绘声绘色、细致入微的描绘与刻画。 A、描写分人物描写和环境描写。 (1)人物描写又细分为:(1)肖像描写(2)外貌描写(3)神态描写(4)动作描写(5)语言(对话)描写(6)心理描写(7)景物描写(8)场景描写 另外,人物描写从另一个角度看,又可以分为:正面描写、侧面描写、细节描写。 人物描写作用:塑造人物性格;推动情节发展;揭示文章主题。 B、环境描写又可以分为:自然环境描写和社会环境描写。 自然环境描写(景物描写)句的主要作用:(1)表现地域风光,交代故事发生的时间、地点及人物活动的空间、季节和环境特点;(2)推动情节发展;(3)渲染气氛;(4)、烘托人物形象(或人物心情、感情);(5)突出、深化主题。 社会环境描写的主要作用:交代作品的时代背景,揭示社会现实。 (2)议论: 记叙文中议论是以记叙为基础,对记叙的内容进行分析或评论。 记叙文的议论有三种方式:先叙后议、先议后叙、夹叙夹议。 记叙文中议论的作用: 可起到承上启下;统领全文;引发读者思考,点明人物或事件的意义,突出中心,升华主题,起到画龙点睛的作用。 记叙文中抒情:抒情可分为: 一是直接抒情:指作者或主人公直接倾吐内心感受的抒情发式。 二是间接抒情是指寄情于景,融情于物,感情流露于写人记事、写景状物的字里行间的抒情方式。注意:阅读散文时,要特别注意文章托物言志或借景抒情的特点。

最好用的记叙文阅读答题技巧及套路

最实用记叙文阅读答题技巧及套路 语段阅读题答题总原则: (1)、先读题后读文。读题时注意从题干中找出“题眼”(即答题关键点),带着问题读文,使阅读具有明确的目标。 (2)、读文时,要注意整体把握文章的主要内容和中心意思。 (3)、准备答题时,必须再次细读题目,找准“题眼”。 (4)、答题时,具体题目涉及到相关段落,要对这些段落反复研读;如涉及全篇,则要再读全文。 1、记叙文六要素:时间、地点、人物、起因、经过、结果 2、记叙文的表达方式:记叙、议论、抒情、描写、说明。 3、找主题句:找首段或尾段的议论、抒情句。 4、划分层次: (1)按时间划分(找表示时间的短语)(2)按地点划分(找表示地点的短语) (3)按事情发展过程(找各个事件)(4)总分总(掐头去尾) 以写事为主的文章: ①.按事情发生发展的先后时间分析;②.按事情发生发展的地点转换分析; ③.按事情发展的阶段分析。 以写人为主的文章: ①、按人物成长的阶段分析;②、按人物所在的不同地点分析; ③、按表现人物不同性格特征的不同条件分析;④、按人物感情的变化分析。 以写景状物为主的文章: ①、按人物观察景物的观察点的变化,即空间变化分析; ②、按不同时间的不同景致的变化,即时间变化分析。 5、记叙的线索及作用: 线索:(1)核心人物(2)核心事物(3)核心事件 (4)时间(5)地点(6)作者的情感 作用:是贯穿全文的脉络,把文中的人物和事件有机地连在一起,使文章条理清楚、层次清晰。 6、为文章拟标题:找文章的线索或中心。… (1)核心人物(2)核心事物(3)核心事件(4)作者情感 7、修辞方法及作用: (1)比喻:形象生动、简洁凝练地描写事物、讲解道理,增强语言的生动性、形象性、化抽象为具体,使人易于理解。 (2)拟人:赋予事物以人的性格、思想、感情和动作,使物人格化,使之更形象,从而达到形象生动的效果。 (3)夸张:突出特征,揭示本质,给读者以鲜明而强烈的印象。 (4)排比:条理清晰,节奏鲜明,增强语势,长于抒情,使语言更有表现力,更有气魄。 (5)对偶:使句式整齐,结构一致,形式优美,音韵和谐,互相映衬,互为补

记叙文阅读答题技巧与答题模板

记叙文阅读答题技巧与答题模板 常考考点归纳:解读标题、理解文中重要词句、理清线索、概括故事情节、分析人物形象、揣摩人物心理、概括文章主题、体会作者的思想感情、分析写作手法、赏析精美语言、设题方式及解题技巧如下: 一、在标题上设题 1、标题有什么含义 从题目的表层义、深层义、主旨的引申义、比喻义、象征义、蕴含的情感、主旨等几个角度考虑。 2、题目有什么作用 (1)是否概括了文章内容,是否为主要情节, (2)是否蕴含(点明)文章的……主旨,蕴含或表达了……情感, (3)是否新颖、有趣味性和吸引力等。 《智取生辰纲》——主要情节,《羚羊木雕》——贯穿全文的线索, 3、如何拟写标题 可抓住文章的核心人物、核心事物、核心事件、作者情感,用简练的语言去表述。 二、在情节上设题 1、如何概括全文内容、情节或场面 人物、事件的经过和结果三要素缺一不可。 答题模式为:人物做了什么事,结果如何。 2、简述故事情节 事件的起因+经过+结果。 三、在环境描写上设题 自然环境有什么作用:渲染××环境气氛、烘托人物的××情感、预示人物的××命运、推动故事情节的发展。 社会环境有什么作用:交代故事发生的××时代背景,渲染××环境气氛。 ※关于社会环境描写

1、交代作品的时代背景 2、揭示了什么样的社会现实(如《孔乙己》中对咸亨酒店的描写) ※注意场面描写 场面描写与环境描写的不同在于:环境描写是描写人物活动的客观环境,是“静态”的描写;而场面描写是以多个人物活动为中心的“动态”的描写。场面描写要表现出一种特定的气氛,常综合运用记叙、描写、抒情、议论等表达手段,以及映衬、象征等多种手法,为表现人物服务,为突出中心服务。 四、在人物形象上设题 1、辨识、分析刻画人物运用了什么手法,有什么作用 答题模式:本文运用了xx手法,塑造了xx形象,表现了主人公xx性格特征。 (1)正面刻画也叫直接描写,方法简称为肖(外)、语、动、心 肖像描写交代了人物的××身份、××地位、××处境、经历以及××心理状态、××思想性格等情况。 语言描写刻画xx的性格特点,表现xx的某种品质 动作描写形象生动地表现出人物的××心理(心情),并反映了人物的××性格特征或××精神品质。有时还推动了情节的发展。 心理描写形象生动地反映出人物的××思想,揭示了人物的××性格或者××品质。 (2) 细节描写 细节描写就是指对人物的肖像、语言、动作、服饰、神情变化以及事物、环境的细微处进行具体描写,来表现人物的精神面貌、内心情感、品质性格,以突出中心。如杨二嫂顺手拿走母亲的手套,胡屠户替女婿 扯衣裳襟,孔乙己排出九文大钱等。 (3)侧面衬托(间接描写) 侧面衬托就是通过写其他人物的言行,间接写主人公。可以从分析人物与人物之间的关系入手。 2、如何概括人物形象 答题模板:xx是一个怎样的人物?xx有哪些优秀的品质? 人物形象指的是人物的性格特征、精神品质,而不是指外表特征。 概括人物形象要从分析人物所做之事入手,结合具体的写人方法,抓住抒情、议论语句,用准确的词语写出人物身上的品质、精神方面的特点,尽可能不要停留在一个层面上,即多方面概括。

常用放缩方法技巧

常用放缩方法技巧 Prepared on 22 November 2020

常用放缩方法技巧 证明数列型不等式,因其思维跨度大、构造性强,需要有较高的放缩技巧而充满思考性和挑战性,能全面而综合地考查学生的潜能与后继学习能力,因而成为高考压轴题及各级各类竞赛试题命题的极好素材。这类问题的求解策略往往是:通过多角度观察所给数列通项的结构,深入剖析其特征,抓住其规律进行恰当地放缩;其放缩技巧主要有以下几种: ⑴添加或舍去一些项,如: a a >+12;n n n >+)1( ⑵将分子或分母放大(或缩小) ⑶利用基本不等式,如:4lg 16lg 15lg )2 5lg 3lg ( 5lg 3lg 2=<=+n n n n (5)利用常用结论: Ⅰ. 的放缩 <Ⅱ. 21k 的放缩(1) : 2111(1)(1)k k k k k <<+-(程度大) Ⅲ. 21k 的放缩(2):22111111()1(1)(1)211k k k k k k <==+-+--+(程度小) Ⅳ. 21 k 的放缩(3):2214112()412121 k k k k <=+--+(程度更小) Ⅴ. 分式放缩还可利用真(假)分数的性质:)0,0(>>>++>m a b m a m b a b 和)0,0(>>>++

项目开发规范性文档

项目开发规范性文档 一:作用 项目开发过程中为了增加程序的可读性和程序的健壮性,方便后期程序的调试和维护,所以需要在开发过程中统一技术规范 二:目录 1.系统框架中模块功能,文件目录和文件名的规范 2.程序代码中文件名类名变量名接口名等规范 3.代码的书写的规范 4.数据库中表名字段名数据类型等规范 三:详细内容 说明 常用的命名风格如下。 (1)Pascal风格:包含一到多个单词,每一个单词第一个字母大写,其他字母小写,其余字母均小写。例如:CollegeStudent、HelloWorld等。 (2)Camel风格:包含一到多个单词,第一个单词首字母小写,其余单词首字母大写,其他字母均小写。例如:name、gender、somePara等。 1.系统框架功能模块、文件目录和文件名的规范 (1)功能模块命名规范 数据访问层(DAL)——DataSet,与数据库打交道的唯一方式;位于最底层; 数据控制层(DCL)——直接与DataSet打交道,通过实体工厂类产生实体对象和数据访问层打交道 数据封装层(DPL)——BEAN 实体类;

业务逻辑层(BLL)——与业务有关的操作,以上三层多不与业务逻辑有关; 通用工具层(CTL)——与项目无关、可独立的类库。如DBControl,Exception等; 系统管理层(SysManeger)--系统管理常用接口比如系统日志系统版本系统信息等 数据访问接口层(IDataFactory)--数据访问层的抽象工厂接口 实体访问接口层(EntityFactory)--数据访问层的实体工厂类,即产生实体对象的实体工厂类 (2)文件目录的命名规范 images --项目图片的目录 styles --项目css文件的目录 javascript --项目中js文件的目录 template --项目模板文件的目录 subsystem --项目子系统或模块的目录(一般用因为名字来表示系统的模块) document --项目说明文档目录 database --项目数据库目录 (3)文件名的命名规范 a.文件名尽量用一个或多个英文单词来表示做到见面知意的效果比如:Index.aspx Default.aspx Product.aspx OrderList.aspx等 b.所有单词的首字母要大些 c.尽量不要使用下划线来连接多个单词 2.程序代码中的命名规范 (1)命名空间 命名空间命名采用Pascal风格,取名的一般规则如下。 CompanyName.TechnologyName 例如: Microsoft.Office MyCompany.NamingRule.Test 另外,需要用复数的时候要使用复数的名称空间名。例如,使用System.Collections 而不是System.Collection。但是,当遇到缩写形式时,通常不需要使用复数。例

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