201671010446姚良实验十四团队项目评审&课程总结

实验十四 团队项目评审&课程学习总结

项目 内容
这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/
这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11093584.html
作业学习目标 总结

经历了一个学期的软件工程学习和项目实践,请每位同学完成一篇个人学习总结博客,内容要求如下:

1.结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5你所提的问题(给出提问博客链接),尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的;学习中是否产生了新的问题?如有,请提出。

博客链接:https://www.cnblogs.com/yl5282/p/10513835.html

问题一:问题1:软件开发的质量是如何衡量的?

(1)软件开发技术
很多人认为,干吗要学习软件开发啊,那还不如直接去学什么JAVA、C++、C#了。要知道,在以后的软件测试工作中,你就会发现软件开发与软件测试之间是什么样的关系了。没有软件开发,就没有软件测试,有了软件测试,软件开发出的软件产品才能够达到用户满意的地步,他们之间是相互依赖关系。有了更多的软件开发知识,就会更好地能理解软件产品,就知道在哪个环节开发人员容易犯错误,知道在哪个逻辑结构、哪个接口或函数,甚至是从内存的管理机制上都可以找出问题。
软件开发所用的程序设计语言有很多种,所以要精通其中一门,其他能看懂代码,会对你的测试工作有更好的帮助,另外也会帮助开发人员进行快速缺陷定位。
而且在软件测试工作中,要编写一些辅助测试的小工具,都需要有软件开发基础。象测试过程管理工具、测试用例管理工具、缺陷跟踪工具、性能检测工具等等。
不要老是认为软件开发难,什么事都是从不会到会,从不精通到精通,都需要一个过程。没有人一生下来就什么都会的,都需要自己的不断努力才能成功。


(2)网络技术
软件是从字符界面产品发展到图形界面产品,从单机版到网络版(C/S结构和B/S结构),经历了一个漫长的过程。计算机网络的出现,改变了现实社会中人们的相互沟通方式,把一个小小的地球变成了一个地球村。所以,目前所有的软件产品都从传统的单机模式向网络模式转变,网络技术就更加关键。
目前网络的发展,使得网络速度进一步提高。目前,家庭网速达到1M~2Mbps,企业达到4Mbps,据说要到2012年家庭的网络速度要达到20Mbps。那么网络硬件从传统的电缆到目前的光纤技术、无线通信技术。从目前的发展速度,三网(电信网、电视网、计算机网络)合并是迟早的事情。
网络硬件协议的测试,也是网络设备生产商要做的工作,比如华为和中兴电子。


(3)数据库技术
现在的数据信息是海量的。在目前的软件产品中,底层架构中就需要有数据库进行数据存储,那么对数据的增删改查的操作是软件测试人员必须要必备的技能。数据库测试也是测试技术的一种。


(4)测试与质量保证技术
精通软件测试理论,熟悉软件测试流程,理解软件测试的哲学思想,掌握软件测试每个阶段的文档编写技巧,掌握软件测试的策略与各种测试方法,掌握测试用例的设计方法。掌握单元测试、集成测试、确认测试、系统测试、验收测试等每个阶段的测试技术。软件质量保证知识、测试项目管理、测试团队建设知识也是必须要具备的。
掌握软件测试自动化工具,理解软件测试自动化测试框架,能够学会如何进行测试项目管理、回归测试以及性能测试,能够把性能缺陷进行定位。
软件测试还是一个崭新的学科,还没有形成一个独有的知识体系,还需要我们不断的研究与实践。


(5)行业知识
目前软件测试涉及的行业是多种多样的,从金融产品到电信、游戏、汽车、杀毒、网站、企业管理、学校教育、本地化产品等等,各行各业的软件产品都需要大量的测试,所以相关行业知识的储备也是必须的。


(6)职场规范
职场礼仪是必须的,你是否适合某个企业,能否融入这个企业,基本的职场规范是要学习的。必要、有效的沟通也是软件测试人员所必须掌握的技巧。

####问题二:结对编程的好处是什么?
1.丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。
2.最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。
3.不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
4.对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
5.多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
####问题三:团队项目如何合理的分配成员的任务?

软件测试是软件质量保证工作的一个活动。即软件测试是软件质量保证工作的一个子集。软件质量保证工作包括:评审,配置管理、风险管理、测试、建立标准、进行度量等一系列活动。
软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。

2.总结自己在项目的 可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”。

可行性分析:分析开发的软件是否有价值开发、估算软件成本、分析收入、描绘出流程图、与用户分析讨论征求意见、最后生成可行性研究报告。 对软件开发之后取得经济效益和社会影响力进行分析预测、从而提出软件是否值得开发、可行性分析应具有预见性、公正性、可靠性、科学性的特点。
需求分析:需求分析是在软件系统分析人员的操作下进行的,在这个过程中,用户和开发者之间需要 达成的是对系统的一致性需求认识。实际上,可以把软件系统分析人员看成是软件用户与软件 开发技术人员之间的信息通道,其作用是使用户对软件问题的现实描述,能够有效地转变为开 发软件的技术人员所需要的对软件的技术描述,以方便技术人员对软件的技术构建。
软件设计:在经历过计划阶段和需求分析的阶段接下来就到了软件设计的阶段,他是软件工程中非常重要的阶段,它主要是分两步来完成,一个是概要设计,一个是详细设计! 实现:1.定义编码风格(程序设计风格、编程风 格),是指导人们编写出逻辑明清晰、 易读易懂程序的基本原则。

2.内容(1)源程序文档化:为了提高程序的可维护性,源代码也 需要实现文档化(内部文档编制)。包括: 1、符号名的命名: 2、程序注释:序言、功能等。


测试:黑盒测试:功能测试;数据驱动测试;基于规格说明书的测试
白盒测试:结构测试;玻璃盒测试; 基于覆盖的测试.; 根据被测程序的逻辑结构设计测试用例;力求提高测试覆盖率;


验收:在验收中发现了我们还存在着很多的问题没有去解决,系统制作出来和之前预想的有着较大的出入,这主要是因为技术不到位,以后还得学习软件开发的技术。

3.结合个人项目/结对编程/团队项目的个人经历,谈谈心得。

可以把封装和信息隐藏视为同一个概念的两种表述。信息隐藏是目的,封装是达到这个目的的技术。 封装可以被定义为对对象的内部数据表现形式和实现细节进行隐藏。要想访问封装过的对象中的数据,只有使用已定义的操作这一种办法。通过封装可以强制实施信息隐藏。许多面向对象语言都使用关键字来说明某些方法和属性应被隐藏。但在JavaScript中没有这样的关键字,我们将使用闭包的概念来创建只允许从对象内部访问的方法和属性。这比使用关键字的办法更复杂。
###4.总结这门课程的实践总结和给你带来的提升,包括以下内容:
1.统计在软件工程实践中,你完成了多少行的代码;
在软件工程实践中,我完成了大概有1500行代码。

2.你在软件工程实践的各次作业分别花了多少时间?(做一个列表)
作业 时间
实验一 4h
实验二 8h
实验三 7h
实验四 8h
实验五 8h
实验六 14h
实验七 16h
实验八 15h
实验九 15h
实验十 20h
实验十一 25h
实验十二 15h
实验十三 20h
3.哪一次作业让你印象最深刻?为什么?
印象最深刻的是代码实现阶段的作业,因为我们组成员代码量均少,对代码的编写较为困难,那段时间是比较难的,所以印象深刻。
4.累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
累计花了大概200小时左右,平均每周花13小时左右。
5.你学习和掌握的新语言、新平台;
新语言:c#、java。java语言在以前也学过一些,但是学的都不是精通,通过这学期,也学到了一些有用的东西。
新平台:博客园、GitHub、中国大学MOOC、Markdown、CSDN
6.填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;
软件开发工具、项目管理工具 软件开发方法 软件建模方法
Github,MyEclipse,MySQL,墨刀,mockplus,SQL sever 结对编程、代码重用、面向对象 数据流图,数据库建模,面对对象建模,结构化建模

你认为目前的课程存在哪些问题,你有什么更好的建议。

原文地址:https://www.cnblogs.com/yl5282/p/11111331.html