软件开发检查表
软件开发计划检查表 模板
2、是否预算了项目的工作量并划分给小组成员?
九、配置管理
1、是否制定了配置管理计划表?
检查人/日期:批准人/日期:
5、是否考虑软件复用?
五、组织结构
1、是否确定项目小组成员,并将其划分成多个Team?
2、是否明确各个小组成员的职责?
六、风险管理
1、是否预测了与项目有关的主要风险?
2、是否采取跟踪、监测措施以减小风险或避免风险的产生?
七、相关性
1、是否考虑了项目的外部相关活动?
2、是否考虑了项目的内部相关活动?
八、资源预算
三、产品清单
1、是否明确提交给客户的产品清单(产品名称、提交时间、客户接受方式、责任人、验收标准)?
2、是否明确提交给项目监按钮部门的产品清单(产品名称、提交时间、提交方式、责任人)?
四、技术管理
1、是否明确开发环境(软件、硬件环境)?
2、是否明确开发工具?
3、是否明确开发方法?
4、是否采用新技术?
软件
项目名称:项目编号:
检查项目
检查内容
检查结果
得分
一、质量目标
1、是否符合质量体系的要求?
2、如果不符合技量体系的要求,是否按要求编制《质量计划》?
二、阶段划分
1、是否Байду номын сангаас确划分各阶段?
2、各阶段的输入、输出标准是否明确?
3、是否明确各阶段提交物?
4、是否明确各阶段质量目标?
5、是否明确提出各阶段检查点?
软件开发部内审检查表
软件开发部内审检查表内部审核检查表JL-HWKS-24 受审核部门软件开发部审核日期2017年9月15日审核员茆秋琪ISO9001管理体系要求条款检查内容和方法检查记录6.2质量目标与应对措施组织是否设定了质量目标?目标的内容是否符合方针的要求?目标的内容是否包括产品要求及满足产品要求的所需的内容?目标的内容是否体现了持续改进的精神?组织均已设定了质量目标。
目标的内容均已符合方针的要求。
目标的内容均已包括产品要求及满足产品要求的所需的内容。
目标的内容均已体现了持续改进的精神。
9.3管理评审询问管理评审会议是如何筹备的;查评审计划和评审记录:a评审计划和.会议通知,b.评审输入的发言文件,c.签到表,d.会议记录,e. 评审决定(输出),f. 会议决定落实的文件。
已查管理评审的相关记录,基本筹备符合ISO标准要求。
9.1.3 分析和评价如何证实质量管理体系的适宜性和有效性,并评价在何处可以持续改进质量管理体系的有效性,公司建立和保持《分析与改进管理程序》,以确定、收集和分析适当的数据和信息?证实质量管理体系的适宜性和有效性,并评价在何处可以持续改进质量管理体系的有效性,公司建立和保持《分析与改进管理程序》,以确定、收集和分析适当的数据和信息。
8.5.2产品标识对产品是否进行了标识,产品的检验状态标识是否符合规定的要求?在记录中对标示和可追溯性进行了规定。
7.1.3基础设施是否为公司的设备设施提供管理?配备了满足公司软件开发,开发的产品能够满足客户的需求,符合相关产品标准7.1.4过程运行环境是否为公司办的环境提供检查?为公司软件开发的工作环境提供检查,见相关制度7.1.5监视和测量的资源是否编制了《监视和测量控制程序》?对于计量器具的管理是否建立台账并且年度检测?编制了《监视和测量控制程序》对于计量器具的管理建立台账并且年度检测8.7不合格控制的输出公司采用那些对不合格控制的方法a)本公司采用内部审核、过程审核、工作质量的检查活动,对质量管理体系的各个过程及其派出进行有效性评价;通过对原材料检测、成品检测过程过程实现服务提供过程进行分析8.5开发和服务的控制本公司是否对开发和服务提供过程进行策划,并使其在受控条件下进行。
VDA6.3 P1检查表
*
P1
运输&零部 件处置
过程要素
最低要求
落实用于开展资源确定的流程。
在这里,资源确定具体涉及的是试验装置、实验
室设备、机器、设备的到位情况以及机器和设备
的实际负荷,也必须将辅助过程考虑在内。
在资源确定中必要的基础设施要予以考虑。
×
物质资源是否到位 并且适用,以确保 量产启动?
在产品和过程开发中,针对可能产生的瓶颈和额 外的需求,定期开展需求分析。 具备物质资源来实现原型件和样件的开发,对试 生产、量产启动、批量生产所需的物质资源进行
问题描述
评审结果 G G
G
P2-P7 3.2
*
P1
运输&零部 件处置
过程要素
最低要求
*×
针对制造可行性评价的程序,必须加以跨部门规
范。
对所有已经确定的产品和过程方面的具体要求
在产品和过程要求 已明确的基础上, 是否对制造可行性 进行跨部门分析?
(技术活、功能、质量、物流、软件…)必须开 展制造可行性分析。 材料和人力资源必须在制造可行性研究中加以考 虑。 制造可行性研究必须在报价前完成。
是否建立事态升级 程序,该程序是否 得到有效的执行?
理)可供使用,识别、评估项目风险并通过对涉 及的产品采取措施来降低风险。 确定事态升级的原则,规定职责和权限,对异常 情况采取措施。
如果发现在工艺技术、供方以及供方所在国存在
特殊的风险,那么,同样要在事态升级管理中将
这类情况考虑在内。
-根据具体的风险,约定事态升级的时间 范围 -在事态升级陈旭中定义了联系人/决策 者 -定义了事态升级原则以及联络沟通路径 -包括措施在内的里程碑评价记录
是否在项目中实施 之一。
软件项目检查表
软件项目检查表
项目概述
该软件项目检查表旨在帮助团队对软件项目进行全面的检查和
评估,以确保项目的顺利进行和高质量的交付。
本检查表包括多个
方面,包括项目计划、需求分析、设计、开发、测试和部署等环节。
项目计划
- 项目是否有明确的目标和可行的计划?
- 是否有详细的项目计划及时间表?
- 是否有项目经理负责监督和管理项目进度?
需求分析
- 是否完整、准确地收集和记录了项目的需求?
- 是否对需求进行了合理的分类和优先级排序?
- 是否与相关利益相关者沟通确认了需求?
设计
- 是否进行了系统的架构设计和模块设计?
- 是否充分考虑了扩展性和可维护性等因素?
- 是否进行了界面设计和交互设计?
开发
- 是否按照设计文档进行开发工作?
- 是否按照编码规范完成代码编写?
- 是否进行了代码评审和单元测试?
测试
- 是否制定了详细的测试计划和测试用例?
- 是否进行了功能测试、性能测试和安全测试等多个方面的测试?
- 是否及时修复了测试中发现的缺陷和问题?
部署
- 是否制定了可靠的部署计划?
- 是否进行了部署前的完整测试和验证?
- 是否提供了必要的文档和培训?
运维支持
- 是否确保了系统的可靠性和稳定性?
- 是否建立了监控和报警机制?
- 是否保障了系统的安全性和数据的完整性?
以上是软件项目检查表的主要内容,通过对每个方面的检查和评估,能够有效提升软件项目的质量和成功交付的概率。
请针对具体项目的不同需求和情况,适当调整和完善该检查表。
信息系统开发QA检查表
SAM
验部分,在验收
合格后,将采购得到的产品、组件或服务整合
到项目中
SAM
检查结 果
问题描述
版本号:2 修订号:0
备注
第1页 共2页
软件项目组对该软件供应商进行总体评价并提
交商务人员,商务人员维护公司软件供应商列
表
PSA12 结束外包或采购
SAM
版本号:2 修订号:0
SAM
按模版要求撰写了软件外包报告,并且内容填
写完整
SAM
软件外包供应商的选择,无论是多个供应商还
是只有一个供应商,都进行了决策分析
SAM
确定了供应商之后,按模版要求撰写了软件外
包协议
SAM
软件外包协议填写完整,包括:项目主要内容
与技术经济效果,项目实施计划、进度、期限
、地点,甲方承担的工作内容与责任,乙方承
第2页 共2页
供应商协议管理审核
项目编号 项目名称 项目经理 QA人员
编号
审核对象
PSA1
计划采购
PSA2
软件外包报告
PSA3
选择供应商
PSA4
软件外包协议
PSA5 PSA6 PSA7
软件外包协议 执行协议 执行协议
PSA8
PSA9 PSA10
执行协议
验收 验收
PSA11 整合进项目
检验项
检查类 型
来源
项目组制定了采购计划
担的工作内容与责任,验收标准与方法,违约
金或损失赔偿额的计算方法等内容。
SAM
供应商按照要求定期提交外包项目状态报告
SAM
项目组按阶段组织工作产品验收。
SAM
商务人员按照进度付款,付款之前必须由项目
软件设计与开发评审检查表
是否执行输入、输出、接口和结果的错误检查?
是否对所有错误情况都发出故意义的信息?
对特殊情况返回的代码是否和已规定的全局定义的返回代码相匹配?
是否考虑到意外事件?
易测性
是否可以对每个单元进行测试、演示、分析或检查来说明它们是满足需求的?
该套系统是否能用增量型的方法来集成和测试?
可追溯性
是否各部分的设计都能追溯到需求说明书的需求?
是否所有的设计决策都能追溯到本来拟定的权衡因素?
所继承设计的已知风险是否已拟定和分析?
具体设计检查表
Y: 是 TBD: 不拟定 N: 不是 NA:不合用
检查项
Y/TBD/N/NA
清楚性
所有单元或过程的目的是否都已文档化?
一致性
数据元素的命名和使用在整个单元和单元接口之间是否一致?
所有接口的设计是否互相一致并且和更高级别文档一致?
对的性
是否解决所有条件 (大于、等于、小于零、switch/case)? 是否存在解决“case not found”的条件?
是否对的地规定了分支(逻辑没有颠倒)?
数据使用
是否所有声明的数据都被实际使用到?
Y: 是 TBD: 不拟定 N: 不是 NA:不合用
备注
检查项
Y/TBD/N/NA
清楚性
系统的目的是否已定义?
是否对关键术语和缩略语进行定义和描述?
所使用的术语是否和用户/客户使用的一致?
需求的描述是否清楚, 不模糊?
是否有对整套系统进行功能概述?
是否已具体说明了软件环境 (共存的软件) 和硬件环境 (特定的配置)?
软件过程检查表
1.过程检查要素表2.过程打分2.1.过程打分原则:1)过程打分占整个项目得分的30%,以30分为满分,最低分不低于9分。
2)不同的项目可以从标准软件过程中剪裁得到项目定义过程,因此各项目包含的软件过程是不同的,为了使软件过程数目不同的项目,仍以合理的方式进行过程打分,需对剪裁后的软件过程数目进行换算,从而不因剪裁而失分。
3)SQA人员对经剪裁的软件过程的检查内容和实施情况进行剪裁。
4)项目级的软件过程剪裁必须得到高级经理,质量管理部经理和项目SQA人员的检查和认可;检查内容和实施情况剪裁必须得到项目经理和受审计人员的认可。
5)软件过程检查打分的依据是“过程检查表”。
2.2.打分步骤:1)依据标准过程定义项目过程,得出项目过程数N。
2)每个项目过程的得分M=30 / N。
3)采用“过程检查表”,对各个过程进行检查和打分。
4)定义“过程检查表”中的实际检查内容项个数为X,每项标准得分10分,因此每个“过程检查表”的最高得分A = 10X。
5)实际检查时,对“实施情况”一栏中每个条款进行打勾“✓”,因此实际每项得分Bj=(打勾条款数/ 该项实际检查总条款数)×10。
6)每个过程的实际得分Bi=∑1x Bj。
7)每个过程的换算得分B=Bi /A ×M。
8)若某个过程发生多次z,则该过程得分B=(∑1zB)/z 。
9)项目的过程得分C=∑1NB 。
10)为确保项目组的基本得分不低于9分,因此各过程打分不得低于9/N分,低于此分,以9/N分计算。
2.3.例子:某项目计划进行5个阶段的审计:计划过程,需求过程,设计过程,测试过程,计划跟踪和监督过程,其中计划跟踪和监督过程执行两次,其他各一次则每阶段得分M=30/5=6;第一次计划跟踪和监督过程检查项共15项,实际由于变更未发生检查了13项, 标准分为A=13×10=130,实际检查得分Bi=123则该阶段得分B1=123/130 * 6=5.67第二次计划跟踪和监督过程,实际检查了15项,标准分为15×10=150;实际检查得分140。
软件评审检查表-计分
交互性要求
简易位,一致性;反馈性;容错性图形化.
人机交互简单、形象输入、输出方面的-致性对用户的操作及时作出皮馈;对可能出现的错误迸行检测、报告和处理.
15
软件性能
响应性要求
页面转焕的响应性 ;
载入时间的短时间要求
短时启动时间要求;
负裁指标明确化.
页面转换快捷;媒体装入时间简短;有确定的负载性能指标.
部署后是否可以正常使用.
5
运行环境
环境适用性.
运行环镜是否与软件愿景说明书一致
5
界面
界面布局
界面布局的合理性.
布局合理,层次清晰
2
界面美观设计
界面的美观性.
界面美观.
3
界画元素
界面元素的-致性.
窗口、菜单、图标、按钮等元素的-性.
5
功能要求
技术运用
技术运用的合理性;内容实现的正确性.
各种技术表现与具体内容结合 ,各种媒体使用协调;多媒体信息的呈现可控,链接准确、无死链.
100分
评审结论:
5ห้องสมุดไป่ตู้
稳定性要求
帮助机制的完备性;
错误处理机制完备性;
确认退出出机制的完备性.
每个操作都有联机帮助或提示;
联机帮助易读、易懂
处理用户可能出现的任何错误操作;
避免出现数据未保留而退出.
5
安全性要求
访问安全性,使用安全
性
用户身份管理和访问控制
数据安全性
10
软件文档
文档资料
完整性
规范性
软件过程文件目录
20
分数
软件产品评审表
评审时间:
评审人员:评审组长(),评审成员()
软件测试检查表
1. 检查每轮测试开始时测试环境是否准备好(包括软件硬件、测试基本数据等);3. 每轮测试根据上一轮的情况和总体测试计划做分工调整;4. 检查case库的填报情况,抽查执行过的case;5. 检查BUG提交情况,抽查提交的BUG是否规范;6. 每天晚上统计BUG情况,填写每天的BUG报告;7. 根据每天的测试情况,决定是否开发组要发布新的BUILD;8. 每轮测试结束后填写测试总结。
2 下面是针对测试执行人员的:2.1 输入、编辑功能的验证检查点:1. 必输项是否有红星标记,如果不输入提示是否跟相应的Label对应,提示的顺序是否跟Form输入域的排列次序一致;3. Form下拉菜单的值是否正确,下拉菜单的值通过维护后是否正确显示并可用;下拉菜单比如是机构编码,要到机构编码的维护界面查询一下是否Form列出的与其一致;4. 涉及到下拉菜单的编辑修改Form,要检查在编辑和修改From中,下拉菜单是否能正确显示当前值;5. Form提交后,要逐项检查输入的内容跟通过查询的结果一致;6. 有多层下拉菜单选择的情况要校验两层菜单的选择是否正确,比如:部门财务软件开发部人员张三7. 备注字段的超常检查;8. 提交保存后能否转到合适的页面;9. 编辑Form显示的数据是否跟该记录的实际数据一致;10. 编辑权限的检查,比如:user1的数据user2不能编辑等;11. 可编辑数据项的检查,比如:数据在正式提交之前所有的属性都可以编辑,在提交之后,编号、状态等不能编辑,要根据业务来检查是否符合需求;12. 对于保存有事务Trasaction提交,比如一次提交对多表插入操作,要检查事务Trasaction的处理,保证数据的完整和一致;13. 其他的合法性校验。
2.2 查询功能检查点:1. 查询输入Form是否正常工作,不输入数据是否查询到全部记录;2. 当查询的数据非常多的时候,性能有无问题;3. 查询的下拉菜单列出的数据是否正确;4. 查询结果是否正确;对于复杂的查询要通过SQL来检查结果;5. 如输入%*?等统配符是否会导致查询错误;6. 查询结果列表分页是否正确,在点击下一页上一页时,查询条件是否能带过去,不能点击翻页时又重新查询;7. 对于数据量比较大的表查询时,不容许无条件查询,避免性能问题的出现;8. 对于查询输入项的值是固定的要用下拉菜单,比如状态、类型等;9. 分页的统计数字是否正确,共X页,第N页,共X条记录等;10. 对于查询有统计的栏目,比如:总计、合计等要计算数据是否正确;11. 查询结果有超链接的情况要检查超链接是否正确;12. 查询权限的检查,比如:user1不能查询到user2的数据等;2.3 删除功能检查点:1. 必须有“确认删除”的提示;2. 根据需求检查是软删除还是硬删除,来检查数据库中是否还存在该条记录;3. 是否有相关的数据删除,如果有要确认该相关的数据也已经删除,并且在同一事务中完成;4. 是否有删除约束,如果有删除约束,要检查该记录是否被约束,如果被约束该记录不能被删除;5. 如果是软删除,用查询、统计界面检查该条记录能否被查询出来,数据是否被统计进去;6. 检查因为业务约束不能删除的数据能否被保护不能手工删除,比如:流程中已经审批的文件不能被删除;7. 跟删除相关的权限问题,比如:需求要求只有管理员和该记录的创建人能够删除该记录,那就以不同的用户和角色登录进去,执行删除操作,检查是否与需求匹配;2.4 上传附件检查点:1. 检查是否能正确上传附件文件;2. 检查上传的文件是否能正确下载并打开;3. 至少检查下列大小的文件能正确上传,100k,1M,2M,4M,10M,20M等;4. 如果没有指定类型的限制,至少上传以下几种类型的文件能否正确上传并正确打开,类型有:.doc, .xls, .txt, .ppt, .htm, .gif, .jpg, .bmp, .tif, .avi等;5. 如果有文件类型的限制还要检查能上传的文件的类型;6. 上传同名的文件,在打开的时候是否出错;7. 有中文文件名的文件能否正确上传;2.5 影响操作性能的检查点:(不能代替系统的性能测试和压力测试,主要看系统在正常操作情况下的响应和处理能力)1. 对数据记录条数比较多的表的查询操作,避免全表查询,比如对银行用户账号的查询就不能缺省全部查出,必须让用户输入查询条件;2. 菜单树,测试大量数据时菜单树的响应情况;3. 有日志的查询或者统计,要注意查询的效率;4. 大报表的处理或者批处理的操作,要关注效率,比如:银行对帐、财务年终结算、财务年报表、系统初始化等;5. 大报表的排序sort、组函数的使用等;6. 大数据量的处理,如导入、导出、系统备份、文件传输等;。
产品审计检查表_软件开发计划检查表
24 划? 25 是否定义了项目的软件过程?
是/否/不适 用 是 是 是 是 是 是
是 是 是 是 是 是
是 是
是 是 是 是 是
是 是 是 是
是 是
结果统计:是 25 个;否 0 个
注释
软件开发计划检查表
#
检查项
1 文档结构是否清晰、组织是否合理?
2 文档结构是否便于维护和修改?
3 是否符合模板要求?
4 是否识别了项目范围?
5 是否识别了项目目标?
6 是否有明确的人员职责分工? 是否正确的选择了软件生命周期,并对各阶段的入口
7 、出口进行了正确的描述?
8 是否有划分正确的、符合模板要求的WBS?
15 过程及结果数据?
16 是否有合理的关键计算机资源估计?
17 是否有合理的外部成本估计?
18 是否有合理的进度表?
19 是否对项目软件风险进行了正确的识别? 是否对识别出的软件风险分析了其发生的可能性和影
20 响值?
21 是否对风险进行了优先级排序?
22 是否确定了风险解决措施?
23 是否制定了工具、设备计划? 是否确切地识别了培训需求,并制定了合理的培训计
9 是否合理地确定了待开发的软件工作产品
12 是否有合理的软件规模估计? 若采用功能点来度量软件规模,是否有各测量参数及
其加权因子的估计结果,是否有各复杂度调整值的估 13 计结果?
14 是否有合理的工作量/成本估计? 若采用delphi方法进行工作量估计,是否有delphi估计
单元测试检查表
单元测试检查表单元测试是软件开发中的重要环节,它可以确保代码的正确性和稳定性。
为了帮助开发人员进行有效的单元测试,本文将介绍一些实用的单元测试检查表。
首先,让我们了解一下什么是单元测试。
单元测试是针对程序中的每个独立单元或模块进行测试的过程。
这些测试通常由开发人员编写,用于验证他们的代码是否按预期工作。
单元测试的主要目标是发现代码中的错误和缺陷,从而提高软件的质量和可靠性。
在编写单元测试时,以下是一些实用的检查点:1、明确测试的目的和范围:在开始编写测试用例之前,确保清楚地了解测试的目的和范围。
这有助于确定需要测试哪些功能以及如何设计测试用例。
2、编写可重复的测试用例:确保测试用例可以重复执行,以验证相同的输入是否产生相同的结果。
这有助于确保代码的稳定性和一致性。
3、确保测试覆盖率:尽量确保测试覆盖了所有可能的代码路径和边界条件。
这有助于提高测试的可靠性和全面性。
4、验证输出:除了确保代码按预期执行外,还要验证输出是否符合预期结果。
这有助于确保代码的正确性和符合预期的业务需求。
5、处理异常情况:编写测试用例时,确保考虑了各种异常情况和边界条件。
这有助于发现潜在的错误和缺陷,提高软件的鲁棒性和稳定性。
6、监控性能:在编写测试用例时,注意监控代码的性能。
这有助于发现潜在的性能问题,确保代码在高负载情况下仍能保持稳定。
7、代码重构:在编写测试用例时,不要害怕重构代码。
这有助于提高代码质量和可维护性,同时使测试更加可靠和稳定。
8、持续集成和自动化测试:将单元测试纳入持续集成流程,并实现自动化测试。
这有助于确保代码的及时验证和持续改进,提高开发效率和软件质量。
总之,单元测试是软件开发过程中不可或缺的一环。
通过遵循以上实用的检查点,开发人员可以编写可靠、全面的单元测试,从而提高软件的质量和稳定性。
《成长的节拍》单元测试成长的节拍成长是一个人生旅程的重要阶段,它充满了挑战、机遇和收获。
在这个过程中,我们不断学习、改变和适应,以便更好地适应生活的各种要求。
软件设计评审检查表
Y: 是 TBD:不确定 N: 不是 NA:不适用
检查项
Y/TBD/N/NA
完整性
该测试计划是否详细说明测试的大体方法和策略?
该测试计划是否详细说明所有测试活动的顺序?
该测试计划是否描述了将使用的软硬件系统环境?
该测试计划是否描述了测试活动中断和恢复的条件/情形?
该测试计划是否为所有测试定义了成功标准?
是否详细说明了参数的度量单位、取值范围、正确度和精度?
共享数据区域及其存取规定的映射是否一致?
可维护性
单元是否具有高内聚度和低耦合度(例如:对该单元的更改不会在该单元有任何无法预料的影响并对其它单元的影响很小)?
性能
是否该单元的所有约束例(如过程时间和规模)都被详细说明?
可靠性
初始化是否使用到缺省值,缺省值是否正确?
包括了数据流、控制流和接口的单元设计是否已清晰的说明?
完整性
是否已定义和初始化所有的变量、指针和常量?
是否已描述单元的全部功能?
是否已详细说明用来实现该单元的关键算法(例如:用自然语言或PDL)?
是否已列出该单元的调用?
依从性
该文档是否遵循了该项目已文档化的标准?
是否采用了所要求的方法和工具来进行单元设计?
该测试计划是否充分地描述了被测试的功能?
该测试计划是否明确地描述了不被测试的功能?
该测试计划是否充分地描述了测试基线?
对于阶段交付,该测试计划是否有在每一阶段建立测试基线给下一阶段使用?
该测试计划是否定义了足够和正确的衰退测试?
依从性
该测试计划是否依从了与开发有关的所有说明书、标准和文档?
一致性
是否已定义了测试顺序来匹配更高级别的文档所指定的集成顺序?
设计和开发策划内审检查表模板
编号
检查内容
1
设计和开发的目的
确保后续的产品和服务的提供
2
设计和开发过程要求
应建立、实施和保持适当的设计和开发过程
3
产品和制造过程的设计和开发,应着重于错误预防,而不是探测
4
应对设计和开发过程形成文件
5
应对产品的设计和开发进行控制。说明:控制的目的是确保设计和开发依据策划的方式进行,并在必要的时候进行策划更新
18
使用多方论证方法的方面
19
设计和开发的策划输出应及时更新。说明:这些更新是依据设计和开发的进展、客户的需求和期望的变化、产品要求及标准的更变、资源需求的要求等而进行的
20
设计和开发策划应确定的内容
设计和开发阶段。说明:可以根据产品的特点、过程复杂程度、组织的水平、历史经验、和顾客的要求等因素来划分设计和开发阶段
13
顾客和使用者参与设计和开发过程的需求
14
对后续产品和服务提供的要求
15
顾客和其他相关方期望的设计和开发过程的控制水平
16
证实已经满足设计和开发要求所需的成文信息
17
设计和开发策划要求
应确保设计和开发策划涵盖组织内部所有受影响的利益相关者及其(适当的)供应链。说明:采购、供应商和维护功能也许会作为利益相关方被包括
21
设计和开发的评审活动。说明:明确活动的方式、时机、参与人员等
22设Leabharlann 和开发的验证活动23设计和开发的确认活动。说明:设计和开发的评审、验证和确认具有各自明确的目的,根据产品和组织的具体情况,可以单独或一起进行并记录
24
设计和开发的职责
25
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码大全——检查表1.欢迎进入软件创建世界1.1.l.3 小结●创建活动是总体设计和系统测试之间承上启下的工作。
●创建活动主要包括:详细设计、编码、调试和单元测试。
●关于创建活动的其它称谓有:实现、编程等。
●创建活动质量对软件质量有潜在影响。
2.利用隐喻对编程进行更深刻的理解2.1.2.4 小结●隐喻仅仅是启发,而不是公式,因此,它们更倾向于比较随便,无拘无束。
●隐喻通过把软件开发与你所熟知的事情联系在一起,从而使你对其有更深刻的理解。
●一些隐喻要好于其它隐喻。
●把软件创建与建造建筑物类比,表明开发软件前要精心准备,并表明了大规模项目与小规模项目之间的差别。
●认为软件开发实践是智能工具箱中的工具进一步表明,每个程序员都有许多自己的工具,没有任何一种工具是万能的。
为每件工作选择合适的工具,是成为一个优秀程序员的首要素质之一。
3.软件创建的先决条件3.1.需求3.1.1.需求内容●系统的所有输入都定义了吗?包括它们的来源、精度、取值范围和频率?●系统所有的输出都定义了吗?包括它们的目标、精度、取值范围、频率和格式?●所有的报告格式都定义了吗?●所有的硬件与软件接口都定义了吗?●所有的通信交界面都定义了吗?包括握手、错误检查以及通信约定?●是否从用户的观点出发,定义了所有必要操作的反应时间?●是否定义了时间问题,如处理时间、数据传输率以及系统吞吐能力?●是否对用户所要求完成的任务部作出了规定?●每项任务所需用到和产生的数据都规定了吗?●规定保密级别了吗?●规定可靠性了吗?包括软件出错的后果、在出错时要保护的至关重要的信息、以及错误测试和恢复策略。
●规定所需最大内存了吗?●所需最大存储容量规定了吗?●对系统的维护性是否作出了规定?包括系统对运行环境、精度、性能以其与其它软件的接口等方面变化的适应能力规定了吗?●是否规定了相互冲突的设计之间的折衷原则,例如,在坚固性与准确性之间如何进行折衷?●是否制定了系统成败的标准?3.1.2.关于需求的完善性●在开发开始前暂时得不到的信息是什么?是否规定了不够完善的区域?●需求定义是否已经完善到了可以成为软件标准的地步?●需求中是否有哪一部分令你感到不安?有没有根本不可能实现,而仅仅为了取悦老板和用户才加进来的内容?3.1.3.关于需求的质量●需求是否是用户的语言制定的?用户也这样认为吗?●需求中是否每一条之间都尽量避免冲突?●需求中是否注意了避免规定设计工作?●需求在详细程度方面是否保持了一致性;有没有应该更详细些的要求?有没有应该更简略些的?●需求是否明确得可以分为一些独立的可执行部分,而每一部分又都很明了?●是否每一条都与问题和答案相关?是否每一条都可以追溯到产生它的环境中?●是否每一条需求都可以作为测试依据?是否可以针对每一条进行独立测试以确定是否满足需求?●是否对可能的改动作出了规定?包括每一改动的可能性?3.2.结构设计●一个好的结构设计应该阐明所有问题。
这个表并不是用于指导结构设计的,而只是想提供一种方法,通过它,你可以估计处于软件食物链顶层的程序员可以从食物中获得多少营养。
它可以作为建立自己的检查表的起点。
同要求定义检查表的使用一样,如果你正在从事一个非正式的项目,那么其中有些条款是不必考虑的。
但如果你正在开发一个较大的系统,那绝大部分内容都是非常有用的。
●软件的总体组织形式是否清晰明了?包括对于结构设计的总体评论与描述。
●模块定义是否清楚?包括它们的功能及其与其它模块的接口。
●要求定义中所提出的所有功能,是否有恰当数量的模块覆盖?●结构设计是否考虑了可能的更改?●是否包括了必要的购买?●是否阐明了如何改进重新启用的代码来满足现在的结构设计要求?●是否描述并验证了所有主要的数据结构?●主要数据结构是否隐含在存取子程序中?●规定数据库组织形式和其它内容了吗?●是否说明并验证所有关键算法?●是否说明验证所有主要目标?●说明处理用户输入的策略了吗?●说明并验证处理输入/输出的策略了吗?●是否定义了用户界面的关键方面?●用户界面是否进行了模块化,以使对它所作的改动不会影响程序其它部分●是否描述并验证了内存使用估算和内存管理?●是否对每一模块给出了存储空间和速度限制?●是否说明了字符串处理策略?是否提供了对字符串占用空间的估计?●所提供的错误处理策略是不是一致的?●是否对错误信息进行了成套化管理以提供一个整洁的用户界面?●是否指定了坚固性级别?●有没有哪一部分结构设计被过分定义或缺少定义了?它是否明确说明了;●是否明确提出了系统目标?●整个结构在概念上是否是一致的?●机器和使用实现的语言是否顶层设计依赖?●给出做出每个重要决定的动机了吗?●你作为系统实现者的程序员,对结构设计满意吗?3.3.3.9 小结●如果想开发一个高质量的软件,必须自始至终重视质量问题。
在开始阶段强调质量往往比在最后强调质量更为有效。
●程序员的份内工作之一便是向老板和同事宣传软件的开发过程,包括在编程开始前从事先决条件准备工作的重要性。
●如果问题定义工作做得不好,那么在创建阶段,所解决的问题可能并不是用户真正要解决的问题。
●如果需求分析工作做得不好,很可能因此而漏掉要解决问题中的重要细节。
在创建工作后更改要求,要比在需求分析阶段进行更改的成本高20到100倍。
所以,在开始编程前一定要确认要求定义工作一切正常。
●在编程前规定好约定,在创建工作结束后再改变代码来满足约定几乎是不可能的。
●在创建活动开始之前如果无法完成准备工作,可以尝试在不太稳固的基础上进行创建活动。
4.建立子程序的步骤4.1.创建子程序●是否检查过先决条件已经满足了?●定义子程序将要解决的问题了吗?●结构设计是否足够清楚,使得你可以给子程序起个好名字?●考虑过如何测试子程序了吗?●是否从模块化水平或者满足时间和内存要求角度考虑过效率问题?●是否查阅过参考书;以寻找有帮助的算法?●是否用详尽的PDL设计子程序?●在必要时,是否在逻辑设计步骤前考虑了数据?●是否检查过PDL,它很容易理解吗?●是否注意到了足以使你返回到结构设计阶段的警告(使用了全局数据,更适合其它子程序的操作,等等)。
●是否使用了PDL到代码流程,是否把PDL作为编码基础并把原有的PDL转为注释?●是否精确地把PDL翻译成了代码?●在作出假设时,验证它们了吗?●是从几个设计方案中选择了最好的,还是随意选择了一个方案?●是否彻底理解你的代码?它容易理解吗?4.2.4.6 小结●要想写好PDL,首先要用易懂的自然语言,避免拘泥于某种程序语言,其次要在意向层次上写PDL,描述设计作什么而不是如何作。
●PDL到代码流程方法是详细设计的有力工具,而且使得编码非常容易。
可以把PDL直接翻译成注释,但要注意保证注释是精确而有用的。
●应该在工作的每一步中都检查子程序,并鼓励同事们检查。
这样,可以在投入的资金和工作努力最少时便发现错误,从而极大降低改错成本。
5.高质量子程序特点5.1.总体问题●创建子程序的理由充分吗?●如果把一个子程序中的某些部分独立成另一个子程序会更好的话,你这样做了吗?●是否用了明显而清楚的动宾词组对过程进行命名?是否是用返回值的描述来命名函数?●子程序的名称是否描述了它做的所有工作?●子程序的内聚性是不是很强的功能内聚性?它只做一件工作并做得很好吗?●子程序的耦合是不是松散的?两个子程序之间的联系是不是小规模、密切、可见和灵活的?●子程序的长度是不是它的功能和逻辑自然地决定的:而不是由人为标准决定的?5.2.防错性编程●断言是否用于验证假设?●子程序对于非法输入数据进行防护了吗?●子程序是否能很好地进行程序终止?●子程序是否能很好地处理修改情况?●是否不用很麻烦地启用或去掉调试帮助?●是否信息隐蔽、松散耦合,以及使用“防火墙”数据检查,以使得它不影响子程序之●外的代码?●子程序是否检查返回值?●产品代码中的防错性代码是否帮助用户,而不是程序员?5.3.参数传递问题●形式参数与实际参数匹配吗?●子程序中参数的排列合理吗?与相似子程序中的参数排列顺序匹配吗?●接口假设说明了吗?●子程序中参数个数是不是7个或者更少,●是否只传递了结构化变量中另一个子程序用得到的部分?●是否用到了每一个输入参数?●是否用到了每一个输出参数?●如果子程序是一函数,是否在所有情况下它都会返回一个值?5.4.5.10 小结●建立子程序的最重要原因是加强可管理性(即降低复杂性),其它原因还有节省空间、●改进正确性、可靠性、可修改性等等。
●强调强内聚性和松散耦合的首要原因是它们提供了较高层次的抽象性,你可以认为一个具备这种特性的子程序运行是独立的,这可以使你集中精力完成其它任务。
●有些情况下,放入子程序而带来巨大收益的操作可能是非常简单的。
●子程序的名称表明了它的质量,如果名称不好但却是精确的,那么说明它的设计也是非常令人遗憾的。
如果一个子程序的名称既不好又不精确,那它根本就无法告诉你程序作了些什么。
无论哪种情况,都说明程序需要改进。
●防错性编程可以使错误更容易被发现和修复,对最终软件的危害性显著减小。
6.模块化设计6.1.模块的质量●模块是否有一个中心目的?●模块是否是围绕着一组公用数据进行组织的?●模块是否提供了一套相互联系的功能?●模块功能是否足够完备,从而使得其它模块不必干预其内部数据?●一个模块相对其它模块是否是独立的?它们之间是松散耦合的吗?●一个模块的实现细节,对其它模块来说,是隐含的吗?●模块的接口是否抽象到了不必关心其功能实现方式的地步?它是作为一个黑盒子来设计的吗?●是否考虑过把模块再划分为单元模块?是否对其进行了充分的再划分工作?●如果用不完全支持模块的语言编程,你是否制定了编程约定以使这种语言支持模块?6.2.6.5 小结●不管调用哪一个,子程序与模块的不同是很重要的,要认真考虑子程序与模块的设计。
●从模块数据是被几个子程序使用的这一角度来说,它与全局数据是相同的,但从可以使用它的子程序是有限的,而且清楚地知道是哪些子程序可以使用它这一角度来说,模块数据与全局数据又是不同的。
因此,可以使用模块数据而没有全局数据的危险。
7.高级结构设计7.1.高层次设计●本表给出了在评估设计质量时,通常要考虑一些问题。
本表是3.4 节中结构设计检查表的补充,这个表所考虑的主要是设计质量。
3.4 节中的检查表则侧重于结构设计和设计内容。
这个表中的某些内容是相互重合的。
●是否使用了往返设计方法,应从几个方案中选择最好的,而不是首次尝试就确定方案。
●每个子程序的设计是否都和与其相关的子程序设计一致?●设计中是否对在结构设计层次上发现但并未解决的问题作了充分说明?●是否对把程序分解成目标或模块的方法感到满意?●是否对把模块分解成子程序的方法感到满意?●是否明确定义了子程序的边界?●是否是按照相互作用最小的原则定义子程序的?●设计是否充分利用了自顶向下和自底向上法?●设计是否对问题域要素、用户接口要素、任务管理要素和数据管理要素进行了区分?●设计是智力上可管理的吗?●设计是低复杂性吗?●程序是很容易维护的吗?●设计是否将子程序之间的联系保持在最低限度?●设计是否为将来程序可能扩展作了准备?●子程序是否是设计成可以在其它系统中再使用的?●低层次子程序是高扇入的吗?●是否绝大多数子程序都是低或中等程度扇出的?●设计易于移植到其它环境吗?●设计是简练的吗?是不是所有部分都是必要的?●设计是成层的吗?●设计中是否尽量采用了标准化技术以避免奇特的、难以理解的要素?7.2.7.6 小结●设计是一个启发的过程。