‘壹’ oracle求推荐一本好的书
基础的书都差不多, 进阶的就看看性能优化这类的, 《oracle性能诊断艺术》 不错
‘贰’ 请教sqlserver要如何利用fn_dblog( )函数进行日志解析
1,用第三方工具: log explorer
2,自己做解析
‘叁’ 自学sql server数据库的书籍材料等比较好的,有推荐的么
你好!
sqlserver数据库吧,资料也没那么多
好的书也就express出的那几本,基本上网上msdn 上学学就可以了!
你要是学习oracle的话,可能会发现,这个比sqlserver 要好玩的多!
祝你好运
‘肆’ 解析:如何快速掌握SQLServer的锁机制
各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别。SQLServer更强调由系统来管理锁。在用户有SQL请求时,系统分析请求,自动在满足锁定条件和系统性能之间为数据库加上适当的锁,同时系统在运行期间常常自动进行优化处理,实行动态加锁。对于一般的用户而言,通过系统的自动锁定管理机制基本可以满足使用要求,但如果对数据安全、数据库完整性和一致性有特殊要求,就需要了解SQLServer的锁机制,掌握数据库锁定方法。 锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象。即如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题。这些问题包括:丢失更新、脏读、不可重复读和幻觉读: 1.当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。例如,两个编辑人员制作了同一文档的电子复本。每个编辑人员独立地更改其复本,然后保存更改后的复本,这样就覆盖了原始文档。最后保存其更改复本的编辑人员覆盖了第一个编辑人员所做的更改。如果在第一个编辑人员完成之后第二个编辑人员才能进行更改,则可以避免该问题。 2.脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。例如,一个编辑人员正在更改电子文档。在更改过程中,另一个编辑人员复制了该文档(该复本包含到目前为止所做的全部更改)并将其分发给预期的用户。此后,第一个编辑人员认为目前所做的更改是错误的,于是删除了所做的编辑并保存了文档。分发给用户的文档包含不再存在的编辑内容,并且这些编辑内容应认为从未存在过。如果在第一个编辑人员确定最终更改前任何人都不能读取更改的文档,则可以避免该问题。 3.不可重复读是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。例如,一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。当编辑人员第二次读取文档时,文档已更改。原始读取不可重复。如果只有在作者全部完成编写后编辑人员才可以读取文档,则可以避免该问题。 4.幻觉读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。例如,一个编辑人员更改作者提交的文档,但当生产部门将其更改内容合并到该文档的主复本时,发现作者已将未编辑的新材料添加到该文档中。如果在编辑人员和生产部门完成对原始文档的处理之前,任何人都不能将新材料添加到文档中,则可以避免该问题。 所以,处理多用户并发访问的方法是加锁。锁是防止其他事务访问指定的资源控制、实现并发控制的一种主要手段。当一个用户锁住数据库中的某个对象时,其他用户就不能再访问该对象。加锁对并发访问的影响体现在锁的粒度上。为了控制锁定的资源,应该首先了解系统的空间管理。在SQLServer2000系统中,最小的空间管理单位是页,一个页有8K。所有的数据、日志、索引都存放在页上。另外,使用页有一个限制,这就是表中的一行数据必须在同一个页上,不能跨页。页上面的空间管理单位是盘区,一个盘区是8个连续的页。表和索引的最小占用单位是盘区。数据库是由一个或者多个表或者索引组成,即是由多个盘区组成。放在一个表上的锁限制对整个表的并发访问;放在盘区上的锁限制了对整个盘区的访问;放在数据页上的锁限制了对整个数据页的访问;放在行上的锁只限制对该行的并发访问。 SQLServer2000具有多粒度锁定,允许一个事务锁定不同类型的的资源。为了使锁定的成本减至最少,SQLServer自动将资源锁定在适合任务的级别。锁定在较小的粒度(例如行)可以增加并发但需要较大的开销,因为如果锁定了许多行,则需要控制更多的锁。锁定在较大的粒度(例如表)就并发而言是相当昂贵的,因为锁定整个表限制了其它事务对表中任意部分进行访问,但要求的开销较低,因为需要维护的锁较少。SQLServer可以锁定行、页、扩展盘区、表、库等资源。 行是可以锁定的最小空间,行级锁占用的数据资源最少,所以在事务的处理过程中,允许其他事务继续操纵同一个表或者同一个页的其他数据,大大降低了其他事务等待处理的时间,提高了系统的并发性。 页级锁是指在事务的操纵过程中,无论事务处理数据的多少,每一次都锁定一页,在这个页上的数据不能被其他事务操纵。在SQLServer7.0以前,使用的是页级锁。页级锁锁定的资源比行级锁锁定的数据资源多。在页级锁中,即使是一个事务只操纵页上的一行数据,那么该页上的其他数据行也不能被其他事务使用。因此,当使用页级锁时,会出现数据的浪费现象,也就是说,在同一个页上会出现数据被占用却没有使用的现象。在这种现象中,数据的浪费最多不超过一个页上的数据行。 表级锁也是一个非常重要的锁。表级锁是指事务在操纵某一个表的数据时,锁定了这个数据所在的整个表,其他事务不能访问该表中的其他数据。当事务处理的数据量比较大时,一般使用表级锁。表级锁的特点是使用比较少的系统资源,但是却占用比较多的数据资源。与行级锁和页级锁相比,表级锁占用的系统资源例如内存比较少,但是占用的数据资源却是最大。在表级锁时,有可能出现数据的大量浪费现象,因为表级锁锁定整个表,那么其他的事务都不能操纵表中的其他数据。 盘区锁是一种特殊类型的锁,只能用在一些特殊的情况下。簇级锁就是指事务占用一个盘区,这个盘区不能同时被其他事务占用。例如在创建数据库和创建表时,系统分配物理空间时使用这种类型的锁。系统是按照盘区分配空间的。当系统分配空间时,使用盘区锁,防止其他事务同时使用同一个盘区。当系统完成分配空间之后,就不再使用这种类型的盘区锁。特别是,当涉及到对数据操作的事务时,不使用盘区锁。 数据库级锁是指锁定整个数据库,防止任何用户或者事务对锁定的数据库进行访问。数据库级锁是一种非常特殊的锁,它只是用于数据库的恢复操作过程中。这种等级的锁是一种最高等级的锁,因为它控制整个数据库的操作。只要对数据库进行恢复操作,那么就需要设置数据库为单用户模式,这样系统就能防止其他用户对该数据库进行各种操作。 行级锁是一种最优锁,因为行级锁不可能出现数据既被占用又没有使用的浪费现象。但是,如果用户事务中频繁对某个表中的多条记录操作,将导致对该表的许多记录行都加上了行级锁,数据库系统中锁的数目会急剧增加,这样就加重了系统负荷,影响系统性能。因此,在SQLServer中,还支持锁升级(lockescalation)。所谓锁升级是指调整锁的粒度,将多个低粒度的锁替换成少数的更高粒度的锁,以此来降低系统负荷。在SQLServer中当一个事务中的锁较多,达到锁升级门限时,系统自动将行级锁和页面锁升级为表级锁。
‘伍’ SQLServer 数据库提示“错误的语法:"XXXX"必须是批处理中仅有的语句 ”报错的原因分析
一、报错的原因分析:
批处理必须以CREATE语句开始。也就是一个查询分析器里面只有一个批处理语句才是规范的语法。
因为CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE SCHEMA、CREATE TRIGGER和CREATE VIEW语句不能在批处理中与其他语句组合使用。
所有跟在该批处理后的其他语句将被解释为第一个CREATE语句定义的一部分。
二、解决方法:
在代码之间加GO关键字分批即可。也可以重新建立一个查询来写这个批处理语句。
‘陆’ SQL Server占用内存过高,什么原因导致的,用什么方法可以解决
SQL Server运行越久,占用内存会越来越大。因为sql server本身内存回收机制做的不好,这是微软系列的服务器&数据库问题的通病。
解决SQL Server占用内存过高的方法:
1.定期重启SQL Server 2008 R2数据库服务即可。
拓展资料
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
网络Microsoft SQL Server
‘柒’ 解析SQLServer怎样才能访问sybase中的表
答:具体方法如下: 1: 安装sybase客户端 版本的要求: Sybase Client 11.9.2 for NT 1.1:安装完成后,运行开始->程序->sybase->Dsedit 1.2:选择菜单的'Server Object',-> 'Add' 输入服务名 比如 1.70 1.3:然后在Server列表中选择'1.70',双击右边的对话框server address栏,在Network Address Attribute对话框中 选择add 填入ip地址,比如132.228.1.70,4300,ok 确定 1.4:选择工具栏的Ping Server按钮测试是否能连通服务器 (红色的类似闪电的按钮) 2:在ODBC中建立DSN> 管理工具->数据源ODBC 新建一个系统DSN,名称设为 1.70 在创建新数据源对话框中选择'Sybase System11'数据源驱动程序, General属性的DSN datasouce name: 填入 1.70, database: 填入sybase数据库名 确定保存 3:建立链接服务器 企业管理器->安全性->建链接服务器->新建链接服务器 3.1:常规标签栏目中 名称sybase, 服务器类型选其他数据源,在提供程序的名称中选择 Microsoft OLE DB Provider FOR ODBC 数据源:填入DSN名字 1.70 3.2:安全性栏目中 本地登陆填入sa 远程用户和远程密码填入sybase的用户名和密码 3.3:使用此安全上下文建立连接 远程登陆 输入sybase的用户名和密码 使用密码 输入密码 确定保存 4: 用sa身份登陆查询分析器 执行以下sql语句就能查出sybase数据 select * from 链接服务器名(本例子为sybase).sybase的数据库名.dbo.sybase的表名 注: 如果在执行查询时发现这个问题: 链接服务器 "sybase" 的 OLE DB 访问接口 "MSDASQL" 为列提供的元数据不一致。 解决方法:: 不要直接用下面这种语句 select * from sybase.dbname.dbo.tablename 只需要换个语句,就能解决问题。
‘捌’ 深入SQLServer中ISNULL与NULLIF的使用详解
SQL
Server里的
ISNULL
与
ASP
中的
IsNull不同,SQL
Server
中有两个参数,语法:
ISNULL(check_expression,
replacement_value)
•check_expression
与
replacement_value
数据类型必须一致
•如果
check_expression
为
NULL,则返回
replacement_value
•如果
check_expression
不为
NULL,则返回
check_expression
NULLIF
用于检查两个表达式,语法:
NULLIF(expression,
expression)
•如果两个
expression
相等,则返回
NULL,该
NULL
为第一个
expression
的数据类型
•如果两个
expression
不相等,则返回第一个
expressio
‘玖’ 软件开发这点事儿:软件开发工具手册的编辑推荐
“对于有志于成为一名优秀程序员的大学毕业生来说,这本书是必读之物。它不仅详细讲解了程序员需要具备的专业技能、素质技能,还介绍了程序员的职业生涯前景。”
周怀军 就业教育专家 中国就业促进会理事
“这是一本很特别的讲述软件开发的书,它不仅介绍了软件开发过程中程序员所要具备的各种知识,更详细介绍了Rose、PowerDesigner等常用工具的使用,并且还提供了各种模板和规范,使得读者进行软件开发变得事半功倍。”
汤涛 技术专家原微软(中国)有限公司政府行业高级咨询顾问
人才的发展应该是全方位的,一个职业化员工不仅要具备“硬技能”——专业技能,更需要具备“软技能”——素质技能。从人才培养的角度上看,具备本书所述所有技能的程序员一定是受企业欢迎的。
陈昉 原惠普远东区培训发展总监
程序员是一个综合性的岗位,除了要掌握编程语言外,软件开发过程中还要涉及其他多方面的技能。不仅要注重专业技能的积累,更主要的是培养一种专业的精神。
郭宗明 博士生导师 北京大学计算机研究所研究员
给程序员的一封信
关于学习,有些感受和大家交流。
1.“软件开发学习的重点是流程,而非技术本身”
事实上,技术的发展是日新月异的。记得我第一次做项目用的编程工具是Turbo C,后来用VC++5.0,再后来开始在微软中文网络广播讲VisualStudio.NET 2002,不久又换成了VisualStudio.Net2003,最近又讲的是VisualStudio.NET 2005,当然VisualStudio.NET 2008已经出来了……如此快得更新速度,不由得让我们感叹:“做一个程序员真累啊!”。
所以,作为一个程序员要求一直走在时代的前列,真得很难!那么面对如此快速的变化,我们该怎么办呢?
其实,细心的程序员分析一下,可以看到,在如此快速的技术变化后面,软件开发的流程基本没有改变!原来困扰我们的只是一个开发工具、一门编程语言而已。真正的武学大师,何必在意手中的武器到底是刀,还是剑呢?
掌握了这些,所有的编程语言和开发工具,都是任君选择。是用Java这个“倚天剑”,还是用C#这把“屠龙刀”,就由我们的个人爱好和开发的需要来决定了!
这也是我写作本书的理由。
2.学习的重点:培养一种“习惯”
我们每个人都应该把学习的重点放在能力、方法的长进上,而不是具体的某种技术、某个知识点的学习。在如今的知识爆炸时代,新的技术、新的知识层出不穷,即使我们穷其一生,仍然不可能学习掌握所有的知识和技术,而只能是在茫茫的知识海洋中占据一片孤岛。所以我们的重点应该放在培养适合于自己的一种学习方法,更确切地说,是培养一种习惯,一种学习的习惯。
我再三强调大家要自己有意识地总结一套学习新东西的方法,就是这个意思。
如果能够掌握一套得心应手的学习新东西的方法,面对茫茫的知识海洋你也会信心十足的。正如一句笑话:如果你是一个数学高手,当面对新的技术挑战时,你问一下自己:难道这个技术比高等数学还复杂?这样一想,你顿时会信心十足。虽是笑话,但也是很有道理的。
3.一些思维方式的培养
生活、学习中每个问题的求解,到最后或者是归结为一种数学模型,或者是归结成一种哲学思想。因此我建议大家在自己的自由时间能抽空学习一些哲学、数学方面的思想。这对自己是终生有益的。
人的价值往往体现在他的思想上,正如一个公司的品牌价值;技术永远是要被淘汰的;但一种思想永远有其存在的价值。因此当对某个问题,你自己有你自己的一套完整理论时,你的身价就会上一个(几个)新的台阶。
4.何为“高手”?如何成为“高手”?
所谓的“高手”是否就是什么都懂?并不是。上面谈过,世界上是没有一个人精通所有的知识的,从古至今都没有。所谓的高手只不过是对于某些事情的处理已经养成了一种良好的习惯。举例说明,一个VC高手,是否就是熟悉MFC的每个类?了解Windows的所有SDK?显然不是。现实中可能有这样的“高手”,但寥寥无几。
只要在遇到各种问题后能很快地找到解决问题的方法,就可以算的上是一个真正的高手了。
因此在实际的生活、学习中,我们应该注意多总结方法、修订方法,特别是对于一些重复发生的事情(大到“学习”这个行为,小到VC编程中每次遇到问题),我们应该总结每次发生问题时自己采取的方法,并在下次发生时采用。
时间一长,就会新成一种习惯,并能时常修订自己的这种习惯。
5.求精与求广
对于知识的学习,我们或者可以“求精”,即选中一个点,精通它,因为尽管知识是无限的,但具体到某个知识点是有限的,我们有可能对某个知识点的所有知识加以了解;或者“求广”,因为人的生存,归根到底是人的竞争,你懂的东西比别人多,你就会在竞争中获胜。
相比较两种情况,后者难一些,因为在“求广”的同时,其精度不好掌握:浅了如同一无所知;深了精力有限不太可能。前者容易些,但这个点必须选对,否则就可能被社会遗弃。比如,对于我们知识点有:VC、数据库、网络等,选择网络的可能就比选择数据库的竞争力强些(特别是在网络编程比较火的现在)。
对于我们,我感觉还是先“求精”,有了一技之长,然后在这个基础上拓展自己掌握知识的范围。
但最重要的还是要逐渐从“靠技术吃饭”转到“靠思想吃饭”。
因此我们的重点应该是总结、培养自己的各种“习惯”。当一切成为一种下意识的举动时,你自己的“修为”就又上了一个新的台阶。
其实,在我看来,生活就是在培养一种种新的习惯,如果把根据结果修订习惯也变为一种习惯,那就是一种真正意义上的“习惯”(比如,朋友。如果根本不相往来的话,那根本不算是朋友;但如果你和他的相处已经成为一种“习惯”后,你会发现他才是你真正的朋友,他已经成为你生活的一个部分)。
工具、模板、示例、开发规范是本书的四大特色。
1.工具
本书中介绍了许多软件开发过程所用到的11个工具,它们是Rational Rose、Power Designer、Nunit、JUnit、Install Shield、Visual Studio.NET、HLP文件制作工具、CHM帮助文件制作工具、Microsoft Visual SourceSafe、CVS、Visio等。对于这些工具介绍,都是本着能够让读者快速上手的原则。如果需要深入了解这些内容,可以参考相关资料,也可以访问本书提供的网址。
2.模板
本书提供了软件开发流程各个阶段的质量模板文件,可以作为读者项目开发过程中的参考文件。
3.实例
本书提供了一个“网上商城系统”的实战项目,详细介绍了从可行性分析、需求分析、系统设计、编码到安装盘等各个阶段的具体实现,并且提供了各个阶段的相关文档和具体代码。读者可以按照流程学习,体悟每个阶段的关键知识点,熟练掌握各种开发工具的使用,同时对于实际工作中的项目开发也有一定的指导意义。
4.开发规范
在本书的附录中,提供了团队开发所需要的各种开发规范,包括项目组工作守则、编码规范、源代码控制规范、界面设计规范、数据库使用规范、安装盘制作规范等,会极大地方便团队开发。
本书配盘介绍
目录名 说 明 包含文件
1 ASP.NET常用代码总结 汇集了ASP.NET编程过程中,最常用的一些代码 41个常用代码段。如数据集的操作、数据库的操作、下载文件的方法等
续表
2 ASP.NET系列视频讲座 作者主讲,ASP.NET系列完整视频讲座,包括知识点讲解、实例编程、实战编程、项目实战四大部分,共55讲。每讲1小时。每讲都提供PPT、DEMO、视频。 ADO.NET开发最佳实践
DataGrid使用最佳实践
DataSet和XML
.NET框架类在ASP.NET中的使用(1)
.NET框架类在ASP.NET中的使用(2)
水晶报表的使用
ASP.NET程序的部署
在ASP.NET中使用用户控件
Web服务的创建和使用
ASP.NET中的错误处理和程序优化
ADO.NET数据操作
数据集的使用方法和技巧
调试和跟踪ASP.NET应用程序
ASP.NET安全性
Web服务器控件使用
ASP.NET状态管理
ASP.NET事务和异常处理
ASP.NET页面框架
ASP.NET实现在服务器端控制网页
ASP.NET中的事件处理
如何ASP.NET中开发复合控件?
ASP.NET中的XML
使用ASP.NET实现网络通信
DataSet和XML深入编程
SQLServer的内置XML支持
深入解析ASP.NET架构
深入了解DataSet
数据集和数据库的同步-DataAdapter的使用
ASP.NET网络打印
ASP.NET文件处理
ASP.NET中的Web服务(一)
ASP.NET中的Web服务(二)
ASP.NET中的Web服务(三)
ASP.NET多线程编程(一)
ASP.NET多线程编程(二)
ASP.NET中的编码
在ASP.NET中进行消息处理(一)
在ASP.NET中进行消息处理(二)
ASP.NET实例编程(一)
续表
包含文件
2 ASP.NET系列视频讲座 作者主讲,ASP.NET系列完整视频讲座,包括知识点讲解、实例编程、实战编程、项目实战四大部分,共55讲。每讲1小时。每讲都提供PPT、DEMO、视频。 ASP.NET实例编程(二)
ASP.NET实例编程(三)
ASP.NET实例编程(四)
ASP.NET实例编程(五)
ASP.NET实例编程(六)
ASP.NET实战编程(一)
ASP.NET实战编程(二)
ASP.NET实战编程(三)
ASP.NET实战编程(四)
ASP.NET实战编程(五)
ASP.NET实战编程(六)
ASP.NET项目实战(一)
ASP.NET项目实战(二)
ASP.NET项目实战(三)
ASP.NET项目实战(四)
ASP.NET项目实战(五)
3 Demo 本书各个章节所讲示例
4 代码量统计工具 用来统计代码行 CountASP.bat
CountCPP.bat
CountCS.bat
Ff.exe
5 开发规范 软件项目组常用规范 项目组内部守则.doc
数据库命名规范.doc
软件安装盘制作规范.doc
界面设计规范.doc
编码规范.doc
SourceSafe使用规范.doc
计划样板.txt
6 开发模板 软件开发常用质量模板 01立项申请书.doc
02可行性分析报告.doc
03立项评审报告.doc
04用户需求说明书.doc
05需求分析评审报告.doc
06总体设计书.doc
07开发策划书.doc
08详细设计书.doc
09编码计划书.doc
10测试方案.doc
11测试报告.doc
12结项报告.doc
技术支持
关于本书的任何问题,欢迎大家登录进行讨论。
程序员岗位技能图
目 录
第1篇 知识篇
作为一名程序员要掌握哪些专业技能?应该具备哪些素质技能?自己以后的个人的职业发展道路应该如何设计?这是每个程序员都要面对的问题。在本章中,我们将就这几个方面给大家做个介绍。
1.1 软件程序员专业技能 2
1.1.1 专业技能检核表 2
1.1.2 软件程序员岗位技能图 4
1.2 软件程序员素质技能 4
1.2.1 软件程序员的素质技能 4
1.2.2 高级软件程序员的素质技能 5
1.3 软件程序员职业发展图 6
1.3.1 软件企业的人才类型和素质结构关系 6
1.3.2 高级技术人才理想成长路径 7
1.3.3 高级管理人才理想成长路径 7
1.3.4 高级综合人才理想成长路径 8
第2章 软件开发流程 9
什么是产品?什么是项目,它们的开发流程有何不同?如何基于项目进行产品开发?如何基于产品,做项目开发?软件开发中,质量和效率如何平衡?这些都是每个软件开发人员面临的挑战。在本章中,我们将共同来探讨这些话题。
2.1 项目还是产品——程序员心中的痛 9
2.2 软件开发流程 10
2.2.1 项目开发流程 10
2.2.2 产品开发流程 11
2.3 标准还是效率——痛苦的抉择 11
2.3.1 质量/过程标准的来源 11
2.3.2 标准能做到什么和不能做到什么 12
2.3.3 质量标准和过程控制有什么用 12
2.3.4 软件开发过程中如何应用这些标准 13
第3章 可行性研究 14
可行性分析是要决定“做还是不做”。显然,“做还是不做”比“如何做”更重要。如果可行性分析不够充分、完整,就有可能得出错误的结论,从而导致资金的浪费、无谓的投入。因此可行性分析至关重要。在本章中我们将学习如何从市场、政策、技术、经济,以及SWOT方面做可行性分析。
3.1 可行性分析的要素 14
3.2 市场可行性分析 15
3.3 政策可行性分析 15
3.4 技术可行性分析 15
3.5 成本—收益分析 16
3.6 SWOT分析 16
3.6.1 竞争优势分析 17
3.6.2 竞争劣势分析 17
3.6.3 外部机会分析 18
3.6.4 外部威胁分析 18
3.6.5 SWOT核心问题 19
第4章 需求分析 20
需求分析是要决定“做什么,不做什么”。在越来越用户导向的今天,用户需求分析变得越来越重要。在需求分析阶段,我们需要完成哪些工作?常用的需求分析工具有哪些?在本章中,这些问题会一一得到解答。
4.1 需求分析的重要性 20
4.2 需求分析为什么困难 20
4.3 需求分析基本任务 21
4.4 需求分析的结果 22
4.5 需求分析阶段工作重点 22
4.6 UML和Rational Rose 22
4.7 Microsoft Visio 23
第5章 系统设计 24
每个程序员都希望自己能够成为系统架构师,。要想成为一名系统架构师,充分了解系统设计的相关知识、掌握系统设计的相关工具就显得非常重要。本章中,我们将就如何进行系统设计进行详细介绍。
5.1 系统设计工作流程图 24
5.2 面向对象的设计方法 25
5.2.1 面向对象的概念 26
5.2.2 面向对象设计方法目标 29
5.3 三层应用程序模型 29
5.4 函数、对象和组件 30
5.4.1 函数和过程 30
5.4.2 类和对象 30
5.4.3 组件 30
5.5 系统设计内容 31
5.5.1 数据库设计 32
5.5.2 界面设计 42
5.5.3 模块设计 46
5.5.4 数据结构和算法设计 48
5.5.5 OOP(Object Oriented Programming)设计方法步骤 49
第6章 编码 50
作为一名程序员,首先要精通一种面向对象的编程语言,熟练掌握相应的开发工具;随着网络技术的飞速发展,有很多的网络编程技术如XML、Ajax等都需要我们去了解和学习;作为项目中的一员,了解编码规范和源代码控制工具也是程序员所必须掌握的。在本章中,我们将探讨这些话题。
6.1 编程语言和开发工具 50
6.1.1 编程语言 50
6.1.2 开发工具 52
6.2 网络编程必备知识 53
6.2.1 HTML/JavaScript 53
6.2.2 XML 53
6.2.3 WebService 54
6.2.4 Ajax 54
6.3 了解极限编程 55
6.4 编码规范 56
6.5 源代码控制 56
6.5.1 版本管理的必要性 56
6.5.2 常用源代码控制工具 57
6.5.3 源代码控制规范 58
第7章 软件测试 59
在某些开发人员眼里,测试很神秘;在某些开发人员眼里,测试很简单;在某些开发人员眼里,测试就是质量。那么软件测试到底是什么?作为程序员来说,和软件测试人员相比,应该了解和掌握哪些方面的测试知识?在本章中我们将着重介绍这些方面的知识。
7.1 软件测试基本概念 59
7.1.1 单元测试 60
7.1.2 集成测试 60
7.1.3 系统测试 62
7.1.4 性能、压力和负载测试 62
7.1.5 测试成本 63
7.1.6 黑盒测试和白盒测试 63
7.2 白盒测试用例 64
7.2.1 测试用例简介 64
7.2.2 白盒测试用例设计 66
7.2.3 测试用例设计步骤 67
7.3 软件测试工具 73
7.3.1 常见软件测试工具列表 73
7.3.2 常用单元测试工具介绍 74
第8章 结项和产品化 76
编码结束了,软件开发就结束了吗?不!远远没有,还有很多工作要做。制作安装程序、进行软件加密、编写说明书和系统帮助文档,都是在结项和产品化阶段要做的工作。
8.1 安装盘制作 76
8.1.1 使用InstallShield 76
8.1.2 使用Visualstudio.NET发布程序 76
8.1.3 安装盘制作规范 77
8.2 软件加密 77
8.2.1 软件加密概述 77
8.2.2 常见的软件加密技术 77
8.3 说明书制作 79
8.3.1 Word书籍版说明书 79
8.3.2 电子说明书制作 79
第9章 项目组建设 81
随着软件编程技术的发展,团队开发变得越来越普遍,因此如何能够提高整个团队的协作能力、提高整体的开发效率,是每个软件企业都关注的问题。在本章中,我们将探讨有关项目建设方面的问题:项目守则、公共代码积累、工作计划总结等。
9.1 项目组守则 81
9.2 常用代码 81
9.3 编程技巧 82
9.4 编写工作计划总结 82
9.5 代码量统计工具 83
第2篇 工具篇
第10章 Rational Rose实例入门 86
10.1 创建工程 86
10.2 建立Actor 88
10.3 创建Use Case 89
10.4 用顺序图描述Use Case 90
10.5 建立协作图 92
10.6 建立类 93
10.7 实现模型 94
10.8 UML符号和图形 95
第11章 Power Designer实例入门 99
11.1 创建项目工程 99
11.2 建立概念数据模型 100
11.2.1 创建实体 100
11.2.2 添加属性 101
11.2.3 定义属性的标准检查约束 102
11.2.4 定义实体的主、次标识符 103
11.2.5 创建其他实体 105
11.2.6 建立联系 107
11.3 生成物理数据模型 110
11.4 生成数据库建库脚本 112
11.5 生成关系数据库 113
11.6 Power Designer的4种模型文件 113
第12章 NUnit实例入门 115
12.1 NUnit下载安装 115
12.2 创建测试项目 116
12.3 添加NUnit引用 116
12.4 创建测试用例 117
12.5 创建被测试类 118
12.6 编译项目 118
12.7 运行图形测试工具 118
12.8 修改测试 119
12.9 异常测试 120
第13章 JUnit实例入门 121
13.1 JUnit下载和安装 121
13.2 创建测试项目 122
13.3 添加JUnit引用 122
13.4 创建被测试类 124
13.5 创建测试用例 125
13.6 创建测试单元 126
13.7 运行测试 127
13.8 JUnit结构说明 128
第14章 InstallShield实例入门 129
14.1 创建安装项目 129
14.2 安装程序语言设计 130
14.3 应用程序信息设置 131
14.4 设置程序运行条件 131
14.5 设定安装架构 131
14.6 添加要发布的网站文件 131
14.7 添加程序快捷键 132
14.8 添加注册表修改 133
14.9 安装界面设置 134
14.10 多语言字符串修改 134
14.11 生成安装 134
14.12 运行安装文件 135
14.13 添加数据库支持 136
14.14 直接附加数据库 141
14.15 程序卸载 141
第15章 “VisualStudio.NET部署应用程序”实例入门 142
15.1 创建要发布ASP.NET Web应用程序 142
15.2 创建安装程序类 143
15.3 创建包含SQL语句的文本文件以创建数据库 143
15.4 将代码添加到安装程序类中以阅读文本文件 145
15.5 创建部署项目 147
15.6 将主程序项目的输出添加到部署项目中 148
15.7 创建自定义安装对话框 148
15.8 创建自定义操作 149
15.9 程序部署 150
第16章 HLP文件制作实例入门 151
16.1 RTF源文件制作 151
16.2 编译成为HLP文件 155
16.3 制作主题帮助文件(CNT文件) 158
16.4 把CNT文件加入工程 159
第17章 CHM文件制作实例入门 161
17.1 材料准备 161
17.2 创建工程 161
17.3 设置CHM文档的标题 164
17.4 修改文档对话框属性 167
17.5 制作目录 168
17.6 添加目录 170
17.7 制作索引 172
17.8 添加索引 173
17.9 说明 174
第18章 Visual SourceSafe实例入门 175
18.1 软件安装 175
18.2 服务端创建VSS数据库和用户 175
18.3 客户端选择数据库 177
18.4 添加项目到VSS数据库 178
18.4.1 通过SourceSafe添加项目 179
18.4.2 通过VisualStudio.Net2005集成开发环境添加项目 180
18.5 在客户端VS.NET开发环境中使用VSS 182
18.6 修改历史查看 184
18.7 用户权限修改 185
第19章 CVS实例入门 187
19.1 安装CVSNT 187
19.2 服务端创建仓库和用户 189
19.3 添加项目到CVS服务器 189
19.4 在Eclipse客户端开发环境中使用CVS 193
19.5 VS.NET中集成CVS 196
19.6 CVS和VSS比较 199
第20章 Visio实例入门 200
20.1 建立新文档 200
20.2 创建流程图 201
20.3 保存 204
20.4 自定义形状的制作 204
第3篇 实例篇
第21章 网上商城系统开发实战 208
21.1 项目概述 208
21.2 可行性分析 209
21.2.1 系统目标 209
21.2.2 开发的可行性分析 209
21.3 需求分析 210
21.3.1 确定用户类型 210
21.3.2 用户工作流程 210
21.3.3 软件功能 212
21.3.4 UML图 213
21.3.5 系统运行环境 214
21.4 系统设计 215
21.4.1 数据库设计 216
21.4.2 页面设计 228
21.4.3 页面关系图 230
21.4.4 界面设计 231
21.5 编码和测试 244
21.5.1 公共模块设计 244
21.5.2 源代码控制 254
21.5.3 单元测试工具 254
21.5.4 系统源代码 254
21.6 制作安装盘 254
21.7 本章源文件 254
第4篇 模板与规范篇
第22章 软件开发模板 256
22.1 软件立项申请书 257
22.2 可行性分析报告 259
22.3 立项评审报告 260
22.4 用户需求说明书 261
22.5 需求分析评审报告 265
22.6 总体设计书 266
22.7 开发策划书 266
22.8 详细设计书 268
22.9 编码计划 268
20.10 测试方案 269
20.11 测试报告 270
22.12 软件开发结项报告 272
第23章 项目组规范 273
23.1 项目组工作守则 273
23.2 C#编码规范 276
23.2.1 命名 277
23.2.2 代码格式书写规范 278
23.2.3 其他 280
23.3 SourceSafe使用规范 281
23.4 数据库命名规范 283
23.5 用户界面设计规范 286
23.6 安装盘制作规范 290