
一、考试说明
1考试要求
(1)掌握计算机体系结构以及各主要部件的性能和基本工作原理;
(2)掌握 *** 作系统、程序设计语言的基础知识,了解编译程序的基本知识;
(3)熟练掌握常用数据结构和常用算法;
(4)熟悉软件工程和软件开发项目管理的基础知识;
(5)熟悉计算机网络的原理和技术;
(6)掌握数据库原理及基本理论;
(7)掌握常用的大型数据库管理系统的应用技术;
(8)掌握数据库应用系统的设计方法和开发过程;
(9)熟悉数据库系统的管理和维护方法,了解相关的安全技术;
(10)了解数据库发展趋势与新技术;
(11)掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识;
(12)了解信息化、计算机应用的基础知识;
(13)正确阅读和理解计算机领域的英文资料。
2 通过本考试的合格人员能参与应用信息系统的规划、设计、构建、运行和管理,能按照用户需求,设计、建立、运行、维护高质量的数据库和数据仓库;作为数据管理员管理信息系统中的数据资源,作为数据库管理员建立和维护核心数据库;担任数据库系统有关的技术支持,同时具备一定的网络结构设计及组网能力;具有工程师的实际工作能力和业务水平,能指导计算机技术与软件专业助理工程师(或技术员)工作。
3 本考试设置的科目包括
(1)信息系统知识,考试时间为150分钟,笔试;
(2)数据库系统设计与管理,考试时间为150分钟,笔试。
二、考试范围
考试科目1:信息系统知识
1 计算机系统知识
11 硬件知识
111 计算机体系结构和主要部件的基本工作原理
•CPU和存储器的组成、性能、基本工作原理
•常用I/O设备、通信设备的性能,以及基本工作原理
•I/O接口的功能、类型和特点
•CISC/RISC,流水线 *** 作,多处理机,并行处理
112 存储系统
•虚拟存储器基本工作原理,多级存储体系
•RAID类型和特性
113 安全性、可靠性与系统性能评测基础知识
•诊断与容错
•系统可靠性分析评价
• 计算机系统性能评测方法
12 数据结构与算法
121 常用数据结构
•数组(静态数组、动态数组)
•线性表、链表(单向链表、双向链表、循环链表)
•栈和队列
•树(二叉树、查找树、平衡树、遍历树、堆)、图、集合的定义、存储和 *** 作
•Hash(存储位置计算、碰撞处理)
122 常用算法
•排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法
•算法与数据结构的关系,算法效率,算法设计,算法描述(流程图、伪代码、决策表),算法的复杂性
13 软件知识
131 *** 作系统知识
• *** 作系统的类型、特征、地位、内核(中断控制)、进程、线程概念
•处理机管理(状态转换、同步与互斥、信号灯、分时轮转、抢占、死锁)
•存储管理(主存保护、动态连接分配、分段、分页、虚存)
•设备管理(I/O控制、假脱机、磁盘调度)
•文件管理(文件目录、文件的结构和组织、存取方法、存取控制、恢复处理、共享和安全)
•作业管理(作业调度、作业控制语言(JCL)、多道程序设计)
•汉字处理,多媒体处理,人机界面
•网络 *** 作系统和嵌入式 *** 作系统基础知识
• *** 作系统的配置
132 程序设计语言和语言处理程序的知识
• 汇编、编译、解释系统的基础知识和基本工作原理
• 程序设计语言的基本成分:数据、运算、控制和传输,程序调用的实现机制
• 各类程序设计语言的主要特点和适用情况
14 计算机网络知识
•网络体系结构(网络拓扑、OSI/RM、基本的网络协议)
•传输介质,传输技术,传输方法,传输控制
•常用网络设备和各类通信设备
•Client/Server结构、Browser/Server结构、Browser/Web/Datebase结构
•LAN拓扑,存取控制,LAN的组网,LAN间连接,LAN-WAN连接
•因特网基础知识及应用
•网络软件
•网络管理
•网络性能分析
•网络有关的法律、法规
2 数据库技术
21 数据库技术基础
211 数据库模型
•数据库系统的三级模式(概念模式、外模式、内模式),两级映像(概念模式/外模式、外模式/内模式)
•数据库模型:数据模型的组成要素,概念数据模型ER图(实体、属性、关系),逻辑数据模型(关系模型、层次模型、网络模型)
212 数据库管理系统的功能和特征
•主要功能(数据库定义、数据库 *** 作、数据库控制、事务管理、用户视图)
•特征(确保数据独立性、数据库存取、同时执行过程、排它控制、故障恢复、安全性、完整性)
•RDB(关系数据库),OODB(面向对象数据库),ORDB(对象关系数据库),NDB(网状数据库)
•几种常用Web数据库的特点
213 数据库系统体系结构
• 集中式数据库系统
• Client/Server数据库系统
• 并行数据库系统
• 分布式数据库系统
• 对象关系数据库系统
22 数据 *** 作
221 关系运算
•关系代数运算(并、交、差、笛卡儿积、选择、投影、连接、除)
•元组演算
•完整性约束
222 关系数据库标准语言(SQL)
•SQL的功能与特点
•用SQL进行数据定义(表、视图、索引、约束)
•用SQL进行数据 *** 作(数据检索、数据插入/删除/更新、触发控制)
•安全性和授权
•程序中的API,嵌入SQL
23 数据库的控制功能
•数据库事务管理(ACID属性)
•数据库备份与恢复技术(UNDO、REDO)
•并发控制
24 数据库设计基础理论
241 关系数据库设计
•函数依赖
•规范化(第一范式、第二范式、第三范式、BC范式、第四范式、第五范式)
•模式分解及分解应遵循的原则
242 对象关系数据库设计
•嵌套关系、 复杂类型,继承与引用类型
•与复杂类型有关的查询
•SQL中的函数与过程
•对象关系
25 数据挖掘和数据仓库基础知识
•数据挖掘应用和分类
•关联规则、聚类
•数据仓库的成分
•数据仓库的模式
26 多媒体基本知识
261 多媒体技术基本概念
•多媒体系统基础知识
•常用多媒体文件格式
262 多媒体压缩编码技术
•多媒体压缩编码技术
•统计编码
•预测编码
•编码的国际标准
263多媒体技术应用
•简单图形的绘制,图像文件的处理方法
•音频和视频信息的应用
•多媒体应用开发过程
27 系统性能知识
•性能计算(响应时间、吞吐量、周转时间)
•性能指标和性能设计
•性能测试和性能评估
28 计算机应用基础知识
•信息管理、数据处理、辅助设计、科学计算,人工智能等基础知识
•远程通信服务及相关通信协议基础知识
3 系统开发和运行维护知识
31 软件工程、软件过程改进和软件开发项目管理知识
•软件工程知识
•软件开发生命周期阶段目标和任务
•软件开发项目基础知识(时间管理、成本管理、质量管理、人力资源管理、风险管理等)及其常用管理工具
•主要的软件开发方法(生命周期法、原型法、面向对象法、CASE)
•软件开发工具与环境知识
•软件质量管理基础知识
•软件过程改进基础知识
•软件开发过程评估、软件能力成熟度评估的基础知识
32 系统分析基础知识
•系统分析的目的和任务
•结构化分析方法(数据流图(DFD)和数据字典(DD),实体关系图(ERD),描述加工处理的结构化语言)
•统一建模语言(UML)
•系统规格说明书
33 系统设计知识
•系统设计的目的和任务
•结构化设计方法和工具(系统流程图、HIPO图、控制流程图)
•系统总体结构设计(总体布局,设计原则,模块结构设计,数据存取设计,系统配置方案)
•系统详细设计(代码设计、数据库设计、用户界面设计、处理过程设计)
•系统设计说明书
34 系统实施知识
•系统实施的主要任务
•结构化程序设计、面向对象程序设计、可视化程序设计
•程序设计语言的选择、程序设计风格
•系统测试的目的、类型,系统测试方法(黑盒测试、白盒测试、灰盒测试)
•测试设计和管理(错误曲线、错误排除、收敛、注入故障、测试试用例设计、系统测试报告)
•系统转换基础知识
35 系统运行和维护知识
•系统运行管理知识
•系统维护知识
•系统评价知识
4 安全性知识
•安全性基本概念(网络安全、 *** 作系统安全、数据库安全)
•计算机病毒的防治,计算机犯罪的防范,容灾
•访问控制、防闯入、安全管理措施
•加密与解密机制
•风险分析、风险类型、抗风险措施和内部控制
5标准化知识
•标准化意识,标准化的发展,标准出台过程
•国际标准、国家标准、行业标准、企业标准基本知识
•代码标准、文件格式标准、安全标准软件开发规范和文档标准
•标准化机构
6信息化基础知识
•信息化意识
•全球信息化趋势、国家信息化战略、企业信息化战略和策略
•有关的法律、法规
•远程教育、电子商务、电子政务等基础知识
•企业信息资源管理基础知识
7计算机专业英语
•掌握计算机技术的基本词汇
•能正确阅读和理解计算机领域的英文资料
考试科目2:数据库系统设计与管理
1数据库设计
11理解系统需求说明
•了解用户需求、确定系统范围
•确定应用系统数据库的各种关系
•现有环境与新系统环境的关系
•新系统中的数据项、数据字典、数据流
12 系统开发的准备
•选择开发方法,准备开发环境,制订开发计划
13 设计系统功能
•选择系统机构,设计各子系统的功能和接口,设计安全性策略、需求和实现方法,制定详细的工作流和数据流
14 数据库设计
141 设计数据模型
•概念结构设计(设计ER模型)
•逻辑结构设计(转换成DBMS所能接收的数据模型)
•评审设计
142 物理结构设计
•设计方法与内容
•存取方法的选择
•评审设计与性能预测
143 数据库实施与维护
•数据加载与应用程序调试
•数据库试运行
•数据库运行与维护
144 数据库的保护
•数据库的备份与恢复
•数据库的安全性
•数据库的完整性
•数据库的并发控制
15 编写外部设计文档
•编写系统说明书(系统配置图、各子系统关系图、系统流程图,系统功能说明、输入输出规格说明、数据规格说明、用户手册框架)
•设计系统测试要求
16 设计评审
2 数据库应用系统设计
21 设计数据库应用系统结构
•信息系统的架构(如Client/Server)与DBMS
•多用户数据库环境(文件服务器体系结构、Client/Server体系结构)
•大规模数据库和并行计算机体系结构(SMP、MPP)
•中间件角色和相关工具
•按构件分解,确定构件功能规格以及构件之间的接口
22 设计输入输出
•屏幕界面设计,设计输入输出检查方法和检查信息
•数据库交互与连接(掌握C程序设计语言,以及Java、Visual Basic、Visual C++、PowerBuilder、Delphi中任一种开发工具与数据库互连的方法(如何与数据库服务器沟通))
23 设计物理数据
•分析事务在数据库上运行的频率和性能要求,确定逻辑数据组织方式、存储介质,设计索引结构和处理方式
•将逻辑数据结构变换成物理数据结构,计算容量(空间代价),确定存取方法(时间效率)、系统配置(维护代价)并进行优化
24 设计安全体系
•明确安全等级
•数据库的登录方式
•数据库访问
•许可(对象许可、命令许可、授权许可的方法)
25 应用程序开发
251 应用程序开发
•选择应用程序开发平台
•系统实施顺序
•框架开发
•基础小组的程序开发
•源代码控制
•版本控制
252 模块划分(原则、方法、标准)
253 编写程序设计文档
•模块规格说明书(功能和接口说明、程序处理逻辑的描述、输入输出数据格式的描述)
•测试要求说明书(测试类型和目标,测试用例,测试方法)
254 程序设计评审
26 编写应用系统设计文档
•系统配置说明、构件划分图、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、程序设计文档、文件设计文档、数据库设计文档
27 设计评审
3 数据库应用系统实施
31 整个系统的配置与管理
32 常用数据库管理系统的应用(SQL Server、Oracle、Sybase、DB2、Access或Visual Foxpro)
•创建数据库
•创建表、创建索引、创建视图、创建约束、创建UDDT(用户自定义类型)
•创建和管理触发器
•建立安全体系
33 数据库应用系统安装
•拟定系统安装计划(考虑费用、客户关系、雇员关系、后勤关系和风险等因素)
•拟定人力资源使用计划(组织机构安排的合理性)
•直接安装(安装新系统并使系统快速进入运行状态)
•并行安装(新旧系统并行运行一段时间)
•阶段安装(经过一系列的步骤和阶段使新系统各部分逐步投入运行)
34 数据库应用系统测试
•拟定测试目标、计划、方法与步骤
•数据加载,准备测试数据
•指导应用程序员进行模块测试进行验收
•准备系统集成测试环境测试工具
•写出数据库运行测试报告
35 培训与用户支持
4数据库系统的运行和管理
41 数据库系统的运行计划
•运行策略的确定
•确定数据库系统报警对象和报警方式
•数据库系统的管理计划(执行,故障/恢复,安全性,完整性,用户培训和维护)
42 数据库系统的运行和维护
•新旧系统的转换
•收集和分析报警数据(执行报警、故障报警、安全报警)
•连续稳定的运行
•数据库维护(数据库重构、安全视图的评价和验证、文档维护)
•数据库系统的运行统计(收集、分析、提出改进措施)
•关于运行标准和标准改进一致性的建议
•数据库系统的审计
43 数据库管理
•数据字典和数据仓库的管理
•数据完整性维护和管理(实体完整性、参照完整性)
•数据库物理结构的管理(保证数据不推迟访问)
•数据库空间及碎片管理
•备份和恢复(顺序、日志(审计痕迹)、检查点)
•死锁管理(集中式、分布式)
•并发控制(可串行性、锁机制、时间戳、优化)
•数据安全性管理(加密、安全、访问控制、视图、有效性确认规则)
•数据库管理员(DBA)职责
44 性能调整
•SQL语句的编码检验
•表设计的评价
•索引的改进
•物理分配的改进
•设备增强
•数据库性能优化
45 用户支持
•用户培训
•售后服务
5 SQL
51 数据库语言
•数据库语言的要素
•数据库语言的使用方式(交互式和嵌入式)
52 SQL概述
•SQL语句的特征
•SQL语句的基本成分
53 数据库定义
•创建数据库(Create Datebase)、创建表(Create Table)
•定义数据完整性
•修改表(Alter Table)、删除表(Drop Table)
•定义索引(Create Index)、删除索引(Drop Index)
•定义视图(Create View)、删除视图(Drop View)、更新视图
54 数据 *** 作
•Select语句的基本机构
•简单查询
•SQL中的选择、投影
•字符串比较,涉及空值的比较
•日期时间,布尔值,输出排序
•多表查询
•避免属性歧义
•SQL中的连接、并、交、差
•SQL中的元组变量
•子查询
55 完整性控制与安全机制
•主键(Primary Key)约束
•外键(Foreign Key)约束
•属性值上的约束(Null、Check、Create Domain)
•全局约束(Create Assertions)
•权限、授权(Grant)、销权(Revoke)
56 创建触发器(Create Trigger)
57 SQL使用方式
•交互式SQL
•嵌入式SQL
•SQL与宿主语言接口(Declare、共享变量、游标、卷游标)
•动态SQL
•API
58 SQL 标准化
6 网络环境下的数据库
61 分布式数据库
611 分布式数据库的概念
•分布式数据库的特点与目标
612 分布式数据库的体系结构
•分布式数据库的模式结构
•数据分布的策略(数据分片、分布透明性)
•分布式数据库管理系统
613 分布式查询处理和优化
614 分布式事务管理
•分布式数据库的恢复(故障、恢复、2段提交、3段提交)
•分布式数据库的透明性(局部、分裂、复制、处理、并发、执行)
615 分布式数据库系统的应用
62 网络环境下数据库系统的设计与实施
•数据的分布设计
•负载均衡设计
•数据库互连技术
63 面向Web的DBMS技术
•三层体系结构
•动态Web网页
•ASP、JSP、XML的应用
7数据库的安全性
71 安全性策略的理解
•数据库视图的安全性策略
•数据的安全级别(最重要的、重要的、注意、选择)
72 数据库安全测量
•用户访问控制(采用口令等)
•程序访问控制(包含在程序中的SQL命令限制)
•表的访问控制(视图机制)
•控制访问的函数和 *** 作
•外部存储数据的加密与解密
8 数据库发展趋势与新技术
81 面向对象数据库(OODBMS)
811 OODBMS的特征
812 面向对象数据模型
•对象结构、对象类、继承与多重继承、对象标识、对象包含、对象嵌套
813 面向对象数据库语言
814 对象关系数据库系统(ORDBMS)
•嵌套关系
•复杂类型
•继承、引用类型
•与复杂类型有关的查询
•函数与过程
•面向对象与对象关系
•ORDBMS应用领域
82 企业资源计划(ERP)和数据库
821 ERP概述
•基本MRP(制造资源计划)、闭环MRP、ERP
•基本原理、发展趋势
•ERP设计的总体思路(一个中心、两类业务、三条干线)
822 ERP与数据库
•运行数据库与ERP数据模型之间的关系
•运行数据库与ERP数据库之间的关系
823 案例分析
83 决策支持系统的建立
•决策支持系统的概念
•数据仓库设计
•数据转移技术
•联机分析处理(OLAP)技术
•企业决策支持解决方案
•联机事务处理(OLTP)
第五章 数据库设计
67 什么是软件生存期:
软件生存期是软件工程的一个重要概念。是指从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间。通常分为六个阶段:
(1) 规划阶段
(2) 需求分析阶段
(3) 设计阶段
(4) 程序编制阶段
(5) 调试阶段
(6) 运行维护阶段
68 数据库系统的生存期:
一般分为七个阶段,即:
(1) 规划阶段
(2) 需求分析阶段 1)信息要求 2)处理要求 3)安全性和完整性要求
(3) 概念设计阶段
(4) 逻辑设计阶段 两部分:数据库逻辑设计和应用程序设计
(5) 物理设计阶段 两部分:物理数据库结构的选择和逻辑设计中程序模块说明的精确化
(6) 实现阶段
(7) 运行维护阶段
69 数据库设计过程的输入有哪些内容:
(1) 总体信息需求
(2) 处理需求
(3) DBMS的特征
(4) 硬件和OS特征
70 数据库设计过程的输出有哪两部分:
一部分是完整的数据库结构,其中包括逻辑结构与物理结构。
另一部分是基于数据库结构和处理要求的应用程序的设计原则。
71 常见的数据库设计方法有哪几种:
(1) 视图模式化及视图汇总设计方法
(2) 关系模式的设计方法
(3) 新奥尔良设计方法
(4) 基于E-R模型的数据库设计方法
(5) 基于3NF的设计方法
(6) 基于抽象语法规范的设计方法
(7) 计算机辅助数据库设计方法
72 实用的数据库设计方法至少应包括哪些内容:
(1) 设计过程
(2) 设计技术
(3) 评价准则
(4) 信息需求
(5) 描述机制
73 一种设计方法学需要有三种基本类型的描述机制:
(1) 实现设计过程的最终结果将用DBMS的DDL表示。
(2) 信息输入的描述。
(3) 在信息输入和DDL描述之间的其它中间步骤的结果的描述。
74 数据库设计中的规划阶段的主要任务:
是进行建立数据库的必要性及可行性分析,确定数据库系统在组织中和信息系统中的地位,以及各个数据库之间的联系。
75 需求分析阶段的任务:
需求分析阶段应该对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能接受的文档。
76 需求分析的步骤:
大致可分为三步来完成,即需求信息的收集、分析整理和评审。
77 数据字典由哪几部分组成:
(1) 数据项
(2) 数据结构
(3) 数据流
(4) 数据存储
(5) 加工过程
78 数据抽象:
抽象是对实际的人、物、事或概念的人为处理,它抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。
抽象有两种形式,系统状态抽象(抽象对象)和系统转换抽象(抽象运算)。
79 对象的两种形式:
(1) 聚集:的数学意义就是笛卡尔积的概念。通过聚集,形成对象之间的一个联系对象。
(2) 概括:是从一类其它对象形成一个对象。对于一类对象{O1,O2,……,On}可以概括成对象O,那么Oi称为O的其中一个。
80 依赖联系:
在现实世界中,常常有某些实体对于另一些实体具有很强的依赖关系,即一个实体的存在必须以另一个实体的存在为前提。我们通常把前者称为弱实体。在ER图中,用双线框表示弱实体,用指向弱实体的箭头表明依赖联系。
81 子类、超类:
某个实体类型中所有实体同时也是另一实体类型中的实体。此时,我们称前一实体类型是后一实体类型的子类,后一实体类型称为超类。在ER图中,带有子类的实体类型(超类)以两端双线的矩形框表示,并用加圈的弧线与其子类相连,子类本身仍用普通矩形框表示。
子类具有一个很重要的性质:继承性。它可继承超类上定义的全部属性,其本身还可包含其它另外的属性。
82 ER模型的 *** 作:
(1) 实体类型的分裂:垂直分割、水平分割
(2) 实体类型合并:分裂的逆过程。
(3) 联系类型的分裂
(4) 联系类型的合并
83 采用ER方法的数据库概念设计分成哪三步:
(1) 设计局部ER模式:1)确定局部结构范围 2)实体定义 3)联系定义 4)属性分配
(2) 设计全局ER模式:1)确定公共实体类型 2)局部ER模式的合并 3)消除冲突。
(3) 全局ER模式的优化:1)实体类型的合并 2)冗余属性的消除 3)冗余联系的消除
84 冲突分为哪三种:
属性冲突,包括属性域的冲突、属性取值单位冲突。
结构冲突,包括:
(1) 同一对象在不同应用中的不同抽象。
(2) 同一实体在不同局部ER图中属性组成不同。
(3) 实体之间的联系在不同的局部ER图中呈现不同的类型。
命名冲突,包括属性名,实体名,联系名之间的冲突:同名异义、异名同义
85 ER模型向关系模型的转换:
ER模型中的主要成分是实体类型和联系类型。
对实体类型,将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
对联系类型,就视1:1、1:N、M:N三种不同的情况做不同处理。
(1) 对1:1可在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
(2) 对1:N,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
(3) 对M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键盘加上联系类型的属性,而键为两端实体键的组合。
86 什么是物理设计:
对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,称为数据库的物理设计。物理结构,主要指数据库在物理设备上的存储结构和存取方法。
87 物理设计的步骤:
物理设计可分五步完成,前三步涉及到物理数据库结构的设计,后两步涉及约束和具体的程序设计。
(1) 存储记录结构设计
(2) 确定数据存储安排
(3) 访问方法的设计
(4) 完整性和安全性
(5) 程序设计
88 在数据库系统生存期中,生存期的总开销可分为几项:
规划开销、设计开销、实现与测试开销、 *** 作开销、维护开销。
89 用户使用和计算机资源的 *** 作开销是:
(1) 查询响应时间
(2) 更新事务的开销
(3) 报告生成的开销
(4) 改组频率和开销
(5) 主存储空间
(6) 辅助存储空间
90 数据库实现阶段的主要工作:
(1) 建立实际数据库结构
(2) 试运行
(3) 装入数据
91 数据库的重新组织设计:
对数据库的概念模式、逻辑结构或物理结构的改变称为重新组织,其中改变概念模式或逻辑结构又称为重新构造,改变物理结构则称为重新格式化。
92 运行维护阶段的主要工作:
(1) 维护数据库的安全性和完整性控制及系统的转储和恢复。
(2) 性能的监督、分析与改进。
(3) 增加新功能。
(4) 发现错误,修改错误。
高水平、高质量的软件出来。怎样是高水平、高质量的软件?它应当是易于维护、易于适应变更、可重用性好的一个系统。如何做到这一点呢?答案当然是“低耦合、高内聚”了。低耦合就是软件在构造的时候,各个模块、各个功能、各个类都不会过度依赖于它周围的环境。只有这样,才能使我们的模块(功能、类)在周围发生变更时不受影响,做到易于维护和易于适应变更。正因为如此,也使它更易于重用到其它功能类似的环境中,提高了重用性。高内聚则使软件中的各个模块(功能、类)能够各尽其能而又充分合作,也就是对于软件问题空间中需求的各个功能,系统可以合理地把它分配给各个模块(功能、类)来共同完成,而不是一个或几个八面玲珑、包打天下的超级类一个人完成。而对于该系统中的某一个模块(功能、类),具有自己高度相关的职责,即该职责中的几个任务是高度相关的。每一个模块(功能、类)都决不去完成与自己无关职责的任务。
那么怎样能构造一个低耦合、高内聚的系统能,时下最流行的框架结构之一的struts+spring+hibernate为我们提供了方便。使用struts我们可以应用MVC模型,使页面展现与业务逻辑分离,做到了页面展现与业务逻辑的低耦合。当我们的页面展现需要变更时,我们只需要修改我们的页面,而不影响我们的业务逻辑;同样,我们的业务逻辑需要变更的时候,我们只需要修改我们的java程序,与我们的页面无关。使用spring我们运用IoC(反向控制),降低了业务逻辑中各个类的相互依赖。假如类A因为需要功能F而调用类B,在通常的情况下类A需要引用类B,因而类A就依赖于类B了,也就是说当类B不存在的时候类A就无法使用了。使用了IoC,类A调用的仅仅是实现了功能F的接口的某个类,这个类可能是类B,也可能是另一个类C,由spring的配置文件来决定。这样,类A就不再依赖于类B了,耦合度降低,重用性提高了。使用hibernate则是使我们的业务逻辑与数据持久化分离,也就是与将数据存储到数据库的 *** 作分离。我们在业务逻辑中只需要将数据放到值对象中,然后交给hibernate,或者从hibernate那里得到值对象。至于用Oracle、MySQL还是SQL Server,如何执行的 *** 作,与我无关。
然而我要说的是,即使我们使用了struts+spring+hibernate框架构建我们的软件,就可以做到“低耦合、高内聚”了吗?我认为这是远远不够的!我认为我们在使用struts+spring+hibernate框架的时候常常会有以下几个问题值得改进。
分析与决策1 编写DAO的时候不要直接去使用hibernate或spring对hibernate的支持。
现在我们在编写DAO的时候普遍都是直接继承spring对hibernate的封装类HibernateDaoSupport,然后使用该类提供的诸如saveOrUpdate(), saveOrUpdateCopy(), find()等等。另外,在使用excute()方法实现一些更复杂的hibernate功能的时候还会使用hibernate的类,诸如Query, Session, Type等。这样直接使用spring和hibernate的类存在的问题在于,你的代码将不得不依赖与spring和hibernate的某个版本。比如说,现在hibernate3出来了,改动挺大,实际上最要命的是包结构,hibernate2的包结构是netsfhibernate,然而hibernate3是orghibernate。同样,spring为了支持hibernate3,包名也改为orgspringframeworkormhibernate3。假如,你现在新开发一个项目,这没什么关系,如果是升级一个项目问题就来了。如果你希望将你的一个项目从hibernate2升级为hibernate3,你不得不修改DAO中所有对hibernate和spring-hibernate的引用。如果你的代码中出现hibernate2与hibernate3不兼容的方法和类,比如saveOrUpdateCopy()(在hibernate3中已经没有了),你还将不得不改写。那么你可能会说,我不会这样升级。如果你的软件生命周期有好多年,hibernate升级到4,升级到5,你还是依然使用hibernate2?如果你以这种方式开发一个平台,你能要求所有使用你平台的软件项目都只能使用hibernate2?更进一步说,我现在开发一个产品,今后的客户将是成千上万。经过1、2年我需要升级了,这时我的升级包有几十M,几乎把所有的DAO都换了个遍,这样的升级无异于重装。也许,有人会提出另一个方案,在HibernateDaoSupport与DAO中间增加了一个基础类,这样将基础类中的orgspringframeworkormhibernatesupportHibernateDaoSupport,改为了orgspringframeworkormhibernate3supportHibernateDaoSupport,这样其下面继承的DAO就不用改动了。然而在源码上是小小的改动,但对于类来说,两个不同版本的HibernateDaoSupport其相关的属性和方法还是有不少变化,那么在基础类重新编译的同时,你的继承类重新编译否。既然已经重新编译了,因此你的所有DAO在升级的时候依然要打入升级包,问题依然存在。以上问题,究其原因,是我们项目中的DAO依赖于hibernate和spring,因为我们对它们的使用是继承,是一种很强的关联,就是一种依赖。我们只需要稍微进行一些调整,就可以解决这个问题,那就是不使用直接继承,而使用接口进行分离。可以使用Façade模式,先建立一个叫BasicDao的基础类,从名称我们可以看出,它是所有DAO的基础类,实现DAO *** 作所需的所有诸如save()、delete()、load()、query()等方法,除了一些基本的方法,诸如翻页查询、getCount、解析查询条件形成HQL语句等功能也在这里实现,但是不要使用与hibernate或spring有关的任何方法和类。同时,BasicDao调用一个叫DaoSupport的接口,DaoSupport的接口则是提供持久化所需的基本方法,最原始的元素。然后,我为DaoSupport接口提供各种不同的实现,比如hibernate2的实现DaoSupportHibernateImp、hibernate3的实现DaoSupportHibernate3Imp,整个结构如下图所示。BasicDao可以使用hibernate或spring提供的方法,但是不是直接使用,而是通过调用DaoSupport的实现类来使用。然而BasicDao到底是使用的那个实现类,我们通过spring的IoC,通过配置文件来决定到底使用哪个实现。同时,BasicDao也不要使用诸如SpringContext的类来实现IoC,而是通过建立setDaoSupport()和getDaoSupport()方法,然后在spring配置文件中建立引用。
2 编写Action的时候不要直接使用spring和spring的继承类
前面我说了应当避免DAO引用spring或hibernate及其继承类。同样的事情也发生在Action中。由于Action通常不纳入spring的管理,因此Action在通过spring调用某个BUS的时候,往往是去引用一个叫SpringContext的类(spring的类ContextLoaderServlet的继承类),然后使用它的getBean()方法。如此的使用,我们的Action将依赖与spring。我们同样可以使用一个叫BasicAction的父类,然后用一个接口来隔离spring。由于Action通常不纳入spring的管理,我们通过一个property的配置文件来决定接口到底调用哪个实现类。这样的结构的另一个好处是,我们还可以将所有Action都必须使用的诸如写日志、用户校验、异常处理都放在父类BasicAction中,提高系统的可维护性。
3 当BUS需要获取别的模块的数据的时候,不要直接去使用该模块的DAO
我举一个简单的例子:我需要设计一个软件评审的管理软件,该软件分为评审组织者制订评审计划、评审者分别填写评审表后由评审组织者汇总评审表、评审组织者制作评审报告。这是一个非常简单的项目,分成了三个人来完成。但是项目进行快结束的时候却出现了问题。填写评审表需要获得评审计划中的一些数据,制作评审报告的数据来源于评审表。项目组在开始编程前先开了一次会,大家约定好了各个部分的数据格式及其规则,然后开始工作。然而数天后项目组把各个模块整合以后发现,系统根本跑不起来,为什么呢?设计评审计划的人发现,所有评审计划应当按照产品编号来进行管理而不是项目编号。由于这个变更,填写评审表模块在待评审列表中什么都无法显示;同样,设计评审表的人发现,在一个评审计划中评审表与评审者不是一对多的关系,而是一对一的关系,因而修改了这两个表的关联。因为这样,在制作评审报告时就不能正确得到评审表数据。其实一个软件项目在整个进行过程中总是不断变更。我们需要做的不是去抑制这些变更,而应当是通过软件的结构去适应这些变更,即是降低各模块间的依赖(耦合),提高内聚。拿这个实例来说,当评审表需要调用评审计划的数据的时候,不应当是自己写一个DAO去调用评审计划的数据,而应当是调用评审计划的接口,将这个任务交给评审计划类来完成。当评审报告需要调用评审表的数据的时候,同样应当去调用评审表的接口,由评审表来实现。同时,这种调用应当是去调用BUS层的接口。为什么呢?比如在评审计划中的一个业务逻辑是只有在评审计划发布以后才能制作评审表,那么怎样才是已发布的评审计划呢?这个业务逻辑应当由谁来定义?当然是评审计划。在什么地方定义?当然是BUS而不是DAO,因为DAO仅仅是实现数据的持久化,而BUS才是实现业务逻辑的地方。既然如此,如果评审表去调用评审计划的DAO,那么已发布评审计划的业务逻辑必然包含在了评审表的业务逻辑里了。我们假设有一天,已发布评审计划的业务逻辑发生变更了(实际上这样的会在你毫不经意间就发生了),编写评审计划的人会很快就修改了评审计划的业务实现并且测试通过了。他不知道评审表里也包含了这样的业务逻辑,因而修改后的程序在运行到评审表的时候就很可能会出错。不幸的是,在实际工作中,同样一个业务逻辑可能包含在无数个你可能知道,但你也可能不知道的代码中。这样的结构就是一个不易于维护的差的结构。
总结:从技术升级和需求变更两方面适应变化软件开发专家Alistair Cockburn在《敏捷软件开发》中说过,软件在整个生命周期中变更是无时无刻不发生的。我认为,软件的变更一方面是技术的更新,今天我们使用struts+spring+hibernate,明天呢,我们将使用什么呢?正因为技术变更得太快,我们的系统应当不要太依赖于某个具体的技术或框架,以便于明天的技术更新。同时,来自客户的需求变更也是我们必须面对的另一个压力。一句经典的话是这样描述客户的变更:“当我看到时我的需求就变更了。(I changed just when I saw it)”过去我们用需求说明书来抑制用户的变更,现在发现不能这样了。敏捷软件开发提出了许多应对用户变更的办法,其中建立低耦合高内聚的软件结构也是办法之一。系统中的所有对象都有自己的明确职责,这个职责应当不多且高度相关。每个对象都应当只完成自己的职责,而把其它的任务交给别人去做。正如我前面提到的例子,评审表对象只完成与评审表相关的 *** 作,而在它需要完成的任务中,需要使用评审计划数据的相关功能,交给评审计划对象去完成,评审表只管调用。这样的构造要求开发者相互协调,彼此多交流,同时,也需要有人来统一规划,站在全局的设计这个系统。通过这些,我们才可以适应变化,提高设计水平。
另外,团IDC网上有许多产品团购,便宜有口碑
软件工程B(魏振钢)doc免费下载
1c4v
软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计件有电子邮件、嵌入式系统、人机界面、办公套件、 *** 作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。
1 软件工程论文
[编辑本段]基本信息 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: 软件工程(1)、BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
(2)、IEEE在软件工程术语汇编中的定义:软件工程是:1将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2在1中所述方法的研究 (3)、FritzBauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
(4)、《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。
其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 [编辑本段]目标 软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用软件工程性、可适应性、可移植性、可追踪性和可互 *** 作性并且满足用户需求的软件产品。
追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。下面分别介绍这些概念。
(1)可修改性(modifiablity)。容许对系统进行修改而不增加原系统的复杂性。
它支持软件的调试与维护,是一个难以达到的目标。 (2)有效性(efficiency)。
软件系统能最有效地利用计算机的时间资源和空间资源。各种计算机软件无不将系统的时/空开销作为衡量软件质量的一项重要技术指标。
很多场合,在追求时间有效性和空间有效性方面会发生矛盾,这时不得不牺牲时间效率换取空间有效性或牺牲空间效率换取时间有效性。时/空折衷是经常出现的。
有经验的软件设计人员会巧妙地利用折衷概念,在具体的物理环境中实现用户的需求和自己的设计。 (3)可靠性(reliability)。
能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因 *** 作不当造成软件系统失效的能力。对于实时嵌入式计算机系统,可靠性是一个非常重要的目标。
因为软件要实时地控制一个物理过程,如宇宙飞船的导航、核电站的运行,等等。如果可靠性得不到保证,一旦出现问题可能是灾难性的,后果将不堪设想。
因此在软件开发、编码和测试过程中,必须将可靠性放在重要地位。 (4)可理解性(understandability)。
系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。
(5)可维护性(maintainability)。软件产品交付用户使用后,能够对它进行修改,以便改正潜伏的错误,改进性能和其他属性,使软件产品适应环境的变化,等等。
由于软件是逻辑产品,只要用户需要,它可以无限期的使用下去,因此软件维护是不可避免的。软件维护费用在软件开发费用中占有很大的比重。
可维护性是软件工程中一项十分重要的目标。软件的可理解性和可修改性有利于软件的可维护性。
(6)可重用性(reusebility)。概念或功能相对独立的一个或一组相关模块定义为一个软部件。
软部件可以在多种场合应用的程度称为部件的可重用性。可重用的软部件有的可以不加修改直接使用,有的需要修改后再用。
可重用软部件应具有清晰的结构和注解,应具有正确的编码和较低的时/空开销。各种可重用软部件还可以按照某种规则存放在软部件库中,供软件工程师选用。
可重用性有助于提高软件产品的质量和开发效率、有助于降低软件的开发和维护费用。从更广泛的意义上理解,软件工程的可重用性还应该包括:应用项目的重用,规格说明(也称为规约)的重用,设计的重用,概念和方法的重用,等等。
一般来说,重用的层次越高,带来的效益也就越大。 (7)可适应性(adaptability)。
软件在不同的系统约束条件下,使用户需求得到满足的难易程度。适应性强的软件应采用广为流行的程序设计语言编码,在广为流行的 *** 作系统环境中运行,采用标准的术语和格式书写文档。
适应性强的软件较容易推广使用。 (8)可移植性(portability)。
软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。为了获得比较高的可移植性,在软件设计过程中通常采用通用的程序设计语言和运行环境支撑。
对依赖于计算机系统的低级(物理)特征部分,如编译系统的目标代码生成,应相对独立、集中。这样,与处理机无关的部分就可以移植到其他系统上使用。
可移植性支持软件的课重用性和课适应性。 (9)可追踪性(tracebility)。
根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力。软件可追踪性依赖于软。
2 软件工程毕业论文怎么写软件工程可以写的题目多啊。开始也不怎么懂,还是学姐给的文方网,写的《基于Windows平台的HIPS系统设计与实现》,靠谱的说
研究生教育网络管理系统的设计与实现
WMS-2000A轮机模拟器数据通信系统设计与实现
洗衣机模拟运行控制系统的设计与实现
机车信号记录器数据分析处理系统的设计与实现
分布式自动检测系统RS485通信网络的设计与实现
计划生育管理信息系统的设计与实现
医院“一卡通”系统的设计与实现
列车三维驾驶仿真系统的设计与实现
一种图书外采查重系统的设计与实现
基于C/S模式的网络文件管理系统的设计与实现
自动化仓库管理系统的设计与实现
四川省卫生统计数据采集与决策支持系统设计与实现
ATM应用系统EMV迁移的设计与实现
基于B/S模式的药品信息咨询系统的设计与实现
基于LFAP的网络流量统计分析系统的设计与实现
传真管理信息系统的设计与实现
工业机器人三维仿真系统的设计与实现
单位网络设备环境智能监控系统设计与实现
基于CC1020芯片无线传输系统的设计与实现
公安派出所综合信息管理系统设计与实现
基于WEB的库存管理系统设计与实现
基于工作流的AUTOBANK管理系统设计与实现
具有主动功能的连锁经营企业配送中心管理信息系统的设计与实现
基于JavaEE技术的在线考试系统的设计与实现
学生评教系统的设计与实现
微小型电动无人机动力系统试验台的设计与实现
基于F1103 GPRS MODEM的家校通系统设计与实现
基于嵌入式Linux的远程家庭医疗监护系统设计与实现
基于Windows *** 作系统的智能建筑物综合布线管理系统的设计与实现
基于NET技术的网上购物管理系统的设计与实现
变电检修管理信息系统设计与实现
天津地铁1号线车站乘客向导系统的设计与实现
基于B/S结构的电路分析网上答疑系统的设计与实现
应用PDA组建无线IC卡表抄收系统的设计与实现
非计算机专业计算机课程考试系统设计与实现
基于GPRS网络的煤矿瓦斯监控系统的设计与实现
惯性组合导航系统接口子系统的设计与实现
人寿保险老业务综合处理系统的设计与实现
FORTRAN语言题库管理系统的设计与实现
楼宇信息系统的设计与实现
倒闸实训系统无线遥控的设计与实现
C/S模式下的电子邮件系统设计与实现
基于LINQ三层架构仓库管理系统的设计与实现
一种宽带无线移动视频调度系统的设计与实现
浅谈远程监控机房温湿度报警系统的设计与实现
学术论文共词分析系统的设计与实现
基于Web的SQLServer远程备份管理系统的设计与实现
基于Spring框架的北京林业大学图书馆门户系统设计与实现
基于XML的研究生网络选课系统设计与实现
3 一个软件工程师应该具备什么样的素质最低027元开通文库会员,查看完整内容> 原发布者:北大青鸟广安门校区 软件工程师应该具备的技能有哪些 软件工程师应该具备的技能有哪些?我认为,软件工程师用该具备的技能主要为以下几点: 1编程语言能力 作为一名专业的软件工程师,应该能够熟练掌握JAVA语言,并且能够深入理解OOP、OOA、OOD等编程思想。
精通一门编程语言能为以后的软件开发打下坚实的基础。 2编码能力 这里说的编码可不是照着书本敲代码,而是能够独立的运用代码,编写一个程序出来。
有很多软件工程师,他们都是随意堆砌网上搜来的代码,根本不管可读性和可维护性,只要能实现功能就行了,缺乏最基本的职责素养。 我认为,对于软件工程师或程序员来说,代码就像自己的孩子一样,一定要付出感情,这样才能编写出好的程序。
3学习能力 IT技术可谓是更新换代最快的了,从市面上的电脑和手机就可以看出来。所以,只依靠自己之前学到的知识,很快就会被这个时代所淘汰,软件工程师应具备的技能里很重要的一点就是学习能力。
因为只有具备了学习能力,才能在离开学校之后仍然能够独立地学习最新的技术,同时能够自主的发现现在有什么新技术,市场上流行的技术元素与市场需求的变化。 4设计能力 一个优秀的软件工程师不仅仅具备扎实的专业知识与技能,而且还要具备一定的设计能力。
因为只有这样,才能使一个软件或者应用更加完美,更加容易受到人们的欢迎,从而获得更广阔的市场。 5团队协作能力 软件开发并不是孤军奋战,很多时候一个软件需要几个人。
4 软件工程对写毕业论文有什么用处当今中国软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: 软件工程(1)、BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
(2)、IEEE在软件工程术语汇编中的定义:软件工程是:1将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2在1中所述方法的研究 (3)、FritzBauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
(4)、《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。
其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。[编辑本段]目标 软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用软件工程性、可适应性、可移植性、可追踪性和可互 *** 作性并且满足用户需求的软件产品。
追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。下面分别介绍这些概念。
(1)可修改性(modifiablity)。容许对系统进行修改而不增加原系统的复杂性。
它支持软件的调试与维护,是一个难以达到的目标。 (2)有效性(efficiency)。
软件系统能最有效地利用计算机的时间资源和空间资源。各种计算机软件无不将系统的时/空开销作为衡量软件质量的一项重要技术指标。
很多场合,在追求时间有效性和空间有效性方面会发生矛盾,这时不得不牺牲时间效率换取空间有效性或牺牲空间效率换取时间有效性。时/空折衷是经常出现的。
有经验的软件设计人员会巧妙地利用折衷概念,在具体的物理环境中实现用户的需求和自己的设计。 (3)可靠性(reliability)。
能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因 *** 作不当造成软件系统失效的能力。对于实时嵌入式计算机系统,可靠性是一个非常重要的目标。
因为软件要实时地控制一个物理过程,如宇宙飞船的导航、核电站的运行,等等。如果可靠性得不到保证,一旦出现问题可能是灾难性的,后果将不堪设想。
因此在软件开发、编码和测试过程中,必须将可靠性放在重要地位。 (4)可理解性(understandability)。
系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。
(5)可维护性(maintainability)。软件产品交付用户使用后,能够对它进行修改,以便改正潜伏的错误,改进性能和其他属性,使软件产品适应环境的变化,等等。
由于软件是逻辑产品,只要用户需要,它可以无限期的使用下去,因此软件维护是不可避免的。软件维护费用在软件开发费用中占有很大的比重。
可维护性是软件工程中一项十分重要的目标。软件的可理解性和可修改性有利于软件的可维护性。
(6)可重用性(reusebility)。概念或功能相对独立的一个或一组相关模块定义为一个软部件。
软部件可以在多种场合应用的程度称为部件的可重用性。可重用的软部件有的可以不加修改直接使用,有的需要修改后再用。
可重用软部件应具有清晰的结构和注解,应具有正确的编码和较低的时/空开销。各种可重用软部件还可以按照某种规则存放在软部件库中,供软件工程师选用。
可重用性有助于提高软件产品的质量和开发效率、有助于降低软件的开发和维护费用。从更广泛的意义上理解,软件工程的可重用性还应该包括:应用项目的重用,规格说明(也称为规约)的重用,设计的重用,概念和方法的重用,等等。
一般来说,重用的层次越高,带来的效益也就越大。 (7)可适应性(adaptability)。
软件在不同的系统约束条件下,使用户需求得到满足的难易程度。适应性强的软件应采用广为流行的程序设计语言编码,在广为流行的 *** 作系统环境中运行,采用标准的术语和格式书写文档。
适应性强的软件较容易推广使用。 (8)可移植性(portability)。
软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。为了获得比较高的可移植性,在软件设计过程中通常采用通用的程序设计语言和运行环境支撑。
对依赖于计算机系统的低级(物理)特征部分,如编译系统的目标代码生成,应相对独立、集中。这样,与处理机无关的部分就可以移植到其他系统上使用。
可移植性支持软件的课重用性和课适应性。 (9)可追踪性(tracebility)。
根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力。软件可追踪性依赖于软件开发各个阶段文档和程序的完整性、一致性和可理解性。
降低系统的复杂性会提。
5 软件工程的三大文档是什么01立项调查报告
02立项建议书
03立项评审报告
04项目设计开发任务书
05项目计划
06质量保证计划
07配置管理计划
08需求分析说明书
09概要设计说明书
10详细设计说明书
11数据库设计说明书
12数据库表详细设计
13单元测试计划
14测试脚本
15单元测试报告
16系统测试计划
17验收申请书
18验收评审报告
19客户验收报告
21审核反馈表
22软件评审报告
23变更需求报告
24设计变更报告
26项目管理报告
27项目总结报告
一共这么多,三大报告是
需求分析说明书
概要设计说明书
详细设计说明书
6 各位前辈,我要写软件工程研究生毕业论文,但不懂该专业,可有热心1、论文题目:要求准确、简练、醒目、新颖。
2、目录:目录是论文中主要段落的简表。(短篇论文不必列目录) 3、提要:是文章主要内容的摘录,要求短、精、完整。
字数少可几十字,多不超过三百字为宜。 4、关键词或主题词:关键词是从论文的题名、提要和正文中选取出来的,是对表述论文的中心内容有实质意义的词汇。
关键词是用作机系统标引论文内容特征的词语,便于信息系统汇集,以供读者检索。 每篇论文一般选取3-8个词汇作为关键词,另起一行,排在“提要”的左下方。
主题词是经过规范化的词,在确定主题词时,要对论文进行主题,依照标引和组配规则转换成主题词表中的规范词语。 5、论文正文: (1)引言:引言又称前言、序言和导言,用在论文的开头。
引言一般要概括地写出作者意图,说明选题的目的和意义, 并指出论文写作的范围。引言要短小精悍、紧扣主题。
〈2)论文正文:正文是论文的主体,正文应包括论点、论据、论证过程和结论。主体部分包括以下内容: a提出-论点; b分析问题-论据和论证; c解决问题-论证与步骤; d结论。
6、一篇论文的参考文献是将论文在和写作中可参考或引证的主要文献资料,列于论文的末尾。参考文献应另起一页,标注方式按《GB7714-87文后参考文献著录规则》进行。
中文:标题--作者--出版物信息(版地、版者、版期):作者--标题--出版物信息所列参考文献的要求是: (1)所列参考文献应是正式出版物,以便读者考证。 (2)所列举的参考文献要标明序号、著作或文章的标题、作者、出版物信息。
7 软件工程师主要学什么需要掌握以下的知识 : (一)NET方面的开发⒈熟悉开发体系,熟悉C# ASP NET;⒉熟悉SQLServer,Oracle数据库开发;⒊具有企业管理系统项目经验;4了解企业ERP及财务管理软件(用友,金蝶)者优先;5善于沟通,能独立撰写方案。
为人诚实,善于学习,做事认真负责,积极主动,具有敬业精神,有团队精神。(二)JAVA应用程序开发1熟练使用Struts2+Spring+Hibernate2掌握Jquery3掌握Java4熟悉Oracle5掌握xml/webservice6掌握OOD、OOP7基本文档写作能力(三)web、数据库方面的开发⒈练掌握ASP,NET;等编程语言,熟悉Net开发环境,理解Net Framework,理解并能熟练使用WebService、O/R mapping、Remoting、多线程等技术;2热衷于互联网WEB开发,热衷于钻研最新的前沿技术,精通XML,Javascript,CSS,AJAX等WEB前端技术;3熟练的技术文档编写能力,熟练使用Rose,Power Design,Visio等建模和设计软件,有一定的架构设计能力;4精通SQL server数据库技术,了解数据库性能调优者优先(四)php项目开发⒈使用PHP语言开发互联网应用程序;⒉网站产品和网站功能模块的开发与维护;⒊与页面设计师协调沟通,编写部分Javascript和HTML;⒋参与底层MVC框架的编写与维护。
软件工程师一般指从事软件开发职业的人。软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。
对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。具体能力要根据岗位和自己的兴趣爱好选定自己的职业规划方向,一方面要详细了解软件工程师的要求,可以关注企业的招聘信息;一方面自己要贮备通用的知识技能,广泛阅读相关的计算机材料对自己以后的发展大有帮助。
可以确定的是软件工程师的前途在未来的发展依然是不断升温的职业,比较需要有技术和良好前景的专业之一。工作内容:1、指导程序员的工作;2、参与软件工程系统的设计、开发、测试等过程;3 、协助工程管理人保证项目的质量;4 、负责工程中主要功能的代码实现;5 、解决工程中的关键问题和技术难题;6 、协调各个程序员的工作,并能与其它软件工程师协作工作;7、还要编写各种各样的软件说明书,如:需求说明书,概要说明书等考试科目。
工程师是中级职称,考试的题目包括了计算机体系结构、软件工程、数据库、数据结构、编译原理等计算机学科的基础课程。
以上就是关于关于软考中数据库系统工程师全部的内容,包括:关于软考中数据库系统工程师、数据库原理第五章数据库设计、struts2+spring2.5+hibernate3.0整合问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)