项目 内容
课程班级博客链接 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、实际效果。

      在成为一个合格优秀的队员的路上,我们需要做很多的工作,需要根据自身的特点去发展,首先我们需要做的就是锻炼自己写代码的能力,在空闲的时间多学习一些软件开发方面的知识,以及相关的技术,还可以多参加一些小型的项目去锻炼自己,逐渐积累经验。

201771010113-李婷华 实验一 软件工程准备-<软件工程的相关了解>的更多相关文章

  1. 201771010113 李婷华 《面向对象程序设计(Java)》第十七周总结

    一.理论知识部分 Java 的线程调度采用优先级策略:优先级高的先执行,优先级低的后执行:多线程系统会自动为每个线程分配一个优先级,缺省时,继承其父类的优先级: 任务紧急的线程,其优先级较高: 同优先 ...

  2. 201771010113 李婷华 《面向对象程序设计(Java)》第十六周总结

    一.理论知识部分 1.程序是一段静态的代码,它应用程序执行蓝 是一段静态的代码,它应用程序执行蓝 是一段静态的代码,它应用程序执行蓝本. 2.进程是程序的一次动态执行,它对应了从代码加载.执行至执行完 ...

  3. 201771010113 李婷华 《面向对象程序设计(java)》第十五周总结

    一.理论知识部分 JAR文件 Java程序的打包:程序编译完成后,程序员将.class文件压缩打包为.jar文件后,GUI界面程序就可以直接双击图标运行. .jar文件(Java归档)既可以包含类文件 ...

  4. 201771010113 李婷华 《面向对象程序设计(java)》

    一.理论知识部分 设计模式(Design pattern)是设计者一种流行的思考设计问题的方法,是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结.使用设计模式是为了可重用代码.让代码 ...

  5. 201771010113 李婷华 《面向对象程序设计(Java)》第十三周总结

    一.理论知识部分 第十一章 事件处理 事件源 (event source):能够产生事件的对象都可 以成为事件源 ,如文本框 .按钮等 .一个事件源是一个能够注册监听器并向发送事件对象的对象. 监听器 ...

  6. 201771010113 李婷华《面向对象程序设计(Java)》第十二周总结

    一.理论知识部分 1.Java的抽象口工具箱( Abstract WindowToolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类. 2.AWT库处理用户界 ...

  7. 201771010113 李婷华 《面向对象程序设计(Java)》第十一周总结

    一.理论知识部分 第九章  集合 1.数据结构介绍: 线性结构:线性表,栈,队列,串,数组,文件.非线性结构:树,图. 散列表:又称为哈希表. 散列表算法的基本思想是:以结点的关键字为自变量,通过一定 ...

  8. 201771010113 李婷华 《面向对象程序设计(java)》第九周总结

    一.理论知识部分 第六章 接口与内部类 1.内部类(innerclass)是定义在一个类内部的类.外层的类成为外部类(outerclass).内部类主要用于事件处理. 2.使用内部类的原因有以下三个: ...

  9. 201771010113 李婷华 《面向对象程序设计(Java)》第八周总结

    一.理论知识部分 1.Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个接口. 2.在Java程序设计语言中,接口不是类,而是对类的一组需求描述,由常量和一组抽象方法组成.接口 ...

  10. 201771010113 李婷华 《面向对象程序设计(java)》第七周学习总结

    一.理论知识学习部分 1.动态绑定:又称为运行时绑定.程序在运行时会自动选择调用哪个方法. 2.静态绑定:如果方法是private.static.final修饰的,或者是构造器,那么编译器能准确地判断 ...

随机推荐

  1. Web三维编程入门总结之一:WebGL与Threejs入门知识

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  2. D - Free Candies UVA - 10118

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  3. 关于JS垃圾回收机制

    一.垃圾回收机制的必要性 由于字符串.对象和数组没有固定大小,所以当它们的大小已知时,才能对它们进行动态的存储分配.JavaScript程序每次创建字符串.数组或对象时,解释器都必须分配内存来存储那个 ...

  4. SpringBoot【新手学习记录篇】

    1. 启动方式: 在idea中的application.java右键run as 命令行进入项目目录,使用命令 mvn spring-boot:run 使用mvn install进行打包,然后进入ta ...

  5. Jest 前端单元测试工具

    Jest和enzyme 前端单元测试工具 什么是Jest? Jest是一个令人愉悦的JavaScript测试框架,其重点是简单性. 它适用于使用以下项目的项目:Babel,TypeScript,Nod ...

  6. 如何在 Windows Event Log 中查找系统重启的信息

    事件ID:12 事件ID 13: 事件ID 41: 事件ID 6008: 事件ID 1074:事件ID 1074: ========================================== ...

  7. [Ubuntu ] Vim Error E492 - Not an editor command: PluginInstall

    git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/plugin/Vundle.vim https://stackoverflow.co ...

  8. Inno Setup: Ask for reboot after uninstall

     https://stackoverflow.com/questions/36497580/inno-setup-ask-for-reboot-after-uninstall   Use Uninst ...

  9. QT 获取可执行程序的路径

    获取到生成.exe目录 QCoreApplication::applicationDirPath(); 获取当前工程目录 QDir::currentPath()

  10. java 8中构建无限的stream

    目录 简介 基本使用 自定义类型 总结 java 8中构建无限的stream 简介 在java中,我们可以将特定的集合转换成为stream,那么在有些情况下,比如测试环境中,我们需要构造一定数量元素的 ...