##一..结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5你所提的问题(给出提问博客链接),尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的;学习中是否产生了新的问题?如有,请提出。##
提问博客连接:https://www.cnblogs.com/yanglulu-yang/archive/2019/03/11.html
在实验一软件工程准备中提出的问题在通过一学期的软件功能的学习有了一定的答案,具体如下:
###1.软件开发语言之间是要按社会上火热的语言学习还是要学习稳定的语言?###
答:软件语言的学习是没有一定次序的,也不是说流行什=什么就去学习什么,而是要掌握一定的语言,在自己掌握的语言的基础上对新的语言进行学习,不断的提高自己的代码能力,语言没有说是一定的稳定,而是自己掌握的稳定。学习任何一门的语言都要有一定的学习方法,对自己所学的语言要掌握一定的技巧,在这个学习过程中要不断的探索之间的问题,当然网络时代更新换代很快,不能说会一门语言就走天下,而是在一门语言的基础上不断的学习其他的语言。
###2.各种语言之间算法的核心。###
答:所有的算法都是一样的,不同语言之间都是相同的算法,算法是语言中的核心,是实现功能的关键,在学习过程中要主要的是对算法的理解是实现。算法是学习软件开发的核心,在学习过程中理解和掌握算法的过程,不能说是什么语言就要用什么算法,而是对任何语言的算法核心掌握。
###3.基础代码的累积。###
答:代码的积累是很重要的,这是要通过自己长时间的积累才能达到的,在平时要做到对代码的熟悉,对代码的积累。其实在软件开发过程中只有勤快的累积代码量才能提高自己的代码质量,当然不是一味的敲代码,还要在编写代码过程中思考代码执行的原理,理解的基础上学习,不断的提高自己的代码质量和数量,在学习过程中学会自己思考,不同问题有很多种解决方法,代码的实现也会不同,要思考过程。
###4.各学科之间的联系。###
答:其实每门课之间是有联系的,这之间的联系是紧凑的,例如在学习完c语言会学习java,在语言课程的学习完成之后才会学习软件工程,在学习软件工程课程中我们能明确的感觉到里面涉及到的知识大多是之前学习过的,要有一定的掌握才能学习软件工程这门课程。
###5.MSF过程模型的实现细节具体是怎样实现的?###
答:MSF建议一个解决方案可以先构建、测试、开发出一个核心的功能。然后,其他的功能特征可以被加入,这就是通常所说的发布策略。对于一些小的工程来说,它通常只需一个版本。然而,微软推荐把它们分成多个版本,从而可以找到改进的机会。版本发布没有必要按顺序进行,成熟的软件产品经常会有多个版本重叠的发布周期。版本发布之间的间隔时间,根据项目的规模、类型、用户要求和策略的不同而不同。
###6.在敏捷流程中怎么体现依赖关系?###
答:敏捷的流程是指一系列价值观和方法论的集合。介绍了一些敏捷开发原则,比如,经常发布可用的软件,业务人员和开发人员在项目开发过程中应该每天共同工作,面对面的交流始终是最有效的沟通方式,不断关注技术和设计,保持简明,团队要学会自我管理,时时总结如何提高团队效率,并付诸行动。敏捷流程的方法论---Scrum方法论。首先第一步需要找出完成产品需要做的事情,然后决定当前的冲刺需要解决的事情,第三步就会开始进行冲刺,冲刺期间每天要开一个每日例会,大家依次报告昨天做了什么,今天要做什么,碰到了什么问题。同时还有做图表,可以是燃尽图,也可以是看版图,未开始,进行中,已完成三个板块。最后会得到软件的一个增量版本,进行发布。
当然开发过程中也会碰到一些问题,比如任务之间是有依赖关系的,怎么在计划中体现依赖关系?团队成员领取任务时,会出现问题;每日会议可能会流于形式。这就需要定义好任务究竟是什么。
二.总结自己在项目的 可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”。##
答:主要学到的知识有:对一个项目的需求分析,通过程序流程图、PAD图等对需求分析的学习。面向对象的学习,面向对象的设计、面向对象的实现等,OOA、OOD等,软件项目代码的实现,编码过程,在完成一个功能后的测试,整个项目完成之后通过系统的测试来完善自己的项目,对测试过程的学习。
三.结合个人项目/结对编程/团队项目的个人经历,谈谈心得。##
答:在整个项目过程中主要学到了项目的完成不仅仅是代码的实现,更多的是获取需求分析和项目实现的分析,一步一步的对整个项目进行模块的划分,通过模块的形式对项目进行完成,前期过程中我们也是刚接触这样团队项目的实现,有这模块划分不均等一些问题,在慢慢的磨合中越来越默契,我个人在整个项目中学到的不仅仅是对代码的提高,更多的是整个项目实现方式的学习,从着手这个项目开始一步一步的完成有种自己养大的宠物的感觉,在出现的各种问题中也在不断的进行解决,即将结束这个项目,我也从我们团队中其他的同学身上学会了一些他们的优点,在项目实施过程中,遇到问题组长总是能带领大家一步一步的解决,临危不惧的带领我们大家完成项目,我们其他队员也是很艰苦的在实现项目,这些过程中学习到的不是用语言能一点写完的,总的来说就是一个很大的收获,是对自己提升的一截能力。
四.总结这门课程的实践总结和给你带来的提升,包括以下内容:##
答:在软件工程实践中,我们组项目代码的完成中我一共完成了2500行左右的代码,主要花费时间如下表:
作业 | 花费时间(每周) |
第一次作业:团队亮相 | 12h |
第二次作业:团队项目选题报告 | 18h |
第三次作业:团队项目的原型设计 | 20h |
第四次作业:项目需求调研与分析 | 24 |
第五次作业:项目需求分析改进与系统设计 | 25h |
第六次作业:团队项目系统设计改进与详细设计 | 25h |
第七次作业:团队项目设计完善&编码 | 30h |
第八次团队作业:Alpha冲刺 | 26h |
第九次团队作业:Beta冲刺与验收准备 | 26h |
在这次项目中,让我印象最为深刻的是第实验十 团队作业6:团队项目系统设计改进与详细设计的完成,因为在这次作业中进行详细设计过程中我们要开始对一些功能进行一定的算法的实现,对购物车算法的实现中有了困难,开始没有想到map集合,后来才用饿map集合。
一共在软件工程这门课程中花费了340个小时左右,平均每周花费了24小时。
软件开发工具、项目管理工具 | 软件开发方法 | 软件建模方法 |
eclipse,myeclipse | 面向对象开发方法 | 面向对象方法(Object Oriented Method |