软件实践的学习体会

2024-10-13

软件实践的学习体会(精选8篇)

软件实践的学习体会 篇1

经过长时间对软件的的使用,在不断练习操作的过程中,对软件有了深刻的感觉。以下是小编整理的软件实践课程学习心得体会,欢迎阅读!

经过潘老师讲授软件工程实践后,感觉对软件工程这门学科有了深一层的认识。软件工程是一门重视实际操作的科学。对于软件产品,无非是产品定义、设计代码、调试维护几个步骤,看似简单,可是实际操作却复杂困难,它不比其它行业产品可预见可触及,所以学好软件工程能为以后从事软件开发行业打好基础。

在软件实践这门课中,讲到了有效利用现有资源进行软件编程的方法。提到软件开发也可以像练习书法一样,采用临贴的方式,借鉴他人的优秀代码资源。临摹优秀软件是学习软件开发的一个重要方法。正如一首诗中说的:“熟读唐诗三百首,不会写来也会吟”。软件开发也是一个道理。为了真正地掌握软件开发的技巧,“临贴”是个不错的起步方法。

以前总是觉得,既然编写一个程序,就应该完全靠自己,那样写出来才有成就感,才算是自己的程序,可是这门课程教会我原来适当地借鉴别人的东西,也不算抄,相反,还可以提高效率,节省时间。这可真是与以往的观点不一样了。具体如下:

“软件编程,拿来主义的作用很大:

1、源代码交换方便。

2、可行的例程序用处大。

3、借鉴现成少走弯路。”

不过借鉴别人的东西可是有说法的,可不是盲目地抄袭,下面是一些提到的途径:

1、既有系统:借鸡下蛋,买来就用;

2、书本例子:简单修改、直接使用;

3、联机或联网帮助:帮助文档、官方支持;

4、开放软件源代码:linux apache eclipse …

5、互联网资源:论坛、搜索引擎、新闻组

借鉴过来后,还要多方面综合考虑,比如说代码的具体作用,完整性,还要考虑每个借鉴过来的东西的好坏。这些都要多方面考虑,可不能因为前面说软件编程可以借鉴别人的,就盲目地抄袭。到时候代码弄一堆凑在一块儿,谁也不知道它们会不会好好工作。弄不好乱了程序计划是小,公司的损失可不是哪个人都能承受得起的。

课程还提到,应该用一个小项目先从头到尾地练完,这样,有个整体性的了解,可以增加不少开发经验。看来,不学习此门课程,还不能深入地解读软件工程的奥义。这门课程为我们深入地了解软件工程这个庞大的前沿学科起到了推动性的作用。以上是我就此门课中提到的众多方法的一小段做的一些浅谈,更多的知识还在于我们自己去学习体会。

软件实践的学习体会 篇2

1 软件体系结构在软件开发过程中的位置

软件的开发过程可划分为从概念直到实现的若干阶段, 包括:问题定义、需求分析、概要设计、详细设计、测试、运行与维护等。软件体系结构的建立位于需求分析之后、软件设计之前。下面从各个阶段的功能出发, 分析这几个层次之间的关系。

(1) 需求分析阶段。该阶段主要是根据需求, 决定系统的功能, 在此阶段, 设计者应对目标对象和环境做细致深入的调查, 收集目标对象的基本信息, 从中找出有用信息, 这是一个抽象思维、逻辑推理的过程, 结果是软件规格说明。

(2) 建立软件体系结构阶段。设计者主要从结构的角度对整个系统进行分析, 选择恰当的部件、部件间的相互作用关系以及对它们的约束, 最后形成一个系统框架以满足用户需求, 为设计奠定基础。

(3) 设计阶段。主要是对系统进行模块化并决定描述各个部件间的详细接口、算法和数据类型的选定, 对上支持建立体系结构阶段形成的框架, 对下提供实现基础。

(4) 实现阶段。将设计阶段设计的算法及数据类型用程序设计语言进行表示, 满足设计、体系结构和需求分析要求, 从而得到满足设计需求的目标系统。软件体系结构在系统开发的全过程中起着基础的作用, 是设计的起点和依据。同时也是装配和维护的指南。

2 软件体系结构在软件开发过程中的作用

软件体系结构在系统开发的全过程中起着基础的作用, 是设计的起点和依据, 同时也是装配和维护的指南。良好的软件体系结构对于软件系统的重要意义在软件生命周期中各个阶段都有体现。

在系统分析阶段, 软件体系结构发挥着巨大的作用。一方面, 借助于软件体系结构进行描述, 可以使问题得以进一步抽象, 使整个系统更易于被系统分析设计人员把握, 更清晰地认识系统, 完善对系统的理解, 还可为系统分析设计人员提供新的思路。另一方面, 它能够帮助软件系统的各有关权益方形成统一认识, 互相交流。在软件开发过程中, 软件体系结构对系统生命周期的影响最大。

软件体系结构是系统实现的基本约束, 即系统的后继开发工作要遵循体系结构所描述的设计决策;软件体系结构决定了开发和维护项目的组织结构, 软件体系结构也会反映到开发工作的分解, 以及项目的人员组织。软件体系结构对于软件质量控制也具有重要的意义, 好的软件体系结构是成功的必要条件。体系结构技术的研究, 使软件重用从代码重用发展到设计重用和过程重用, 实现多层次的软件重用。

3 基于软件体系结构的软件开发主要阶段

所有软件开发方法都要解决从需求到实现之间的转换问题。基于体系结构的软件开发包含以下几个主要阶段:

(1) 通过对特定领域应用软件进行分析, 提炼出其中的稳定需求和易变需求, 建立可重用的领域模型。依据领域模型和用户需求, 产生应用系统的需求规格说明。

(2) 在领域模型的基础上, 根据需求规格说明提炼出特定领域的软件体系结构。这是系统的高层设计, 其目标是通过重用领域体系结构库中已有的高质量的体系结构, 或生成最适合该用户需求的体系结构, 并加以提炼入库, 以备将来的重用, 并在此体系结构的指导下, 把系统逐步分解成相应的组件和连接件, 直至组件和连接件可以被设计模式和面向对象方法处理为止。

(3) 这个阶段主要解决具体组件和连接件的设计问题。通过重用可重用组件库中模式、对象和其它可重用的设计件, 或重新设计的组件, 并提炼入库;然后通过具体的编程实现, 就可得到可运行的程序。

4 软件体系结构的理论指导软件设计的优点:

(1) 能识别出重要的通用范型, 这样就能理解系统与系统之间的高级关系, 新系统能在旧系统的基础上经过变换得到。

(2) 使软件系统设计成功的要素是正确的体系结构, 错误的体系结构会导致灾难性的后果。软件体系结构可作为满足需求分析的框架, 为系统的设计和管理提供技术和管理的基础。

(3) 软件体系结构风格通常对分析和描述复杂系统的高级属性是必要的。

(4) 便于软件重用, 体系结构可帮助解决软件重用所遇到的障碍, 对系统部件约束最小的地方重用性最大, 而作为系统早期设计的体系结构对部件的约束最小, 基于软件体系结构的重用为软件重用开拓了一条新的道路。

摘要:软件体系结构的使用是提高软件开发质量、减少软件开销和促进软件生产率提高的最有效方法之一。本文从软件生命周期的角度阐述了软件体系结构实践及相关内容。

关键词:软件工程,软件体系结构,软件开发

参考文献

[1]何炎祥等:《软件体系结构中五种常见风格的剖析》[J].计算机工程, 2000, 10.[1]何炎祥等:《软件体系结构中五种常见风格的剖析》[J].计算机工程, 2000, 10.

软件实践的学习体会 篇3

关键词:计算机软件技术基础 教学内容 教学环节 教学方法

中图分类号:G642 文献标识码:A 文章编号:1672-3791(2014)10(b)-0199-01

随着计算机技术的迅速普及与发展,高校学生的计算机基础教育越来越受到社会的关注和学校的重视,计算机基础课已经成为高校重要的基础课程之一。《计算机软件技术基础》是我校为工商类、金融、信息与计算科学等专业的本科生开设的一门计算机基础课程。

1 规划课程体系

由于理工类、管理类、文法类等学生的专业领域不同,因而对计算机技术的要求也各有不同,我校分别对不同专业的学生设置了相关的计算机类课程。该课程是针对非计算机类的工商类、金融、信息与计算科学等专业开设的一门软件综合技术基础课程。其涉及面广,内容相对独立,涉及计算机操作系统、数据结构、数据库技术、软件工程等课程的基本内容。通过学习该课程,可使非计算机专业的学生能够了解并掌握计算机软件最基本的概念、思想、原理和方法,掌握开发应用软件所必需的软件基础知识,提高软件素质和用计算机技术求解实际问题的能力,为今后更好地服务于该专业打下必要的基础。

2 组织教学环节

2.1 制定教学大纲和教学内容

计算机软件技术基础课程是一门成熟的课程,开设时间较长,但由于其包含的内容丰富,所涉及专业较广,所以课程内容应充分考虑专业培养方案适时调整,2013年我们对旧的教学大纲进行了修订,宗旨是既体现该课程在专业培养目标中的地位和作用,又使课程教学内容保留经典,体现现代、涉及前沿。

目前关于计算机软件技术基础的教材很多,内容也比较成熟,但却鲜有主要依据C语言来描述算法的教材,由于我校所授课学生先修的高级语言仅有C语言,因此在教学实施中,我们将教材中对应内容的算法和例题用C语言进行描述,便于学生理解和学习。

2.2 制作多媒体课件

计算机软件技术基础是一门交互性很强的课程,因此采用多媒体教学是行之有效的教学手段,多媒体课件的制作是多媒体教学中的一个重要环节。

(1)课件的整体布局上,遵循“按章节组织教学内容、涉及每个知识点、突出重点和难点”的原则,不能把课件制作成教材的“克隆”版,做到源于教材而不局限于教材。(2)采用“集体备课,个别调整,突出个性”的方法,教师根据具体情况,适时调整教学内容,利于更好地结合专业培养的目标进行教学。(3)采用多种教学方法相结合的方式。除了用动画形象地演示重点难点和主要算法外,开发了基于网络学习的交互式学习网页,便于学生有选择的进行自主学习。(4)在内容安排上要力求层次分明、文字简洁。(5)合理安排教学内容,避免多媒体授课中信息量过大,学生吸收和消化难的问题。

3 改革教学方法和手段

3.1 运用多种教学手段

现代教学基本告别了过去“粉笔+黑板”的单一教学模式,代之以先进的教学设备和教学手段。在具体教学实践中,开发设计了动画演示程序,对复杂问题和算法的执行过程进行拆解,便于学生直观了解,使问题形象易懂,这种化难为易、化整为零的方法,促进了学生对课程内容的掌握。

在充分运用多媒体教学手段的同时,绝不摒弃传统的教学手段,而是合理利用黑板的作用,通过板书进一步加深学生印象。

3.2 激发学生学习兴趣

改变教学过程中教师站着说、学生坐着听的教学模式,让学生变被动听课为主动听课,激发学生的课堂参与意识。例如:将所要讲的内容转化为问题让学生来思考;在主要知识点介绍之后,及时给出练习题,进行课堂提问,要求学生们自己完成,充分调动学生的课堂学习积极性,实现教师和学生互动的教学方式,使学生们的思维处于活跃状态。通过这种教学方式,在激发学生积极性的同时,学生们在问题完成后,也会产生一定的成就感,觉得计算机学习并不是一件枯燥的事情。

3.3 重视实验教学

计算机软件技术基础是实践性很强的课程,因而实验课是很重要的环节,怎样充分利用实验课时,使课堂教学和实验教学相辅相成?(1)任课教师跟班指导实验。虽然每个班级都配有专门的实验指导老师,但任课教师必须亲自指导实验,便于全面客观地了解同学们实验中存在的问题。(2)配套实验教学内容。提前给出实验内容,要求学生在课前必须对实验内容进行预习,充分利用实验时间,培养良好的学习习惯。(3)鼓励学生进行创新。对实验内容的要求要避免墨守成规、千篇一律,对学有余力的同学增加综合性实验内容,鼓励他们独立思考、大胆创新。(4)进行阶段测试。在实验教学过程中安排阶段性测试实验,实验成绩作为课程总成绩的重要参考,充分强调实际技能操作的重要性。

3.4 加大辅导力度

除了在课后和实验过程中对学生进行辅导和答疑外,每周安排有固定的答疑学时,同时在教学网页上列出常见问题和答案,及时解决学生学习中存在的问题,通过跟学生面与面的交谈,拉近教师与学生的距离,有助于促进教学相长。

4 待改进的问题

4.1 加强课堂教学与实验教学的结合

现有的教学模式是传统课堂教学与实验教学相对分开,缺少了两种教学形式之间的融合。为了适应新的教学要求我们应该采取两者相结合的模式,比如:可以在实验室集合实验环境对一些操作性强的内容进行讲解,边讲边练习,这样教师讲得省时省力,学生通过操作来理解教学内容也更加直观。

4.2 改革课程考核方式

目前我们采取的考核方式是笔试加实验的形式,但实验成绩中实验报告占了相当的比重,并不能很客观的反映学生的实际水平,因而成绩并不能很好地反映学生实际课程学习情况。改革的方法是鼓励基础好的同学,自选一些综合性强的实验题目,根据实际情况客观合理的给出实验成绩,既反映了学生课程学习的实际水平,也激发了学生的创新意识。

加大习题库和考试系统的建设,对一些自学能力较强的同学,允许他们在通过测试的基础上,提前结束课程的学习,更大程度地激发学生的学习积极性,正在做到因材施教。

4.3 培养学生的综合素质

计算机软件技术基础作为非计算机专业重要的基础课程之一,可以从培养学生的综合素质的角度去组织、设计、实施各项教学活动,在课程结束前,安排课程设计的环节,以锻炼学生独立分析问题、综合解决问题的能力,培养出真正的新型实用型人才。

参考文献

[1]吴雅琴,姜薇.“VB程序设计”课程教学的实践与探讨[J].煤炭高等教育,2002(12):79-81.

[2]沈被娜.计算机软件技术基础[M].清华大学出版社,2012.

实践体验“OCR软件的使用” 篇4

(1)体验ocr软件的基本工作过程。

(2)了解ocr软件的实际应用价值。

活动步骤:

(1)要求学生事先准备包含印刷体汉字的报纸、杂志或书籍。

(2)指导学生使用扫描仪获取图像文件。教师应该事先通过实验,掌握对扫描软件中的扫描模式、分别率等具体参数的设置。如果没有扫描条件的,也可以直接使用配套光盘中的图像文件。

(3)使用ocr软件识别图像中的文字。

(4)把识别结果存入文本文件,并对识别的差错进行修正并保存结果。

活动评价:

活动结束后,及时组织学生对自己在活动中的表现按照教材中的评价量表进行自我评价,同时教师也要根据学生在活动过程中的表现进行随堂评价,并记录在学生评价表中。

于本次活动主要的目的是体验ocr软件的基本工作过程,所以除了有关实践体验活动的常规评价指标外,我们建议着重对“体验感受”进行评价。

项目

评价指标

评价

体验感受

善于使用6分

正确感受5分

能够理解3分

还需帮助2分

体验感受评价标准中的“善于使用”是指会熟练操作ocr软件,同时在适当的信息处理场合会想到应该使用ocr软件,也就是“即具有能力,也具备意识”;“正确感受”是指掌握操作步骤,获得较佳的实验结果,同时正确了解ocr软件的作用;“能够理解”是指完成实验操作,对ocr软件的作用,有一点了解;。“还需帮助”是指尚未完成本实验

软件实践的学习体会 篇5

摘要:该文针对新疆医科大学信息管理与信息系统专业软件开发设计课程开设情况进行介绍。软件开发设计课程的开设将涉及软件项目开发的相关课程实验教学内容进行整合,通过课程整合达到了课程的设定教学目的,增强了学生实践动手的能力,也为信息管理与信息系统专业课程教学大纲的修订工作提供参考依据。

关键词:软件开发设计;实验教学;课程整合中图分类号:G642 文献标识码:A 文章编号:1009-3044(2018)14-0150-02

1引言

目前,新疆医科大学信息管理与信息系统专业开设涉及计算机的专业课程:C语言、数据结构、数据库应用、多媒体技术应用、软件工程、网站建设与开发(ASP.NET)、面向对象程序设计(Java)等。在教学过程中,虽然每门课程都设计了适当的实验教学内容,但是在学习完相应的课程之后,对于一项软件开发项目学生还是感觉无从下手。造成此种现象原因诸多,其中一个重要原因是授课教师完成本课程的教学内容,没有过多考虑本课程与其他课程的衔接问题。由此,我们对这些课程的实验内容进行整合,在以往各课程实验课的基础上,综合开发了“软件开发与设计”课程,课程内容突显实操性,教学目标是培养学生动手设计开发软件项目的能力。

针对软件开发与设计课程教学过程中涉及的实验教学内容问题,我们将其他相关课程的实验教学内容进行有机整合。通过开设软件开发与设计课程,解决相关各门课程实验教学内容的交叉与衔接问题。

2课程设计

2.1课程学时及教学目标

软件开发与设计课程是信息技术一门综合实践类课程,应用性强,目标是为学生从事管理信息系统的开发工作提供理论支持和实践方法。软件开发设计过程蕴含着分析思考、工具利用、抽象表达、综合创造等多项技能,对信息专业人才素质的培养至关重要[1]。课程开设学时数设定108学时,其中理论学时18,实验学时90,理论与实践学时分配原则为1:5。

在软件开发与设计课程中,学生通过选定软件开发项目,运用软件开发与设计基本技能,运用开发工具进行项目的需求分析、总体设计、详细设计、数据库设计、功能界面设计,进而进行软件编码、测试和维护等主要工作。

2.2课程教学环节设计

为了达到软件开发与设计课程的教学目标,教学过程中设定八个关键的环节,确保教学过程顺利实施,课程教学环节如图1所示。

众所周知,过程控制和过程管理一直是项目执行的关注点[2],为了达到这门课程的教学目标,我们对课程的关键教学环节都制定了具体要求,具体要求如下。

第一阶段:项目选题。教师通过案例讲解,引导学生选择工作量适当的软件项目。教师针对学生选题展开讨论,分析项目实施中可能存在问题。

第二?A段:需求分析及总体设计。学生围绕选题进行业务流程设计,划分用户角色,为每一个业务设计流程。根据软件项目具体需求进行系统动态分析和动态模型分析,构建系统状态图与时序图;按照需求分析的任务、步骤和原则,进行功能需求设计和系统建模。

第三阶段:数据库设计。学生使用ER-Win等工具构建E-R模型。具体工作包括E-R图设计;表的定义;主外键设计;索引视图设计;存储过程与触发器设计;SQL脚本生成。

第四阶段:软件开发环境构建。在学生动手编码之前,围绕项目构建开发环境,选择使用的数据库包括:SQL Server 2008R2、MySQL、SQLlite等,选择使用的网站服务器包括:IIS、Apche等。

第五阶段:详细设计和编码。依据项目开发要求,学生通常选择的开发语言有:ASP.Net(C#)、Java、PHP等。

第六阶段:界面设计。在项目的界面设计、美化和布局方面,学生使用已经学过的多媒体应用工具软件包括:PhotoShop、Flash等。

第七阶段:软件测试。学生结合软件工程所学软件测试方法,对的软件项目进行白盒测试和黑盒测试测试,设计合理的测试用例完成测试工作。

第八阶段:项目验收。软件项目验收时,学生进行软件作品现场演示,介绍软件主要功能,教师根据设定评分标准进行打分,现场点评并提出今后改进意见;现场参加项目验收的同学可相互学习交流。

2.3课程考核方式

在考核方式上,软件开发与设计课程采用了形成性考核机制,目的是对学生在各阶段学习过程进行考核[3],分阶段全面测评学生学习效果,课程考核分值比例表见表1。

2.4课外实践能力培养

通过课程实施,学生实践动手能力得到显著提高,学生参加课外活动实践能力逐步提升。通过参加大学生计算机设计竞赛活动、SRP训练项目,学生所完成的作品质量也有所提高。通过竞赛和训练项目,激发了学生软件开发设计的兴趣和主动性,培养和锻炼了学生软件设计开发的能力。教学存在问题

第一,授课教师理论知识和软件开发技术学习更新不及时。信息技术飞速发展,软件项目开发所使用开发工具不断更新,教师存在没有及时学习新知识、新技术,授课过程中没有将新的知识、新的开发技术和方法传授给学生。

第二,在教学案例选择方面存在一定的局限性。由于每位授课教师专业知识存在局限性,在教学案例选择方面倾向于某一专业领域,存在教学案例选题的局限性。

第三,开发工具版本更新不及时。开发工具版本不断推出新功能,实验室在软件的开发工具方面更新速度相对较慢,存在开发工具版本更新不及时的问题。

参考文献:

软件工程实践报告 篇6

软件工程实践报告1

实践单位:山西西太行信息有限公司

实践时间:xx年7月1日-----xx年7月31日共31天

一、实践目的:综合利用所学的专业知识,培养软件开发的技能;掌握android操作系统的编程技巧,体会企业软件开发与学习过程中编写软件的不同;提高自身的创新意识与创新能力,促进团队之间的沟通协作,为早日踏上工作岗位打下坚实基础。

二、实践内容及感悟:

(a)实践前准备:自xx年清明节前后,我和我的组员就开始接受山西西太行信息有限公司的公开课的培训,当时经电子与计算机技术学院于一老师介绍由陈川老师主要带领我们重新温习了一遍关于java语言的基本知识,在这将近一个月的学习过程中我们逐渐重新拾起了即将被遗忘的java知识,走出了以前认识上的误区,使我在java这一块又有了一定的的优势,为以后我们用java语言做开发打下了很好的基础。自xx年5月1日,我们开始了真正的基于android操作系统的软件开发,虽然我们是利用课余时间进行学习,但是学习的效果真的很好,我们基本上晚上都会学到很晚才回宿舍。刚开始的时候我感到很不适应,感到学习的java语言不能够充分的的到利用,只能够用一些和系统相关的东西,但是随着学习的深入,我发现android操作系统也是一个很强大的手机操作系统,它有着很好的发展前景。并且移动互联网在在中国有着大的市场,所以我对我正在从事的android手机软件开发给予了很大的希望。这一个月的培训我们主要学习了android操作系统的五大系统组件:activity、service、sqlite、content Provider、intent、broadcastRecever,同时我也学到了一些课堂上学不到得东西,对外面的市场的情况也有了更深刻的了解。

(b)实践过程:xx年7月1日到xx年7月31日是我正式暑假实践的时间段,我们一行十六个人,大三的十一人大二的六人。我们被分了两个小组,每个小组八个人,上课时间一般是下午两点到五点半或者下午五点半到晚上八点半,其余的时间是我们自己写代码的时间。每天的任务量都有所不同,有时候把自己的任务做完了剩下的时间就自由支配。这一个月我们的主要任务是做一个腾讯微博android手机客户端,每天陈老师都会给我们传授一些做软件的经验和一些新的知识点,然后我们根据具体的要求编写文档,编写代码,第二天交由陈老师点评。

(1)可恶的文档:刚开始的时候感觉很不适应,以前上课就是学习关于编程的知识,但是做项目的第一天陈老师要求我们写文档,我们用的是GB8568—88格式的文档,第一次写即感觉很枯燥又感觉不会写。对于写文档我们都有想通的反应,就是莫名奇妙的反感,但是陈老师还是不依不饶的要求我们写要我们查资料,我们也很没办法只能按照要求写文档。但是由于我们不知道在文档上写些什么,陈老师看我们很为难也有所让步,带领我们写了软件需求说明书,后来我们依次写了概要设计说明书、详细设计说明书,后来又写了测试计划、用户手册。当时的感觉就是知道的知识太少,对着文档一个词一个词的硬挤,但是当文档写完的时候还是很有成就感的。其实在写文档的过程中我们也渐渐的明白了文档的重要性,我们只是在学校编写程序的时间久了习惯了上来就写代码的坏习惯,忽略了软件工程中的很重要的部分-----分析阶段和设计阶段。可能是因为以前做的软件都很小,一旦项目稍微大一点,那在编写代码阶段将付出不可估量的代价甚至最终将以失败告终。其实我们都学过软件工程,而且在考试的时候成绩还不是很差,但是到真正需要这些知识的时候我感觉却忘记了如何下手,这也就是所谓的纸上谈兵吧,所以我感觉大学生缺少的正是一种动手能力。知识本身没有价值,有价值的是运用知识解决问题。

(2)该死的bug:写完文档感觉写代码就轻松了,但是事与愿违啊。由于以前没做过开放平台的客户端,中间涉及到同腾讯公司微博开放平台接洽的问题,开始真的很不适应,不知道怎么下手。当知道下手的时候不免出现了各种各样的bug:腾讯服务器故障啦、实验室断网啦、模拟器连不上网啦、代码错误啦等等。为了弄好这些bug有时真是忙的焦头烂额,因为可能因为自己写的代码有问题导致大家的代码都不能运行,作为团队的一员谁都不想拖后腿。但有时候我也找不到问题所在,只能请高手指教或者找老师为我排忧解难。只可惜我当时掌握的排错方式只有打印输出和查看日志,根本没接触过单元测试。其实多遇到一些bug还真不是坏事情,我现在开始明白编写代码最重要的是快速查找资料和排除错误的能力。首先我们不可能记住java语言或者android操作系统中所有的类和方法,所以能够快速找到我们所需要功能的类或者方法是很重要的。其次对于程序工作者来说遇到bug是很正常的事情,遇到不能解决的问题也是很常见的,重要的是能够正确的处理这些问题,并总结经验为以后的开发做好铺垫。遇到问题是要保持好的心态,千万不能焦躁,细心的一点点的分析问题,必的时候可以去网络上查找一些资料。但是不要遇到问题就上网查找,我感觉现在自己动手处理题很重要,上网查与吃现成饭没有本质的区别。网络可以帮我们开阔视野,但不要让网络阻碍了我们自我发展的机会。编写软件过程中要及时记录,这既可以让我们总结更多的经验,也可以为后来者提供一些宝贵的资料。毕竟都有成长的时候。

(3)痛苦的合并:这是我第一次这么正式的和这么多的人一起开发软件,更何况还有不认识的人在一个组,这给我们的沟通带来了很大的不便,尤其是最后代码合并的时候,很多的问题都一拥而上。我们当时用了一个软件visualSVN,这是一款团队开发的软件,当代码写的可以组合的时候我们就用这个软件在eclipse下共同开发。但开始的时候我们也会为了自己的代码正确而被迫修改别人的代码,最后弄得大家的代码不能够正确的运行,然后所有人都会停下来共同寻找错误,改正错误。这是团队开发时候很忌讳的问题,并且大家还都不好意思开口说谁错了,毕竟都不是很熟悉。直到大家开始慢慢适应这种团队开发之后,这样的情况才慢慢的被避免,效率也有所提高。这次的团队开发让我明白,在团队开发中根本不存在自我,你所做的任何事情都应从整个团队出发,以团队的利益为重,不能自私。尤其是在团队中千万不能应付,你的应付很可能会给他人带来很多不便,甚至造成更大的损失。因此teamwork很重要,必须谨慎!

(4)唉,完美:每次写完代码让陈老师点评都会发现很多问题,有时候是代码冗余度太大,有时候时代码不够安全,有时候是技术上不是很完善。对我们来说目标就是编写的软件能用,只要大家写的软件合并后能够正常运行,一切就ok了。但是这些是远远不够的,面向对象的思想和软件工程的一些常识我们都没涉及到,异步加载图片在陈老师讲之前我们也从来没有想到过,这些问题让我深深的体会到我们的创新能力的要求远远不够,我们对完美的渴求度远远不够。没有最好,只有更好。这句话真是非常经典,作为软件开发者永远没有标准答案,没有最好的软件,只有不断的学习不断的追求才能发现好的东西,找到更好的创意。虽然最后腾讯微博客户端能够成功的运行了,但是我意识到我所掌握的知识远远不够,在这个实践中却是暴露了很多的问题。但愿天天能做到更好!

三、实践总结:

1、一个假期结束了,留下了很多的回忆,因为这个暑假是很有意义的。在这三十一天里每天都学到了新的知识,每天都遇到了新的问题,每天都在进步这,也让我有时间更加清晰的认识了软件工程这门课程和设计模式在软件开发中的重要性,编写代码知识软件开发的一小部分,只有真正的这种开发才能体会到软件工程的意义。

2、团队的凝聚力关系着每一个软件开发人员的发展前途,每一个人的努力都会得到回报,同样一个人的失误也会影响到整个团队,因此正确处理好人际关系是很重要的。

3、注重产品的价值,做好市场调研是成败的决定性因素。4、掌握好一门技术你可以吃饱,但是你要想很富有,必须懂得很多。队友可以帮助你一时帮不了一世,要注重个人能力发展!

软件工程实践报告2

一、实习目的

这次实习的目的是提高我的专业技能、实践能力,让我了解一些实际的工作情况。正式工作前对我意义重大。在实践中对专业技能、综合素质、人际关系有更深的体会,这给了我正式工作前的宝贵经验。

这次实习的主要任务是了解整个软件制作流程,以及各个环节的细节。学完这些环节,就可以用学到的知识去完成一个公司安排的项目。我分配的项目名称是诊所管理系统。我们将以小组的形式共同完成这个项目,模拟实际的软件制作过程,最大限度地将学到的知识转化为实践能力。为真正的项目做好充分的准备,这样实习后才能在正式工作中面对。

公司的最终目的是希望能了解实际的项目制作,初步了解各个环节的意义。让我们将项目用于实际生产,这样我们可以更好地理解项目生产中每个过程的意义,以及团队在项目生产过程中是如何合作的。

二、实习单位和岗位

我的实习单位是埃森哲信息技术(大连)有限公司软件开发部,校企合作。该部门的主要职能是外包服务工作,根据客户需求制作相应的软件。因此,我们需要熟悉整个软件开发过程,这样才能处理客户的各种问题,做出更好的软件来满足客户的需求。

因为实习的原因,我的职位是软件助理工程师。具体的时间安排是实际的项目制作和专业知识的学习。实习时间8周。本来实习的地方是在公司。后来因为公司内部原因,我们实习的地方改成了学校内部实习,每天的时间和正式工作一样。上午8点和5点,每周六周日休息。

整个实习的实际过程前面已经讲过了,包括八周的实际项目制作和专业知识学习。具体每周任务、实际工作内容、专业知识和技能的实际应用会根据不同环节而有所不同。但总体目标是让我们了解实际工作中的软件生产流程,以及每个流程需要的技术和注意点,让我们用实际的项目去实践。

三、实习过程

整个实习的任务和目的上面已经介绍过了。下面将详细介绍整个实习过程,并详细讲解每个过程的细节。

具体时间安排如下:

第一周:这个项目需要的知识将被集中整理和复习。巩固一些不熟悉的知识,以防项目出现意外需求。实习的第一天,企业的经理向我们详细解释了软件工程科学对软件生产的重要性,并在此基础上给了我们大致的实习过程。

第二周:直接进行项目的需求分析。因为已经给出了项目名称,可行性分析就取消了。分配给我们小组的项目是“门诊管理系统”,去诊所实地调查是必然的。在实际调研过程中发现,需求分析的过程非常非常重要,需求分析文档的制作决定了项目的各项功能以及软件是否满足用户的需求。本周的收获是软件需求分析的文档化,这是软件工程中非常重要的一步,这个环节是整个软件生成过程中最重要、最关键的一环。

第三周:这一周由于临时变动,将概要设计和详细设计合并成一周。根据调查结果,进行概要设计。因为是第一次制作软件概要分析文档,所以有很多不规范的地方,比如数据流图的制作,很多小细节都忽略了,所以像这样的问题还是很多的。但这些问题经过组员的积极讨论和修改,以及老师的指导,都得到了解决。然后,根据概要设计,进行软件的详细设计。详细设计相比于概要设计能感觉简单一点,不知道感觉对不对。因为在概要设计模块中,我们已经设计了需要实现的模块、接口、类、函数,所以我们只需要考虑每个类的函数都可以用代码来实现,而不是写在代码上,而是用流程图、伪代码等相关技术来表达。正式的编码在这个阶段生产完成时开始。到目前为止,准备工作终于完成了,差不多花了我们一半的实习时间。这一周的时间,我们不知不觉就在忙碌中度过了!下周我们将进入这个项目的实际编码,这也是我们最熟悉的地方。感觉终于有地方投稿了,期待下周的到来。

第四周:根据详细设计对项目进行编码。本周,我们进行了实际的编码。我最大的感受就是按照详细设计的编码很清晰,伪代码等转换过程可能有点困难。和我们过去直接编码相比,流畅度不言而喻。

第五周:这周本来是要测试的,但是编码后企业老师指出了很多问题,说我们写的代码太粗糙了,要小心处理代码,把测试推到下周。这一周我们受益匪浅,对代码标注和编码格式有了更深入的了解。

第六周:根据完成的项目测试项目。这一周是软件测试,分为几个阶段,从最基础一节课内的方法测试到整个项目的综合测试。与之前的测试不同,这次我们先写测试文档,待测试文档通过检验后,再逐步测试文档。我想,这可能是我们未来工作的大方向,基于文档的项目制作。因为测试文档的制作进度太慢,我们这周忙于测试文档的制作,其他什么都没做,所以测试只能等到下周。我希望下周的考试会很有效率。期待尝试一下,感觉很想拿着测试文档测试一下。

第七周:拿着测试文档,按照上述要求逐一测试,确认项目的正确性。顺利的考试让我精神焕发。拿着测试文档直接查代码就行了。几乎没有必要考虑程序内部的测试流程,因为文档已经为你写得很清楚了。在这里,我有一种感觉,在埃森哲这样的大公司,文档的重要性比编码本身更重要。我想这就是为什么企业派来的老师没有直接给我们技术培训,而是让我们了解软件工程的流程。当然,根据企业文化的不同,软件工程的生命周期也会有细微的差异。他们会选择最适合自己公司的方法进行整个软件生命周期,而不是一成不变的。

第八周:这一周,我们没有任何与技术相关的任务,只需要准备个人演示。但是不要小看这个人的发挥,因为他会占你整个实习成绩的50%,这是本周一企业老师告诉我们的。我们之前都不知道有实习结果。项目总结,我们会花一个星期的时间总结整个实习的收获,这个星期的周五呈现自己,汇报收获。至此,实习生涯就告一段落。这一周,我们从收获、总结、经验等方面对整个实习的精髓进行了思考、沉淀、总结、提炼。基于PPT,我们进行了10分钟的个人陈述和项目答辩。在这方面,我们的实习彻底结束了。

四、实习总结

我们的实习结束了,但我们的人生还没有结束。对于我们这些没有毕业的人来说,这次实习可以用四个很有意义的字来形容。他不仅巩固和拓展了我们的专业知识;也扩大了我们作为软件开发人员的视野,让我们知道了很多软件开发这个职业应该注意的细节;更重要的是,让我们体验软件工程学对于一个软件的意义。这些经历对我们来说是宝贵的财富。经过8周的实习,在我们所有人的共同努力下,我们都完成了各自的任务,但我想说的是,我们不仅完成了任务,还满载而归:

项目的制作和难题的解决,会让我们熟悉大学即将遗忘的知识,对代码有更深的理解。代码的重用,类与类之间的调用,对象的创建,数据库的连接以及各种专业知识的使用,让我们能够更好的将这些各种知识合理的整合在一起。

如果专业知识收获很多,那么下面的专业技能就是整个实习过程中最大的收获。我很少关注代码的标注和编码的规范,也没有太多关注。但这一次,我意识到了他的重要性:这是一个软件开发人员必须具备的能力,或者说应该特别注意的能力。因为我们的代码没有太多的注释,很多地方的编码很不规范,企业老师宁愿让我们多花一周时间修改,也不急于下一次测试。在这一周的复习中,通过自己的经历和老师的强调,对代码编码规范和代码标注有了更深入的了解。通过这次实习,个人认为代码标注和编码规范比个人技能更重要。

这次实习的最终目的是希望能够了解软件生产的全过程,也就是软件工程的科学。这次实习,中间做文档的时间大概是编码的几倍,甚至因为我们的修改,编码时间也只有两周,而其他大部分时间都在做文档。个人觉得进公司后,文档制作比个人技能更重要。因为有了文档,我们的项目制作非常流畅,规定非常明确,逻辑非常流畅。这些文档在做软件的过程中起着重要的作用,所以我觉得软件工程可能是我未来的方向。

最后,总结一下这段时间实习的收获,真的让我受益匪浅。实习期间不仅学到了技术上的收获,还学到了生活中的人际交往以及很多其他的经验。这些都将作为我进入社会的基础。我会以此为基础,以一颗勇敢无畏的心迎接即将到来的工作。

动词(verb的缩写)实习经历

这次实习给了我深刻的体会,不仅是专业上的收获,还有团队之间的合作,让我明白了团队的意义。工作快到了,期待工作的到来。我会努力把学到的知识运用到实际工作中,迎接一个又一个挑战。前面的路上会有很多困难等着我,但我并不害怕,因为我坚信,只要我努力,我最终会克服这些困难。路就在我脚下,我会带着坚定的信念前进,不怕挫折!

软件工程实践报告3

一、实习目的

这次实习的目的是为了提高我的专业技能、实践能力、以及让我了解一些实际的工作情况。对我在正式工作前有很重要的意义,不论是专业技能,还是综合素质,以及实际中的人际关系都有了更加深刻的体会,让我在正式工作前有了一笔很珍贵的经验。

这次实习的主要任务就是在了解整个软件的制作过程,以及各个环节中的细节,当学会了这些环节后,再用学到的知识来完成一个公司给我们安排的一个项目。我分到的项目名称是《诊所管理系统》,这个项目我们将以小组的形式共同将其完成,以模拟实际软件制作的过程,尽最大程度的将我们所学到的知识转化成实际的能力。为真正的项目做好充分的准备,让我们可以在实习过后的正式工作中,有准备的去面对。

公司的最终目的就是希望我们能了解实际项目的制作,并初步的理解各个环节的意义。而让我们用项目进行实际制作就是为了让我们能更好的理解项目制作中各个流程的意义以及项目制作过程中的团队是如何合作的。

二、实习单位及岗位

我所实习的单位是校企合作埃森哲信息技术(大连)有限公司的.软件开发部。这个部门的主要职能就是外包服务工作,按照客户的需求制作成相应的软件,所以我们需要对整个软件开发的过程都较熟悉,这样才能应对客户们各种各样的问题,才能制作出更好的软件以满足客户们的需求。

因为刚实习的原因,所以我的职位是软件助理工程师,时间的具体安排是实际项目制作以及专业知识的学习,实习时间为8个星期。本来实习的地点是在公司的,后来因为公司的内部原因,将我们的实习地点改为学校内部实习,每天的时间和正式上班相同。早8晚5,每周六周日休息。

整个实习的实际流程前面已经说过,八周的实际项目制作以及专业知识的学习。具体的每周任务、实际工作内容、以及专业知识与专业技能的实际应用会根据不同的环节也有所不同。但总体的目标就是让我们了解实际工作中软件的制作流程,以及各个流程中所需要的技术和注意点,并用实际的项目让我们进行练习。

三、实习过程

上面已经介绍了个整个实习的任务以及目的,下面将详细介绍整个实习的流程,并对每个流程的细节加以详细说明。

具体的时间安排如下:

第一周:将对该项目所需要的知识进行集体巩固复习。将一些已经生疏的知识巩固巩固,以备项目中的不时之需。在实习的第一天企业的经理就详细的给我们讲解了软件工程这门科学对于一个软件制作的重要性,并以此为基本给我们定下了这次实习的大体实习流程。

第二周:将直接进行项目的需求分析。因为项目名称已经给出,所以将去掉可行性分析。我们小组分到的项目是“诊所管理系统”,这就免不了去诊所实地调查了。实际调查的过程中发现,需求分析这个过程是非常非常的重要,需求分析文档的制作,决定了项目的各个功能以及这个软件是否符合用户的需求。这一周的收获就是软件需求分析的文档制作,这是软件工程中非常重要的一个步骤,这一环节,是一整个软件生成的最为重要和关键的环节。

第三周:这一周由于临时变动,将概要设计和详细设计合为一周制作。根据调查的结果,进行概要设计。由于是初次制作软件概要分析的文档,所有有很多不符合规定的地方,就比如数据流图的制作,很多小的细节都没有注意,像这样的问题还有很多。不过,在经过了小组成员的积极讨论修改以及老师的指导后,这些问题都得以解决。接下来,根据概要设计,来制作软件的详细设计。详细设计的制作,相对于概要设计,感觉能稍微简单些,也不知道感觉对不对。因为在概要设计模块中,我们已经设计好了所需要的模块、接口、类、以及所要实现的功能,所以我们只需要考虑每个类的功能如果用代码实现就可以了,当然不是将代码写上去,而是用流程图以及伪代码之类的相关技术来表示。这个阶段的制作完成就开始正式的编码了。到此为止,准备工作总算是做完了,几乎花费了我们实习的一半时间。这一周的时间,我们在忙碌中不知不觉的度过了!下一周就会进入到该项目的实际编码当中,这也是我们大家最熟悉的地方了,感觉总算有地方出力了,期待着下一周的到来。

第四周:根据详细设计,来进行项目的编码。这一周,我们进行实际的编码,我最大的感觉就是,照着详细设计去进行编码,思路以及逻辑非常的清晰,可能在将流程如以及伪代码转换时稍微有点费劲,当相对于以往我们的直接编码而言,流畅度不言而明。

第五周:这一周本来是要进行测试的,但在编码完后企业老师检查的时候,给我们指出了很多的问题,说我们所写的代码太粗糙,所以我们只能对代码进行细致的加工,把测试推到了下周来进行。这一周,让我们受益匪浅,对代码的注释以及编码格式都有了更加深刻的理解。

第六周:根据做完的项目,进行项目的测试。本周就是对软件进行测试,从最基本的类之内的方法测试,一直到整个项目的综合测试,分了好几个阶段。而区分于以往的测试不同,这次我们是先写测试文档,当测试文档检查合格后,我们才可以对着文档进行逐步测试。我想,这可能就是我们以后工作的大体方向吧,以文档为主的项目制作。由于测试文档的制作进度太慢,所以本周就忙测试文檔的制作了一样了,其它的什么也没干,测试也只能等下周进行了。希望下周测试的时候效率会很高,期待的试一次,拿着测试文档去测试的感觉。

第七周:拿着测试文档,根据上面的要求,一项一项的测试,以确认项目的正确性。测试的顺利让我有了爽快的感觉,拿着测试文档,直接去校验代码就可以了。几乎不用去想程序内部的测试流程,因为文档上已经给你写的明明白白了。到这里,我有一种感觉,像埃森哲这种大公司内,文档的重要性比编码本身更为重要。我想,这就是企业派来的老师没有直接给我们进行技术培训,而是让我们来了解软件工程的流程的原因。当然,根据企业的文化不同,对软件工程的生命周期也会有细微的差别,他们会选择最适合自己公司的方法来进行整个软件的生命周期,并不是一成不变的。

第八周:这一周,我们没有跟技术相关的任务,只要好好准备准备个人展示就可以了。但你可千万不要小瞧这个人展示,因为他将占你整个实习成绩的50%,这也是企业老师在本周周一时才告诉我们的,我们之前根本就不知道还有实习成绩这一说。项目总结,我们将用一周的时间来总结整个实习的收获,在本周的周五进行自我展示,以及收获报告。至此,实习的生涯将会到此结束。这一周,我们思考着、沉淀着、总结着,将我们对整个实习的收获、总结、体会等各个方面进行了精华的提炼,以PPT为基础,进行为期10分钟的个人展示以及项目答辩。就此,我们的实习画上了完整的句号。

四、实习总结

我们的实习已经结束,但生活却没有结束,这一次的实习,对于我们这帮还没有毕业的学生来说可以用意义重大四个字来形容。他不仅仅对我们的专业知识进行了巩固和拓展;还对我们作为软件开发人员的视野进行了增大,让我们了解了很多软件开发这个职业应该注意的一些细节;更是让我们亲身体会了软件工程这门科学对于一个软件的意义。这些经验对我们来说就是一笔宝贵的财富。而经过了8周的实习,在大家的共同努力下,也都完成了各自的任务,但我想说的是,我们并不仅仅是完成了任务,我们更是个个满载而归:

项目的制作以及疑难问题的解决,将我们把大学期间那些快要淡忘的知识又重新熟悉了起来,并且对代码有了更深层次的理解。代码的复用性、类与类之间的调用、对象的创建、数据库的连接以及操作等各种专业知识的使用,让我们能更好的将这些各种各样知识合理的整合在一起。

如果说专业知识收获颇多,那么接下来的职业技能却是我认为在整个实习过程中收获最大的地方。代码的注释以及编码的规范这两点是我以前很少注意的地方,对其也并没有多少重视。但这一次,却明白了他的重要性:这是作为一个软件开发人员必须应该具备的能力,或者说应该特别注重的地方。因为我们的代码并没有多少注释以及很多地方的编码很不规范,企业老师宁愿让我们多花一周的时间修改,也没有匆匆的进行下一步测试。在修改的这一周内,通过自己的体会以及老师的重点强调,对于代码的编码规范和代码的注释有了更深层次的理解。通过了这次的实习,我个人认为,代码的注释以及编码的规范比个人的技术更为重要。

这次实习的最终目的就是希望我们了解软件的整个制作过程,也就是软件工程这门科学。这一次的实习,中间的制作文档时间大约是编码的好几倍,编码的时间即使是因为我们修改的原因也只有两周,而其他的大部分时间就是制作文档。我个人猜想可能进公司后文档的制作比个人的技术更加重要。因为文档的原因,我们的项目制作,感到非常的流畅,条例非常的清晰,逻辑也很流畅。对于软件的制作,这些文档起了很重要的意义,所以觉得,软件工程也许就是自己以后努力的方向吧。

最后,总结这段时间的实习生活的收获,真的是使我受益匪浅。在实习中,我学习到了不仅仅是技术上的收获,更还有生活中的的人际交往以及其他的许多经验。而这些,都将作为我迈入社会的根本,我将以此为我的基础,怀着一颗勇敢无畏的心去迎接我即将来临的工作。

五、实习体会

软件实践的学习体会 篇7

1 面向过程的软件工程方法学

1.1 面向过程的软件工程方法学的特点

面向过程的软件工程方法学的特点可以从两个方面来分析, 从技术角度来看, 该方法主要使用了结构化的软件开发技术, 即结构化的分析技术、结构化的设计技术、结构化的程序设计技术。这一整套结构化的技术中结构化的程序设计技术优势最为突出。用结构化程序设计技术设计的算法具有较强的可读性和可维护性;从软件开发过程这个角度来看, 面向过程的方法要求软件开发是分阶段的, 而且各阶段所做工作的性质不同。

1.2 使用面向过程的软件工程方法学开发软件的过程[1]

以瀑布模型为例, 使用面向过程的软件工程方法开发软件的过程分为:问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试这七个阶段。问题定义阶段确定系统的性质、目标、规模;可行性研究阶段从经济、技术、法律、操作这四个角度分析开发该系统是否可行, 若可行则要制定项目开发计划;需求分析阶段通过用数据流程图建立的功能模型来反映系统的功能, 若是开发数据库应用系统, 则还须用E-R图建立数据模型;总体设计阶段利用规则将需求分析阶段建立的数据流程图映射成软件结构图, 若是开发数据库应用系统, 则还须将E-R图映射成数据库的表;详细设计阶段为软件结构中的每个模块设计界面和算法, 对于数据库应用系统则还要建立数据库、录入数据;编码阶段将算法转化为源代码;测试阶段通过单元测试、集成测试、确认测试、系统测试这四个环节对已完成系统做全面的检测。

2 面向对象的软件工程方法学

2.1 面向对象的软件工程方法学的特点[2]

面向对象的软件工程方法学的特点可以三方面来分析, 从技术角度来看, 该方学主要使用了面向对象的分析、面积对象的设计、面向对象的实现这一整套面向对象的技术;从软件开发过程来看用面向对象的方法开发软件的过程中各阶段工作本质相同, 各阶段间平滑过渡、无缝连接;从软件开发要点来看, 面向对象的方法学要求把问题域中的事物抽象成对象, 对象具有属性和方法, 一组相似的对象定义成一个类, 将类用继承等关系组织起来, 对象之间通过消息来相互交流。

2.2 使用面向对象的软件工程方法学开发软件的过程[3]

以喷泉模型为例, 使用面向对象的方法学开发软件的过程可分为面向对象的分析、面向对象的设计、面向对象的实现这三个阶段。面向对象的分析阶段要通过建立对象模型 (用类图实现) 、功能模型 (用用例图实现) 、动态模型 (用活动图、时序图、状态图实现) 来反映系统各个方面的需求;面向对象的设计阶段又可细化为总体设计和详细设计这两个阶段。其中总体设计阶段要扩充完善前一阶段建立的三个模型, 并要建立系统的高层结构, 即要将不同的类归入不同的包, 若某些类的对象需长期保存, 则还须定义数据存储方式;详细设计阶段要进一步扩充和完善三个模型, 并要确定类中服务的算法及类之间关联的实现算法;面向对象的实现现阶段则要用程序来实现系统中的类及关联。

3 不同软件工程方法在软件开发实践中的整合

在实际软件开发过程中, 面向过程的方法和面向对象的方法可以相互融合, 相互鉴对方的工具来完成某些阶段的活动。用面向过程的方法开发软件的过程中, 需求分阶段一般通过建立功能模型来分析系统功能。面向过程的方法学中提供的功能模型的建模工具是数据流图, 在这一阶段可以引入面向对象方法学中提供的用例图来建模, 效果很好;用面向过程方法学开发软件过程中的详细设计阶段要为每个模块设计算法, 这时可借用面象对象方法学中提供的活动图来进行算法的设计。用面向对象方法开发软件过程中的总体设计阶段本不需要建立软件结构, 但若借鉴面向过程的方法学中的思想, 在这一阶段也加入软件结构图, 可使系统结构更加分明, 设计思路更加清晰;用面向对象的方法开发软件过程中的详细设计阶段要确定类中服务的算法及类之间关联的算法, 这时可借鉴面象过程的方法中所提供的图形工具 (流程图、N-S图、PAD图) 、表格工具 (判定表、判定树) 、语言工具 (PDL语言) 来进行算法的设计, 这样实现的算法可读性、可维护性都很好。

4 结语

综上所述, 面向过程的方法学和面向对象的方法学这两种不同的软件工程方法学各有特色、各有所长。在实际的软件开发中可将两种软件工程方法学相互融合, 取长补短, 这样可以达到更好的实际效果。

摘要:面向过程的方法学和面向对象的方法学是两种不同的软件工程方法学。本文就两种方法学的特点进行了比较并提出了将两种方法进行整合的方法, 实践证明将两种方法整合后运用于软件开发中, 可相互补充, 更好地完成软件开发任务。

关键词:软件工程,面向过程的软件工程方法学,面向对象的软件工程方法学

参考文献

[1]张海藩.软件工程导论[M].北京:清华大学出版社, 2008.

[2]王慧芳, 毕健权.软件工程[M].浙江:浙江大学出版社, 2006.

软件实践的学习体会 篇8

关键词:高校软件开发能力培养教学实践

1.高校学生软件开发能力现状

当前高校计算机教学中,重理论轻实践现象在一定程度上仍然存在,难以实现理论和实践的有机结合。集中体现三个方面:其一,实践能力不足,独立开发软件的能力偏弱;其二,创新能力不足,开发软件程序趋同性明显;其三,学生对软件开发的兴趣不够强烈,具备较高软件开发能力的学生比重偏低。当前高校计算机专业毕业生软件开发能力普遍偏弱已成为普遍现象

2.影响高校学生软件开发能力培养的原因分析

2.1教师的软件开发水平不高

教师的软件开发水平对学生的学习成效产生直接影响。当前,高校计算机专业教师的软件开发能力普遍偏弱,原因在于:那些热爱软件开发及开发能力强的人在毕业后多选择去软件公司就业,而进入高校的这一部分人才,多数并不是特别热衷于软件开发。当前很多高校的计算机专业教师,缺乏软件开发经验,更有一些教师甚至没有自主完成或参与过完整的项目开发。

2.2教学方法老套教学方法有待改进

教师将程序语言细节讲解纳入理论教学的重点,但却忽视了贴近学生实际的案例的导入和分析,因此难以调动起学生对软件开发的兴趣和积极性。学生无法对软件开发的意义、框架和方法形成正确的认识和整体的把握。同时,在实践环节,教师预留给学生进行实践操作的时间和机会较少,且实验主要以验证性实验为主,而有助于学生软件开发能力培养的设计性和综合性的实验却很少。因此,教学方法的落后不利于促进学生形成对软件开发的兴趣,跟谈不上软件开发能力的提升。

3.高校软件的开发能力培养与教学实践策略

3.1修订培养目标,提供教师素质

为提升高校学生软件开发能力,必须明确计算机专业课程的培养目标,加强软件开发师资队伍建设。具体如下:

其一,修订专业人才培养方案。将培养和提高学生的软件开发能力纳入到专业人才培养方案当中,明确对应的课程安排、课时安排、校内实训基地以及校外实习基地等,为计算机专业学生软件开发能力的培养和提高提供参考依据和指导。

其二,强化教师自身软件开发能力。一方面,教师可以与学生一同来进行某一软件的开发,通过这一过程,使学生认识到软件开发的重要性。另一方面,学校应尽可能为教师提供软件开發相关的培训机会和深造机会,使教师可以通过参加一些相关的学术研讨,软件项目开发等,提升软件开发水平;在实际情况允许的情况下,还可以派遣教师到软件企业挂职,参与企业的实际项目,进一步开拓教师的事业,提升教师的软件开发能力。

3.2教学手段和教学方法的改革

教师通过课堂教学,引导学生专注学习,保障学生学习方向的正确性,使学生能够通过理解和一系列学习掌握一定的知识,进而达到培养软件开发能力和创新能力的目的。教学手段和教学方法改革是提升课堂教学成效的重要途径。具体如下:

其一,改革教学手段。课程组在选择教学方式时,应结合多方面进行考虑来制作课件和选择授课方式。具体而言,在制作课件时应充分考虑该课程涉及的教学内容,结合学生实际和人才培养方案,选取和组织课件内容。同时,要注重课件的展现效果。在选择授课方式时,尽量灵活和多元,实现对学生全感官的综合调动和刺激。例如,可以选取在多媒体教室板书、课件、编程演示相结合,也可以采取在机房边讲边练的双重强化模式。

其二,改革教学方法。项目式教学和任务驱动式教学较为符合计算机专业特点。针对开设的每一门课程,设计对应的软件系统开发和设计任务,由学生自主分成小组来完成软件的设计和开发任务。同时,也可以将一个大型软件设计和开发项目,分解为多个不同的模块,由学生自主来进行具体模块的设计和实现。通过引入项目式教学和任务驱动式教学法可以有效地提升学生的软件开发能力。

3.3改革课后实践教学环节,注重培养学生的实际编程能力

通过实践环节教学可以实现对学生理论学习的检验,同时也可以加深学生对理论学习的理解。通过课后实践环节,可以有效地培养和提升学生的实际编程能力和创新能力。具体而言,可划分为基础实验和课程设计:

其一,基础实验环节。该环节主要强调培养学生的基本调试能力和基本编程能力。其中,基本调试能力是基本编程能力形成的重要前提。在实际的编程实践中,学生经常会遇到这样或那样的问题,大多数学生寻找解决途径的方式是向书本和老师求助。只有少数的学生会选择自主去思考、探索造成问题的原因。因此,基础实验环节,主要侧重于培养学生的调试技能和基本的编程能力。学生只有通过调试掌握了基本语法和多种知识,才能形成较强的编程能力。

其二,软件设计环节。该环节侧重于培养学生的综合编程能力。因此,这个环节实践内容的设计,应强调综合性,以培养学生灵活运用所学知识解决实践问题,增强调试能力和编程能力,养成良好的程序设计风格,初步形成软件工程化思想。

3.4强化实践教学辅导和考核,确保实践教学质量

实践教学的考核主要采取实践报告和涉及成果展示的方式来进行。在考核阶段,教师应要求学生勤记录、勤思考、勤动手。针对实践过程中遇到的一些突出问题和解决方法进行详细的记录,通过成果展示和撰写实践报告的方式来进行考核。由教师统一对报告进行批阅,对出现的典型问题进行集中讲解。同时,在成果展示中,教师应要求各小组选取一位代表来讲解、演示及回答老师及同学提出的疑问。教学考核由两部分构成,即阶段考核和最终考核,保证实践教学的质量。

参考文献:

[1]王爽,赵会洋.高校发展转型背景下学生软件开发能力培养模式研究[J].电脑知识与技术,2014,08:1775-1777.

[2]叶军伟.高职院校计算机专业软件开发能力培养浅析[J].科技视界,2014,02:229+228.

上一篇:小学创客社团活动计划下一篇:人力资源管理者的五大矛盾