第一章程序设计回顾及软件设计导论课件.pptVIP

第一章程序设计回顾及软件设计导论课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
前置条件 (precondition):方法代码假设的非局部变量的条件 包括参数 方法本身没有提供这些条件的验证 后置条件 (postcondition):执行后非局部变量的值 包括参数 注释:x’代表x执行后的值 不变式 (invariant):函数执行后没有改变的非局部变量的关系 在前置条件和后置条件中都相等 在局部变量中也有不变式 说明函数功能的分类注释 返回 (return) 方法的返回值 已知问题 (known issue) 真实描述要做的内容,未被纠正的缺陷等 限于所知道的 说明函数功能的分类注释 class Rectangle { … //前置条件:长度10, 宽度10 //返回:长度×宽度 … public double area (double aLength, double aBreadth) … } N 流程图 姓名无效? 姓名截短 姓名赋值 姓名取默认值 姓名太长? 输出到控制台 Y Y N protected final void setName(string aName) { //检查姓名是否有效 if( (aName==null) ||(maxNumCharsInName( )=0) ||(maxNumCharsInName( )alltimeLimitOfNameLength( )) ) { name=new String(“defaultName”); System.out.printin(“defaultName selected by GameCharacter.setName( )”); } else //若姓名太长,则姓名截短 if(aName.length( )maxNumCharsInName( )) name=new String(aName.getBytes( ), 0, maxNumCharsInName( )); //若姓名不长,则姓名赋值 else name=new String(aName); } 图1.5 FOR 操作员操作时间的微秒数 IF 操作时间超过临界值 ENDFOR ENDIF IF 功率超过临界值 ENDIF IF (正确检查病人正确安放防护物机器自检通过) ENDIF 需要得到管理者的允许 IF 管理者未允许 ENDIF 中止并提示“管理者未允许的异常值” 中止并提示“功率过大” 以功率p应用X射线 伪代码 流程图和伪代码的优点 算法清晰化 具体设计文档的过程更严格化 提供检查执行的补充标准 有助于在生成代码前捕获错误 提高可靠性 降低整体花费 流程图和伪代码的缺点 要维护额外的说明文档 带来转换为代码时出错的可能性 需要产生伪代码和绘制流程图的工具 函数/参数/变量的命名要具有表现力 用传递参数代替全局变量 防止错误数据:异常处理/默认处理/返回特殊值 不要将参数作为方法变量 给数字命名 限制参数个数在6个或7个之内 在临近使用变量时才定义它们 初始化所有变量 检查循环计数器 避免3次以上的嵌套循环 确保不是死循环 编译前先检查 编码好习惯 manipulate(float aFloat, int anInt) getBaseRaisedToExponent(float aBase, int anExponent) 函数/参数/变量的命名应该说明其用途(图1.9) extract(int anEntry) { table = … } 避免使用全局变量: 考虑使用传递参数来代替 extract(int anEntry, EmployeeTable anEmployeeTable) for(i=0; i8927; ++i) 给数字命名 int NUM_CELLS=8927 for(cellCounter=0; cellCounterNUM_CELLS; ++cellCounter) 软件设计的目标 正确性、充足性、模块性和可读性 确保代码按照需求执行 健壮性 设计和实现能处理各种各样的异常情况(如数据错误、用户错误、环境条件) 灵活性 适应各种改变,易于修改 对已存在的操作增加适当的功能范围 增加新功能 改变功能 软件设计的目标 可重用性 对象代码 类(以源代码形式) 相关类的聚合 类聚合模式 高效性 利用可用的机器时间周期和内存尽可能快地创造设计和实现 可靠性 可用性 软件设计准则 软件设计的重要性表现在软件的质量。如何设计才能保证质量?这里,我们给出软件设计的一般原则: (1)

文档评论(0)

phljianjian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档