201771010101 白玛次仁 实验一 软件工程准备 《方法论》
实验一 软件工程的准备 《方法论》
项目 | 内容 |
---|---|
课程要求 | https://www.cnblogs.com/nwnu-daizh/p/12369881.html |
软件工程课 | https://www.cnblogs.com/nwnu-daizh/ |
学习目标 | 博客园的社区学习的技巧 Githud的基本操作以及更好的掌握解决问题的方法 |
参考文献 | https://book.douban.com/subject/25965995/ |
实验任务:
任务1:调查问卷 在以下网址提交课程调查问卷:https://www.wjx.cn/jq/60177777.aspx
(提交完)
任务2:在博客园平台注册个人博客账号和加入班级博客
博客园地址:http://www.cnblogs.com/
班级博客地址:https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
个人博客地址:http://home.cnblogs.com/u/baimaciren/
任务3:注册Github账号
Github地址:https://github.com/
Githud个人账号:http://home.cnblogs.com/u/baimaciren/
Github操作及如何托管项目?
参考文章:http://www.cnblogs.com/edisonchou/p/5990875.html
学习视频:https://www.bilibili.com/video/av10475153/
任务4:各位同学点击以下超级表格链接填写博客园、github账号信息
https://www.chaojibiaoge.com/index.php/U/url/daldh614 (已完成)
任务5:
《构建之法》:
- 程序= 算法 + 数据结构
- 软件= 程序 + 软件工程
- 软件企业= 软件 + 商业模式
。 由此得出一个结论:程序(算法,数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量。然后,通过类比人类对飞机的发展阶段:从叠纸飞机(玩具阶段),到用气球实现飞屋环游(业余爱好阶段),再到 莱特兄弟发明飞机(探索阶段),再到现在的商业大飞机(成熟的产业阶段)。作者指出一个软件的开发阶段也是从是从简单到复杂的阶段,并且进行了对比,指出在每一个阶段如果成功或失败,会引起的不同结果。
。 我对软件工程有了一个模糊的印象后,作者用专业化的定义对软件工程做了定义。同时又指出了软件的特殊性。
问题一:什么是软件工程?软件的特殊性?(学习课前必须知道的问题)
。问题描述:在第一章 1.2
答:(1)软件工程是把系统的、有序的、可量化的方法应用到软件开发、运行和维护上的过程。
软件工程包括下列领域:软件需求分析、软件设计、软件测试和软件维护。
软件工程和下列的学科相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人
体工学、系统工程、工业设计和用户体验设计。
(2)1.复杂性
2.不可见性
3.易变性
4.服从性
5.非连续性
问题二:程序员经常在学什么?怎么学?
## 问题描述:在第三章的3.5.6
答:我在读的过程中在书上的链接上面看到一个很有趣的编程故事,这是一个真实的故事,一个程序员在工
作过程中听到的同事在吹牛,它们在谈作者不会的很多编程软件或不同编程语言,也会在他实现一个软
件或者效果时,推荐很多更好用或更好展现的编程语言或某种方法。
每次他听到自己不会他就很用功地学习让自己的变的很用功,但是每次只看一半。
## 每次他看到一个书的一半就没看过这是为啥?
*每次他看到一半他同事又有新的聊天,有得开始学习新的。
在这样重复的过程中很多的同事由于太传统而被淘汰了,而作者没有在这样的情况中作者提出 “专注”。
## 什么是专注呢?(以下三是专注的说明)
* 从这种语言转到那种语言,又从那框架跳到这个框架,或者骗自己可以精通所有的语言或框架
* 使用小众的工具来搭建自己的开发环境,而不是选择传统的、可信赖的工具。
* 学习像 Docker 和 Famo.us 这样的工具,仅仅因为它们新奇,虽然更加基础的技术都还没掌握好
## 那学什么?怎么学?
这次文章中明白了一个程序员是怎么学习的,这里自己明白在社会的发达中每个技术 和生活都要有
慢慢发达的,例如:我们的手机以前用的手机,现在对我们还有用处吗?都是在发达程序员的编程语言或编
程软件也会有了变化,所以我们不能没有传统,也不能没有新的,程序员在学习中专注好,这个编程过程中的
每一个发达的,更能展现出来结果的这种软件或语言是必须要学的要不然程序员的生活中很快淘汰的。
问题三:软件开发是一门工程还是一门艺术?
## 问题描述:在练习3.5.2
答:软件制作,是逻辑的创造。逻辑创造基于灵感。虽然有方法论指导,但针对每个问题,归根结底是编程人员
对一个具体问题的逻辑创作。继而针对这个创作进行完善,修改。达到符合需求的目标。就新产品创造,新
产品需求定义,程序设计,编代码这些步骤而言,都是一种创作的过程。这种过程的创造性是不可忽视的。
我们经常把使用某种语言比做类似修轮胎的手艺。这在具体公司的工程实践和培训是没错的。但是究其
本质,轮胎只有一种,材料只有橡胶一种,修补方式也只有涂胶水吹干一种。和编程并没有太大关系。
其次,一个公司的软件开发,宏观上又必然是工程。类似一座桥梁,或者一个高层大楼的修建。都是
从制定目标(需求),制定蓝图,完善设计(设计,接口)。搭建地基,混凝土浇筑(框架),装修(功能
代码),验收(测试),交付(部署),开卖(收费)等步骤。都是需要很多人,协同,按照固定的目标,
固定的方法,固定的流程,固定的标准,一步步完成。 这是工程。
总结:
这次粗读《构建之法》过程中,找到一个疑问前面的我是程序员吗? 在读的时候找到自己以前不知道怎么而放弃
的一些做法是错误的,该面对问题寻找这本书一样让自己更加学习,更加努力的掌握到技术。看到这本书读懂即将学
习的软件工程,也知道一个程序员该有的心态,该有的专注,该有的学习方向。
这本书中以故事方式讲述了一个程序员本有的工作,本有的技术,本有的尝试等,读起来有继续读下去而知道以
前的自己还不算是程序员,只是个初始碰到者。