首页 > 编程知识 正文

软件工程标准有哪些,083500软件工程

时间:2023-05-06 12:17:06 阅读:52990 作者:3618

代码规格

编程过程和规范软件编程工作软件编程是一个复杂、迭代的过程,不仅包括编写代码,还包括代码评审、单元测试、代码优化、集成调试等一系列工作软件编程规范软件编程规范是一组规则,用于编写有关特定语言的代码。 目的:提高编码质量,避免不必要的程序错误。 增强程序代码可读性、可复用性和可移植性的现实:软件全部生命周期70%的成本由维护软件在其生命周期中原始作者经维护推荐阅读和学习,很少遵循谷歌公司制定的规范https://github.com/Google/style guide 3358 www.Sina.com /不是链接好的评论来解释原因,而是自己如何在评论中不重复编写代码,然后写下密集的评论来编码在修改需要停下来思考是否存在更大问题、想在评论中写什么、不动脑子的代码时,代码周围的注释编程规范:注释编写文档代码的唯一完整准确的代码规范命名良好的编程实践软件开发的工程思考1 .分析问题2 .初步设计3 .模型评估与测量4 .框架构建5 .建设6 .测试与验收编程规范:命名==基本思想:==将一个大程序按功能划分为一系列小模块,降低:编程的复杂性,提高模块的可靠性和可复用性,缩短产品的开发周期,便于维护和功能扩展模块化设计异常是在运行时检测到的错误,即使一个语句或表达式在语法上正确,如果视图执行此操作,也可能会发生错误。 代码静态检查错误与异常处理代码审查(Code Review )是一种用于验证程序设计和代码实现的质量保证机制,它通过阅读代码来确定源代码和编码规范的一致性以及代码质量检查3358www.Sina.com/设计合理性,共享Backup的知识、设计、技术,提高代码可读性处理代码中的“雷区”代码审查编程规范,命名规则、程序

面向对象设计系统的设计和抽象是否合适是否符合面向接口编程的思想使用合适的设计模式的性能在产生海量数据时,是否会出现队列、表、文件的传输、上传等方面的问题选择和设置聚合数据结构(如Hashtable和Vector ) (如队列长度)是否正确,是否存在滥用字符串对象的现象,以及采用通用的线程池和对象池等缓存技术以提高性能并发访问策略I/O是否使用了适当的类? 或者,您是否采用了提高性能的适当方法,如减少序列化、使用buffer类封装流等? 另外,是否过度使用? 递归方法中的迭代次数是否适当(是否应该保证在适当的堆栈区域内)如果调用阻塞方法,是否考虑了保证性能的措施以避免过度优化, 高性能代码是否使用profile工具资源释放分配给处理的内存,特别是在错误处理路径(如CIC )中发生错误时是否释放所有对象,以及数据库连接、套接字和缓冲区CIC等代码是否保存了正确的对象参照计数程序的流循环结束条件。 是否适合处理循环,避免死循环的发生。 考虑到性能方面的影响,线程安全代码中的所有全局变量都是线程安全的,因此需要从多个线程访问的对象是否是线程安全的。 检查受同步方法保护的同步对象的锁定是否以相同的顺序获取和释放以避免死锁,并注意错误处理代码是否存在死锁或冲突的可能性。 使用多个锁定时,避免发生类似的情况。线程a获得锁1,然后获得锁2,线程b获得锁2。 锁1注意不要过度使用同步,同时确保线程安全。 是否容易移植导致性能下降的数据库处理数据库设计或SQL语句。 (主义与性能冲突)数据库资源是否正常关闭,数据库访问模块是否正确封装和释放。 提高管理和性能是否采用适当的事务隔离级别是否采用存储过程是否提高性能是否采用改进语句是否提高性能套接字通信是否存在长期拥塞问题行是否采用缓冲机制套接字超时处理和异常处理数据传输的流控制问题JAVA对象处理对象的生命周期处理,是否禁用对象引用设置为null,传递和传递对象的值对象的clone方法使用过多,是否经常创建临时对象,本地对象(堆栈对象) 每次返回异常处理方法时,是否尽可能使用在只需要对象引用的位置创建了新的对象实例,是否正确处理了异常?最简单的处理是通过将日志记录在日志文件中,正确验证了数据的值和范围这包括是否使用断言正确处理了错误路径上的所有资源和内存抛出的异常。 特别是

对子方法抛出的异常,在整个调用栈中必须能够被捕捉并处理当调用导致错误发生时,方法的调用者应该得到一个通知不要忘了对错误处理部分的代码进行测试,很多代码在正常情况下执行良好,而一旦出错整个系统就崩溃了? 方法(函数) 方法的参数是否都做了效验数组类结构是否做了边界效验变量在使用前是否做了初始化返回堆对象的引用,不要返回栈对象的引用方法的API是否被良好定义,即是否尽量面向接口编程,以便于维护和重构。 安全方面 对命令行执行的代码,需要详细检查命令行参数WEB类程序检查是否对访问参数进行合法性验证重要信息的保存是否选用合适的加密算法通讯时考虑是否选用安全的通讯方式 其他 日志是否正常输出和控制配置信息如何让获得,是否有硬编码 代码性能分析 优化是对代码进行等价变换,是的变换后的代码运行结果与变换前的代码运行结果相同,但执行速度加快或存储开销减少程序性能 时间复杂度和空间复杂度代码性能优化是一门复杂的学问。根据80/20原则,实现程序的重构、优化、扩展以及文档相关的事情通常需要消耗80%的工作量。 代码性能优化 在满足正确性、可靠性、健壮性、可读性等质量因素的前提下,设法提高程序的效率以提高程序的全局效率为主,提高局部效率为辅在优化程序效率时,应先找出限制效率的“瓶颈”先优化数据结构和算法,再优化执行代码时间效率和空间效率可能是对立的,应当分析哪一个因素更重要,再做出适当的折衷例如:Python代码性能优化 改进算法,选择合适的数据结构 良好的算法对性能起到关键作用,因此性能改进的首要点是对算法改进算法时间复杂性的排序依次是
o(1)→O(lg n)→o(n lg n)→O(n2)→O(n3)O(nk)O(k^n) O(n!)对成员的查找访问等操作,字典( dictionary )要比列表( list )更快集合( set )的并、交、差的操作比列表( list )的迭代要快 循环优化的基本原则︰尽量减少循环过程中的计算量,在多重循环的时候,尽量将内层的计算提到上一层。字符串的优化: Python的字符串对象是不可改变的。字符串连接的使用尽量使用join()而不是+。当对字符串可以使用正则表达式或者内置函数处理时,选择内置函数。使用列表解析和生成器表达式∶列表解析要比在循环中重新构建一个新的list更为高效,因此可以利用这一特性来提高运行的效率。 结对编程实践 结对编程 是有两名程序员在同一台电脑上结对编写解决同一问题的代码。结对编程有利于提高代码质量,开发效率,协作能力。 结对编程是一个相互学习、相互磨合的渐进过程,实施时需要团队成员克服个性冲突和习惯差异。结对编程应该自由选择和灵活运用,它不应是强制性的,也不要教条地运行,最好由两位程序员自己决定合适的方式。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。