【个人阅读】软件工程M1/M2做一个总结
1.以前博客链接
http://www.cnblogs.com/penglinjiang/p/4027850.html
http://www.cnblogs.com/penglinjiang/p/4094660.html
2.请说明哪些问题现在自己已经清楚了,请阐明一下,是如何通过看书,实践,或者讨论弄清楚的
经过练习,已经明白的问题:
问题1:所谓的大教堂模式(The Cathedral model)到底怎么理解?
当时看到的定义: 源代码在本模式是公开的,但在软件的每个版本开发过程是由一个专属的团队所控管的。当时觉得这个定义很难理解,觉得在实践过程中也没有切实感受到,就一直搁置了。
现在的理解:(主要是通过自己在项目中的感受结合定义来理解的)“大教堂模式是封闭的、垂直的、集中式的开发模式,反映一种由权利关系所预先控制的层级制度”,这句话是我最终引用别人的话总结出来的,这样总结来说就是十分明了的。而我在项目开发中对这个模式也有一定的感悟,在我看来,大教堂模式就是将四方的教徒汇聚在教堂,大家一起做事儿,一起讨论,最终大家一起完成一个工程。这让我联系到我们的软件工程M1阶段,刚开始决定做这个安卓app的时候大家都感觉无从下手,所以大家就都聚在一起讨论,一起做。对于我来说,就是和队友一起从零开始学爬虫到爬取整个饿了么网站。大家开始都不会,所以就都聚在一起,聚到教堂来一起做事儿。当然,我这个比喻也有不恰当的地方,因为大教堂模式并非是因为大家都不会儿聚集,而是想一块儿做提高效率。
问题2:怎样的模式比较适合像我们这样的软件工程项目?
现在理解:我也是整个M1/M2项目下来才有所体会。从我的感受来说,在M1阶段、即项目前期最好还是采用大教堂模式,这样比较方便大家快速进入该项目;而在M2阶段,则应该采用市集模式,因为已经有了M1阶段的基础,如果再采用大教堂模式,反而有的人就开始偷懒,效率不高,这时候采用市集模式就比较有效,大家分配完成任务,到一定阶段再聚合一起,效率比较高。当然,这是针对我们这样的小项目我得出的结论,对于其他较大项目,还有待讨论。
3.哪些问题还不明白,请分析
主要有一个问题:M1阶段后,分工是否应该调整?
我不理解的原因在于:M1阶段有的人做的工作比较多,而有的人则几乎没有只进行一些最外围的工作,以致到最后都不太了解我们整个项目,在进入M2阶段后,问题就来了,如果不进行重新分工,依然是那一部分人承担了大部分工作,另一部分人仍然游离,对于承担多的那部分人来说,的确不公平,但如果冲新分工,A去接收B的工作,这样效率就会大大折扣,几乎相当于从M1重新开始,所以我对这个问题一直很矛盾。
4.产生了哪些新的问题,请提出
1、PM这个角色只是进行监督,是否合适?
2、对于代码整合的问题,很难很好的正好到一起,毕竟每人风格各异,有没有什么系统而高效的办法?
3、这是我个人遇到的问题,就是我负责团队数据爬取部分,在数据爬取过程中,我怎样判断爬取来的数据我是否可以正常使用?(法律问题)
4、其实问题同3差不多,就是我觉得我们整个项目通过爬取别人数据而不是选择找到对方选择合作哪个方式更好一点?
5.同时我们还读了8篇软件工程相关的论文或博客,你回头再看看这些文章,有没有新的体会
引用别人的一段话:“在软件技术的发展道路中,方法论起着决定性的作用。软件技术人员有必要站在哲学的高度、从方法论的角度,重新审视软件开发过程中各个环节,深刻体会软件工程和方法论的联系,从而改进和发展的现有的软件工程技术,消化吸收先进的思想、方法和技术,提高软件的质量和生产率,以适应现实世界对软件产业新的要求。软件工程应运而生。为了更好地发展和改进软件工程技术,我们有必要从方法论的各个角度分析软件工程的方法、工具和过程,从而有的放矢地改进软件工程中各个过程的思想、方法、模式和规则。”最大感受,像这样,团队合作的项目,方法真的很重要。
6.请问你们在项目的 需求/设计/实现/测试/发布/维护阶段(一共6 个阶段)中都学到了什么 “知识点”, 每个阶段只要说明一个知识点就可以。
1需求:市场调查很重要
2设计:总体布局,功能细化,分而治之
3实现:前期建议采用大教堂模式,后期则建议敏捷编程,市集模式
4测试:白盒测试工具、黑盒测试工具、性能测试工具.
5发布:到尽可能多的安卓市场发布,前期建议从身边开始推广
6维护:软件数据库管理,故障分析解决
【个人阅读】软件工程M1/M2做一个总结的更多相关文章
- 软件工程M1/M2总结及阅读作业总结
一.软件工程M1/M2总结 写下这篇总结的时候,我们的软件项目尚未完工.虽然尝试申请了延期答辩,但最终未能成功.这意味着,我们的项目能否正常发布已经处于了一个微妙的状态.可能可以,也可能不可以.只能尽 ...
- 个人阅读作业 --软件工程M1/M2总结
软件工程M1/M2总结 写在前面的话: 这学期的软件工程伴着考期的展开逐渐落下帷幕,回顾这学期的软件工程,我感觉我的热情在一次又一次的失落中逐步消耗殆尽,每个人对于这门课的体验都会有所不同吧,可以确定 ...
- 个人阅读作业——软件工程M1/M2的总结
临近学期末,本学期的软件工程课也已经结束了,在此我对软件工程课中,我们团队M1和M2开发阶段中,我做的工作做一个总结 我是DEV,主要工作是等着上级给我分配任务,但是很多时候如果这个活我不干,其他人就 ...
- 【个人阅读】软件工程M1/M2阶段总结
这次作业是好久以前布置的,由于学期末课程设计任务比较重,我在完善M2阶段的代码的同时又忙于数据库的实现和编译器的实现,一度感觉忙得透不过气来....到这些都基本完成的时候,会看自己以前的阅读心得,觉得 ...
- 软件工程M1/M2总结
也不分M1/M2了,就从头到尾的梳理一下这学期的软工课吧. 第一节课,老师就稀里哗啦说了一下这学期要怎么搞,什么个人项目啦,结对项目啦,团队项目一二啦,还要组队啊什么的,然后风风火火的组队. 个人项目 ...
- 【个人总结】软件工程M1/M2总结
个人博客连接: http://www.cnblogs.com/lwq12061168/p/4094252.html http://www.cnblogs.com/lwq12061168/p/40284 ...
- 【个人阅读作业】软件工程M1/M2总结
链接:”看<快速软件开发>的五个问题“ http://www.cnblogs.com/leiyy/p/4027759.html 一.较为明白的问题 1. 在文章的第一个关于Square_T ...
- 【个人阅读】M1/M2阶段总结
1.以前博客的链接 http://www.cnblogs.com/zyctsl/p/4028006.html http://www.cnblogs.com/zyctsl/p/4094011.html ...
- 个人阅读作业——M1/M2总结
~ http://www.cnblogs.com/wx1306/p/4831950.html 在这篇博客中,我提出来一些关于软件工程的问题,但随着这一个学期的即将结束,以及我对软件开发的了解的深入,我 ...
随机推荐
- 记一次ubuntuyu源码安装node.js
1.官网下载源码 2.下载后解压,在终端打开,并进入文件夹 3../configure 这一步可谓是一波三折,先是没有Python 安装Python 又说没有G++,安装G++后终于成功执行./con ...
- 14LaTeX学习系列之---LaTeX的浮动体
目录 目录 前言 (一)浮动体的基础知识 1.环境及语法 2.允许位置的参数 3.其他命令 (二)实例: 1.源代码 2.输出效果 (三)浮动体的高级操作 1.标题的控制 2.并排与子图表 3.绕排 ...
- [Jenkins] 如何修改jenkins上的环境变量
现象 当本地的环境变量发生变化时,在jenkins 构建时里面访问的环境变量仍是之前旧的(未更新的)导致构建出现错误,比如我以我所遇到的问题进行简单写下,下面例子中我是涉及到修改 PYTHONPATH ...
- Linter pylint is not installed
问题 Linter 'pylint' is not installed. Please install it or select another linter". Error: Module ...
- oc kvc的模式:匹配搜索模式(模式匹配)、装包解包
按照一定规则使用匹配模式在目标空间进行搜索,然后执行相应操作: 运行时系统将kvc的运行机制解释为模式匹配,将值的兼容性问题解释为装包解包问题 一.模式匹配 The default implement ...
- centos7下安装docker(13docker存储)
Docker为容器提供了两种存放数据的资源: 1.storage driver管理的镜像层和容器层 2.Data volume Storage driver 之前我们学习镜像的时候知道镜像的分层结构: ...
- UVA506-System Dependencies(拓扑序)
Problem UVA506-System Dependencies Accept:285 Submit:2824 Time Limit: 3000 mSec Problem Description ...
- java Switch中的case后面加上大括号({})和不加大括号的区别
java基础求真之switch 的case 后面加上大括号和不加大括号的区别. 下面给出三段代码大家看一下有什么不同以及哪段代码能够编译通过那段代码编译不能通过,为什么?(Why?) 代码片段一: i ...
- Codechef MGCHGYM Misha and Gym 容斥、背包、Splay
VJ传送门 简化题意:给定一个长度为\(N\)的数列,\(Q\)个操作: \(1\,x\,a\).将数列中第\(x\)个元素改为\(a\) \(2\,l\,r\).反转子序列\([l,r]\) \(3 ...
- JS-JS创建数组的三种方法
隐式创建 var arr=["Audi","BMW","Volvo"]; 直接实例化 var arr=new Array("Aud ...