第一次作业

《软件工程原理及方法》第一次阅读作业

这个作业属于哪个课程

课程链接

这个作业要求在哪里

作业链接

我在这个课程的目标是

了解并熟悉软件开发的各个过程及方法;

掌握如何高效化、规范化开发软件。

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

阅读教材《构建之法:现代软件工程》;

阅读其他博主的优秀博文;

查阅相关资料。

 

 

 

 

 

 

 

 

 

 

 

一.建立博客并介绍自己

  1、在cnblogs.com上注册开设博客(博客地址)。

  2、软件工程一班李毅,喜欢旅游、玩游戏、文艺性小说。

二.阅读与思考

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

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

 喜欢计算机相关专业,感觉很神奇。

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

 符合,但是有的知识比较难掌握,但会努力学习。

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

 是,目前不太擅长,但会努力学习。

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

 会选择,成都,阿里,软件工程师。

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

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

 一般掌握C语言程序设计基础、数据结构及算法(C语言)、面向对象设计基础(C#)、数据库原理及应用(MySQL),代码量不是很少,但也不多。

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

 语言上不是非常熟练的掌握一门或以上程序设计语言,都是较粗略地学习了几门语言,不能熟练运用;在算法方面,不能熟练运用简便的算法使所编写的代码简单易行;目前还不具备系统的软件工程思想,还不是太了解代码是如何在电脑硬件上运行并实现人们的想法,等等。

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

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

 我的选择是去工作。

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

 优势是更早的面对在实际工作中遇到的问题而在学校一般不会遇见的问题,老师们常常列举关于他们在参加项目时会遇到的困难与麻烦,我们常是听听就完事了,也没有亲身实践,有时觉得亲身实践比“纸上谈兵”更能使我们了解问题、解决问题。

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

 多读书、多查阅相关资料以便更熟悉程序设计语言,平时多做练习,更好地了解软件设计制作过程中可能会遇到的问题,并解决这些问题,锻炼自己的自学能力。

三.提有质量的问题

 1、3.1  个人能力的衡量与发展,我们目前应该注重专业技术上的进步,还是实践中的经验,还是两者都应该重视,那么需要怎么分配两者的比重使自己尽量更好?

 2、8.3  获取用户需求,我们在分析用户对软件需求后,我们是依照代码量对软件进行定价还是依照实现难度进行定价亦或是综合考虑,那么价格与软件代码量和实现难度上有着怎样的可量化关系?

 3、10.1  典型用户和典型场景,书中说,开发一个软件,都要为用户考虑。但在现实中,我们是完全按照用户的要求来做,还是在用户的想法基础上再添加上自己的想法,因为如果完全按照用户的想法来做,可能有的东西难以实现或者有的东西在真正做出来后不完全符合用户的最初想法;但如果再加上我们自己的想法,又不合用户的心意,应该怎么做均衡?

 4、11.1  分析和设计方法,我们做软件都要设计好几个版本的,Windows、Android、iOS等,我们在设计时,几种版本的软件的界面、风格、功能应该设置为大概相同的还是依据使用设备不同的做成不同的样子和功能,比如现在大部分安装在Windows上的软件很多功能服务都不能在手机上使用,反之手机上的一些功能在电脑软件上也没有,界面更是不同,我们应该怎么做平衡以满足更多用户的需求?

 5、16.1.3  迷思之三:好的想法会赢,列举了一个例子,QWERTY键盘布局和Dvorak键盘布局,目前大部分电脑键盘和手机26键都是采用的QWERTY键盘布局,少见采用Dvorak键盘布局的电脑,但实际上采用QWERTY键盘,那么只有10%的英语单词能在手指不离开键盘中间行的情况下敲出来;可如果采用Dvorak键盘布局的话,可以在键盘中间行打出60%的常用单词(所有的元音的常用辅音都在那里)!这样会减轻手指和相关肌肉的负担,减少劳损,同时加快打字速度。但几乎所有的电脑仍采用的是QWERTY键盘,其原因是QWERTY键盘布局先入为主。那么对目前有的固定的事情或做法,如果有了新的想法,我们有必要做出创新去改变吗?或有了新的想法碰壁旧的约定俗成的东西,我们应不应该坚持更高效、更方便的创新想法去改变人们生活中习以为常的东西?

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

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

1、GitHub

优点:

  • 免费且开源。
  • 用于敏捷高效地处理任何或小或大的项目。
  • Git支持分支功能(branch)。如果你想开发一个新的产品功能,你可以建立一个分支,对这个分支的进行修改,而不至于会影响到主支上的代码。
  • 可拿Git做备份系统,或者同步两台机器的文档,很方便。
  • 支持离线工作。本地提交可以稍后提交到服务器上,不用和集中的代码管理服务器交互。 只有最终完成的版本才需要向一个中心的集中的代码管理服务器提交。
  • Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。
  • Git 中的每个工作树都包含一个具有完整项目历史的仓库。
  • 简易的初始化。对于随便写两行代码就要放到代码管理工具里的人来说,再合适不过。

缺点:

  • 学习成本大。由浅入深的过度很漫长,需要大量时间的投入。
  • Git版本库需要频繁的手动维护。

2、Microsoft TFS

优点:

  • 任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用集成了项目管理、版本控制、BUG 跟踪。
  • 能有效实现 SCRUM能与 VS 无缝接合。

缺点:

  • 搭建、维护tfs比较复杂,硬件要求也比较高。
  • 整个系统是用 asp 实现的,用浏览器访问相当慢。

3、Mercurial

优点:

  • 学习门槛较低。整体上看,hg需要掌握的命令要比git少很多。
  • 可以一键完全恢复到历史版本的某一个切面。
  • 封装好。相比git,hg很少暴露一些实现内的细节。
  • 照顾 svn 的迁移用户。hg 的很多命令是迁移自 svn 命令的,目标其实是为了让 svn 用户更容易接受。这使得已经习惯 svn 命令的团队,几乎零成本的切换到 hg。
  • hg 的 pull 更多的时候可以让你避免创建分支。hg 好比苹果系统,git 好比 Linux,前者在常用命令上更好用更易用,后者在功能上更强大更灵活。
  • hg的版本库不需要维护。

缺点:

  • 分支管理不灵活。Mercurial的branch管理和Git相比不是很方便。大型团队不愿使用。
posted @ 2019-03-19 11:19  liyitongxue  阅读(169)  评论(2编辑  收藏  举报