集大软件工程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))= ...
随机推荐
- OneZero第七周第一次站立会议(2016.5.9)
1. 时间: 12:15--12:25 共计10分钟. 2. 成员: X 夏一鸣 * 组长 (博客:http://www.cnblogs.com/xiaym896/), G 郭又铭 (博客:http ...
- xhtml和html的差別
xhtml和html主要區別: 元素必須正確嵌套: 元素必須正確閉合: 必須要有根元素: 元素必須使用小寫. xhtml語法: 屬性名必須小寫: 屬性值必須帶引號: 使用id代替name: lang屬 ...
- Jenkins中使用GitLab的配置
1. 概述 在Jenkins中从GitLab上拉取代码进行打包或测试. 2. 安装 Jenkins和GitLab默认已经安装好,安装过程此处不再赘述. 在Jenkins上安装Git和Gitlab插件, ...
- MyBatis:一对一关联查询
MyBatis从入门到放弃三:一对一关联查询 前言 简单来说在mybatis.xml中实现关联查询实在是有些麻烦,正是因为起框架本质是实现orm的半自动化. 那么mybatis实现一对一的关联查询则是 ...
- Code POJ - 1780(栈模拟dfs)
题意: 就是数位哈密顿回路 解析: 是就算了...尼玛还不能直接用dfs,得手动开栈模拟dfs emm...看了老大半天才看的一知半解 #include <iostream> #inclu ...
- 自学工业控制网络之路1.6-典型的现场总线介绍Interbus
返回 自学工业控制网络之路 自学工业控制网络之路1.6-典型的现场总线介绍Interbus 1987年正式公布,其主要技术开发者为德国的PhoenixContact公司.1996年,INTERBUS成 ...
- THUWC2019 摸鱼记
Day1 菜狗选手无人权,衣服没有海星,狗牌手写全糊,餐票不发刷卡,住宿自理宾馆. 人菜没办法. 感受到了自己智商低 不想写了 想原地退役 不知道还要不要走下去
- 洛谷 P2317 [HNOI2005]星际贸易 解题报告
P2317 [HNOI2005]星际贸易 题目描述 输入输出格式 输入格式: 输出格式: 如果可以找到这样的方案,那么输出文件output.txt中包含两个整数X和Y.X表示贸易额,Y表示净利润并且两 ...
- luogu3295 萌萌哒 (并查集+ST表)
如果给相同的位置连边,最后联通块数是n,最后答案就是$9*10^{n-1}$ 但直接连边是$O(n^2)$的 所以事先处理出一个ST表,每次O(1)地给那个ST表连边 最后再一点一点下放,就是把在这层 ...
- 【翻译】go memory model
https://studygolang.com/articles/819 原文链接 Introduction The Go memory model specifies the conditions ...