
软件构造学习
文章平均质量分 81
Kuwy_Lsr
这个作者很懒,什么都没留下…
展开
-
第三章--第一节:Data数据类型和数据类型检查
第三章:抽象数据类型(ADT)和面向对象编程(OOP)第一节:数据类型和数据类型检查问题一:java中数据类型的分类基本数据类型(primitive types)对象数据类型(object types)二者不比较:先下图(*基本数据类型只有值没有ID的意思是:若inta=1;intb =1;则a和b指向的是同一存储空间的值“1”;而对象数据类型a和b就指向两个不同的...原创 2018-03-21 11:36:43 · 3362 阅读 · 0 评论 -
第一章--第一节:软件构建的多维视图(软件构造学习笔记)
第一章:软件构建的视图和质量目标第一节:软件构建的多维视图问题1:构建软件系统的三个维度 1.By phases: build- and run-time views 2.By dynamics: moment and period views 3.By levels: code and component views问题2:每个维度的含义1.build- ...原创 2018-03-14 10:40:01 · 680 阅读 · 0 评论 -
第八章--第三节:性能优化的代码调优
第八章:软件构造的性能第三节:性能优化的代码调优问题一:代码调优的策略和过程 代码调优:代码调优不是为了修复bug,而是对正确的代码进行修改以提高其性能。调优不会减少代码行数不要猜原因,而应有明确的优化目标不要边写程序边调优不是性能优化的第一选择代码行数与性能之间无必然的联系代码调优建立在对程序性能的精确度量基础之上(profiling)问题二:代码调优的模式 1.单例模式(Singl...原创 2018-06-15 17:48:54 · 375 阅读 · 0 评论 -
第八章--第二节:动态程序分析方法与工具
第八章:软件构造的性能第二节:动态程序分析方法与工具问题一:性能调优的工具 1.命令行分析工具(Command-line profiling tools) ①jstat:获取JVM的heap使用和GC的性能统计数据 ②jmap:输出内存中的对象分布情况 ③jhat:导出heap dump,浏览/查询其中的对象分布情况 ④jstack:获取Java线程的stacktra...原创 2018-06-15 16:27:31 · 656 阅读 · 0 评论 -
第七章--第四节:调试(Debugging)
第七章:软件构造的健壮性.第四节:调试(Debugging)问题一:什么是bug程序中的错误,导致程序以非预期或未预料到的方式执行。一个包含大量bug和/或严重干扰其功能的bug的程序被称为buggy。报告程序中的bug通常被称为bug报告、故障报告、问题报告、故障报告、缺陷报告等。问题二:常见的bug的类型数学bug:例如 零除法,算术溢出逻辑bug:例如 无线循环和无限递归源头bug:例如 使...原创 2018-06-15 15:37:06 · 526 阅读 · 0 评论 -
第十章--第一节:并发与线程安全
第十章:并行与分布式程序设计第一节:并发与线程安全问题一:并行程序设计两种模式 1.共享内存两个处理器,共享内存同一台机器上的两个程序,共享文件系统同一个Java程序内的两个线程,共享Java对象 2.消息传递网络上的两台计算机,通过网络连接通讯浏览器和Web服务器,A请求页面,B发送页面数据给A即时通讯软件的客户端和服务器同一台计算机上的两个程序,通过管道连接进行通讯问题二:进程、线...原创 2018-06-15 15:35:39 · 544 阅读 · 0 评论 -
第八章--第一节:性能构造的度量、原理和方法
第八章:软件构造的性能第一节:性能构造的度量、原理和方法问题一:性能度量指标 1.时间性能:每条指令、每个控制结构、整个程序的执行时间 2.空间性能:每个变量、每个复杂结构、整个程序的内存消耗获取运行时间,获取执行时间,问题二:内存分配与内存管理问题描述:因为内存不足,所以需要考虑高效率的内存管理问题1.内存对象模型每个对象存储在内存中一段连续的空间中如果是引用,则存储它所指向的对象的...原创 2018-06-15 15:27:37 · 425 阅读 · 0 评论 -
第六章--第二节:设计可维护模式
第六章:面向软件构造的可复用性的构建方法第二节:设计可维护模式问题一:可维护模式的分类构建模式(Creational patterns)结构模式(Structural patterns)行为模式(Behavioral patterns)问题二:构建模式(Creational patterns) 1.工厂模式方法(Factory Method pattern) 方法:定义一个用于创建对象...原创 2018-05-07 16:20:33 · 371 阅读 · 0 评论 -
第七章--第二节:错误和异常的处理
第七章:软件构造的健壮性第二章:错误和异常的处理问题一:Java中的错误和异常java.lang.Throwable 包含:java.lang.Exception、java.lang.Error。内部错误(Error):程序员通常无能为力,一旦发生,想办法让程序优雅的结束异常(Exception):你自己程序导致的问题,可以捕获、可以处理问题二:错误(Error) 分类:User input...原创 2018-05-07 16:17:27 · 422 阅读 · 0 评论 -
第七章--第一节:健壮性与正确性的区别
第七章:软件构造的健壮性第一节:健壮性与正确性的区别问题一:什么是健壮性&正确性 1.健壮性(Robustness) 含义:系统在不正常输入或不正常外部环境下仍能够表现正常的程度 面向健壮性的编程做法:处理未期望的行为和错误终止即使终止执行,也要准确/无歧义的向用户展示全面的错误信息错误信息有助于进行debug 面向健壮性编程的原则:Paranoia (偏执狂):总...原创 2018-05-03 20:51:11 · 855 阅读 · 0 评论 -
第六章--第三节:面向可维护性的构造技术
第六章:面向软件构造的可复用性的构建方法第三节:面向可维护性的构造技术问题一:面向可维护性构造的分类基于状态的构造(State-based construction)表驱动的构造(Table-driven construction)基于语法的构造(Grammar-based construction)问题二:基于状态的构造(State-based construction) 基于状态的编程:...原创 2018-05-03 20:10:37 · 374 阅读 · 0 评论 -
第六章--第一节:可维护性的度量和构造原则
第六章:面向软件构造的可复用性的构建方法第一节:可维护性的度量和构造原则问题一:什么是软件的维护和演化 维护的含义:软件工程中的软件维护是交付后修改软件产品以纠正故障,提高性能或其他属性,简而言之,软件维护:修复错误、改善性能。 维护的类型:纠错性(25%)、适应性(25%)、完善性(50%)、预防性(4%) 演化的含义:对软件进行持续的更新 软件演化的规律(Lehman)...原创 2018-04-30 09:59:50 · 690 阅读 · 0 评论