第一次作业——唐若宸

第一次阅读和准备作业

 

这个作业属于哪个课程

https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/

这个作业要求在哪里

https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713

我在这个课程的目标是

了解软件,并能掌握软件开发的基本流程以及各种开发模式

这个作业在哪个具体方面帮助我实现目标 

让我独立思考,直面自己

 

一. 建立博客并介绍自己

     我是一个西南石油软件工程的大二学生。比较喜欢电子产品,看电影,听歌,日漫,美剧。希望自己能去世界各地旅游,但目前还是要把精力花在学习上,以后才有机会,同时也要好好锻炼身体。

二.阅读与思考

   (1)回想一下你初入大学时对软件工程专业的畅想

  • 当初你是如何做出选择软件工程专业的决定的?

      在高中就对编程等很感兴趣,奈何一直没有自己动手自学,高考后本来选的专业是计算机类的,但被调剂到了其他专业,然而我对原专业并没有兴趣,于是在转专业的时候选择了软件工程。

  • 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?

       满足,当时转专业也并没有对软件工程了解多少,认知仍然停留在敲代码,编程,以为软件工程就是学敲代码的。在过去两年中学到了很多其他的课程,了解了程序的开发,团队的合作以及重要性也学到了自己想学的课程。

  • 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?

      是我喜欢的领域,但是不是我擅长的还需要时间证明。

  • 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因

      会,现在想留在成都。

(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你

  • 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?

      会c,c#,数据库等,对一些知识并不熟悉,没有勤加练习,之后会加强练习,除了老师布置的作业,自己也写过几个小游戏,不过都是参考了教程。

  • 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?

       缺乏对知识的了解,并不能把学过的知识联会贯通。

(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。

  • 对照以上你阅读的前人们的经历,你的选择是什么?

      考研,由于自己和他人对比还有许多不足,所以我想继续读研。

  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?

      能在更深层次的领域继续钻研,在工作经验方面会有欠缺。

  • 针对你的选择,你给自己的大三设定的规划安排是什么?

       复习专业知识和基础课程,为考研做准备。

 三.提有质量的问题

      问题一:《构建之法》第一章概论 p12,其中作者举例到计算机领域人工智能的一个重大挑战,计算机能否在国际象棋这个游戏中打败人类,许多研究人员从理论和“智能”的角度去着手却不能打败,但许峰雄通过“蛮力”提高计算速度的方法打败了人类。我认为“智能”应该是有自己的思维方法,我的疑问是如果单纯通过提高计算速度,就能做到打败人类,那么人工智能领域提高计算机的计算速度的方法是不是比优化算法的效率更有效率,如果只是单纯的提高计算速度,那么它还算不算“智能”。

      问题二:《构建之法》第四章p78,其中提到结对编程,两个程序员使用同一个键盘,同一个屏幕一起工作。我的疑问是两人一起编程会不会浪费了资源,如果两人都可以独立完成编程,那么他们可以各自完成自己的任务,会不会效率更高,而且每个人的思维方式也不同,难免会在编程中有不同的见解。

      问题三:《构建之法》第三章p49,其中提到“过早的优化是一切罪恶的根源”,但也有句老话是“防患于未然”,凡事都要提前考虑,有充分准备的人才不会被突发事件影响。那么作者所说的“过早优化”中的“过早“是什么意思,是怎样定义”过早“这个词,作为开发人员的我们应该什么时候开始优化呢?

     问题四:《构建之法》第五章团队和流程p91,这一张讲到团队的重要性,并提出“非团队是乌合之众”。但是其实也有很多优秀软件是独立完成的,比如wps,据说是金山老总把自己关在酒店里两个月写了几十万行代码独立开发的,文章会不会过于贬低了非团队?那么当一个团队进行开发工作时,应该怎样团队的模式呢,怎样知道那个模式是最适合自己的呢?在选择好团队模式后,又应该怎样分配队员的工作呢?

     问题五:《构建之法》第八章需求分析p153,其中提到软件产品的利益相关者有:用户,顾客,市场分析者,监管机构,系统/应用集成商,软件团队,软件工程师。那么在开发软件时,如果利益相关者们的需求发生冲突,且无法调节的话,我们应该以谁的利益为优先考虑呢?其次又是哪些呢?

 四.了解和调查源程序版本管理工具

上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,列举至少三个或以上的版本管理软件各有什么优缺点? (提示:搜索一下Microsoft TFSGitMercurialGitHubBitbucketTracBugzillaRationalApple XCode

1)Microsoft TFS的优缺点:

优点:是对敏捷,msf,cmmi等项目、过程管理、过程改善的支持。任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用。任务版上能将需求、项目进度一览无余,对于小团队而言,它集成了项目管理、版本控制、BUG跟踪,能有效实现 SCRUM能与 VS 无缝接合。

缺点:能应用起来的团队、公司的数量极少,多数真正用起来,也就是源代码管理这部分,这也仅仅是占TFS极小部分功能。不适合新手,新手需要多加练习。个人成本上的消耗相对来说更大一些。整个系统是用 asp 实现的,用浏览器访问相当慢。

(2)GitHub的优缺点:

优点:GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能,或者其特性。GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能,或者其特性。适合分布式开发,强调个体。公共服务器压力和数据量都不会太大。

缺点:可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相似工具。之前,我们已经强调过Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。将图片内容转化为代码,或者将设计用于产品设置,看起来依旧不是那样顺利。学习周期相对而言比较长。

(3)Trac的优缺点:

优点:非常灵活,可以随心所欲控制可以和SVN集成

缺点:功能不是很强大。

 

posted on 2019-03-21 13:28  wandered  阅读(208)  评论(1编辑  收藏  举报