实验一 软件工程的前期准备工作

在前期的准备工作以及老师上课的讲解中,我懂得了“软件=程序+软件工程”这句话的基本含义,以前只是对软件工程有一个很浅显的概念,现在在读了《现代软件工程—构建之法》这本书之后,我已经对自己以前掌握的只是有了更深一步的提升,虽然不是特别懂,但是我会在后续老师讲解的过程中慢慢的消化这些知识,通过阅读老师的博客,我深深发现自己以前对于提问尽然不懂,所谓不懂就是自己不知道某个问题,但是不知道如何更够精确的提出问题的所在,让老师同学们能够为自己答疑解惑,所以再这一方面,我觉得自己应该以后多注意,今天借此机会也是让自己多加锻炼一下。所以我将从以下几个方面来完成我今天的博客内容:

对软件工程的认识

项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
软件工程 https://www.cnblogs.com/nwnu-daizh/
作业要求 https://www.cnblogs.com/nwnu-daizh/p/12369881.html
软件工程学习目标 (1)学习如何精确的提出问题,并且能够从课本中找到相应问题的答案,以及在博客园中如如何使用markdown,将这些以博客形式记录下来(2)了解Github的基本操作
这个作业在哪些方面帮我实现学习目标 理论的学习方面与知识的实践方面
作业正文 1)学习掌握博客园的编辑知识技巧 2)学习如何使用Github
作业参考文献 邹欣.构建之法现代软件工程[M].人民邮电出版社,2014

此次实验内容

任务1:调查问卷

此网址添加老师的调查问卷(已经填写完成)

任务2:在博客园平台注册个人博客账号和加入博客园班级

任务3:注册Github账号

  • 用途:管理项目,记录(源码、文档,历次版本变更,bug发现与修复)等信息。

  • Github地址

  • Github操作及如何托管项目?

  • 安装好Github之后,我们就要学会一些基本操作和了解Github的一些相关知识的概念:

    • 仓库(Repository):仓库的意思就是我们的项目,即想要在Github上创建一个项目,我们就必须有一个相对应的项目,有几个项目就有几个仓库;

    • 收藏(Star):仓库主页star按钮,意思为收藏项目的人数,

    • 复制克隆项目(Fork):复制克隆就是你开源了一个项目,别人想在你这个项目的基础上做些改进,然后应用到自己的项目中,这个时候他就可以Fork你的

      项目(打开项目主页点击右上角的fork按钮即可),然后他的GitHub主页上就多了一个项目,只不过这个项目是基于你的项目基础(本质上是在原有项目的基础上新建了一个分支) ,他就可以随心所欲的去改进,但是丝毫不会影响原有项目的代码与结构。

    • 发起请求(Pull Request):发起请求,这个其实是基于Fork的,还是.上面那个例子,如果别人在你基础上做了改进,后来觉得改进的很不错,应该要把这些改进让更多的人收益,于是就想把自己的改进合并到原有项目里,这个时候他就可以发起一个Pull Request,原有项目创建人,也就是你就可以收到这个请求,这个时候你会仔细review他的代码,并且测试觉得ok了,就会接受他的PR,这个时候他做的改进原有项目就会拥有了。

    • 事务卡片(Issue):发现代码BUG,但是目前没有成型代码,需要讨论时用;

    • 关注(Watch):意思就是观察,如果你Watch了某个项目,那么以后只要这个项目有任何更新,你都会第一时间收到关于这个项目的通知提醒。

  • 下面就是创建一个项目的过程:

    • 先创建一个新的项目:

    • 创建好的项目如下图所示,有关收藏,删除,新建等一些列的操作都完成之后,以及记录的操作次数如下所示:

任务4:各位同学点击以下超级表格链接填写博客园、github账号信息

超级表格(已经完成)

任务5:构建之法与博客首秀

  • 修改博客园默认编辑器

    • 1、首先用自己的账号登录博客园;

    • 2、点击“添加新随笔”按钮,然后找菜单栏,在菜单栏中点击“选项”按钮;

    • 3、点击选择默认编辑器当中的“Markdown”按钮;

    • 4、最后点击左下角的“保存”按钮即操作成功,然后直接添加新随笔就完成此项工作。

    • 经过阅读邹欣老师的《构建之法》这本书之后,我想着自己可以先提出三个问题自己去试着解决,根据自己所学的知识,在力所能及的范围内完成问题的答案,并且在以后的学习过程中继续能够探索问题的答案,以求达到问题的精确回答。

    • 问题1:软件工程是什么,学完软件工程这门课程我索要掌握到什么,最终要达到怎样的一个目标?

      答案:软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。这只是对软件工程一个抽象的理解,既然“软件=程序+软件工程”,那我们就来看一下看一下软件,软件分为系统软件、应用软件和恶意软件。随着人类的发展以及技术的进步,人们对于软件的应用有了进一步的提高,但是在软件开发的速度却远远达不到人类所发展以及需要的地步,那软件开发为什么会有这样的问题呢,大致有以下五点:

      • 复杂性
      • 不可见性
      • 易变性.
      • 服从性
      • 非连续性

        那么当我了解了之后,我想我对于这门课的一个总体的一个目标就很明确了:

        (1)尽可能的研发出用户需求的软件,让自己的编程能力继续提高;

        (2)更好的掌握软件研发的流程,在开发过程中尽可能做出让用户满意的软件;

        (3)对自己所开发的软件尽可能先让老师同学提出意见,在后续的过程中还能有修改的余地。
  • 问题2:通过阅读课本6、7、8章内容,讲到软件项目中开发所具备的条件,我在想在一个软件的开发过程中最重要的是什么?

    答案:我们先抛开软件的概念,因为在上一个问题有所涉及,就说在做一个项目的过程中,你认为最重要的是什么,这其实就是和软件开发是一样的,那么我觉得在一个软件开发的过程中,我觉得很重要的就是要有一个优秀的团队,接着分析用户的需求,最后做项目的研发,这三点我认为是一个项目的过程中必不可少的,当然其他的也很重要,这里只是说最重要的。在做一个事情之前,有一个优秀的团队肯定是很重要的,团队也有许许多多的模式,在一个公司我们可以看到大家为了一个项目而绞劲脑汁、在运动场上,物品们可以看到运动健儿们为了最后的冠军在拼搏、在学校中同学们为了一个自己努力研发的项目而研究到深夜等等,这些都是一个团队带给我们的力量;其次就是在开发一个项目的过程中,我们需要先进行分析,到底这个市场需要还是不需要,用户又对这种软件的功能有啥要求,这些都是前面需要一个强大的团队去做调研,为的就是在投入市场之后能够服务到每一个人,让大家进可能去使用自己研发的软件;当有了前面的工作支持的时候,最后就是软件的设计研发了,这才是重中之重,如果你软件都无法研发,那剩下的工作要怎么去完成呢。在软件开发的过程中,我们不应该拘泥于某一种方法去解决一个问题,分析和设计有许多方法,如:

    • 以文字为主的文档,如Word. PowerPoint 文档。正如我们在需求分析和场景设计中看到的那样。
    • 用图形为主构造的模型,如Mind Map (思维导图),ERD,DFD, UML的各种图,甚至包括Flow Chart流程图
    • 用数学语言的描述,如Vienna Development Method
    • 用类自然语言+代码构造的描述,如Literate Programming
    • 源代码加注释也能描述

      所以在一个项目的研发过程中,我们遇到问题时,可以用多种方式解决,比如还有画思维导图、关系图等等之类的方法。
  • 问题3:在《构建之法》的第九章内容中提到,软件和IT行业的创新,当我读完之后,我的困惑是我们怎样才能提高的自己创新技能呢?

    答案:在软件开发的过程中,最重要的就是你有没有创新点,只有自己对一个软件项目有了创新点,才可以对项目有大的贡献,才能满足用户对软件功能的需求。那么现在是一个IT行业很火的一个世代,如果我们不能适应时代,很有可能就会被社会所淘汰,所以说在软件开发的过程中创新点很重要,我觉得我们应该做到以下几点,才有可能提高自己的创新技能:

    (1)在做一个项目之前,我们先要做一个市场调研,了解用户对这种软件的需求是什么,我们要充分了解用户的痛苦,他们对已有软件,服务不满意的地方。这样我们才能对我们所开发的软件做一个修改,才可以通过交流提高自己的创新思维。

    (2)第二点就是我们应该如何去做,当用户对我们的方案提出疑问或者有疑问的时候,我们应该怎样做才能满足用户的需求只有我们找到不足之处提出创新点,这样的产品才能够被广大用户所接受。

    (3)第三点就是我们应该结合我们的前辈所提出的想法以及做出的项目,看看人家是如何去做的,只有这样才能给我们经验和教训,给自己带来好处,同时也给我们的用户带来好处。

    (4)还有最终的一点就是提出质疑,对自己的作品以及竞争者的作品提出质疑,只有这样,你才能在自己对手的激励下创造出新的东西,让自己的作品变得更加新颖。

实验总结:

通过本次学习,我已经基本掌握了Github的基本操作,能在Github上面进行一些基本的操作,也基本掌握了一些有关Github的一些知识点。更重要的是,通过此次学习,在以往的博客园编辑模式(TinyMce和TextBox模式)下,我能够转换一种编辑模式(Markdown)继续编写,这样给了我一个挑战,以前从来没有这种方法编写过,这是第一次编写,还有些不太熟练,尤其在添加表格这一个内容上,我掌握的不是特别好,我会在以后的学习当中熟练的掌握在博客园Markdown编辑模式下的各种操作,以及用心学好各门课程!

201771010117—马兴德—实验一 软件工程准备—掌握博客中MarkDown的使用以及通读《现代软件工程—构建之法》的总结的更多相关文章

  1. 软件工程(GZSD2015)学生博客列表

    2015年贵州师范大学软件工程课程学生博客列表 陈小丽 郑倩 唐洁 周娟 李利思 肖俊 罗文豪 周静 徐明艳 毛涛 邓洪虹 岳庆 李盼 安坤 何亚 涂江凤 张义平 杨明颢 杨家堂 胡贵玲 寿克霞 吴明 ...

  2. 初窥软件工程 2020BUAA软件工程$\cdot$个人博客作业

    初窥软件工程 2020BUAA软件工程\(\cdot\)个人博客作业 目录 初窥软件工程 2020BUAA软件工程$\cdot$个人博客作业 一.作业要求简介 二.正文 (一) 快速看完整部教材,列出 ...

  3. 借用Snippet插件美化博客中的代码

    书写博客,难免要贴出代码.然而直接贴出代码,则不美观.于是,应运而生出现了很多代码美化的插件.其中比较有名的是Syntax Highlighting插件.   笔者在网上翻阅的时候发现了Snippet ...

  4. 在hexo静态博客中利用d3-cloud来展现标签云

    效果: http://lucyhao.com/tags/ hexo自带的tag cloud的标签展现不太美观,想能够展现出“云”效果的标签.在网上找到了d3-cloud这个项目,github地址:ht ...

  5. 关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目

    关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目,请大家鉴定,不足之处,敬请指教! 第1到3题解答如下: public enum QuestionTy ...

  6. 在个人博客中优雅的使用Gitalk评论插件

    在上一篇博客<程序员如何从0到1搭建自己的技术博客>中,我们了解了如何快速的从0到1搭建一个个人博客. 其实细心的你会发现,该博客用到了一个评论插件,这个插件就是Gitalk. 如果想要在 ...

  7. 博客用Markdown编辑器插入视频

    要展示一些App的效果用或者更方便地展示工具的操作,可以使用视频. 以下有两种方式可以在博客中插入视频 第一种 此方法适用于插入来源优酷的视频或者你自己录制了视频上传到优酷,这种方法的好处是可以插入时 ...

  8. 修复在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”这篇博客中MyScrollView出现滑动一会就不会上下滑动的问题

    在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”,这篇博客中的大部分问题已经解决了. 唯一遗憾的是,ViewPage随人能够工作了,但是My ...

  9. 如何将word中的图片和文字导入自己的博客中

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

随机推荐

  1. KVM基本功能管理

    一.KVM基础功能管理 1.查看命令帮助 virsh -h 2.查看 KVM 的配置文件存放目录(CENTOS7.0.xml是虚拟系统实例的配置文件) ls /etc/libvirt/qemu     ...

  2. CtsVerifier-Bluetooth-LE-SEcure-ClientServer-Test测试pass但是无法选择passbutton

    [问题描述] CtsVerifier-Bluetooth-LE-SEcure-ClientServer-Test测试pass但是无法选择Pass-Button 工具版本:9.0-r11 其他信息: 上 ...

  3. Get史上最优雅的加密方式!没有之一!

    你的配置文件是不是还在使用下面这种落后的配置暴露一些密码: jdbc.url=jdbc:mysql://127.0.0.1:3305/afei jdbc.username=afei 如果是,那么继续往 ...

  4. Netflix:当你按下“播放”的时候发生了什么?

    从用户端来看,使用Netflix是很简单的,按下播放键之后视频就像变魔术一样完美呈现了.看起来很容易是吧?然而实际不是这样的.了解过云计算的人可能会简单地以为,既然Netflix使用AWS来提供视频服 ...

  5. 是时候实现 SOC 2.0 了

    本文讲的是是时候实现 SOC 2.0 了,SOC,安全运营中心,为取得其最佳效果,以及真正最小化网络风险,需要全员就位,让安全成为每个人的责任. 早在几年前,企业就开始创建SOC来集中化威胁与漏洞的监 ...

  6. 关于利用注射点判断数据库web是否分离

    得到客户端主机名:select host_name();得到服务端主机名: select @@servername; 本文转hackfreer51CTO博客,原文链接:http://blog.51ct ...

  7. Fiddler 介绍

    1.fiddler原理介绍 fiddler 是一个抓包工具,当浏览器访问服务器会形成一个请求,此时,fiddler就处于请求之间,当浏览器发送请求,会先经过 fiddler,然后在到服务器:当服务器有 ...

  8. ubuntu 15.04 的安装遇到的问题及其解决方法

    在Ubuntu15.04 的安装(U盘)中 遇到的问题1:安装后设置电脑从U盘启动,启动失败,屏幕上显示:Failed to load ldlinux.c32 解决方法:当时是参考这篇文章 http: ...

  9. 洛谷P5018 对称二叉树

    不多扯题目 直接题解= = 1.递归 由题目可以得知,子树既可以是根节点和叶节点组成,也可以是一个节点,题意中的对称二叉子树是必须由一个根节点一直到树的最底部所组成的树. 这样一来就简单了,我们很容易 ...

  10. Android EventBus踩坑,Activity接收不了粘性事件。

    注解问题 EventBus 的 粘性事件,可以让 成功注册后的 Activity.Fragment 后再接收处理 这一事件. 但是今晚写代码时,突然发现粘性事件,发送不成功了.??? 具体情况是:我在 ...