zoukankan      html  css  js  c++  java
  • 实验十四 团队项目评审&课程学习总结

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

    项目 内容
    这个作业属于哪个课程 软件工程 代祖华老师 博客
    这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结
    作业学习目标 (1)掌握软件项目评审会流程;(2)反思总结课程学习内容。

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

    《实验一 软件工程准备》博客链接

    • 问题一:在软件开发的过程中,怎样的合作互动才能使软件开发流程不因为意见不一致而拖延进度,需要怎样合理的安排分工?老师上课说所有人有一个共同的目标,就能很好的开发软件,但是人总会有各种各样的想法,各种各样的意见,我们不能无视这些意见,而应该汲取其中优秀的意见改进我们的软件,但是怎么能平衡这些意见?

    解答:在软件开发过程中,小组成员有不同的意见是很正常的,但是当小组成员意见不一致又由于时间限制不能拖慢进度时,小组的组长就应该负起责任,可以开一个小组会议,针对有不同意见的地方进行讨论,最后可以小组内投票决定意见的最终方案。其次,合理的分工也是软件开发的一个重要的关注点,合理的分工可以减少小组内的矛盾,加快开发进度。分工主要由小组组长负责,本次软件工程的项目开发我是《BUG创造队》小组的组长,在项目之初进行分工的时候我很机械的安排每个人做一部分,没有小组讨论,所有事情由我一人拍板决定,后来这种做法就渐渐暴露出了弊端,因为我不可能把整体任务分成完全平分的四分,总有人做的稍微多一点,有人少一点。后来,我在每次分工的时候都会开一次小组会议,将要做的任务列出来,每个人根据自己的特长选择自己想做的,这样小组成员的对于分工的矛盾就基本解决了。由于我们多次开小组会议,小组成员在每次会议上都会有新的想法,有些意见对我们的完善项目有很好的作用,有些就是超出了我们的能力范围,对于这些意见我们小组都进行了充分的讨论,由小组成员来决定这些意见是否加入我们的项目开发中。这样就平衡了小组成员的意见。

    • 问题二:在需求分析阶段,如何能明确的确定我们所分析的需求就是人们所需要的,怎样识别人们所提出的意见是否有效,并且怎样平衡需求和我们的能力还有时间之间的差距?

    解答:在我们小组的需求分析阶段,我们首先进行了情景模拟,来获取需求信息。之后,通过老师的点评,我们又去了学校周围的小区进行了走访,并且在自己家人和同学中间进行了问卷调查。这样,我们就获取了第一手需求信息,之后,我们统计了各个需求在调研过程中的占比,将占比较小的功能识别为无效意见。然后,占比较大的功能尽力实现。但是,有时由于时间有限和我们自身能力不足,不能完全实现占比较高的功能,我们会进行小组讨论,由大家决定我们要实现那些功能。其次,作为小组组长,我也会根据小组成员的能力和我们项目的开发时间,保留一些能提高我们能力的需求功能,使我们在开发项目的同时能提升自身实力。

    • 问题三:成为软件工程师的第一步是什么?是很好的编写代码的能力或是很高的组织管理能力等等?

    解答:通过这次项目开发,我觉得成为软件工程师的第一步应该是很高的组织管理能力。因为项目开发是一个合作共赢的过程,但是如果管理人员能力不够,将会导致项目开发在项目之初就崩溃瓦解。编写代码的能力也很重要,但是首先应该有管理人员将项目任务分清楚,编码人员才能实施编写。所以,我觉得组织管理能力是成为软件工程师的第一步。

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

    我在本次项目开发中学习到了一下知识点:

    • 1.可行性分析:可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性分析包括投资必要性,技术可行性,组织可行性,资金可行性,政策可行性等。
    • 2.软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。
      a.业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。
      b.用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本说明中予以说明。
      c.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。
    • 3.软件设计包括软件的结构设计,数据设计,接口设计和过程设计。
      a.结构设计:定义软件系统各主要部件之间的关系。
      b.数据设计:将模型转换成数据结构的定义。
      c.接口设计:软件内部,软件和操作系统间以及软件和人之间如何通信。
      d.过程设计:系统结构部件转换成软件的过程描述。
    • 4.实现:软件编码实现是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
    • 5.测试:软件测试方法有:
      a.静态测试方法
      b.动态测试
      c.黑盒测试
      d.白盒测试
    • 6.项目验收:项目验收的依据
      a.工作成果:工作成果是项目实施的结果,项目收尾时提交的工作成果要符合项目目标。工作成果验收合格,项目才能终止。因此,项目验收的重点是对项目的工作成果进行审查。
      b.成果说明:项目团队还要向客户提供说明项目成果的文件,如技术要求说明书、技术文件、图纸等,以供验收审查。项目成果文件随着项目类型的不同而有所不同。

    任务三:结合个人项目/结对编程/团队项目的个人经历,谈谈心得。

     通过本次的项目开发,我对软件开发的流程有了一个深入的了解,同时也提高了自身的编码能力。之后,通过项目开发的结对编程,我发现了项目成员互相沟通,理解的重要性。在本次项目开发中,我担任小组的组长,并且负责项目中缴费功能代码的编写。作为小组组长,我对项目管理的个人感受比较深,因为我需要协调小组成员的工作,了解她们的进度,及时组织小组会议,解决项目开发中的问题。所以,本次项目开发提高了我的组织管理能力。其次,在项目设计和编码阶段,我也认识到了小组合作的重要性,因为我们小组做的是小区物业管理系统,基本每个页面的外部框架都是相同的,所以,我们将相同的代码进行了代码复用,以减少我们的工作量。最后,我也认识到了请教他人的好处,不能自己遇到困难憋着,在必要时候去询问学长学姐和同学,他们可能会给予我很完美的解答。本次项目开发我收获很多,同时希望在以后的时间里,继续完善我们小组的任务,尤其是我写的缴费功能,将缴费接口加入进去,使项目更加完善。
    

    任务四:总结这门课程的实践总结和给你带来的提升,包括以下内容:

    • 1.统计在软件工程实践中,你完成了多少行的代码;

    在软件工程的实践中,大概完成了2500行代码。

    • 2.你在软件工程实践的各次作业分别花了多少时间?(做一个列表)
    软件工程作业 花费时间/h
    实验一 软件工程准备 4
    实验二 软件工程个人项目 15
    实验三 作业互评与改进 15
    实验四 团队作业1:软件研发团队组建 5
    实验五 团队作业2:团队项目选题 7
    实验六 团队作业3:团队项目原型设计与开发 15
    实验七 团队作业4:基于原型的团队项目需求调研与分析 20
    实验八 团队作业5:团队项目需求改进与系统设计 17
    实验九 团队作业6:团队项目系统设计改进与详细设计 18
    实验十 团队作业7:软件测试与Alpha冲刺 20
    实验十一 团队作业8:Beta冲刺与团队项目验收 20
    • 3.哪一次作业让你印象最深刻?为什么?
     我印象最深刻的一次作业是实验十二 团队作业7:软件测试与Alpha冲刺,由于我们班多次放假的时候没有上软件工程的课,导致我们的课程进度很慢,所以老师要求我们在一周内编写软件代码。我在编写代码的时候,遇到了很多困难,比如添加缴费功能时需要弹出一个窗口填写相关信息,我在编写代码的时候,窗口总是无法跳出,不显示。之后,通过询问学姐,解决了这个问题。还有之后的数据库链接,由于电脑的环境配置不合适,借用了同学的电脑进行调试。这次作业,让我深深的意识到请求别人帮助的重要性。
    
    • 4.累计花了多少个小时在软件工程实践上?平均每周花多少个小时?

    累计共花了180个小时在软件工程实践上,平均每周大约花10个小时在软件工程实践上。

    • 5.你学习和掌握的新语言、新平台;

    博客园、Markdown、GitHub、中国大学MOOC、摹客、,leango,雨课堂。

    • 6.填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;
    软件开发工具,项目管理工具 软件开发方法 软件建模方法
    GitHub,MyEclipse,MySQL 面向对象方法,Jackson方法,原型方法 数据流图,数据库建模,面对对象建模
    • 7.其他方面的收获或提升。

    通过这学期的学习和项目开发经验,我学习到了很多关于人际交流方面的方法。除此之外,我也学会了博客的撰写,如何和同学一起开发一个完整的项目。并且对数据库开发和Javaweb开发的内容进行了巩固。并且在项目开发的过程中,发现了自己的一些不足和小问题,让我对自己有了更加深刻的了解,改正了自己某些方面的不足。

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

      本课程老师所采用的教学方式是反转课堂,还课堂于学生。但是,这学期我并没有完全适应这种方式,而且学习效率特别低下。因为之前都是以老师为主的课堂,忽然之间把所有的学习任务托付给自己,我还是不太能适应。所以,希望老师在以后的教学改革中,可以有一个过渡阶段。其次,通过自己开发项目学习软件工程的流程,编写开发文档有一定的好处。但是,由于软件开发项目周期长,导致对整体流程还是很模糊。建议老师以后可以从项目开发之初列一张软件开发工程需要做的工作的清单,然后每做一项,让学生在清单上打勾,这样可以使我们对软件项目的开发有一个整体的感受。其次,希望老师可以减少一些作业量,由于大三我们需要靠各种资格证书还有为考研做准备,所以,软件工程的作业有时会占用大量的时间,导致我的最终效果也不是很好。最后,感谢代祖华老师一学期的辛勤教导。
  • 相关阅读:
    Talk the Talk
    2.1 使用eclipse4.4 搭建 maven简单结构项目。
    [LeetCode] Best Time to Buy and Sell Stock
    hdu4605Magic Ball Game 树状数组
    phoenixframe自己主动化平台在Linux环境下运行用例的说明
    数据存储值归档Archive
    BZOJ 1040 ZJOI2008 骑士 树形DP
    HDOJ 5357 Easy Sequence DP
    Autodesk 招聘Revit二次开发咨询顾问,与Autodesk全球团队紧密合作,提高职业生涯的好机会
    Codeforces Round #263 (Div. 1) A B C
  • 原文地址:https://www.cnblogs.com/yanxuanwindy/p/11104540.html
Copyright © 2011-2022 走看看