集大软件工程15级个人作业Week2
集大软件工程15级个人作业Week2
快速通读教材《构建之法》,并参照提问模板,提出5个问题。
- 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文
- 列出一些事例或资料,支持你的提问。
- 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
【附加题】:请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出链接
在豆瓣页面的最下方 “读书笔记” 那里发言, 《构建之法》的作者会亲自答复问题
Q1 : 个人技术和流程
来自第2章 p36
PSP有以下的特点:
- ...
- PSP依赖于工程输入数据,记录工程师的各项活动,这本身就需要不小的时间代价
- 如果数据不准确或者有遗失,怎么办?让工程师编造一些?
- 如果一些数据不利于工程师本人(例如:花很多时间修改缺陷),我们怎么才能保证工程师愿意如实地记录这些数据呢?
我的问题是,PSP是否不适合学生?
正如书中所言,PSP这一模型在实施的时候似乎有一些困难的地方,尤其是对于学生来说,例如:
- 数据如何才能较为精确的获取到
- 各个阶段之间的分界点不明确
- 学生的时间比较分散,所以很可能会出现学生利用了好几块分散的时间才做完了一个阶段的事情,那么这样子又该如何统计呢?显然这之间不能简单地线性相加,例如,我要设计接下来一个项目的各模块接口。我花了三天没课的上午在onenote上写好了文档,但是实际上从我开始准备写文档那一刻起,我的脑中就开始构思各模块的接口之间的关系了,可能在某一节无聊的课堂上,也可能是在食堂里吃饭的时候...对于经常没有完整时间块的学生来说,PSP的数据很难获取到
- 文中所举例举例的工程师的问题当然同样也适用于学生身上
问题提出的原因是与我在日常学习生活中的经验矛盾
Q2 :两人合作
来自第4章 p87
如何结对编程
- 驾驶员:写设计文档,进行编码和单元测试等XP开发流程。
- 领航员:审阅驾驶员地文档;监督驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。领航员也可以设计TDD中的测试用例
- ......
我认为,结对编程可能在现今的大学环境下难以发挥效果。
首先看到书中关于结对编程的例子,一般都是公司内部的两个工程师,二者同为一家公司的工程师,那他们之间一般来说技术、关于技术的思想等等就不会差距太大,而这个技术差距恰恰是学生之间和工程师之间的不同之处。比如说用0到10的数字表示一个人对有关结对编程中使用技术的掌握程度,两个工程师是4和7,而学生之间甚至可能出现0和1的情况(没有其它人比学生更了解学生,作为计算机学院的学生,四年下来连要求的某些编程语言的基本语法都没有学会的也不是没有)。这样的情况下,根本没法结对,别说设计单元测试了,可能连表述出来的设计需求都听不懂。
问题出发点同样是与学习环境中的经验不符。
Q3 : 实战中的软件工程
来自第7章 141
保持敏捷,预期和适应变化......
以及 第3章 p53
“过早优化是一切罪恶的根源”......
当我看到敏捷的思想的时候,就回想起了在本书前面看到的过早扩大化/泛化等的问题。前者的要点是:要预料变化,适应变化,对变化做好准备;而后者的要点是:不要过早地泛化......我感觉这两种思想似乎有着冲突的地方,问题是该如何在二者在过早泛化和提前为变化做好准备之间找到平衡点呢?
举个更具体的例子,我要用C++写一个web/linux/windows/iOS/android上都可以使用的个人事项管理软件。我打算从windows客户端开始设计,在设计其中一些方法的时候,我是应该将函数全部泛型化,抽取出变化的部分全部设置成参数?还是先将这一平台的当前需求以合理的资源和算法结构等先设计实现出来呢?
Q4 :软件测试
来自第13章
章节中的各种测试技术的应用场景......
在阅读软件测试等章节的时候,我认为确实单元测试和软件测试等等都是十分有必要的,那么一个GUI软件该如何更好地测试呢,或者说GUI软件的自动化测试有没有必要呢?
这是我找到的部分观点:
在我看来,GUI测试由于其变化可能性大,测试(覆盖率/成本) 率高,所以难以进行大规模的自动化测试,就像某前辈所说的
keep the UI very, very thin—all it does is forward user gestures to some underlying code, and display the results. No logic. Definitely no database access.
UI就该做UI的事情,并且只做那件事
在测试问题上,该如何找到最佳的GUI测试方案呢
Q5 : 人,绩效和职业道德
来自第17章 p411
软件工程师的职业道德
其中有一个规范:
原则1 公众
软件工程师的行为应与公众利益一致
原则2 客户与雇主
软件工程师应以其客户和雇主利益最大化的方式做事,与公众利益保持一致
......
看到这种一条一条的的准则,就会产生疑问:
- 如何衡量是否与公众利益一致
- 若公众利益与雇主利益不一致,甚至互斥怎么办
举个例子
某大厂开发的一款即时通讯软件,在发布后由于其出色地整合了许多同类应用的优秀功能而大火。之后雇主(公司老板)要求工程师设计出一套付费vip的服务,对于使用该应用的用户来说,这当然不利于他们的利益,但是从雇主的角度来说,他可以凭借该应用的巨大用户基数怒赚一笔
集大软件工程15级个人作业Week2的更多相关文章
- 集大软件工程15级个人作业Week1
集大软件工程15级个人作业Week1 孙志威 201521123077 博客园主页 码云地址 阅读参考材料,并回答下面几个问题 (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络 ...
- 集大软件工程15级结对编程week1
集大软件工程15级结对编程week1 0. 团队成员 姓名 学号 博客园首页 码云主页 孙志威 20152112307 Agt Eurekaaa 孙慧君 201521123098 野原泽君 野原泽君 ...
- [转帖]当 K8s 集群达到万级规模,阿里巴巴如何解决系统各组件性能问题?
改天学习一下. https://www.cnblogs.com/alisystemsoftware/p/11570806.html 当 K8s 集群达到万级规模,阿里巴巴如何解决系统各组件性能问题 ...
- BUAA软件工程个人博客作业
软件工程个人博客作业 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标 团队完成好的软件,并对自己作出规划 这个作 ...
- 【软件工程】week5-个人作业-敏捷开发方法初窥
敏捷开发方法初窥 引言:本周的软件工程个人博客作业是阅读关于敏捷开发方法的文章(http://martinfowler.com/agile.html),并撰写自己的读后感.文章内容非常丰富,对敏捷开发 ...
- 17秋 软件工程 第六次作业 Beta冲刺 总结博客
题目:团队作业--Beta冲刺 17秋 软件工程 第六次作业 Beta冲刺 总结博客 Beta冲刺过程中各个成员的贡献百分比 世强:15.5% 陈翔:14.5% 树民:12.0% 媛媛:14.0% 港 ...
- [buaa-SE-2017]个人作业-Week2
个人作业-Week2 一.代码复审Checklist 1.概要部分 1.1 代码能符合需求和规格说明么? 本次作业的需求可以分成基本的功能实现和大规模数据下程序的健壮性,以及少量的异常处理能力,也就是 ...
- BUAA 2020 软件工程 个人博客作业
BUAA 2020 软件工程 个人博客作业 Author: 17373051 郭骏 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 ...
- 复旦大学2015--2016学年第二学期(15级)高等代数II期末考试第六大题解答
六.(本题10分) 设 $n$ 阶复方阵 $A$ 的特征多项式为 $f(\lambda)$, 复系数多项式 $g(\lambda)$ 满足 $(f(g(\lambda)),g'(\lambda))= ...
随机推荐
- 关于python requests 包跑ssl的设置 和 charles相关抓包的问题
由于在测试服务器上测试东西都是https,然后最近又在和大神一起开发openapi,api写好当然是要测试的 python上测试接口最好用的莫过于requests模块了.但是 我还从来没有用reque ...
- python之zip函数和sorted函数
# zip()函数和sorted()函数 # zip()函数:将两个序列合并,返回zip对象,可强制转换为列表或字典 # sorted()函数:对序列进行排序,返回一个排序后的新列表,原数据不改变 # ...
- git-stash用法小结
[时间:2016-10] [状态:Open] [关键词:git,版本控制,版本管理,stash,git储藏] 缘起 今天在看一个bug,之前一个分支的版本是正常的,在新的分支上上加了很多日志没找到原因 ...
- File操作
对文件进行操作(只操作小文件) bool Exists(string path) 判断文件是否存在 FileStream Create(string path) 创建文件 void Move(stri ...
- BZOJ4828 AHOI/HNOI2017大佬(动态规划+bfs)
注意到怼大佬的操作至多只能进行两次.我们逐步简化问题. 首先令f[i][j]表示第i天结束后自信值为j时至多有多少天可以进行非防御操作(即恢复自信值之外的操作).这个dp非常显然.由于最终只需要保证存 ...
- 睡前小dp-poj1276-多重背包+二进制优化
http://poj.org/problem?id=1276 简单的多重背包,不过需要优化一下才能过.网上还有暴力的做法. 二进制优化在背包九讲里讲的比较清楚.对于多重背包的每一件物品,使用二进制的形 ...
- Sublime text3 插件HTML/CSS/JS prettify 格式化代码
1.首先安装插件 菜单的preference->packages control,然后输入install .. 回车,再输入HTML/CSS/JS prettify 再回车,重启后就可以了. 2 ...
- 洛谷 P3155 [CQOI2009]叶子的染色 解题报告
P3155 [CQOI2009]叶子的染色 题目描述 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根.内部结点和叶子均可)着以黑色或白色.你的着色方案应该保证根结点到 ...
- 洛谷 P2491消防 解题报告
P2491 消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个 ...
- Centos6.5使用yum安装mysql
0. 说明 先要查看yum源是否有你想要的mysql版本 yum list | grep mysql 如果没有则先要更新yum源 yum -y update 更新后即可进行下一步操作. 1. yum安 ...