201771010117—马兴德—实验一 软件工程准备—掌握博客中MarkDown的使用以及通读《现代软件工程—构建之法》的总结
实验一 软件工程的前期准备工作
在前期的准备工作以及老师上课的讲解中,我懂得了“软件=程序+软件工程”这句话的基本含义,以前只是对软件工程有一个很浅显的概念,现在在读了《现代软件工程—构建之法》这本书之后,我已经对自己以前掌握的只是有了更深一步的提升,虽然不是特别懂,但是我会在后续老师讲解的过程中慢慢的消化这些知识,通过阅读老师的博客,我深深发现自己以前对于提问尽然不懂,所谓不懂就是自己不知道某个问题,但是不知道如何更够精确的提出问题的所在,让老师同学们能够为自己答疑解惑,所以再这一方面,我觉得自己应该以后多注意,今天借此机会也是让自己多加锻炼一下。所以我将从以下几个方面来完成我今天的博客内容:
对软件工程的认识
| 项目 | 内容 |
|---|---|
| 课程班级博客链接 | 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的安装工作已经于寒假期间完成此项工作)
安装好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的使用以及通读《现代软件工程—构建之法》的总结的更多相关文章
- 软件工程(GZSD2015)学生博客列表
2015年贵州师范大学软件工程课程学生博客列表 陈小丽 郑倩 唐洁 周娟 李利思 肖俊 罗文豪 周静 徐明艳 毛涛 邓洪虹 岳庆 李盼 安坤 何亚 涂江凤 张义平 杨明颢 杨家堂 胡贵玲 寿克霞 吴明 ...
- 初窥软件工程 2020BUAA软件工程$\cdot$个人博客作业
初窥软件工程 2020BUAA软件工程\(\cdot\)个人博客作业 目录 初窥软件工程 2020BUAA软件工程$\cdot$个人博客作业 一.作业要求简介 二.正文 (一) 快速看完整部教材,列出 ...
- 借用Snippet插件美化博客中的代码
书写博客,难免要贴出代码.然而直接贴出代码,则不美观.于是,应运而生出现了很多代码美化的插件.其中比较有名的是Syntax Highlighting插件. 笔者在网上翻阅的时候发现了Snippet ...
- 在hexo静态博客中利用d3-cloud来展现标签云
效果: http://lucyhao.com/tags/ hexo自带的tag cloud的标签展现不太美观,想能够展现出“云”效果的标签.在网上找到了d3-cloud这个项目,github地址:ht ...
- 关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目
关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目,请大家鉴定,不足之处,敬请指教! 第1到3题解答如下: public enum QuestionTy ...
- 在个人博客中优雅的使用Gitalk评论插件
在上一篇博客<程序员如何从0到1搭建自己的技术博客>中,我们了解了如何快速的从0到1搭建一个个人博客. 其实细心的你会发现,该博客用到了一个评论插件,这个插件就是Gitalk. 如果想要在 ...
- 博客用Markdown编辑器插入视频
要展示一些App的效果用或者更方便地展示工具的操作,可以使用视频. 以下有两种方式可以在博客中插入视频 第一种 此方法适用于插入来源优酷的视频或者你自己录制了视频上传到优酷,这种方法的好处是可以插入时 ...
- 修复在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”这篇博客中MyScrollView出现滑动一会就不会上下滑动的问题
在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”,这篇博客中的大部分问题已经解决了. 唯一遗憾的是,ViewPage随人能够工作了,但是My ...
- 如何将word中的图片和文字导入自己的博客中
目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...
随机推荐
- C51_PID 水温控制系统
C51_PID 水温控制系统 51CPIDUART水温控制 前言 通过C语言程序写入51单片机实现水的温度的采集,并通过控制器控制加热器给水体加热,对水体的温进行PID控制,保证温度在设定值范围内波动 ...
- CreateDIBSection和位图结构
2019独角兽企业重金招聘Python工程师标准>>> 理解分辨率 我们常说的屏幕分辨率为640×480,刷新频率为70Hz,意思是说每行要扫描640个象素,一共有480行,每秒重复 ...
- Process Synchronization-Example 1
问题描述 把学生和监考老师都看作进程,学生有N人,教师1人.考场门口每次只能进出一个人,进考场原则是先来先进.当N个学生都进入考场后,教师才能发卷子.学生交卷后可以离开考场,教师要等收上来全部卷子并封 ...
- 超轻量级网络SqueezeNet网络解读
SqueezeNet网络模型非常小,但分类精度接近AlexNet. 这里复习一下卷积层参数的计算 输入通道ci,核尺寸k,输出通道co,参数个数为: 以AlexNet第一个卷积为例,参数量达到:3*1 ...
- badboy 录制脚本
第一步:介绍badboy工具 1.1: 页面功能分析: 1. 界面视图,模拟浏览器,能够进行操作 2. 需要录制脚本的URL 3. 点击运行URL 4. Summary:运行的各指标,响应时间,成功事 ...
- andorid jar/库源码解析之Butterknife
目录:andorid jar/库源码解析 Butterknife: 作用: 用于初始化界面控件,控件方法,通过注释进行绑定控件和控件方法 栗子: public class MainActivity e ...
- MySQL JDBC Driver 8.0+设置服务器时区
遇到一个问题,线下环境测试数据的查询完全没有问题,但是线上环境却没法查询出数据,并且从mybatis输出的日志来看,查询参数也没有问题,数据库中数据也是存在的,查询参数类型是java.util.Dat ...
- LoadRunner安装时提示缺少C++ 2005 SP1(x86)插件
把安装文件里的所有中文文件重命名为英 文 名就ok!!! 把安装文件里的所有中文文件重命名为英 文 名就ok!!! 把安装文件里的所有中文文件重命名为英 文 名就ok!!! 重要的事情说三遍! 不插图 ...
- HDU1214圆桌会议
一个环,从1编号到n. 每次可以交换相邻的两个人, 问最少交换几次,使得每个数字的左右数字交换. 转载自:https://blog.csdn.net/yin_zongming/article/deta ...
- 设计模式之GOF23解释器模式
解释器模式Interpreter -是一种不常用的设计模式 -用于描述如何构成一个简单的语言解释器,主要用于使用面向对象语言开发的编译器和解释器设计 -当我们需要开发一种新的语言时,可以考虑使用解释器 ...