项目 | 内容 |
这个作业属于哪个课程 | https://www.cnblogs.com/nwnu-daizh/ |
这个作业的要求在哪里 | https://www.cnblogs.com/nwnu-daizh/p/12369881.html |
作业学习目标 | 通过加入博客园班级以及注册github了解博客园的使用,通过浏览邹欣老师博客或《现代软件工程—构建之法》,提出问题并解答,初步了解软件工程。 |
一、实验内容
1、首先进行调查问卷
- 在以下网址提交课程调查问卷:https://www.wjx.cn/jq/60177777.aspx
2、在博客园平台注册个人博客账号和加入班级博客
- 用途:师生交流、同学交流、发布作业、学习先进技术与工程经验
- 班级:2017级计算机科学与技术班
- 博客园地址:http://www.cnblogs.com/
- 班级博客地址:https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
3、进行注册Github账号
- 用途:管理项目,记录(源码、文档,历次版本变更,bug发现与修复)等信息。
- Github地址
- Github操作及如何托管项目?
- 参考文章
- 学习使用Github
- 本人Github账号
- (已经创建完成)
4、通过老师在企业群分享的超级表格链接填写博客园、github账号信
https://www.chaojibiaoge.com/index.php/U/url/daldh614
5、通过快速浏览邹欣老师博客以及《现代软件工程—构建之法》初步认识软件工程
▪软件工程是什么?
构造之法里面说,软件工程是把系统的、有序的、可化的方法应用到软件开发、运营和维护上的过程。软件工程包括的领域有:软件需求分析,软件设计,软件构造,软件测试和软件维护。软件工程相关的学科有:计算机科学,计算机工程,管理学,数学,项目管理学,质量管理,软件人体工学,系统工程,工业设计和用户体验设计。
a、软件的特殊性
①复杂性;
软件是人类创造的最复杂的系统类型。大型的软件有超过百万行代码,上万个不同的文件。
②不可见性
软件工程师可以看见代码,但源代码不是软件本身。软件以机器码的方式高速运行,还可能在几个CPU核上同时运行,工程师“看”不到自己的源代码如何具体地在用户的机器上被执行。商用软件出现了错误,工程师可以程序在出错的一瞬间留下的一些痕迹,但是几乎无法完整地重现到底程序出现了什么问题。当工程师会过头来看源代码时,它们还是安静地排列在排列在屏幕上。
③易变性
软件看上去很容易修改,修改软件比修改硬件容易多了。人们自然地期待软件能在下面两种情况下“改变”:
a、让软件适应新的硬件;
b、让软件做新的事情。’
④服从性
软件不能独立存在,它总是在硬件上面,它要服从系统中的其它组成成分的要求,它还要服从用户的要求,行业系统的要求。
⑤非连续性
人们比较容易理解连续的系统:增加输入,就能看到相应输出的增加。但是许多软件系统却没有这样的特性,有时输入上很小的变化,会引起输出上极大的变化。
这些特性的前四个是佛瑞德布鲁克斯( Fred Brooks Jr)在No Silver Bullet一文中提到的",第五个特性是瓦茨拉夫.拉里奇( Vaclav Rajlich)提到的"。这些特性是由软件的本质所决定的,软件还有其他特性:
a、有许多不同的程序设计语言、软件工具和软件开发平台;
b、存在许多不同的软件开发流程;
c、软件团队中存在许 多不同的角色;
d、软件既可以存储在磁带上,也可以存储在CD/DVD上;
但是这些非本质、临时的特性并不能决定软件工程的本质问题。例如,有人发明了一种新的程序设计语言,或者又出现了一个新的软件开发流程,或者网上出现了又一个程序员技术社区....这些事并不能改变软件工程的根本难度,这也是著名的“没有银弹( No Silver Bullet )"论断所阐述的道理。软件的这些本质特性让“做- 一个好软件” 变得很难,同时也让软件工程有它独特的挑战和魅力。
▪软件工程课程老师要求分组合作完成,而在构造之法中也提到了合作的事,那么在软件工程的学习当中关于合作有什么重要性?
现代软件产业经过几十年的发展,一个软件由一个人单枪匹马完成,已经很少见了,软件都是在相互合作中完成的。合作的最小单位是两个人,两个工程师在一起,做的最多的事情就是“看”代码,每个人都能看“别人的代码”,并发表意见。但是每个人对于什么是“好”的代码规范未必认同,这是我们很有必要给出基准线——什么是好的代码规范?
因此合作的重要性还是很重要的
所以我们要在竞争中学会合作,在合作中学会竞争。
▪在《构建之法》的第九章内容中提到,软件和IT行业的创新,当我读完之后,我的困惑是我们怎样才能提高的自己创新技能呢?
在软件开发的过程中,最重要的就是你有没有创新点,只有自己对一个软件项目有了创新点,才可以对项目有大的贡献,才能满足用户对软件功能的需求。那么现在是一个IT行业很火的一个世代,如果我们不能适应时代,很有可能就会被社会所淘汰,所以说在软件开发的过程中创新点很重要,我觉得我们应该做到以下几点,才有可能提高自己的创新技能:
(1)在做一个项目之前,我们先要做一个市场调研,了解用户对这种软件的需求是什么,我们要充分了解用户的痛苦,他们对已有软件,服务不满意的地方。这样我们才能对我们所开发的软件做一个修改,才可以通过交流提高自己的创新思维。
(2)第二点就是我们应该如何去做,当用户对我们的方案提出疑问或者有疑问的时候,我们应该怎样做才能满足用户的需求只有我们找到不足之处提出创新点,这样的产品才能够被广大用户所接受。
(3)第三点就是我们应该结合我们的前辈所提出的想法以及做出的项目,看看人家是如何去做的,只有这样才能给我们经验和教训,给自己带来好处,同时也给我们的用户带来好处。
(4)还有最终的一点就是提出质疑,对自己的作品以及竞争者的作品提出质疑,只有这样,你才能在自己对手的激励下创造出新的东西,让自己的作品变得更加新颖。
6、实验总结
本次实验主要是关于软件工程的第一节课,出来注册博客园加入班级,以及通过构造之法来了解软件工程,所以本节课的主要内容就是初步了解软件工程这门课程主要是什么,主要是讲的那方面的知识,而由这节课我们大概知道软件工程就是:软件工程是把系统的、有序的、可化的方法应用到软件开发、运营和维护上的过程。在了解了什么是软件工程的基础上希望在后面的学中可以更加清晰。