201771030105-范铂真 实验一 软件工程准备-学习软件工程基本操作并思考

项目 内容
课程班级博客链接 https://www.cnblogs.com/nwnu-daizh/
作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12369881.html
学习目标 (1)学习博客园软件开发者学习社区使用技巧和经验;(2)了解Github的基本操作。
从本作业中学到了什么 学会使用Markdown排版。了解软件工程这门学科。
参考文献 邹欣.构建之法——现代软件工程:现代软件工程[M].人民邮电出版社,2014

读《构建之法——现代软件工程》

读了邹欣老师的《构建之法——现代软件工程》这本书,对于这本书主要分析和研究哪些问题有了大致的了解。
第一章中,邹欣老师用一个很生动的例子将很多概念引入,这些概念也是本书将要着重研究和讨论的内容。
在我自己对于这些概念的思考基础上,我总结了自己的三个问题:

  • 1.每个程序员的思想都是不同的,对于同一个问题,一千个程序员会有一千种解决办法。我们无法使每位程序员都理解这一千种方法。那么,程序的后期维护以及改进,都应该如何管理实现。
    • **思考的起因:
      **第一个问题也是邹欣老师书中提到的问题:

我上班后,发现以前同事写的程序真是垃圾,根本看不懂,无法维护。我要推翻重写!后来一个老员工笑嘻嘻的告诉我,我们现在看到的程序,就是去年的新员工愤怒地推翻重写之后的结构,大家反映还没有以前的版本好用。
——引用自《构建之法——现代软件工程

- **我的理解和经验:**

对于我来说,写程序不喜欢写注释,正因为如此,我自己的程序,即使只是一个相当简单的算法,过一段时间之后看,自己都不一定能理解自己当时写算法时的想法。如果是内容比较多的算法,重新写或许要比看懂更省时间。看别人的程序更是一样。有时候看懂要比自己写更难。这就导致了软件工程上的一个问题,程序随着用户使用,肯定需要添加、删除或修改内容。而我们无法保证,最开始写这个程序的程序员永远都在并且永远都可以修改自己以前的项目。这就是软件维护的一个问题。

- **我的疑惑:**

对于一个团队来说,应该怎么处理和安排分工,才能避免这类问题,减少因维护和改进项目而引起的一系列问题。

  • 2.用户对于一个软件的功能想象往往是基于需求。但是在做需求分析的过程中,应该如何处理每一类的需求才能尽可能的提高用户体验。
    • 思考的起因:
      同样也是在《构建之法——现代软件工程》中引起的问题:

一个软件或者服务要有人买,就得找到顾客。顾客有各种需求,有些靠谱,有些不靠谱;有些容易做到,有些难以做到。
——引用自《构建之法——现代软件工程

- **我的理解和疑惑:**

用户对于一个软件,会有各种需求,无论这样的需求是否合理并且搭配使用是否合适,他都希望能够这样实现。但是,有时按照这样的想法做出来的工具,并不是一个使用感很好的工具。对于这样的需求,我们应该怎么安排,才能既完成功能,又符合用户使用感。并且,用户对于软件的使用是长时间延续的,而使用习惯是很难在一小段时间之内改变的。有时,明明是对一个问题的改进,但是,由于和用于以前的使用感相悖,用户不一定能发现这种改进的好处。反倒可能觉得并不应该改进。这种时候,我们应该怎么处理这些需求,才能尽可能的提高用户体验。

- **我的理解:**

软件项目的设计必须基于需求分析,也就是将每一种需求都进行分析,该需求是否合理?是否合适?再根据这些问题做出解决方案,进而才能开展下一步工作。要明确用户在该软件上真正需求要的东西。

  • 3.对于软件工程中最重要的问题,团队合作,如何管理一个团队才能更好的开发出软件?
    • 思考的起因:
      《构建之法——现代软件工程》中,将团队和非团队区分开来解决问题。并且还将软件团队又细分出好几种模式。比如:根据直觉形成的一窝蜂模式、“一个学生干活,其他学生打酱油”的主治医师模式、个人作用太突出导致其他成员游走在团队边缘的明星模式、每个人都参与自己感兴趣的项目的社区模式、听从中央指挥(导演)的业余剧团模式、以及秘密团队、特工团队、交响乐模式、爵士乐模式、功能团队模式和官僚模式等十种特色各异的团队模式。
    • 我的疑惑:
      每一种模式都有自己的优点和缺点,但是往往团队模式刚开始很难合适的选用,团队男女比例、工作能力、性格差异等影响因素,都会影响一个团队的发展模式。在学习软件工程这门课之前,我们也有小组和团队共同完成课程设计等内容的过程。有时真会难以控制整个团队的前进方向。到底该怎么权衡,才能将每个成员的作用都发挥到最大?怎么才能将一个项目尽团队能力做到最好?都是很重要的问题。
    • 我的想法:
      在《构建之法——现代软件工程》阐述的十种团队模式中,我最喜欢的是功能团队模式。每个人都根据功能说出自己的理解,大家一起商量着解决一个问题。无论问题简单或是困难,大家都一起讨论,解决完这个问题再继续解决下一个问题。将软件功能作为终极目标。没有管理与被管理的关系,这样的模式一定需要大家齐心协力,为了目标去一起努力。

实验总结

通过这一次的实验,我对于博客园和github的使用有了了解和熟悉。这是学习软件工程这门课的基础。读了邹欣老师的《构建之法——现代软件工程》这本书,更是从整体上了解了软件工程究竟是一门怎样的学科。对于在以前的软件学习的过程中遇到的问题,我希望在这门课学习之后能得到解决。在理解中更深入的把握软件工程这门课的意义。

原文地址:https://www.cnblogs.com/Februaryy/p/12373031.html