某公司计算机软件培训资料全
计算机程序设计员证书培训资料试题

计算机程序设计员证书培训资料试题1、在职场中,以下哪种行为符合职业道德准则? [单选题]A、为了完成任务而牺牲同事的利益B、尊重同事,保持良好的团队合作(正确答案)C、利用职务之便为亲朋好友谋取利益D、对待工作不负责任,经常迟到早退2、在项目管理中,以下哪个方法用于评估项目风险? [单选题]A、甘特图B、风险矩阵(正确答案)C、敏捷开发D、瀑布模型3、在团队合作中,以下哪种行为有助于提高团队效率? [单选题]A、坚持自己的观点,不愿意妥协B、积极倾听他人意见,寻求共识(正确答案)C、忽视团队成员的贡献D、把团队任务当作个人任务来完成4、在职业发展过程中,以下哪项不是有效的自我提升方法? [单选题]A、参加培训课程B、寻求导师指导C、忽略自己的弱点(正确答案)D、建立专业网络5、当你在公共场合遇到一个陌生人,以下哪种行为是尊重他人的表现? [单选题]A、大声谈论他们的外貌B、保持适当的距离并礼貌地交谈(正确答案)C、未经允许就查看他们的手机D、模仿他们的口音或举止6、以下哪个描述最能体现“尽职尽责”的精神? [单选题]A、总是按时完成任务(正确答案)B、只做自己喜欢的事C、常常推迟工作到最后一刻D、对待工作马虎应付7、下列哪个选项最能体现对合同的尊重? [单选题]A、未经合同各方同意,单方面更改合同内容B、根据合同约定,准时完成工作任务(正确答案)C、在合同签订后,对合同条款提出质疑D、在合同履行过程中,忽视合同的存在8、下列哪个选项最能体现“接受监督”的含义? [单选题]A、自我约束,自我管理,自我监督B、接受来自内部和外部的双重监督C、监督他人,管理他人,约束他人D、接受政府、公众、媒体等多元主体的监督(正确答案)9、在哪个行业,遵守行业规范对于保障消费者的权益尤为重要? [单选题]A、金融B、医疗C、食品(正确答案)D、信息技术10、下列哪个选项最能代表公司的形象? [单选题]A、公司的产品或服务(正确答案)B、公司的领导团队C、公司的营销策略D、公司的社会责任11、第一台通用电子计算机的名称是什么? [单选题]A、 ENIAC(正确答案)B、 UNIVACC、 IBM701D、 AppleII12、以下哪个部件是计算机的中央处理单元(CPU)? [单选题]A、硬盘(HardDisk)B、内存(RAM)C、主板(Motherboard)D、处理器(Processor)(正确答案)13、以下哪个指标表示计算机内存的速度? [单选题]A、处理器核心数(CPUCores)B、内存容量(RAM)C、内存时钟速度(RAMClockSpeed)(正确答案)D、硬盘读写速度(HDD/SSDSpeed)14、计算机维护中,以下哪个操作可以有效地清理系统垃圾文件? [单选题]A、卸载不需要的软件(正确答案)B、定期进行磁盘碎片整理C、更新操作系统和驱动程序D、运行杀毒软件15、在UNIX和Linux操作系统中,哪个命令用于查看文件内容 [单选题]A、 cat(正确答案)B、 dogC、 viewD、 read16、文件系统的主要用途是什么? [单选题]A、存储硬件信息B、存储操作系统C、管理存储设备上的数据(正确答案)D、运行应用程序17、文件的移动操作通常是通过哪个命令进行的? [单选题]A、 copyB、 move(正确答案)C、 deleteD、 rename18、哪个命令用于查看当前正在运行的进程列表? [单选题]A、 ps(正确答案)B、 topC、 htopD、 tasklist19、软件开发流程中,下列哪个阶段是软件开发的灵魂? [单选题]A、需求分析B、设计(正确答案)C、编码D、测试20、软件设计中,下列哪个选项代表了软件设计的最终成果? [单选题]A、需求规格说明书B、系统设计说明书(正确答案)C、用户手册D、软件测试报告21、软件测试中,下列哪个选项不属于集成测试的内容? [单选题]A、组装在逻辑关系上正确的子模块B、确保子模块之间的接口是正确的C、对整个模块进行全面测试(正确答案)D、对整个系统进行全面测试22、下列哪个是用于代码版本控制的软件? [单选题]A、 Git(正确答案)B、 SubversionC、 MercurialD、 TortoiseSVN23、在团队建设中,以下哪个选项是解决团队冲突的有效方法? [单选题]A、忽略问题,避免争吵B、各执己见,争论不休C、找领导介入,做出决定D、倾听各方意见,寻找共识(正确答案)24、以下哪个不是软件维护的类型? [单选题]A、纠错性维护B、适应性维护C、完善性维护D、发布性维护(正确答案)25、在软件维护中,以下哪个过程是经常使用的? [单选题]A、代码重构B、代码审查(正确答案)C、单元测试D、系统集成26、云计算开发中,以下哪个技术可以用来实现数据的安全性和隔离性? [单选题]A、虚拟化技术B、分布式数据库C、数据加密技术(正确答案)D、分布式文件系统27、在面向对象编程中,以下哪个方法用于创建一个新的类实例? [单选题]A、 new(正确答案)B、 createC、 instanceD、以上都不是28、关于敏捷开发中的燃尽图,以下描述错误的是? [单选题]A、燃尽图展示了每个迭代周期内剩余的工作量B、燃尽图可以帮助团队了解项目进度和预估项目完成时间C、燃尽图可以用来识别潜在的问题和障碍D、燃尽图只能用于追踪开发团队的工作进度,无法追踪测试团队的工作进度(正确答案)29、在软件工程中,以下哪种组织通常负责管理版权和知识产权? [单选题]A、软件行业协会B、政府部门C、律师事务所(正确答案)D、软件使用者协会30、以下哪个不是持续集成的关键原则? [单选题]A、自动化构建B、自动化测试C、频繁提交代码D、避免使用版本控制系统(正确答案)31、我国公民的基本道德规范是()。
2024年计算机硬件与软件行业培训资料

定期备份数据,以防数据被篡改或丢失是研究如何隐藏信息的科学,包括加密和解密两个过 程。加密是将明文信息转换为密文信息的过程,而解密则是 将密文信息还原为明文信息的过程。
应用
密码学在计算机硬件与软件行业有着广泛的应用,如 SSL/TLS协议、数字签名、身份认证等。使用密码学技术可 以保护数据的机密性、完整性和可用性。
云计算服务模式
包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)三 种模式,分别提供计算、存储和网络等基础设施、应用程序运行环境和软件应用 。
大数据概念及处理技术
大数据概念
指无法在一定时间范围内用常规软件 工具进行捕捉、管理和处理的数据集 合,具有数据量大、处理速度快、数 据类型多和价值密度低四大特征。
数据库参数调整
硬件和操作系统优化
根据数据库运行情况和业务需求,调整数 据库参数配置,如缓冲区大小、连接数等 ,提高数据库整体性能。
升级硬件设备、优化操作系统配置等,提高 数据库运行环境性能。
数据库安全防护措施
访问控制
通过用户身份验证和权限控制,限制非法用户对数据库的 访问和操作。
数据加密
对敏感数据进行加密存储和传输,保护数据在存储和传输 过程中的安全性。
2024年计算机硬件 与软件行业培训资 料
汇报人:XX 2024-01-27
目 录
• 计算机硬件基础 • 计算机软件基础 • 网络安全与防护策略 • 数据库管理与优化技巧 • 云计算与大数据技术应用 • 人工智能与机器学习入门
01
计算机硬件基础
硬件组成与架构
中央处理器(CPU)
01 负责执行程序指令,控制计算
前向传播与反向传播实现原理
卷积神经网络(CNN)构建 与应用举例
IT培训资料PPT课件

汇报人:可编辑
2023-12-23
目录
CONTENTS
• IT基础知识 • 办公软件操作 • 编程语言学习 • 数据处理与分析 • 网络安全与防护 • IT职业发展与规划
01 IT基础知识
CHAPTER
计算机硬件基础
总结词
了解计算机的基本构成和各部件的功能。
详细描述
计算机硬件是构成计算机系统的物理部件,包括中央处理器、内存、硬盘、显 卡、声卡等。每个部件都有其特定的功能,共同协作完成计算机的运算、存储 和输入输出等任务。
详细描述
Python具有简洁的语法和强大的标准库,广泛应 用于数据分析、机器学习、Web开发等领域。它 支持多种编程范式,包括面向对象、过程式和函 数式编程。
详细描述
Python的强大生态系统使其成为一种强大而灵活 的编程语言,为开发人员提供了广泛的选择和可 能性。
Java编程语言
总结词
详细描述
Java是一种静态类型的编译型语言,具有 跨平台的特性,被广泛应用于企业级应用 开发。
邮件格式设置
设置字体、字号、颜色等。
邮件附件添加与处理
添加附件,下载附件,删除附 件等。
邮件过滤与分类
设置邮件过滤规则,对邮件进 行分类整理等。
03 编程语言学习
CHAPTER
Python编程语言
总结词
Python是一种高级的、动态类型的编程语言,易 于学习和使用,适合初学者入门。
总结词
Python拥有丰富的第三方库和框架,如NumPy 、Pandas、Django等,可以满足各种开发需求 。
Java具有高度的可移植性和安全性,其面 向对象的特性使得它适合构建大型的、复 杂的软件系统。
计算机网络技术软件定义网络(SDN)培训资料

Overlay层:
•
在物理网络基础上进行网络虚拟化
•
对用户端来说与普通二层网络无异
VTEP Local LAN
Leaf
三层/二层/ISP/NAT
VXLAN隧道
用户端A
二层LAN
VXLAN隧道
用户端B
Host 1_192.168.1.1/24
Host 2_192.168.1.2/24
3、SDN案例
• 当前网络更侧重于基础物理建设,受到各类物理条件制约,难以适应云计算 上业务的快速部署
VxLAN 帧格式
Outer Mac Header
Outer IP Header
UDP Header
VXLAN Header
FCOSriginal L2 Frame
14 Byte (4 bytes optional)
20 Bytes
8 Bytes
FCS 8 Bytes
Dst. MAC Addr.
Src . MAC Addr. VLAN Type
0x8100 VLAN ID
Tag Ether Type
0x0800 IP Header Misc Data Protocol
0x11 Header Checksum Outer Src. IP
1、什么是软件定义网络(SDN)
SDN:一种实现网络虚拟化的架构
开放的可编程接口
Software Defined Network
统一集中控制 转发与控制分离
SDN转控分离架构
应用层
APP
北向接口(NBI) 控制层
RESTFUL接口、Netconf接口、CLI接口
SDN控制器(系统)
南向接口(SBI)
PROII培训讲义之软件入门(教学资料)

系统要求及准备工作
操作系统
Windows 7/8/10(64位), 建议使用Windows 10。
01
处理器
02 Intel或AMD多核处理器,主频
2.0 GHz以上。
内存
03 至少4GB RAM,推荐8GB或更
多。
硬盘空间
04 至少10GB可用硬盘空间,推荐
使用SSD。
显示器
分辨率为1280x768或更高。
批处理脚本的编写技巧
详细讲解如何编写高效的批处理脚本,包括脚本的结构设计、命令 组合、错误处理等。
批处理脚本的调试与优化
分享批处理脚本的调试方法和优化技巧,帮助用户提高脚本的执行 效率和稳定性。
06
PROII软件常见问题解决方案
Chapter
安装过程中常见问题及解决方法
安装程序无法启动或崩溃 确保计算机满足最低系统要求。 检查安装文件是否完整,重新下载安装程序。
定制化服务
PROII提供灵活的定制化服务,可以根据用户的特定需求进行软件功 能和界面的定制。
应用领域及案例分析
石油化工
PROII在石油化工领域应用广泛,可以模拟炼油、 裂化、重整等过程,帮助工程师优化生产流程和操 作条件。
环保工程
PROII在环保工程领域也有应用,可以模拟废气、 废水处理过程,帮助工程师设计高效的环保处理方 案。
在编辑过程中,如果用户进行了 错误的操作,可以点击菜单栏
“编辑”> “撤销”或使用快捷 键Ctrl+Z来撤销上一步操作。
重做操作
如果用户撤销了错误的操作后, 又需要恢复该操作,可以点击菜 单栏“编辑”> “重做”或使用 快捷键Ctrl+Y来重做上一步被撤
软件工程复习提纲(20160615)

软件工程复习提纲Chapter11.开发文档都有哪些?用图来表示它们之间的关系。
2.说明软件工程研究的内容.3.软件工程的7条基本原理有何现实意义。
4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别?5.怎样理解CMMI,如何用CMMI去管理软件企业?6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么?7.软件工程与信息系统工程有何异同?8.怎样理解元数据?Chapter21.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。
3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么?4.你对“生存周期模型裁剪指南"有什么看法?5.“图书馆信息系统”的开发选用什么开发模型合适?Chapter31.立项的具体表现形式是什么?2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员?3.什么叫风险分析,技能风险与技术风险有何区别?3.合同、任务书、立项建议书三者有何异同?有何关系?4.对软件项目和产品的“功能、性能、接口"三项指标如何理解?Chapter41.需求分析的目的是什么,需求分析的难点在哪里?2.需求分析的理论基础有哪几条?3.为什么说需求分析是面向流程的?4.解释术语:元数据、实体、中间数据.5.用户需求报告与需求规格书有何差异?6.需求描述有哪几种工具?你喜欢哪一种,为什么?1.简述软件策划的步骤.2.简述软件策划的方法。
3.简述对软件工作产品规模进行量化估计的方法。
4.软件工作产品和软件产品有何异同?5.名称解释:直接人工、直接费用、间接成本、制造费用、管理费用、不可预见费用。
6.怎样理解软件中的度量,它有何作用?Chapter61.概要设计说明书和详细设计说明书有何区别?2.怎么理解“软件概要设计是系统总体结构设计或系统架构设计”?3.模块实现设计包括哪些内容?4.为什么软件设计要遵守“抽象、分解与模块化、低耦合高内聚、封装、接口和实现分离”的设计原理?Chapter71.简述UML的优缺点。
计算机基础知识培训完整ppt课件

编辑版pppt
24
WindowsXP
三、活动窗口与非活动窗口: 1、活动窗口:可以在其中进行操作的窗口叫活动窗口,每个时间只有一个活
动窗口,活动窗口标题栏为兰色。 2、活动窗口的切换:单击非活动窗口、单击任务栏、 Alt+Tab 、 Alt+Esc 四、退出程序 单击关闭按钮、双击控制菜单图标、文件→退出。 五、计算器 1、启动步骤:开始→ 程序→ 附件→计算器 2、类型选择:查看→ 标准型/科学型 六、游戏 WindowsXP的游戏有扫雷、纸牌、空档接龙、红心大战 1、启动:开始→ 程序→ 附件→游戏→游戏名 2、学习游戏方法:帮助→帮助主题→ 目标/规则/显示
编辑版pppt
25
WindowsXP
§4 记事本及中文输入 一、进入记事本:
1、进入: 开始→ 程序→ 附件→记事本:进入记事本并新建一个”无标题“文
档。
2、记事本的文档: 用记事本所写的文章称为文档。记事本的文档是一个纯文本文件
(.TXT),即只有文字及标点符号,没有格式。 3、记事本的文档操作: 1)新建文档:文件→新建 2)打开文档:文件→打开→选择要打开文档的路径即文件保存在计
§3 计算机的应用 1、科学计算 2、数据处理 3、自动控制 4、计算机辅助设计/辅助制造/辅助教学 5、办公自动化 6、人工智能
编辑版pppt
5
计算机基础
§4 计算机组成 一、PC机硬件基本配置 1、主机:机箱、电源、主机板、CPU、内
存、接口卡、硬盘、软驱、光驱 2、显示器 3、键盘、鼠标 4、音箱、打印机
编辑版pppt
18
WindowsXP
二、WindowsXP基本界面 1、桌面 2、图标 我的电脑、网上邻居、回收站 3、开始按钮: 程序、查找、文档、运行、帮助 4、任务栏: 任务按钮:快速启动栏 中英文输入法标志 时间标志
网络信息安全培训讲义

二、安装软件记得选靠谱的下载站!
LOGO
现在很多下载站,本身甚至不提供任何在下载木马!还有一 些正常的下载站把广告位卖给木马,广告的样子 就是“下载按钮”,很可能眼花了一不小心就点 上去了。 解决的办法是到一些口碑比较好记得打补丁!
LOGO
重装完系统后的第一件事就是打补丁。不打补丁 就上网非常容易中毒。打补丁最好用360安全卫士 等专业工具。这些工具一次打完补丁会在硬盘上 留存一份,下次再打补丁就不必下载了。最好这 次把补丁备份好了,下次重装系统之后先把补丁 全部打完了再上网最安全。 用专业工具还可以免除一些不安全的补丁,如正 版验证、KB2264107补丁。
安全上网十项手册
LOGO
很多人都觉得安全上网不就是装个杀毒软件就可以么?其 实不然,再安全的杀毒软件也无法保证100%安全。根据统 计数据显示,即使安装过杀毒软件仍有20%的用户机器被 木马/病毒感染而无法查出,每日有上百万用户机器被新 木马/病毒感染,其中网络游戏盗号类木马占80%。 看了这么可怕的数据可想而知我们每天面临多大的安全隐 患,其实大部分安全隐患都是我们自己上网习惯不当造成 的,如想避免电脑被木马感染,防止QQ网游网银等账号被 盗、财产被骗,请参考《安全上网十项手册》。
六、不要受文件名欺骗主动执行病毒文件
LOGO
有些木马文件会伪装成图片文件或其他的文件.比如有一 木马文件为“重要文件.word.exe”.它的图标也是word的 图标,系统默认隐藏文件扩展名,那显示为重要文件.word, 那你就很容易上当,双击它的话,就是运行了一个木马程序. 来历不明的文件运行前一定先查毒,查看其真实扩展名。 可执行的附件(扩展名是:exe/com/vbs/chm/htm/bat/doc 等等)千万要慎重;安全的附件(扩展名是:txt/jpg/gif) 也要小心打开。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XX公司计算机软件培训讲义1、背景20世纪是一个革命化变革的世纪。
机械化革命、电气化革命、信息化革命无论是对社会还是对人类都起到了根本性的变化影响。
特别是自动化生产的理念,对机械化革命、电气化革命和信息化革命中的骨骼部分(硬件产品:例如计算机及其相关部件、通信产品、存储介质等)都起到了突飞猛进的推动作用。
但对于信息化革命中的神经或血液部分的软件,如何将自动化生产的理念引入到其开发研制中来,是20世纪60年代以来给人类留下的始终未解决好的一个重大课题。
20世纪80年代初,国际著名的软件学家布鲁思曾经发表过一片著名的论文『没有银弹』,在软件界引起了很大的震动。
论文的中心散布了一种软件悲观论的思想,布鲁思个人认为软件的自动化生产,由于受各种外界条件的制约,是几乎无法实现的。
这种悲观的事实虽彻底解决不了,但通过软件工程及其相关联的优秀的方法论,通过优秀的人才是可以缓解的。
在未来的信息化革命中,起着神经或血液角色的软件作用越来越重要,据国际权威调查机构的资料,工程费用上软硬的比例目前已达到了6:4的数值。
由此可见软件工程及其相关联的优秀的方法论、优秀的软件人才在信息化革命革命中的重要性。
2、软件工程软件工程是一类工程。
工程是将理论和知识应用于实践的科学。
就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。
其中应用了计算机科学、数学和管理科学。
计算机科学和数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量和成本的管理。
软件工程这一概念,主要是针对20世纪60年代“软件危机”而提出的。
它首次出现在1968年NATO(北大西洋公约组织)会议上。
自这一概念提出以来,围绕软件项目,开展了有关开发模型、方法以及支持工具的研究。
其主要成果有:提出了瀑布模型,开发了一些结构化程序设计语言(例如PASCAL语言,ADA语言)、结构化方法等。
并且围绕项目管理提出了费用估算、文档复审等方法和工具。
综观60年代末至80年代初,其主要特征是,前期着重研究系统实现技术,后期开始强调开发管理和软件质量。
70年代初,自“软件工厂”这一概念提出以来,主要围绕软件过程以及软件复用,开展了有关软件生产技术和软件生产管理的研究与实践。
其主要成果有:提出了应用广泛的面向对象语言以及相关的面向对象方法,大力开展了计算机辅助软件工程的研究与实践。
尤其是近几年来,针对软件复用及软件生产,软件构件技术以及软件质量控制技术、质量保证技术得到了广泛的应用。
目前各个软件企业都十分重视资质认证,并想通过这些工作进行企业管理和技术的提升。
软件工程所涉及的要素可概括如下:软件工程框架图根据这一框架,可以看出:软件工程涉及了软件工程的目标、软件工程原则和软件工程活动。
软件工程的主要目标是:生产具有正确性、可用性以及开销合宜的产品。
正确性意指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜性是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多问题有待解决,它们形成了对过程、过程模型及工程方法选取的约束。
软件工程的四项基本原则是:第一,选取适宜开发范型。
该原则与系统设计有关。
在系统设计中,软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。
因此,必须认识需求定义的易变性,采用适宜的开发范型予以控制,以保证软件产品满足用户的要求。
第二,采用合适的设计方法。
在软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。
合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
第三,提供高质量的工程支持。
“工欲善其事,必先利其器”。
在软件工程中,软件工具与环境对软件过程的支持颇为重要。
软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
第四,重视开发过程的管理。
软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。
因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。
软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”。
主要包括需求、设计、实现、确认以及支持等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件体系结构,包括子系统、模块以及相关层次的说明、每一模块接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
支持活动包括修改和完善。
伴随以上活动,还有管理过程、支持过程、培训过程等。
这一软件工程框架告诉我们,软件工程的目标是可用性、正确性和合算性;实施一个软件工程要选取适宜的开发范型,要采用合适的设计方法,要提供高质量的工程支撑,要实行开发过程的有效管理;软件工程活动主要包括需求、设计、实现、确认和支持等活动,每一活动可根据特定的软件工程,采用合适的开发范型、设计方法、支持过程以及过程管理。
根据软件工程这一框架,软件工程学科的研究内容主要包括:软件开发范型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE) 及软件经济学等。
自从软件工程概念提出以来,经过30多年的研究与实践,虽然“软件危机”没得到彻底解决,但在软件开发方法和技术方面已经有了很大的进步。
尤其应该指出的是,自80年代中期,美国工业界和政府部门开始认识到,在软件开发中,最关键的问题是软件开发组织不能很好地定义和管理其软件过程,从而使一些好的开发方法和技术都起不到所期望的作用。
也就是说,在没有很好定义和管理软件过程的软件开发中,开发组织不可能在好的软件方法和工具中获益。
根据调查,中国的现状几乎和美国10多年前的情况一样,软件开发过程没有明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。
这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高奠定有效的基础,只有通过建立全组织的过程改善,采用严格的软件工程方法和管理,并且坚持不懈地付诸实践,才能取得全组织的软件过程能力的不断提高。
这一事实告诉我们,只有坚持软件工程的四条基本原则,既重视软件技术的应用,又重视软件工程的支持和管理,并在实践中贯彻实施,才能高效地开发出高质量的软件。
3、方法论如何运用软件工程,从20世纪70年代初开始,围绕着这个问题,诞生了许多著名的方法论。
下面对几个典型的方法论进行简单的介绍。
3.1、瀑布式方法论瀑布模型将软件生命周期的各项活动规定为依固定顺序联接的若干阶段工作,形如瀑布流水,最终得到软件产品。
优点:a.强调开发的阶段性;b.强调早期计划及需求调查;c.强调产品测试。
缺点:a.依赖于早期进行的唯一的一次需求调查,不能适应需求的变化;b.由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;c.风险往往迟至后期的开发阶段才显露,因而失去及早纠正的机会。
其中,BD是Basic Design的缩写,这一部分完成“本系统要做什么”的文档记录工作,即系统的分析阶段工作;FD是Function Design的缩写,这一部分完成本系统功能块的划分,是“怎么去做”的第一阶段工作,即系统的设计初期阶段工作;DD是Detail Design的缩写,这一部分完成本系统各个功能模块的详细设计工作,是编程阶段的准备设计阶段;MK是Making的缩写,即具体编程实施阶段;UT是Unit Test的缩写,即单元测试阶段;CT是Combine Test的缩写,即结合测试阶段;ST是System Test的缩写,即系统测试阶段;PT是Product Test 的缩写,即商品测试阶段。
从上图中可以看出,BD和PT、FD和ST、DD和CT、MK和UT都是成对出现的。
每一对的前一部分完成之后,应该马上着手后一部分的文档制作工作。
对较大的系统开发,实际测试和文档的担当者应该不同。
3.2、生鱼片式方法论前一阶段完成70%到80%时,即可并行进入到下一个阶段。
3.3、螺旋式方法论瀑布模型与演化模型相结合,并加入两者所忽略的风险分析所建立的一种软件开发模型。
该模型于1998年由美国TRW公司(B.W.Boehm)提出。
软件项目风险的大小作为指引软件过程的一个重要因素,引入这一概念有可能使得软件开发被看作一种元模型,因为它能包容任何一个开发过程模型。
螺旋模型基本的做法是在“瀑布模型”的每一个开发阶段之前,引入非常严格的风险识别、风险分析和风险控制。
直到采取了消除风险的措施之后,才开始计划下一阶段的开发工作。
否则,项目就很可能被取消。
另外,如果有充足的把握判断遗留的风险已降低到一定的程度,项目管理人员可作出决定让余下的开发工作采用另外的生命周期模型,如“演化模型”,“瀑布模型”,或自定的混合模型。
优点:a.强调严格的全过程风险管理。
b.强调各开发阶段的质量。
c.提供机会检讨项目是否有价值继续下去。
缺点:a.引入非常严格的风险识别,风险分析,和风险控制,这对风险管理的技能水平提出了很高的要求。
这需要人员,资金,和时间的投入。
3.4、阶段性发布式方法论该模型主要针对事先不能完整定义需求的软件开发。
用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。
软件开发人员根据用户的需求,首先开发核心系统。
当该核心系统投入运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。
软件开发人员根据用户的反馈,实施开发的迭代过程。
第一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。
下面为生鱼片型阶段性发布式方法论图示。
在开发模式上采取分批循环开发的办法,每循环开发一部分的功能,它们成为这个产品的原型的新增功能。
于是,设计就不断地演化出新的系统。
实际上,这个模型可看作是重复执行的多个“生鱼片方式”。
3.5、Booch方法论Booch方法的过程包括以下步骤:・在给定的抽象层次上识别类和对象・识别这些对象和类的语义・识别这些类和对象之间的关系・实现类和对象这四种活动不仅仅是一个简单的步骤序列,而是对系统的逻辑和物理视图不断细化的迭代和渐增的开发过程。
类和对象的识别包括找出问题空间中关键的抽象和产生动态行为的重要机制。
开发人员可以通过研究问题域的术语发现关键的抽象。
语义的识别主要是建立前一阶段识别出的类和对象的含义。
开发人员确定类的行为(即方法)和类及对象之间的互相作用(即行为的规范描述)。