当前位置: 首页 > 编程日记 > 正文

第三次作业---读《构造之法》1-5章有感

这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2178。

第一章:概论

 读完第一章了解到了什么是软件工程、软件工程的领域。软件工程是把系统的、有序的、可量化的方法应 用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设 计、软件构建、软件测试和软件维护。

       1.1节中,本书作者用了从儿童时代的纸飞机到成熟飞机产业阶段的发展的例子,描述了软件的制作过程。其过程分为四个阶段:1、玩具阶段即我们刚开始学习新计算机语言,打好基础的过程。2、业余爱好阶段即用所学的语言做出简单的作品,例如:网页、简单的app等等。3、探索阶段即钻研更深层次的知识,学习掌握新技术,并应用于软件创新中去。4、成熟的产业阶段即将成熟的软件应用于商场,并广泛应用。但文中在软件发展阶段之后,提出了一个关于安全功能的问题:如果一架民用飞机上 有一个功能,用户使用它的概率是百万分之一, 你还要做这个功能么?你会选择: 1. 根本不考虑 2. 如果没时间实现这个功能就算了 3. 做了,但是不用告诉用户 4. 做了,而且不厌其烦地告诉用户如何使用 你会如何选择呢?文中同样的用了飞机的安全功能告诉我们答案是做了,而且不厌其烦地告诉用户如何使用,当然,软件在制作过程也需要考虑安全问题,从软件的角度看,就是容错问题,我们应该从用户的角度考虑安全问题,尽可能完善安全功能,即使只有百万分之一的概率出错,也要考虑进去。就像书中所说的“如果氧气罩自动掉下来,应该怎么做。”飞机只有在出现情况的时候,才会掉下氧气罩,虽然几率很小,但如果真的发生,却没有安全措施,就会有很大麻烦。软件也是如此,比如,软件如果没有自动保存功能,在突然黑屏、没电的情况,用户的资料就可能会损失。虽然几率也是很小,但也还是有可能发生的,所以一切有可能发生的安全功能都要完善。

第二章:个人技术和流程

第二章主要讲解了单元测试、回归测试、效能分析以及个人软件开发看流程(PSP)。

        2.1.2节中,小飞和阿超的对话让我感触很深,虽然单元测试是回归测试的基础,但单元测试极其的重要。对话中阿超说出了单元测试的重要性,你自己写的模块最好把你这一“模块”要做的事,以及不能做的事,用单元测试清晰地表达出来,且在写技术模块规格说明书时,要写得越详细越好,因为如果你的模块有不同的人,在不同的时间使用,这样能够方便他们使用。单元测试还可以让代码作者感受到复杂代码的副作用。在写代码时,并不是代码越复杂越好,代码越复杂验证的正确性越难达到最高。正确写代码的习惯应该是该写的写,不该写的不写,且代码效率要高,覆盖率也要高。在条件的覆盖率中,影响判断结果的因素有很多,如文中的if语句中,我们不仅要考虑布尔类型TURE的情况,同样FALSE的情况也要考虑。

        我的疑问:如何让单元测试的一个测试在几秒钟中完成?

第三章:软件工程师的成长

      第三章主要讲了评价软件工程师水平的主要方法有:技能的反面、TSP对个人的要求、软件工程师的思维误区。

        3.1节中提到软件团队是由个人组成的,个人在团队中也是有独立流程的,而把每个人的工作有序地组织起来,是团队的流程。所以,要想搞好团队,首先要提高个人的能力,就好比足球,每个足球员都要经过严格的体能、技术、意识等方面的训练,程序员也是一样,要不断积累软件开发相关的知识、积累问题领域的知识和经验、提升职业技能以及实际成果。然后每个人再在团队中有序地组织起来,这样团队才能正常运作。当然,团队对每个成员也是有要求的。1、要成员与成员之间多交流。2、按时完成任务。3、完成不同的任务并高质量完成。4、投入团队的活动等等。

        我的疑问:全国计算机等级考试的这种考核方式不是很传统的考试方式吗?那它的主要考核目的是什么?

第四章:两人合作

      第四章讲的是两人合作时,应该注意代码规范、极限编程、结对编程、两人合作的不同阶段以及影响他人的技巧。

        在写代码的过程中,一定要代码规范。要有代码风格规范、代码设计规范以及代码注释的良好习惯。这么一来,自己下次看的时候,整洁清楚,你的队友和别人也方便解读你的代码,这样也能大大的提高你们团队的效率,不用把时间浪费在解读他人代码上。代码设计规范上,要保证代码模块化,函数出口单一,模块功能单一,尽量做到高内聚低耦合。两人合作,代码模块化的好处就是方便代码合并。

        代码设计好后,要进行代码复审,代码复审主要是:1、更正明显的错误;2、对于无法很快更正的错误,要在项目管理软件中创建bug,把它们记录下来。

        我的疑问:模块优化是否指提高代码执行效率?

第五章:团队和流程

         ’第五章讲到了软件团队的几种典型模式:主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队以及特工团队等。

          主治医师模式的软件团队中,首席程序员负责处理主要模块的设计和编码,其他人则辅助他的工作,而这些人中有的是后背程序员、系统管理员以及工具来发等。而在社区模式的软件团队中,每个程序员可以参与自己感兴趣的项目,贡献自己的力量,但会出现有的人偷懒。所以这也是跟主治医师模式不同的,不过社区并不是意味着“随意”,这里需要严格的代码复审。在业余剧团模式的软件团队中又是不同,每个人都有权利在不同项目中选择不同的角色,每个人比较平等的讨论,但在竞争性强烈的团队,肯能就不太一样了。还有每个模式都自己的不同之处。

          我的疑问:这么多的软件团队模式,该怎么判断选择使用呢?

转载于:https://www.cnblogs.com/lxcbk/p/9752233.html

相关文章:

Solr安装与配置

需要Java Runtime Environment(JRE) 1.7或更高版本,先验证。 # java -version如果没有安装好Java环境,需要参考:http://blog.csdn.net/unix21/article/details/18774417无需安装tomcat,新版solr已经集成jettySolr最新版下载地址 http://mirro…

php字符串替换多余逗号_PHP字符过滤函数去除字符串最后一个逗号(rtrim)

首先分别解释下,trim过滤字符串两端,rtrim过滤字符串尾部,chop()ltrim过滤字符串首部.过滤字符串中键的咚咚就只能用str_replace咯.举个例子说明下,PHP代码$str 123,333,234,;echo rtrim($str, ,);rtrim实例代码2$text "\t\tThese are a few words :) ... ";$trim…

TensorFlow王位不保?ICLR投稿论文PyTorch出镜率快要反超了

自PyTorch出道以来,不断有人表示,发现了这样的趋势: “学术圈正在慢慢地抛弃TensorFlow,转投PyTorch。” 如今,PyTorch 1.0发布,ICLR 2019也才截稿不久,又是讨论这个问题的好时节。 Reddit上面&…

php的hashmap,php如何实现hashmap

php实现hashmap的方法:主要方法参照JAVA的HASHMAP实现的Class HashMap{var $H_table;public function __construct() {$this->H_table array ();}public function put($key, $value) {if (!array_key_exists($key, $this->H_table)) {$this->H_table[$key…

Dispatcher与UI线程交互

1 this.chart2.Dispatcher.BeginInvoke(new Action(() > 2 { 3 this.chart2.SetData("Series1", lxs, lys, lzs); 4 })); 转载于:https://www.cnblogs.com/ants_double/p/5359476.html

Linux防火墙限制指定端口只能由指定IP访问

需要对redis的端口做限制,只能让公司内指定IP的机器访问-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACC…

Kubernetes基于Metrics Server的HPA

Kubernetes基于Metrics Server的HPA [TOC] 1. 环境说明和相关介绍 我的kubernetes环境: kubeadm安装的kubernetes1.11Horizontal Pod Autoscaler(HPA,Pod水平自动伸缩),根据资源利用率或者自定义指标自动调整replicati…

Java判断文本文件编码格式以及读取

如果不是约定好的,要想解析txt文件就需要知道文件编码类型,由于文件编码类型众多,例如UTF-8,GBK,UTF-16,GB2312等等。其实有简单的办法,只需要这样就可以了String fileEncodeEncodingDetect.getJavaEncode(…

php 运维系统开发,PHP开发运维管理系统笔记

开发运维管理系统采用ThinkPHP框架mysql进行开发.框架配置return array(//‘配置项‘>‘配置值‘‘SHOW_PAGE_TRACE‘ > true,//允许访问的控制器‘MODULE_ALLOW_LIST‘ > array(‘Home‘),//默认控制器‘DEFAULT_MODULE‘ > ‘Home‘,//URL模式‘URL_MODEL‘ >…

[android]am自动化测试框架(原创)

在linux环境该目录下需要一个AndroidManifest.xml文件 需要一个python脚本就可以完成,功能点,打开某个package的所有activity并截图保存 import os import logging file open("AndroidManifest.xml") _adb_startActivity"adb shell am s…

Dubbo 整合 Pinpoint 做分布式服务请求跟踪

在使用Dubbo进行服务化或者整合应用后,假设某个服务后台日志显示有异常,这个服务又被多个应用调用的情况下,我们通常很难判断是哪个应用调用的,问题的起因是什么,因此我们需要一套分布式跟踪系统来快速定位问题&#x…

Memcached安装使用和源码调试

memcached官网:http://memcached.org/一.安装下载 # wget http://www.memcached.org/files/memcached-1.4.25.tar.gz解压 # tar xzvf memcached-1.4.25.tar.gz #cd memcached-1.4.25配置 #./configure --prefix/usr/local/memcached --with-libevent/usr 注意这里选…

上下或左右无缝滚动

文字或图片实现 向上 无缝滚动<div id"colee" style"overflow:hidden;height:80px;"><div id"colee1"><li><a href"/">文字或图片实现向上无缝滚动</a></li><li><a href"/"&g…

java老师拿钥匙,从Java中的NavigableMap获取第一把钥匙

要使用Java显示NavigableMap中的第一个键&#xff0c;请使用firstKey()方法。让我们首先创建NavigableMap-NavigableMap n new TreeMap();n.put("A", 498);n.put("B", 389);n.put("C", 868);n.put("D", 988);n.put("E", 68…

iphone X系列设配屏幕适配

2019独角兽企业重金招聘Python工程师标准>>> 截止目前&#xff0c;苹果所有刘海系列的设备屏幕数据如下&#xff1a; iPhone X 、iPhone XS&#xff1a; 5.8英寸&#xff0c; 375pt * 812pt(3x)&#xff0c;启动图1125px * 2436pxiPhone XR&#xff1a; 6.1英寸&…

Oracle官方教程之Fork/Join

原文链接&#xff0c;译文链接&#xff0c;译者&#xff1a;Zach&#xff0c;校对&#xff1a;郑旭东 fork/join框架是ExecutorService接口的一种具体实现&#xff0c;目的是为了帮助你更好地利用多处理器带来的好处。它是为那些能够被递归地拆解成子任务的工作类型量身设计的。…

《Java: The Complete Reference》等书读书笔记

春节期间读了下《Java: The Complete Reference》发现这本书写的深入浅出&#xff0c;我想一个问题&#xff0c;书中很多内容我们也知道&#xff0c;但是为什么我们就写不出这样一本书&#xff0c;这么全面&#xff0c;这么系统&#xff0c;这么简单易懂。不得不佩服Herbert Sc…

php upload ctf,强网杯CTF防御赛ez_upload Writeup

这是强网杯拟态防御线下赛遇到的web题目&#xff0c;本来是不打算分享Writeup的&#xff0c;但是由于问的人很多&#xff0c;于是这里分享给大家。ez_upload这题算是非常经典的堆叠black trick的题目&#xff0c;算是比较典型的ctf式题目(虽然现在大家都很抵制这样的题目)&…

Oracle 表空间扩容

2019独角兽企业重金招聘Python工程师标准>>> 1、查询当前表空间使用情况 col FILE_NAME format a50; col SPACE_NAME format a15; select b.file_name file_name,b.tablespace_name space_name, b.bytes/1024/1024 munM,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 …

PHP网站首页打不开的原因讲起

最近有个网站首页打不开&#xff0c;偶尔报504错误&#xff0c;如图所示&#xff0c;这是nginx直接返回的。今天下午16:00多又出现了&#xff0c;看了下阿里云数据库连接&#xff0c;其实在晚上2:00也出现了一次。这个图是后来问题已经解决了获取的&#xff0c;数据库连接的请求…

前端资源整理 - 订阅、工具等

取自 我的GITHUB 的 fe-store-house repo&#xff0c;欢迎 PR&#xff0c;欢迎 STAR。原 repo 不定期更新&#xff0c;此文可能断更。断更了一年多&#xff0c;重新更新一下&#xff0c;似乎 sfgg 的文章渲染中 gfm table 解析有问题。最新更新时间 2017-11-02。前端资源 中文 …

mysql和mariadb可以同时使用吗,MariaDB与MySQL在一台服务器同时运行

[rootHE3 ~]#groupaddmariadb-g 513[rootHE3 ~]#useradd -u 513-gmariadb-s /sbin/nologin -d /home/mariadbmariadb从MariaDB官网下载二进制安装包至/root目录&#xff0c;本文采用的是目前最新稳定版mariadb-10.1.16[rootHE3 ~]# tar xvf mariadb-10.1.16-linux-x86_64.tar.g…

http请求与响应

一、请求格式 二、响应格式 转载于:https://www.cnblogs.com/believepd/p/10470824.html

Linux环境安装phpredis扩展

php访问redis需要安装phpredis扩展&#xff0c;phpredis是用纯C语言写的。phpredis下载地址 https://github.com/phpredis/phpredis 最新的版本是phpredis-develop.zip&#xff0c;我们选择的上一个稳定版2.2.7# wget https://github.com/nicolasff/phpredis/archive/2.2.7.tar…

IO流(文件的读写)---本文的正确性有待您验证。

2019独角兽企业重金招聘Python工程师标准>>> JAVA的I/O介绍。<<疯狂JAVA编程>>第15章有详细介绍&#xff0c;如下&#xff1a; http://www.cnblogs.com/lijunamneg/archive/2013/03/22/2975087.html import java.io.FileNotFoundException;import java.…

创建图像 php,详解php创建图像具体步骤

php 的图像处理在验证码是最常见的&#xff0c;下面说下使用php创建图像的具体步骤。简要说明&#xff1a;PHP 并不仅限于创建 HTML 输出&#xff0c; 它也可以创建和处理包括&#xff0c;&#xff0c;&#xff0c;以及在内的多种格式的图像。 更加方便的是&#xff0c;PHP 可以…

Java语法基础-序列化

33&#xff0e; Java序列化中如果有些字段不想进行序列化&#xff0c;怎么办&#xff1f; 答&#xff1a;对于不想进行序列化的变量&#xff0c;使用transient关键字修饰。 transient关键字的作用是&#xff1a;阻止实例中那些用此关键字修饰的的变量序列化&#xff1b;当对象被…

Spring AOP与IOC

Spring AOP实现日志服务pom.xml需要的jar <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version> </dependency> <dependency><groupId>org.springfr…

matlab求解外弹道,基于MATLAB∕Simulink的通用质点外弹道程序设计.pdf

2017.01 设计与研发基于 MATLAB/Simulink 的通用质点外弹道程序设计崔 瀚(沈阳工学院兵器类虚拟仿真实验教学中心, 辽宁抚顺 ,113122 )摘要&#xff1a;本文以弹丸质点外弹道学为研究对象&#xff0c;通过分析以时间为 自变量的质点外弹道方程组&#xff0c;借助 MATLAB/Simuli…

深入Java虚拟机读书笔记[10:20]

第十章 栈和局部变量操作 第十一章 类型转换 第十二章 整数运算 第十三章 逻辑运算 第十四章 浮点运算 第十五章 对象和数组 第十六章 控制流 第十七章 异常 以上一些是操作码相关的内容&#xff0c; 第十八章 finally子句 微型子例程 字节码中的finally子句表现的很像微型子例…