课程 |
软件工程原理与方法 |
作业要求 |
https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3393 |
团队名 |
Developer |
作业目的 |
课程总结 |
许思 201731062509:
1. 请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。
https://www.cnblogs.com/xusi/p/10553774.html
2. 问题的解答
我曾经提出一个问题,就是关于软件项目任务量大小估计的问题,仅仅根据代码行数已经仅仅根据功能点数来估计都有些粗略,通过查资料,我找到如下估计方法:
PERT估计法:PERT对各个项目活动的完成时间按三种不同情况估计:一个产品的期望规模,一个最低可能估计,一个最高可能估计。用这三个估计用来得到一个产品期望规模和标准偏差的Pert统计估计。Pert估计可得到代码行的期望值E和标准偏差SD,根据E和SD与以前项目的E和SD就可以估计出项目的相对大小。
WBS估计法:将项目或产品分解为具体的工作,然后分别对各个工作进行时间估算,最终求和得出项目或产品的测试工作量/时间。
类比法:根据以前或相似项目(主要在项目性质,领域,规模上有相似)所积累的经验或历史数据来。
3. 是否产生新问题
认为自己的技术水平和编程能力还远远不够......
4. 经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
通过这个学期的学习,我熟练掌握了GitHub的项目上传与下载,学会了使用Visio画软件工程的各种图,通过团队项目的练习,我也学会了服务器的搭建以及学会了合作完成一个项目。
5. 深刻体会
还是自己的编程技术与能力太差了,以及完成的项目太少,没有什么项目经验,我们都知道软件工程这个领域,没有一定技术是很难站住脚的,接下来的大学时间还是应该多多自己学习,通过学习项目去巩固自己的技术,去锻炼自己的编程能力。
熊大鹏 201731062434:
1、 请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。
https://www.cnblogs.com/qingfy/p/10567838.html
2、 问题的解答
我曾经提问什么是软件工程,我们现在所学的,所写的代码离实际的软件还差得远,那软件具体又是什么?
通过这次与团队合作完成一个项目,我亲身参与了这个做出软件这一过程,尽管我们所做的项目可能还很简单,也许离实际的能用还曾在一些问题,但至少让我对软件这一定义有更清楚地认识,有时候文字难以描述的,或许亲身经历了更容易明白,所以对于现在的我们来说,就应该从基础开始,敲出更多的代码,为以后开发软件打下坚实的基础。
3、 是否产生新问题
我觉得最主要的问题还是自己的代码水平吧!这次软件开发我负责的是界面的设计,所以并没有去敲代码,当然我知道如果让我去写出一个软件的功能代码,那对于我来说的确很难,所以以后的任务就是提高自己的代码水平。
4、 经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
这学期的作业都是在博客园上完成的,前期有用到GitHub,作为自己的一个代码保存仓库,还有画流程图,顶层图需要用到的Visio工具,主要都是通过自己摸索慢慢学会使用的。
5、 深刻体会
这次开发软件用了大概七周吧,是一个比较漫长的过程,软件开发不是一个直接就开始敲代码的过程,前期的分析准备是非常重要的,可行性分析、需求分析、概要设计、详细设计这是需要规划的,是一个项目完成必不可少的步骤,所以相比开发我觉得规划更为重要。其次,团队合作也是一个相当重要的条件,成员之间的沟通、协调促使软件的成功开发,包括你自己的一些创意与想法也需要沟通才能实现,每个角色在团队里的任务不同,如何保证能按时完成项目任务,不拖延项目进度的完成也是一个相当大的挑战。
孙长宇 201731062507
1.请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。
https://www.cnblogs.com/justice666/p/10560023.html
2.问题的解答
第一章 概论 1.2.3中有一个提问也是我自己想问的——“以后的‘人工智能’会自己写程序吗?”
人工智能具有解决软件开发中的一个古老问题的潜力。代码编写或操纵其他代码的能力的概念已经存在了很长时间,一般称为元编程(它实际上起源于20世纪50年代末的Lisp)。它解决的难题,目前都还在人们的想象之中。
但是,现在人工智能让改变发生了。
使用人工智能,计算机能够理解一个软件开发项目从无到有的发展历史过程中的所有代码,并立即改进或者删除单独一行代码中的bug,不管是用什么编程语言。即便是一个缺乏经验的或者中等水平的程序员都能讲清楚让计算机自我编程的原理。由此, 一个癌症项目的研究可能几天或者几个月就能完成,而不需要花费好几年的时间,这将带来显著的进步。今天,这项最终将会带来颠覆性改变的技术尚处在萌芽时期,但是,它已经开始生长。比如,谷歌的TensorFlow机器学习软件,让每位程序员都能将 神经网络直接融入到所开发的APP中,让APP拥有识别图片中的人和物体的能力。要把这些想法变成现实,你将不再需要一个博士学位。让业余人士也可以修正程序,这可能会成为AI发展历史上最大的突破。
3.是否产生新问题
问题有很多,而且很多的知识课堂上没有,只能自己查
4.经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
学会了github的使用,用visio画图,qpt来测试,关于数据库的操作与使用
丁一峰 201731062508:
1、 请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。
https://www.cnblogs.com/ddyf/p/10574694.html
2、问题的解答:
我曾经问过软件工程是我喜欢的领域吗,是我擅长的领域吗?
通过本次软件项目的开发,我发现虽然开发过程当中有些时候是枯燥乏味的,但在看到自己的工作有所进展之时,会发自内心的感到愉悦,我认为软件工程仍是我喜欢的领域。但在开发过程中,会发现自己经常性会出现一些问题,难以突破,所以现在还不太擅长这门领域。希望以后能有所提升。
3、 是否产生新问题
在开发过程中,还有很多知识点感觉到不足,因此翻阅了许多资料,花费了许多时间。这个是此次开发过程的问题所在。
4、 经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
掌握到了对GitHub的使用,以及流程图的绘制等。
5、 深刻体会
要多多丰富自己提升自己的知识储备量,为以后开发工作铺好坚实的基础。
唐林 201731062433:
1.请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。
https://www.cnblogs.com/tanglin1/p/10574651.html
2.问题的解答
我曾经提出一个问题,就是在分析和定义软件需求的时候该怎样来对需求进行分类?通过百度和咨询同学得出了以下结论:软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。
1.业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。
2.用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(usecase)文档或方案脚本说明中予以说明。
3.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。
4. 软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。
3.是否产生新问题
自己的专业水平还需要提高。
4.经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的?
我学会了GitHub的安装以及基本的使用。在团队项目中,学会了如何与队友合作完成项目,以及项目的分工。
5.深刻体会
自己的专业技能太差不足以独立完成项目,而且实践过少,不能很快的完成划分的工作,后面的时间希望自己更多的实践提升自己的编程能力以及团队协作的能力。
小组GitHub地址:https://github.com/softwareXS/APP