《软件工程》学习历程1

最近学生们经常找我聊天,希望能让我给他们指明方向,这个问题我不太里手,只是和他们说了说我的学习历程,说得多了,觉得有必要写下来。虽然历程比较平凡,但也许能让他们有所启发,对我而言,自然是记录成长。

大三时开始开始学习《软件工程》,清晰记得给我们上课的刚留美归国的博士,后来他成了学校的校级领导,当时他同时承担了我们的《离散数学》教学,对他个人印象深刻,但对他所授的课程,我只是记住了“瀑布模型”和他的全英文教学,甚至考试试卷也是英文的。

大三挂了大学期间第一门考试,于是,暑假留在学校,有点小沮丧,但感觉也特别幸运,学院竟然开始实行项目小组制,我顺利的利用这个时间参加对我影响很大的开发小组,遇到了对我影响深远的指导老师,他话不多,只是安排任务,检查任务,组织学习,当然,还有关心我们的成长。如今,我还有一个小本子记录着当时他的安排,他叮嘱我们找工作注意安全。由于我是小组中最早过英语四级的同学,很自然的就成为了组长,自然的承担更多的任务,同时开始学习如何给小组成员分派任务,收集反馈,检查结果,指导同学,我想这些给我后来成为一名教师奠定了基础。
当时,我们开发的项目是《湖大衡阳分校财务教学管理系统》,印象深刻的一幕是:老师从客户那回来后,拿出厚厚的一踏凭证类表格,于是,我们开始了漫长的绘制“数据窗口”的工作。当时使用的工具是Sybase公司的PowerBuild,而如今,PB已经成为了历史。
在这个项目中,我熟悉了“数据窗口”、“SQL语句”和用“messagebox”做调试,还独立承担了整个系统的帮助文档制作,个人认为工作还算不错,制作帮助文档这一部分,指导老师后续直接让我指导学习学妹。指导老师给我定的毕业论文课题是关于“基于构件的软件复用”,当时,我主要负责“进度条”的复用,对,就是那个程序处理时间过长,防止用户关闭应用程序的进度条。现在,我几乎忘记了当时的毕业设计内容,但是我记住了“基于构件的软件复用”几个字,这时候,我依然不知道这和软件工程有什么太大的关系。

谈起真正开始对软工产生感觉,应该是在读研究生时,在导师的公司参与项目的过程。参加这个项目,一样很幸运,等待被分配的时间比较短,一开始就能跟着领域知识很丰富、项目开发经验很足的项目经理开始做需求调研,我们和用户方一起呆了两个月,用户是垄断企业,他们信息科的一位同事天天和我们工作在一起,但基本上是他玩游戏,顺便回答我们业务方面的问题和安排碰头会议,而我们却始终忙个不停歇。还记得,每天早上我总是第一个到办公室,一边整理前天的任务,一边等待大家,项目经理通常会在讨论十分钟股市行情和早间新闻后开始一天的工作,上午时刻基本上是大家一起讨论,作为项目唯一的女性,理解他们的讨论内容并记录的工作自然由我承担,当然我也乐于承担,这个工作让我对于条理性理解更加深刻,也让我对公司业务更加熟悉。中午午休期间,我开始整理上午的讨论,以方便下午大家可以按照我的整理开始分头工作,虽然很辛苦,但是很充实,很有意义,这样让我们不用因为午休而浪费大量的时间再重复讨论。两个月时间,我们在企业完成了所有原型的制作,参与了两次需求确认会议,从此我开始回忆起大学时学习到软工知识,我开始意识到:原来,大学里认真学习的内容,是会在脑海里留下印象的,只不过,它们在脑海里是一个一个的点,进行实际项目开发就是增加他们被提取、被组合的可能性,而一旦被提取、被组合,再次被提取的可能性将被极大的提高;原来我正在经历的的就是需求分析;原来,公司开发软件也有多种形式:当时公司是计划买个软件做个二次开发就给用户使用,谁知提篮子不容易,最后只能推倒重来,时间、成本和人力资源都有所浪费,好在及时止损了,于是我们出现了;原来,对企业业务流程的了解,也领域知识的熟悉,也是非常重要的,如果能够利用领域知识对企业信息化做流程重组也是非常好的;原来,我们画的所有图,就是用来和用户确认需求的,可以算是原型模型;原来,瀑布模型中提到的文档驱动,其实对于初学者来说是很有帮助的。
需求分析结束后,回到公司,项目经理带着我们完成了数据库的设计,并要求UI部门做好界面设计后,他的工作就移交给了工程经理,工程经理留给我的印象是:严谨、认真,具有程序员的典型形象。从他那儿,我看到了工作分解结构和甘特图,还有我们的进度计划安排,每天完成他安排的任务、checkin配置库、写好日报,就觉得异常充实了,我发现我没有时间思考其他任何问题,包括我是不是需要一份感情。从他那,我发现代码书写是有组内规范的,被他调整过的代码就是看着格外舒服,也就因为此,他对我们要求很高,项目组成员最害怕被他叫到名字,这意味着将是一顿臭骂。我身边的同门,一个男生,每次被叫到后,都会全身一抖,可越是抖,越是经常被叫到。幸好,我没有被骂过,虽然我也害怕,但我把害怕转化在了码代码的严谨上。
这个项目使用.net技术,开发历时近一年,到今天还在维护使用。当我因个人原因离开时,项目还没有完全做完,虽然项目组的成员流动很正常,但为了保证项目的工作,我提前一个月提出了申请,记录下所有我未完成的任务中存在的问题,交给工程经理,他很满意,也很轻松的放我离开。到如今,过去十年,他都还记得我,我想那份临走时的交接单应该起到了一点作用。
到此,我开始意识到软件工程是个系统工作,仿佛摸到了一点点边,又似乎没有。

不知不觉,写了很多,但还有很多没有写完,当然远未到写完的那天,这只是个开头,后续将继续记录……

原文地址:https://www.cnblogs.com/pengchen511/p/11022040.html

时间: 2024-10-12 06:51:40

《软件工程》学习历程1的相关文章

读书笔记——软件工程学习伊始

今天阅读了<构建之法:现代软件工程>的第一章和邹欣老师的一篇博文<<梦断代码>读后感>,我想从两个方面谈一下我的感想和看法. 先谈一下我对软件工程的认识.在我之前的学习历程中,我一直将软件工程或与之相关的工作视作与机械专业不相关或与我想从事的机械相关工作不相关的“别人专业的”内容.通过课堂上老师对于未来机械发展方向的分析,我渐渐地意识到,也许软件工程也将变成一个机械工作者必须或多或少地了解与掌握的内容.我认为软件工程就是一个通过软件来实现信息处理.人机交互功能的工程分支

大三仍是Linux系统小白的我给大家讲讲学习历程

我与Linux结缘是在大三的时候.我与Linux熟识是在偶然遇到<Linux就该这么学>的时候.因为我是电子信息工程专业,在高年级时开设了嵌入式课程,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.所有带有数字接口的设备,如录像机.车子等,都使用嵌入式系统,有些嵌入式系统还包含操作系统.嵌入式操作系统包括μC/OS-II.嵌入式Linux.VxWorks等,但大部分嵌入式操作系统是不开源且不能免费使用,只有Linux是基于GPL协议,所以它成为了嵌入式系统的绝对主流. 我们学校的嵌入

SOC学习历程概述

从开始接触soc到现在大概有两年半左右的时间了,经历了ORSOC到minsoc再到mkg-soc的搭建,以及现在的大小核系统的搭建 首先先讲下学习的前期需要具备的知识,前面3点是必须,后面3点可以中间学习的过程再学习.之所以有这些要求主要是以防中间的学习过程中,有些东西看不懂而走弯路. 学习的前期准备:1.学过数电,有一定的电路基础.2.熟练掌握verilog语言.3.对于计算机组成原理,体系结构有一定的了解.4.学过单片机编程,写过一些简单的裸机程序,最好能够玩过microblaze这样对于软

ACM学习历程—HDU 4726 Kia&#39;s Calculation( 贪心&amp;&amp;计数排序)

DescriptionDoctor Ghee is teaching Kia how to calculate the sum of two integers. But Kia is so careless and alway forget to carry a number when the sum of two digits exceeds 9. For example, when she calculates 4567+5789, she will get 9246, and for 12

SQL Server 2008从基础开始学习历程(1)------创建表与查询

[by:yy] 无论我们学什么呢,都要讲究一个Why,一个How.那么我们为什么要学SQL呢?无非就那么几点. 1.为了适应其他技术,和其他技术配对而学. 我个人的理解呢,只要在IT行业,无论你学什么,或者做什么工作.都离不开数据库.而学习数据库呢,又太文字化了,看的心里就烦.我是很抵触文字的.看着一大排一大排的字,就怕.可能是大天朝的教育所致.已经怕了学生生涯了. 2.为了适应社会而学. 随便找个招聘信息,都会有标注需要会SQL语言啊.了解MySql呀.会搞Oracle呀.所以呢,为了能在找工

ACM学习历程—HDU 5023 A Corrupt Mayor&#39;s Performance Art(广州赛区网赛)(线段树)

Problem Description Corrupt governors always find ways to get dirty money. Paint something, then sell the worthless painting at a high price to someone who wants to bribe him/her on an auction, this seemed a safe way for mayor X to make money. Becaus

【金阳光测试】Android自动化 -- 学习历程:MonkeyRunner原理初步

章节:自动化基础篇——MonkeyRunner原理初步 网易云课堂: http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=877115&courseId=712011 主要讲解内容及笔记: 一.理论知识和脚本演示 最佳方式是上官网文档去查看monkeyrunner的介绍,官网上不去,就找了一个本地的android 4.2 的查看,基本内容没啥变化 First,什么是MonkeyRunn

android金阳光自动化测试——学习历程:电池续航上&amp;&amp;下

章节:自动化基础篇——电池续航自动化测试上&&下 网易云课堂: http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=878098&courseId=712011 http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=878099&courseId=7120

android金阳光自动化测试——学习历程:自动化预备知识上&amp;&amp;下

章节:自动化基础篇——自动化预备知识上&&下 网易云课堂: 上:http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=877113&courseId=712011 下:http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=877114&courseId=71