一、个人总结

1. 总结自己的alpha 过程:

经过了两周的ALPHA阶段,在这之中学习到了很多,因为最开始其实是有抱着一种应付的、将就着的心理去做这个小程序,但是在完成项目的过程中,有老师和助教一直在鞭策和鼓励我们,心理状态也在慢慢地改变,从被动变成了主动,也在这个过程中,知道了一套完整体系的工程具体有什么元素,不单单是几页代码就完事的。此外,因为我们做的是微信小程序,也是第一次接触JAVASCRIPT和WEB,和之前课设不同,这一次是边学边做,所以在短短两周内只能逼自己去学习更多。但好在是一个团队,大家共同分担,一起进步。

2. 自我评价表:



二、回答问题

徐璐琳的个人阅读作业2

问题一:读P8时,1.2软件工程是什么?

软件工程的思想目的和其他学科的工程方法(比如土木工程等)并无太大差异,主要是降低软件系统的复杂性、提高其可控性,以此在软件开发、维护、测试等各个阶段提高效率。软件工程体系包含为完成软件需求、设计、构建、测试和维护所需的知识、方法和工具。也在这段时间认识到了,软件工程不局限在理论之上,更重要在实践上,能够帮助软件组织协调团队、运用有限的资源,遵守已定义的规范,通过一系列可复用的、有效的方法,在规定的时间内达到预先设定的目标。针对软件工程的实施,无论是采用什么样的方法和工具,先进的软件工程思想始终是最重要的。只有在正确的工程思想指导下,才能制定正确的技术路线,才能正确地运用方法和工具达到软件工程或项目管理的既定目标。

问题二:P31对于两种效能分析方法的具体使用?

这两种方法是抽样、代码注入。

抽样就是当程序运行时,VS是不是看看这个程序运行在哪个函数内,并记录下来。等到程序结束后,VS就会得出一个关于程序运行时间分布的大致印象。

代码注入就是将监测的代码加入到每一个函数中,这样程序的一举一动都被记录都在案,程序的各个效能数据都可以被精准地测量。

一般的做法是,先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入方法进行详细分析。

问题三:P121敏捷流程中的第三步半问题?

之前是搞不懂敏捷流程为什么一定要设置第三步半这一步骤,后面又查阅书籍资料后了解到:做过项目的人都知道,当你说“任务都完成了”的时候,那只是说,开发人员认为该写的代码都写完了,但其实还有很多事情没做完。例如写一个Windows客户端的功能,显示一张新闻图片,加上与它相匹配的文字(假设这些图片/文字都可以从互联网上拿到),做完之后,还有下面的事情。我们感觉好像项目完成了80%,殊不知后面的20%往往要花费80%的时间,敏捷流程没有明确表明到底何人何时以何种优先级来完成这20%的任务。而这第三步半就设置了测试,测试人员在这个冲刺中也起到了很重要的作用。

问题四:敏捷流程到底实质上是什么?

敏捷开发流程实际上是一种以人为核心、逐步迭代、循序渐进的开发方法。敏捷思维不仅仅可以用在开发,其实各个行业,各个岗位都可以用到,它注重的是人与人之间,面对面的交流,而不是瀑布型的文档驱动,不能没有文档,但是不用写大量的文档,重点写必要的文档。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

问题五:P168的关于竞争性需求分析?

NABCD竞争性需求分析,是我目前在软件工程中接触最多也最深刻的内容。“NABCD”是由Need、Approach、Benfit、Competitors、Delivery五个单词的首字母组成,分别指需求、做法、好处、竞争、推广五部分。通过这五部分,可以清楚简明的把项目的特点概括出来。而在我们项目中,对于这五项需求的分析十分重要,在写NABCD模型时其实我对项目中的一些地方还有疑惑和疏忽。一边查阅一边写完了NABCD之后又有了更好的思路提供,怎么样做才对项目更有利。自己还尝试做了和书上饼图类似的模型,一眼明了。

三、再提问题

同时,大家一定会在实践过程中产生更多问题, 结合你的读书(教材,博客,参考书), 实践, 再提出关于软件工程的 5 个问题。

1. 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文。

2. 列出一些事例或资料,支持你的提问 。

3. 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?

问题一:单元测试的标准评判是?

我看了P25-P28这几页文字,想提出问题:我已经知道了单元测试的9个评判标准,可是什么程度才算是好的单元测试呢?

查了资料后,发现对于好的标准也没有具体定义,而倒是更明确了单元测试的意义,知道了当代码通过编译时,只是说明了它的语法正确;我们却无法保证它的语义也一定正确,此时单元测试会为我们的承诺做保证。编写单元测试就是用来验证这段代码的行为是否与我们期望的一致。有了单元测试,我们可以自信的交付自己的代码,而没有任何的后顾之忧。但对于这个好的标准定义,我还是不太懂。

问题二:完整的代码规范?

这是个老生长谈的话题,要解决前面说的这些情况,必须要有一个规范来进行约束。不以规矩不成方圆。这其实是自己的问题,因为在之前ALPHA阶段时我们团队每天都要检查修改并上传代码规范,但我们的代码规范也仅限于对于参数的定义、格式的定义。而我查阅网上资料时发现有的代码规范十分完整,像一套完整的体系一样,对于类的定义、函数生命周期、变量参数等都有解释说明。所以我也不太清楚完整的代码规范到底要包含哪些内容,还是说只要是能让团队的成员一眼就能清楚的代码规范就足够?

问题三:怎么选择适合自己团队的开发流程模式?

软件开发流程即软件设计思路和方法的一般过程,包括对软件先进行需求分析,设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编码和调试、程序联调和测试以及编写、提交程序等一系列操作以满足客户的需求并且解决客户的问题,如果有更高需求,还需要对软件进行维护、升级处理,报废处理。而其中包含了边做边改模型、瀑布模型、演化模型、增量模型、螺旋模型、喷泉模型、敏捷模型-SCRUM,每个模型都有自己的优势劣势,那么应该从什么角度去选择适合自己的团队的开发流程模式呢?

其实在查阅资料后,我个人是偏向于迭代模型,迭代模型主张采用能显著减少风险。其可以:①加快整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。②降低在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。③降低产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。④由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。

问题四:关于用户调研---获取用户需求?

我看了书上P160-P168这几页文字,其中书上有这样写:“软件的功能和用户想要的一样么?不大一样。用户满意吗?不大满意,那用户到底想要啥?我们调研一下,然后开始新的循环。。。。。。如何准确掌握用户需求?”个人认为这个问题直戳中了很多开发团队的心理,对于一个开发团队来说,自己开发出来的软件到底是不是用户所需是十分重要的。书上也说明了集中常用的用户调研方法:①焦点小组:找到一群目标用户的代表,机上项目的利益相关者来讨论用户想要什么,用户对软件的评价等;②深入面谈:通过详细的面谈,广泛而深入地了解用户的背景、心理、需求等,通常是一对一的采访;③卡片分类:在收集反馈时利用“卡片分类”的方法,把各种需求做成便于规整的小卡片,然后反复进行讨论归类流程;④用户调查问卷:向用户提供实现设计好的问题,让用户回答(我们团队这一次也是采用调查问卷的方式,虽然会比较简单,但是感觉目标不够明确);还有一些比较少用到的方法不做介绍。用户调研的方法看起来很多,但是大家都在围绕着同一个中心去获取用户需求。关于这个问题的提问,感觉是比较长久性的,我们一直在完善的目的也是因为要满足大多数不同用户的需求,所以对该如何最大限度获取用户需求这一点较困惑。

我查阅资料发现有几点原则十分重要:①没有一种人叫做“所有人”,了解需求的前提是细分用户。②和用户直接联系,而不是通过别人中转。③听用户的,但一定得自己做决定。用户描述的是需要,并不是需求,用户最内心的动机才叫做“需求”。④找到典型用户,并让自己变成自己产品的重度用户。⑤除了功能需求,了解用户背后的情感需求。

问题五:关于软件项目管理?

在ALPHA阶段的展示博客中,有个问题是“团队是如何进行项目管理的?",当时我在写这个问题的时候,就有了疑惑,因为自己对于项目管理没有一个明确的定义,也不知道其的具体流程,所以回答得很牵强。既然是软件项目管理,那就先看什么是软件?什么是项目?什么是管理?我是这样理解的:软件是程序,是控制硬件功能并指挥其运行的程序、代码和符号语言;项目是具有明确的起止时间,明确的目标、范围和成本的一次性的工作;管理是将一些理论知识、技能、工具和技巧应用到项目活动中去的行为或艺术。那么软件项目管理就应该是:主要专注于软件项目活动的一些行为分析与管理。问题来了,那么在软件项目管理中我们该进行一些什么活动呢?

我认为一个项目管理需要考虑的远不止我们想象的那么多,往往需要在众多的、甚至是相互冲突的要求中寻求一种平衡,以达到满足每个团体各方面的利益:范围、时间、成本和质量,有不同需求和期望的项目涉及人员,明确表示出来的要求(需求)和未明确表达的要求(期望)。那么上网查阅了资料后,发现软件项目管理可以分为几个阶段进行:①项目启动阶段;②项目规划阶段;③项目执行阶段;④项目控制阶段;⑤项目收尾阶段。而这几个阶段内要做的内容网上资料各有说法,虽然有个大概的框架,但是还是不能得到一套明确的答案。

4. 【附加题】:请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出链接

在豆瓣页面的最下方 “读书笔记” 那里发言, 《构建之法》的作者会亲自答复问题

徐璐琳-读书笔记


软件工程网络15个人作业4(201521123010徐璐琳)——alpha阶段个人总结的更多相关文章

  1. 软件工程网络15个人作业4--Alpha阶段个人总结

    一.个人总结 在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程: 请用自我评价表:http://www.cnblogs.com/xinz/p/3852177.html 有 ...

  2. 软件工程网络15团队作业1——团队组队&展示

    Deadline: 2018-3-25 10:00PM,以提交至班级博客时间为准. 申请开通团队博客,并将团队博客地址发表在本次随笔的评论中 团队展示 根据5-6人的组队要求,每个队伍创建团队博客并发 ...

  3. 软工网络15个人作业4——alpha阶段个人总结

    软工网络15个人作业4--alpha阶段个人总结 一.个人总结 用自我评价表:http://www.cnblogs.com/xinz/p/3852177.html 总结Alpha冲刺过程. 由于直接用 ...

  4. 软工网络15团队作业4——Alpha阶段敏捷冲刺1.0

    软工网络15团队作业4--Alpha阶段敏捷冲刺1.0 1. 各个成员在 Alpha 阶段认领的任务,以及整个项目预期的任务量(使用整数表示,与项目预估的总工作小时数一致.比如项目A预估需120小时才 ...

  5. 软工网络15团队作业4——Alpha阶段敏捷冲刺2.0

    软工网络15团队作业4--Alpha阶段敏捷冲刺2.0 1.提供当天站立式会议照片一张. 2.每个人的工作 成员 昨天已完成 今天计划完成 郭炜埕 熟悉微信web开发者工具 完成新建话题界面的设计 郑 ...

  6. 软工网络15团队作业4——Alpha阶段敏捷冲刺3.0

    软工网络15团队作业4--Alpha阶段敏捷冲刺3.0 1.每天举行站立式会议,提供当天站立式会议照片一张. 2.项目每个成员的昨天进展.存在问题.今天安排. 成员 昨天已完成 今天计划完成 郭炜埕 ...

  7. 软工网络15团队作业4——Alpha阶段敏捷冲刺4.0

    软工网络15团队作业4--Alpha阶段敏捷冲刺4.0 1.每天举行站立式会议,提供当天站立式会议照片一张. 2.项目每个成员的昨天进展.存在问题.今天安排. 成员 昨天已完成 今天计划完成 郭炜埕 ...

  8. 软工网络15团队作业4——Alpha阶段敏捷冲刺6.0

    软工网络15团队作业4--Alpha阶段敏捷冲刺6.0 1.每天举行站立式会议,提供当天站立式会议照片一张. 2.项目每个成员的昨天进展.存在问题.今天安排. 成员 昨天已完成 今天计划完成 郭炜埕 ...

  9. 软工网络15团队作业4——Alpha阶段敏捷冲刺8.0

    软工网络15团队作业4--Alpha阶段敏捷冲刺8.0 1.每天举行站立式会议,提供当天站立式会议照片一张. 2.项目每个成员的昨天进展.存在问题.今天安排. 2.1 任务完成安排: 成员 昨日已完成 ...

随机推荐

  1. git 拉取某个分支到本地

    git 拉取其实只需要 git fetch origin xxx. git pull origin xxx即可

  2. 吴裕雄 数据挖掘与分析案例实战(13)——GBDT模型的应用

    # 导入第三方包import pandas as pdimport matplotlib.pyplot as plt # 读入数据default = pd.read_excel(r'F:\\pytho ...

  3. 【英宝通Unity4.0公开课学习 】(三)脚本使用

    清明出去放松了一天. 看了下大姑爷,然后去大姑家吃了个午饭,下午三点左右出去找煤球耍,在他们学校和良乡镇逛了一下.当时感觉离北京好远好远啊... 其实不得不说现在的交通确实很方便,到哪都要不了几天,如 ...

  4. Distributing Ballot Boxes

    Distributing Ballot Boxes http://acm.hdu.edu.cn/showproblem.php?pid=4190 Time Limit: 20000/10000 MS ...

  5. python scikit-learn 安装中的各种事宜

    由于兴趣,想安装scikit,但是安装时提示pip版本低,让更新,但是他给的更新命令用了之后并不能更新成功(我是指我的) 网上的各种命令都试过了,弄了大半天还是不行,后来我把SCIKIT换成(whl- ...

  6. [leetcode]295. Find Median from Data Stream数据流的中位数

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  7. haproxy 学习

    https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#4-option%20tcp-check https://www.hapro ...

  8. .net体系与java体系

    对于.NET Framework体系结构,参考了"你必须知道的.NET"并”借用“别人的经典体系结构图从宏观上说明一下我的理解. 图1 简单的说下几个名词: CLR: 通用语言运行 ...

  9. 面向对象设计模式纵横谈:Builder 生成器模式(笔记记录)

    Builder模式的缘起 假设创建游戏中的一个房屋House设施,该房屋的构建由几个部分组成,且各个部分要富于变化. 如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正…… 动 ...

  10. 品味性能之道<二>:性能工程师可以具备的专业素养

          性能工程师可以具备的专业素养 程序语言原理,包括:C.C++.java及jvm.ASP,因为建站大部分外围应用和中间件都是JAVA编写,大部分的电商平台采用的ASP编写,底层核心系统是C/ ...