这个作业属于哪个课程: | <课程的链接点这里> |
这个作业要求在哪里: | <作业要求的链接点这里> |
我在这个课程的目标是: |
了解软件开发的具体过程; 学习如何规范化的进行软件开发 |
这个作业在哪个具体方面帮助我实现目标: |
能够思考软件开发中的可能存在的问题; 通过阅读教材对软件工程有一个浅显的了解 |
一.建立博客并介绍自己
2017级软件工程二班,程晓溪
技能树等于没有。最大的闪光点可能是接受新事物比较快,能够快速找到学习切入点(然而并不能精通)
我的博客地址:https://www.cnblogs.com/chengxiao299/
二.阅读与思考
1)回想一下初入大学时对软件工程专业的畅想
-
当初你是如何做出选择软件工程专业的决定的?
因为个人对计算机非常感兴趣,高考填报的所有志愿都于计算机相关,录取专业是计算机科学与技术。入学后了解了每个专业的培养方案,认为自己不太适合硬件方面的学习,遂转入软件工程专业。
-
你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
基本符合。目前仅学习了编程基础,开始接触软件项目开发相关的内容。并没有深入了解到软件项目开发的具体过程,如软件项目管理,软件项目测试等等。
-
你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
是,对软件项目开发的过程非常感兴趣,但目前并不擅长,基本没有实战经验。
-
将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
将来会选择从事软件开发相关的工作。
-
- 想去的城市:上海、杭州、北京、武汉等。
- 想去的公司:没有明确的目标公司,想去提供理想岗位的公司。
- 理想岗位:研发岗(数学限制了选择算法岗的可能性...)
2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
-
自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
- 熟悉CC++、C#、JAVA、Python等;
- 了解基本数据结构以及基本算法;
- 有一定的软件工程思想。
已写过代码量:非重复代码大概5000行
-
离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
- 欠缺独立编程能力;
- 对软件项目开发过程基本不了解,不清楚具体的开发工程使用的方法和工具等等;
- 没有真正的团队协作经验;
- 缺乏沟通合作的能力;
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
-
对照以上你阅读的前人们的经历,你的选择是什么?
工作或者考研。
-
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
应届毕业生基本都处于“考不上研就找工作,找不到工作就考研”的状态,并没有太多人坚持一种选择。
-
- 考研对于我来说是深入学习知识的途径,可以提高竞争力,劣势就是可能存在技术跟不上以后的实际需求(=还是找不到工作)
- 直接工作就是积累更多的实践经验,大概率可以清晰的规划以后的人生;劣势是可能再也没有学校学习的这种学术氛围,过于注重实用技能,缺乏创新的思想。
-
针对你的选择,你给自己的大三设定的规划安排是什么?
继续深入了解计算机领域,争取了解更多的分支学课,找到自己真正的兴趣所在,决定是否深造或进行实践。
三.提有质量的问题
1、【第3章 软件工程师的成长】
开设软件工程这门课到底希望学生掌握什么技巧,什么思想?我认为全书中提出的观点在实践中都会出现与其不一致甚至完全相反、矛盾的地方,如何在实践中运用软件工程中所学的东西去解决书中所没有列出的情况?
2、教材【第8章 需求分析】
2.1 讲述了如何准确找到软件需求,但如何引导客户正确表达自己的需求?
在实际过程中,很难通过仅通过软件团队的分析找到客户的理想情况,往往客户并不清楚自己想要的必须功能是哪些,仅给出类似的项目要求模仿,如何找到真正需求的功能?
2.2并不是客户要求的所有功能都能够最终实现,如何与客户的需求达成一致?
在软件设计中存在有些功能要求是多余的或者很难实现,如何找到代替方案?
3、教材【第12章 用户体验 12.1.6 用户体验和质量】
用户体验和产品质量之间的冲突。教材中的观点是用户体验大于质量,实际开发过程中也是遵循这一原则的。
一个产品上线之后,用户初期很满意,后期在使用过程中就会触发各种BUG,反馈过后软件团队就会进行相应的修补,而后提示用户更新软件。windows操作系统就是一个不停提示更新打补丁的例子,在初期满意后续需要不断的更新的情况下,用户的体验也会逐渐下降,如何找到用户体验度和软件质量中的平衡点。
4、 教材【第13章 软件测试】
测试团队中是否应该包括开发人员?如何保证测试人员修补的代码质量?
测试人员可能没有开发人员了解自己所写的代码,不能更加精确的进行测试;同时测试人员的代码水平往往没有开发人员高,在修改代码的过程中无法保证代码的正确率,而在再次测试的过程中,测试人员也就担任了一定程度的开发角色,这是一个矛盾的问题...
四.了解和调查源程序版本管理工具
- 【Git】分布式版本控制系统
优点:开源,能够有效、高速地处理极小或非常大的项目版本管理
缺点:上手难;本地部署需要自行搭建环境
- 【Microsoft Team Foundation Server】
优点:任何IDE都可以使用;shelveset功能;适用于规模较大的项目
缺点:用户界面不简洁;运行速度非常慢...
- 【Trac】
优点:界面干净;方便使用ticket号码和SVN版本号
缺点:不支持访问远程Subversion库,管理操作为命令行操作
(出现较早,现有功能已被其他管理工具替代的差不多了,已经不算能是目前流行的了)