`
smartzxy
  • 浏览: 200254 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

在学校项目中感受软件设计和设计模式

阅读更多

     虽然专业是软件工程,但技术都是靠平时看书自学的。在学习软件工程、设计模式等较抽象的技术时,如果遇到晦涩的“教科书”时肯定是一头雾水;运气好遇到好书,那就有机会赞叹一下作者的理解能力,感受一下设计中的艺术。但如果没有实践,即便是好书也很难在记忆中留下持久深刻的印象。

 

     于是乎,在学校里我就尽可能地去争取接触各种项目的机会。但学校里的项目情况毕竟与书上引用的行业情况不同,往往项目需求的提出就不是很规范,怎么才能在后续的设计中应用各种工程规范、设计艺术呢……

 

     暑假的时候应聘参与了学校科研所的一个项目,虽然我是专注于Java方向而与要求C++开发的需求不同,但我看中了这个项目应该是比较规范的,至少招人就“一本正经”的,嘿嘿。果然,从第一次会议开始就很有味,一个需求就反复讨论了好久,还有每周的汇报……于是我就照着当时正热的《Thinking in UML》一步步来了次RUP,感觉很好。所以即使后来聘期结束了,我还是随叫随到,感谢卢老!(卢老人也好,带我一起吃了好多次大餐~我就爱吃……)

 

     但学校中最多的项目还是那种只有一个概念,具体要实现哪些需求还得看前一阶段工作完成的程度而定,而且能不能实现也是未知数。于是开发的过程往往就是,实现了一个功能,添加需求,再实现一个功能……如此迭代。但这种迭代又不是软件工程上讲的迭代开发,在实现前一个需求时,对后一个需求是完全未知的,即使理论上可以预估到,凭借我们的经验也没能力预估到,这还怎么搞软件工程呢……

 

     对于这类项目,我觉得只能练练手各种设计模式。在最近的一个服务编排项目的后期,由于各种需求差不多都定了,需要扩展的地方也都提了,功能也都实现过了,我就完全专注于练习应用各种设计模式了。打开Rose重新设计;拆开“函数式”代码改成“面向对象”的;遍历那些“繁重”的代码块,对着模式书查找适合的模式……于是看到大堆大堆的代码被“叉掉”,心疼啊~虽然知道OCP原则,但原本的那些代码实在“丑”得不忍心留了……

 

        呵呵,这也算是一种实践吧,校园项目开发的实践。

分享到:
评论
2 楼 smartzxy 2010-03-30  
魔力猫咪 写道
需求不明确是所有项目都有的问题。这方面建议你多看看敏捷开发方面的资料。
对于未来的变化其中非常重要的一点就是不要去预估、不要去预设未来的情况。如果在开发的时候对未来预想太多,那么你就无法好好实现你现在需要的功能。为了未来可能的情况去预先设计,那么非常可能出现的情况是:预设的情况没有出现,白设计了。未考虑到的事情出来了,结果因为原来设计了多余的东西,造成需要更多的时间来开发。

提了好多建议,谢谢啊!我会好好学习的~
1 楼 魔力猫咪 2010-03-29  
需求不明确是所有项目都有的问题。这方面建议你多看看敏捷开发方面的资料。
对于未来的变化其中非常重要的一点就是不要去预估、不要去预设未来的情况。如果在开发的时候对未来预想太多,那么你就无法好好实现你现在需要的功能。为了未来可能的情况去预先设计,那么非常可能出现的情况是:预设的情况没有出现,白设计了。未考虑到的事情出来了,结果因为原来设计了多余的东西,造成需要更多的时间来开发。

相关推荐

    浅谈Proteus在单片机项目教学法中的应用.pdf

    项目软件设计则需利用C语言或其他编程环境来编写程序,同时强化学生的模块化程序设计思想,使其能够绘制出程序流程图,并在调试中锻炼其逻辑思维和问题解决能力。 项目完成后,学生需要撰写项目报告,内容包括硬件...

    某学校教学辅助楼-土木工程建造设计.zip

    这个项目可能是一个实际的教学辅助楼建设方案,旨在帮助学生理解和掌握土木工程在实际建筑中的应用。 1. **CAD源文件**:计算机辅助设计(CAD)是现代建筑设计和工程领域中不可或缺的工具。通过CAD软件,设计师可以...

    饮料自动售货模拟软件计划书

    客户系统是整个软件面向用户的窗口,需要具备高效、直观、易操作的特性,使用户在购买饮料的过程中感受到便捷和愉悦。因此,我们在设计时特别关注了用户体验,力求在界面上做到简洁明了,在操作上做到直观易懂,在...

    华北水利水电学院校史馆网站建设-毕业设计.doc

    2. **Photoshop**:在网站前台设计阶段,Photoshop是一款常用的图形设计软件,用于创建和编辑网页元素的视觉设计。设计师可以利用它来制作网页的界面设计,如按钮、图像、布局等,以确保网站的视觉吸引力。 3. **...

    学生大学生软件测试公司实习报告总结.pdf

    初入职场,面对全新的环境,我感受到了许多挑战,但在同事们的帮助下,我迅速适应了新环境,同时学习到了许多学校中无法学到的知识,也认识到了自身的不足,这些都让我受益匪浅。 在软件测试工作中,首先要深入了解...

    提高《Photoshop,CS平面设计》教学效果初探

    教师可以整理、优化和共享日常教学中的教学资源,如教案、教学设计、课件、软件、学生作品、教学实例等,形成一个充实的教学资源库,便于教学使用和传播。 综上所述,通过项目教学法、教材整合和教学资源库的建设,...

    以培养卓越工程师为目标的渐进式项目案例教学法研究——以java实验教学为例.pdf

    5. 教学实施过程:教师在教学过程中扮演了引导者和监督者的角色,负责分析项目、监督进度和评价成果,而学生则成为实现项目的主体。这种模式能够激发学生的积极性和创新性。 6. 考核方式的创新:传统的考核方式多...

    设计院个人实习总结.docx

    - 在项目执行中,通过与同事交流学习到了许多学校未教授的知识点。 - 实习期间不仅提升了专业技能,还学会了如何与人沟通和协作。 ### 4. 技能提升 - **专业知识补充**:意识到自身知识的不足,主动学习工作所需...

    C语言程序设计教学改革的探讨.pdf

    例如,可以通过引入各种生活中的实际案例、热门的软件开发项目以及最新的编程技术来丰富教材内容,让学生感受到学习C语言的实际意义和乐趣。 最后,学校和教师应重视激发学生的学习兴趣和自主学习的能力。通过组织...

    中职学校计算机应用基础课程教学.pdf

    通过案例教学、项目驱动等方式,让学生在解决实际问题的过程中学习和巩固知识,从而提升其学习的积极性。 再者,个性化教学也是改善教学效果的有效途径。针对不同学生的学习能力和兴趣,教师可以采取分层教学、个别...

    计算机平面设计专业建设专项方案初稿.doc

    通过项目实训、校企合作等多样化的实训方式,学生能够更直观地感受到专业技能在实际工作中的应用。特别是顶岗实习的环节,它不仅能够加深学生对专业知识的理解,更能提升其专业技能,使其在毕业后能快速适应工作岗位...

    国培计划 中小学教师网络研修培训项目 研修心得 (2).pdf

    在此次研修中,老师们通过任务驱动的方式,从零基础开始,逐步掌握了计算机操作的基本技能,如文字处理软件的运用和电子邮件的使用等。学习过程中,我们不仅有机会亲自操作,还通过团队合作,共同解决问题,这种...

    如何选用虚拟实验软件的一些局限性,你又是通过什么方式解决这些局限性的?效果如何?.docx

    5. **降低成本**:通过政府补贴、企业合作等方式降低虚拟实验软件的研发成本,同时探索开放源代码项目等模式,让更多人受益。 #### 实践案例分析 以某中学物理课为例,教师在教授电路实验时遇到了实验室资源紧张、...

    探究中职学校计算机教学中创新能力的培养.docx

    比如,在教授办公软件时,可以通过制作个人简历、设计课程表等活动,让学生感受到知识的实际应用价值,进而激发他们的创造力。 ##### (四)改变教学评价与考核模式 传统的考试方式往往只关注学生的记忆能力和理论...

    成绩管理系统及城市公交管理信息系统设计.docx

    本项目的总体目标是开发一套适用于中小学校的成绩管理系统,旨在提高学校的管理水平,为学生、教师和管理人员提供便捷的服务。具体目标包括: 1. **实现基本数据管理功能**:包括学生信息、教师信息、课程信息和...

    图书借阅管理系统数据结构课程设计.docx

    - **心得体会**:分享项目开发过程中的个人感受和体会。 - **参考文献**:列出项目开发过程中参考的主要文献资料。 通过以上知识点的详细解析,我们可以清晰地了解到图书借阅管理系统的设计思路和技术实现细节,这...

    中国与联合国儿童基金会爱生远程教育项目计划书模板.docx

    在中国的教育领域,远程教育的运用逐渐成为一种创新的教育模式。其中,中国与联合国儿童基金会合作推出的爱生远程教育项目,以其独特的方法和深远的教育意义,致力于提升学生的综合能力。该项目计划书提供了详细的...

    高中信息技术课程中的人工智能教学.pdf

    这种教学模式强调通过动手实践进行学习,让学生在完成项目的过程中,培养创新意识和解决问题的能力。例如,通过开发简单的应用程序或参与人工智能项目的实践,学生可以更加直观地感受到人工智能技术的应用效果。 ...

    基于BIM技术的《钢结构详图深化设计》课程教学改革研究探索.docx

    通过使用BIM软件,如Revit和TeklaStructures,不仅能够提高教学效率,还能帮助学生更好地理解和掌握钢结构深化设计的相关知识和技术。例如,通过构建三维模型,学生可以更直观地了解钢结构的设计细节和施工过程,...

    核心素养理念下中职C语言教学模式创新研究.pdf

    例如,向他们介绍"水中文科技期刊数据库(全文版)教育科学"的难题,或教他们使用程序设计软件处理上述难题,并操作C语言进行编程,让他们从亲身实验中感受到快乐。 教学内容模块化,突出核心素养培养也是非常重要...

Global site tag (gtag.js) - Google Analytics