汪慧和-201771010123 实验一 软件工程准备——阅读《现代软件工程——构建之法》初步了解软件工程这门课程
项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12369881.html |
作业学习目标 | 用MarkDown编辑博客,浏览邹欣老师博客或《现代软件工程—构建之法》,提出3个准备从课程学习中找到答案的问题 |
这个作业作业在哪些方面帮助我实现学习目标 | 学会了markdown排版,如何高效提出问题 |
作业正文 | (1)学习博客园软件开发者学习社区使用技巧和经验;(2)了解Github的基本操作 |
作业参考文献 | 邹欣. 构建之法:现代软件工程[M]. 人民邮电出版社, 2014. |
1、Github中的几个基本概念:
(1)仓库(Repository):仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库。
(2)收藏(Star):收藏项目,方便下次使用。
(3)复制克隆项目(Fork):复制克隆项目。 注:该fork的项目是独立存在的
(4)发起请求(Pull Request):如果别人在你的项目基础之上做了一些改进,并且觉得改得很不错,应该要把这些改进让更多的人受益。于是,他就想把自己的改进合并进原有项目之中,这时他就可以发起一个Pull Request。而原有项目创建人也就是你,可以收到这个请求,这个时候你可能会仔细review他的代码,并且测试后觉得OK,就可以接受他的Pull Request,之后他做的改进就可以融入到原有项目之中了。
(5)关注(Watch):如果Watch了某个项目,那么以后只要这个项目有任何更新,都会第一时间收到关于这个项目的通知提醒。
(6)事物卡片(Issue):发现代码BUG,但是目前没有成型的代码,需要讨论时用。
(7)Github主页:注册了一个GitHub账号,那么就会有一个GitHub主页,该页面左侧主要显示用户动态以及关注用户/仓库的动态,右侧则显示所有的Git库。
(8)仓库主页:仓库主页主要显示项目的信息,如:项目代码、版本、收藏/关注/Fork情况 等等。
(9)个人主页:个人信息:头像、个人简介、关注我的人,我关注的人,我关注的Git库,我的开源项目,我贡献的开源项目信息 等等。
注:1)因为github在国外服务器,所以要访问较慢或者无法访问,必要时需要FQ。
2)私有仓库只能自己或者指定的朋友才有权限访问(私有仓库是收费的)。
3)新注册的用户必须要验证邮箱后才可以创建git库(仓库)。
(10)创建仓库/创建新项目,如下图所示:
说明:一个git库(仓库)对应一个开源项目。通过git库管理仓库。
仓库主页,如下图所示:
使用github创建项目文件,如下图所示:
2、阅读完邹欣老师所著的《构建之法——现代软件工程》之后,我提出的三个问题:
问题一:如何用精炼且易懂的语言来描述自己想表达的问题?
问题描述:在书的P10页,根据邹欣老师写这本书的自述,原话是这样的:
书看多了,我发现自己会处于下面集中状态之一: a)每个字都看得懂,但就是不知道整段话是啥意思。 b)一目十行,懂个大概(读自己刚写过的文字,往往会这样)。 c)发现字句之间好多毛病(读自己很久以前写的文字,就会这样)。 d)越读越有味道,心领神会。 我在想,我的书,在读者眼中是哪一类呢?我强迫自己用陌生人的眼光来慢慢读《构建之法》,结果发现自己陷入了状态c),于是我在树上标注了很多修改,删掉了很多啰嗦的行文。 |
可能大多时候,我们都在迷茫,哪一块是重点,翻来覆去觉得都很重要。在学校科研立项,做了一年的时间,最后要在三分钟之内自述完你的项目,这个花一年时间的项目,可能不到10页PPT就搞定了,但是如何让别人懂我们做的这个东西呢?如何让非专业领域的人明白你的这个东西是干嘛的,是如何做的呢,这就是需要我所深思的问题。每次其实都有自己把一些重点没讲,而花了很多时间在非重点的地方。邹欣老师强迫自己用陌生人的观点去阅读自己写的书,然后我们看到了手中的这本书,这本书邹欣老师强调的是在“做中学”,将软件工程这门课程剖析的很清楚。而我觉得自己是需要学习邹欣老师的这种语言方式,用精炼且易懂的语言来描述自己想表达的东西。
我之前也阅读过邹欣老师所著的《编程之美》,我特别喜欢这本书,这本书讲了一些微软面试中所遇到的题目,以及微软面试的一些东西。我第一眼在图书馆看到这本书的时候就被这本书所吸引,里面的内容更是越看越有趣,我也学到了很多东西。邹欣老师用风趣、精炼的语言,让很多人明白他想让我们知道的。正如本次作业,提出三个问题一样,该如何表达清楚自己的问题,并且是经过深思的三个问题。
问题二:怎么样的需求分析是在软件产品做出来后满足用户的需求的?
问题描述:在书的P179页,原文中是这样说的:
人们为了解决现实社会和生活中的各种问题,需要求助于软件,人们的需求五花八门,那么软件团队如何才能准确而全面地找到这些需求呢? |
邹欣老师的书中用了四个,分别是获取和引导需求、分析和定义需求、验证需求、在软件产品的生命周期中管理需求。而我们在上课的过程中,老师总是在强调需求分析的重要性。一个差的需求分析导致的结果是很严重的,可能所有软件工程师的努力就白费了,这个软件做出来后用户很难满意。需求是软件的出发点和落脚点,亦是生于需求,也是终于需求。一个好的需求分析是要做足够充分的调研,要对用户需求理解透彻,对需求表达清楚,同时也要对明确需求的边界。
很多时候用户不知自己确切的需求这就需要我们去换位思考,设身处地的实地考察,从实际中发现用户需求。还记得上数据库课程设计的时候,老师曾经说过,需求分析花费的时间是大量的,有时候甚至超过了这个软件的开发周期,需求分析师们需要去直接跟用户以及用户周围的环境去接触,并且深入了解。最后一遍遍的去跟用户演示,最终获得用户对这些需求的认知,才着手去开发。
问题三:在软件产品做好之后,如何让用户的第一印象对这个软件比较满意?
问题描述:在书的P281页,原文是这样说的:
用户安装软件之后,软件第一次启动,软件设计者要给用户什么样的第一印象?用户头一回来访问你的网站,你要给他们什么样的第一印象? 很多软件设计者把用户界面等同于给领导汇报工作成绩单,所有的功能都争先恐后地出现在用户面前,唯恐用户没有注意到。但是用户往往会被繁乱的界面弄得晕了头,无所适从。现在的电视遥控器大多数是这样设计的。 |
首先要了解这个软件用户针对的特定人群,老年人、青少年还是儿童,他们对该软件是做什么的了解多少。不同的人群对事物的接受能力不同,审美不同,知识能力亦是不同。我们要让我们的软件具备强大功能的同时也要让用户对软件功能一目了然,让用户尽快找到相应的功能如何和相关的功能操作。
用户的第一印象很重要,这基本上决定了这个软件开发是成功的还是失败的,用户对软件第一次的使用决定了,用户对该软件的评价。所以我们该怎么让我们的软件得到用户的认可,我们需要将用户所需要的一些功能,放在用户界面比较容易看到的地方,并且操作相对简单,而不是繁琐,当然,功能的全面是必须的,同时页面美观也是用户对该软件认可的加分项。
3、实验总结
通过本次实验,我通过观看视频和博客基本掌握两github的基础操作,并在课下还学习了Git管理远程仓库。通过阅读邹欣老师的博客,对软件工程这门课程有了一个初步的了解,软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程是开展优化生产活动的过程,软件工程必须要划分出系统的边界,给出系统的解决方案。此外,还根据老师布置的任务将博客园的默认编辑器修改为markdown,并在博客中做了练习。
自己的理解