一如软工深似海,从此硬件是故人

课前疑问的自答

课前,我的主要疑问是通过这门课对我的课题有什么帮助?我了解软件开发流程对于我的课题有什么意义?伴随着这门课的学习,我有了一个契机去主动了解Pycharm,让我更加清楚这个工具的强大功能,在课程学习中,我通过CSDN查找资料,与同学们交流探讨,Pycharm越来越多的方面开始呈现在我面前,我内心不断地感叹——Pycharm还能这么用?可以说这门课给了我以后继续使用这个工具、促进我课题研究的信心。

收获

在需求阶段,系统开发前期需求分析很重要,它是为了有效解决用户问题的需要进行的一项工程活动,所需要考虑的需求问题是功能需求、数据需求、性能需求和接口需求,开发者承担分析任务,核心是用户。其步骤有三个:1获取客户需求客户泛指某个人或机构部门等,一般方法是调查,包括访谈、座谈、问卷、跟班和收集资料,需求规约可表达用户的软件价值。②建立需求模型,它是用户需求的图解,一些常用的模型有:业务树图、用例图、活动图。分别用于结构化需求建模、系统业务举例和反映系统工作流程。③进行需求验证,要验证的主要内容有:有效性验证、一致性验证、完整性验证、现实性验证和可检验性验证。

软件设计阶段,系统通过逐步求精使得设计陈述逐渐接近源代码。这里有两个基本步骤,第一步是初步设计,关注于如何将需求转换成数据和软件框架。第二步,详细设计,关注于将框架逐步求精细化为具体的数据结构和软件的算法表达。发生中的设计行为、数据、算法和程序设计都需要由现代程序所需的界面设计这一清晰的行为来结合起来。界面设计建立程序布局和人机交互机制。贯穿设计过程的质量由一系列的正式技术评定或设计排演来评价。软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。

实现阶段应认识到:软件开发流程中每上一个阶段都是下一个阶段的实施进行的基础。编程也是根据对软件设计,将软件设计的各部分需求通计算机程序代码来实现运行,编程有统一、规范的程序编写规则,保证软件程序的易懂性、易维护性。

在测试阶段,根据设计将客户软件需用编程代码来实现之后,也就是软件程序完成之后,需要对编写的程序,形成整体构架、功能进行单元、组装、系统三阶段的测试,以测试程序编写的正确性,以及对客户需求功能满足的充分性,以此来确定软件是否达到开发要求,同时也是一个发现问题、纠正问题的过程。

还有最后但并不是结束的维护阶段,维护是指已经完成对软件的研制工作并交付使用后,对软件产品所进行的错误改正,适应环境变化和增强功能等软件工程修订,做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以扩展软件功能,提高性能,为用户带来明显的经济效益。

心得

总的来说,学校开了这门课,我们上了这门课,总是学到了点东西的,不可能明明上了软件工程这门课,却像没上一样什么都不懂。在上课的时候我还是很认真地去听老师所讲述的内容的,我觉得他的思想和我一向而来的培养计算机学生综合素质的理解还是在一定程度上不谋而合了,所谓的需求获取,那就是一个谈判,辩论,交流的过程,已经不是单纯的编编程序就能解决的问题了。设想一下,一个又有技术又能够与人交流合作的人所取得的成就自然要比一个单单只会编程序的人要大得多。其次,这门课程教给了我们在完成一个实际项目时的一般程序及过程,我认为这是一份非常具有实际意义的教学内容。这是我们实际要运用的一项非常有用的技能,而且不仅仅局限于软件工程的范畴,我们即使是从事与其它行业,不也是要从需求获取开始,一直有条有理地到最后成品的出炉吗?应该说这就是这门课的价值所在。无论是在上课,还是在学生会里面做学生工作,我都深深地感觉到.技术性的工作就好比变魔术,其实原理是非常简单的,甚至可以说简单的可笑,但是当你就是做出这么一个简单的东西出来之后,一些外行们有时候会用崇拜的眼光看着你,觉得你很厉害,很高深莫测。但是制作的过程他们却不知道,也许知道之后他们只是会哑然失笑,原来这个东西的制作过程是如此的简单。这个可以说就是技术的魅力了,而作为需求获取及之后的一系列过程则是类似于魔术揭秘的过程,但是作为这个秘密我们并不需要一揭到底,至于揭的程度如何那就是我们那就是我们学出的程度如何了,我们要让对方知道我们在做什么?以及如何去做?这些东西需要我们以一定的技巧叙述出来,所起到的作用就是能够让对方了解自己的进度,却又能够不让对方来干涉自己的工作过程。因为我们是技术员,对方只是外行,即使对方知道了这个魔术的操作过程,也并不代表他们就能够向变着魔术的我们来随便修改这个魔术的变法,况且我们能够用不同的过程来得出一个同样的结果,这个过程的得出的主动权如何掌握在我们的手上,就看我们如何以高明的方式来揭开这个魔术的谜底了。当然了,在纯粹的理论上.我觉得开设这样一门课程是很成功的。但是毕竟现实里有太多的不确定的因素。最重要的因素就是授课的老师和听课的学生。这两个可以说是这门课成与败的决定性的因素。

回顾

第一次大作业中预想还是会以我本专业(偏硬件)为重点开展学习,但目前看来我无法达到全栈式开发的境地,因此,实际学习过程中,我所做的工作涉及硬件的地方并不多,也因此发出了一如软工深似海,从此硬件是故人的感慨。在开发小团队里,我担任了开发者的角色,并且成功完成了数据格式的转换、波形显示及频谱绘制等工作,虽然还有部分工作正在进行中且挑战巨大。在学习离散信号频谱绘制时,我一方面重拾本科知识,一方面在CSDN上寻找源码,但由于对基础知识掌握不牢,我始终无法从海量的程序源码中找到自己想用的部分,在仔细剖析了自己熟悉的Matlab程序后,再转战Python代码,下载了相应的库后,我完成了离散信号的频谱绘制。

其他任务

视频学习

《梦断代码》读后感

整本书就是讲图灵机的不可判定性————软件开发过程中,很多过程都不知道什么时候能不能结束,甚至说能不能做出来,这导致整个软件工程不能够停止,这不是暗合了“停机问题”?纯属玩笑,问题并没有这么简单,否则Scott Rosenberg的书也不会这么畅销。我断断续续看完了这本书,而且只是大概的了解。不得不说,我不是很习惯作者的写作风格,以记叙文的风格去写说明文,必然会给信息的提取带来很多的不便,说白的就是文章中的“废话”太多,以至于不认真看还真找不到课上讲的东西,比如“Feature Driven”之类。不过话说回来,Scott Rosenberg真乃神人,能够把这么一件很理性的事情以如此幽默的方式表现出来而且不失深厚的文化底蕴,使得全文行云流水,酣畅淋漓的展现自己在项目管理和代码编写方面的才华,获得这么多读者的支持也是有理由的。

《梦断代码》以OSAF开发的名叫Chandler的PIM软件的开发过程为主要的线索,阐述了这个软件的4年来开发过程,这个梦并不是很美好,实际上是痛苦的,软件开发过程中的典型问题在Changler的开发过程中到能找到。不过本书主要还是要说明如何有效的应对由于生产力的发展而导致预期目激增而导致项目目标发生的变更,这样的变更通常是不可预知的,似乎在和你进行一场不公平的游戏,你在明处,他却在暗处————被动的总是你。

高级软件工程第三次大作业(周帅)相关推荐

  1. 第三次大作业-作业准备

    在第二次大作业结束之后,第三次大作业-白盒测试实践在三周内进行. 由于大家刚进行完一次大作业的辛苦工作,于是本组决定第一周交由大家复习学习之前的黑盒测试实践.搜集资料.自发配置工作环境和工具.进行自己 ...

  2. 2016福州大学软件工程第三次个人作业-K米软件产品评测

    K米软件测评个人作业结果统计如下: 评分标准: 按照栋哥布置的第三次个人作业--K米测评制定评分标准如下: 第一部分:调研.评测 下载并使用,描述最简单直观的个人第一次上手体验. 0.5 按照描述的b ...

  3. 高级软件工程第三次作业:数独游戏界面功能

    此次作业基本引用了,第二次作业中使用的code.在保留第二次作业的功能基础上添加了两个文件,实现了界面游戏的功能. 完成数独游戏界面功能,代码能实现以下题目要求: 生成任意数量的数独题目并将数独棋局依 ...

  4. 高级软件工程2017第2次作业—— 个人项目:四则运算题目生成程序(基于控制台)...

    Deadline:2017-09-27(周三) 21:00pm (注:以下内容参考 福大软工作业 和集大个人作业 ) 0.前言 很多童鞋在本课程的目标和规划中,都表示希望能提高自己的实践能力. Pra ...

  5. 软件工程大作业---《苕皮段子》段子笑话APP

    软件工程最后一次大作业完工了,作为PM我将这次大作业的一些详细的工作与设计写在这篇博客之中.由于我们决定将这个项目上线,所以目前还在对一些细节进行改造,所以这里就不提供APK的下载地址了. 一.引言: ...

  6. 密码学大作业(共三次)

    第一次大作业 Many Time Pad #密文为十六进制字符串,应该先将其处理 ciphertexts = ["315c4eeaa8b5f8aaf9174145bf43e1784b8fa0 ...

  7. DHU Python Curriculumly Learning【5】——大作业_key_by_TA

    文章目录 写在前面 第一次大作业 第二次大作业 第三次大作业 第四次大作业 第五次大作业 第六次大作业 第七次大作业 第八次大作业 第九次大作业 第十次大作业 写在前面 助教写的参考答案,嗯~ o( ̄ ...

  8. DHU Python Curriculumly Learning【1】——大作业_own work

    文章目录 写在前面 第一次大作业 第二次大作业 第三次大作业 第四次大作业 第五次大作业 第六次大作业 第七次大作业 第八次大作业 第九次大作业 第十次大作业 写在前面 本博客用于记录(或者说是用来备 ...

  9. 西南大学网络教育学院计算机答案,西南大学2017年6月网络与继续教育学院《计算机辅助设计》【9123】大作业答案.doc...

    文档介绍: 西南大学2017年6月网络与继续教育学院<计算机辅助设计>[9123]大作业答案.docEvaluationWarning:ThedocumentwascreatedwithS ...

最新文章

  1. 基于Spark的移动用户主要活动地点的挖掘算法实现以及JavaEE技术整合
  2. python 排列组合之itertools
  3. 容器安全 - 通过SECCOMP过滤在容器中的风险操作
  4. 办公自动化——Python操作Excel案例
  5. 高等数学辅导讲义_《高等数学》考研自用框架体系
  6. 信息学奥赛一本通题解
  7. QT课程设计:C++英语单词记忆软件程序开发
  8. 诗经名句(供大家看代码疲劳的时候消遣下)
  9. ASIC设计流程相关
  10. windows控制台命令: 快捷键大集合
  11. 按洲划分的国家和地区代码整理 包含:中文名 英文名 洲 首字母 两位英文代码 三位英文代码 三位数据代码 洲
  12. c++11后面引入的新特性(三)
  13. T-SQL数据库修改、删除
  14. 更改ubuntu默认文件管理器为deepin
  15. Webpack 安装
  16. MySql基础篇——变量、流程控制与游标
  17. 服务器上用U盘安装Linux系统详细步骤
  18. 教师资格证查询找不到服务器怎么办,教师资格证成绩查询页面打不开怎么办?...
  19. 波形包络提取与峰值提取_干涉信号中的小波峰峰值提取方法与流程
  20. 安装时提示错误1402的解决办法

热门文章

  1. python判断性别的源代码_python 通过手机号识别出对应的微信性别(实例代码)
  2. H5实现复制淘口令功能
  3. mtk-keypad
  4. arduino中Keypad 库函数介绍
  5. 小试牛刀:用python写欢乐斗牛
  6. JavaScript数据结构与算法 - 树
  7. 0门槛的数据可视化软件,帮你快速上手制作炫酷的可视化大屏
  8. PPT转Word文档怎么转?分享一个巧妙的转换方法
  9. Docker部署笔记--Redis集群主从容错切换迁移
  10. 【JS】1410- 一行 Object.keys() 引发的思考