项目 | 内容 |
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12369881.html |
我的课程学习目标 | 学习软件工程的相关知识 |
这个作业在哪些方面帮助我实现学习目标 | 学会使用Markdown排版来撰写博客,学会如何提问 |
作业正文 | (1)学习博客园软件开发者学习社区使用技巧和经验;(2)了解Github的基本操作。 |
作业参考文献 | [1]邹欣.构建之法--现代软件工程[M].人民邮电出版社,2014. |
关于提问,这在平时的生活学习中十分常见,我们经常会问到他人问题,也会有其他人问我们问题,我们只是在问一些自己遇到困难的事情,其实从来都没有想过三个问题,就是娄老师博客中提到的"三问":"问自己"、"问对象"、"问方式"。搞清楚自己的问题(问自己):询问自己问问题的目的;询问自己为解答这个问题做了什么;询问内容本身是否具体清晰合理。了解提问的对象(问对象):思考被提问对象的相关信息,如术业专攻、性格特点、活动时间等等。选择合适的提问方式(问方式):用什么样的方式询问可以有效地达到自己的目的?各种方式的优缺点是什么。在读了这篇关于提问的博客之后,我才发现,我之前所理解的提问是很片面的,只顾着问问题来解决自己遇到的困难,却从来没有想过这"三问",从来没有想过问问题的方式,也没有思考过所问对象的一些相关信息。在今后的生活、学习中,我们应该学会培养自己的思考能力,去形成自己分析问题、解决问题的思路。
读完邹欣老师的《现代软件工程—构建之法》之后,我拟定的3个准备从课程学习中找到答案的问题如下:
- 问题一:一个软件的开发者在做需求分析时应该注意什么?几率很小的要求需不需要做呢?
- 在阅读第一章时,我看到了这一段文字
如果一架民用飞机上有需求,用户使用它的概率是百万分之一,你还要做这个功能么?你会选择:
1、根本不考虑
2、如果没时间实现这个功能,就算了
3、做了,但是不告诉用户
4、做了,而且不厌其烦的告诉用户如何使用
- 在学习了数据库这门课程之后,我们知道了无论是做一个系统还是一个软件,对于开发者来说,首要的目标就是需要做大量的调查,根据各种用户的需要做出最合理的用户需求。就上述这个关于飞机用户需求的问题,如果我是这个软件的开发者,我会选择4、做了,而且不厌其烦的告诉用户如何使用,俗话说:“不怕一万,就怕万一”,像飞机的安全功能这类问题,在做需求分析时,需要我们慎重的考虑,即使是一个小概率的事件,我们也要考虑到。在做需求分析时,我们需要注意到用户的满意度,对于我们开发的软件所提供的功能,用户是否会有抱怨,除此之外,软件开发成功之后,需要投入市场去运行,有一定的商用价值,会产生商业利益,我们就需要考虑到如何才能获利最大。在看了上述文字之后,一个问题出现在了我的脑海中,在做需求分析的时候,我们应该注意什么?对于小概率事件,我们要不要考虑在我们的软件中实现呢?
- 我提问的原因:
之前学习数据库系统的时候也曾做过一些需求分析,当时只是简答的参照网上一些系统做了简单的需求分析,并没有考虑全面,对于小概率事件的需求并没有考虑到,看了《现代软件工程—构建之法》这本书之后,我就在想,一个软件投入到市场中,肯定会随后出现各种我们考虑不到的问题,就需要一步步去维护、更新我们的软件,那么,在做需求分析时,我们要注意到哪些。
- 在阅读第一章时,我看到了这一段文字
- 问题二:在开发软件的过程中,作为项目的领头者,我们应该如何组建团队?
- 在看到第五章 团队和流程时,看到这样一个例子:
王屋村的居民大智要把一堆砖头从村头搬到村尾。于是他去顶球酒吧前招工,最终带回了七八个人。
可是这七八个人只是一群乌合之众,算不上是一个团队,他们只是临时聚在一起,各自完成任务就领钱走人。在软件的开发过程中,我们需要建立一个团队来,我们应该如何去组建团队? - 团队是有一致的集体目标的,需要团队成员来一起完成团队的目标。团队成员有各自的分工,互相依赖合作,共同完成任务。例如足球团队,团队中需要有人充当守门员、前锋,中场需要人员,后卫也需要,在分工明确的情况下,才可能打败对手,在组建团队的过程中,我们就需要考虑一下团队模式,我们需要什么样的人员,是业余的还是专业的?就踢足球来说,如果我们各个岗位的队员是业余的,获胜的几率还是较小的。我们的软件开发团队也是一样的。在组建团队的过程中,对团队成员的要求、团队模式等因素,我们都要考虑。
- 我提问的原因:
在之前的学习中,我们也会遇到需要一个2-3个人的团队来完成的项目,当时还是很少考虑到组建团队这个问题的。只是简单的考虑了一下团队的分工,是每个人担任不同的任务,在一定时间内完成团队目标。
- 在看到第五章 团队和流程时,看到这样一个例子:
- 问题三:在一个软件开发团队中,怎样成为一个合格优秀的队员?
- 看到3.1节的时候,书中说软件开发流程不光指团队的流程,还包括个人开发流程。在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。那么在团队中,我们如何做一个优秀的队员来开发我们的软件,最终达成团队目标呢?
- 就足球队来说,职业足球队对队员有严格的要求,如体能、技术、意识、斗志。而在软件开发团队中,队员有以下几个方面的成长:
1、积累软件开发相关的知识,提升技术技能。
2、积累问题领域的知识和经验。
3、对通用的软件设计思想和软件工程思想的理解。
4、提升职业技能:自我管理的能力、表达和交流的能力、与人合作的能力、按质按量完成任务的执行力。
5、实际效果。
在成为一个合格优秀的队员的路上,我们需要做很多的工作,需要根据自身的特点去发展,首先我们需要做的就是锻炼自己写代码的能力,在空闲的时间多学习一些软件开发方面的知识,以及相关的技术,还可以多参加一些小型的项目去锻炼自己,逐渐积累经验。