zoukankan      html  css  js  c++  java
  • 《软件工程》课程总结

    课程总结#


    一、回答学期初的问题

    1. ShrinkWrap(包装在盒子里的软件):

      软件有很多分类方法 ShrinkWrap(再包装盒子里面的软件,软件在CD/DVD上);Web APP(基于网站的软件);Internet Software(企业或学校或某组织内部的软件);Games(游戏);Mobile Apps(手机应用);Operating Systems(操作系统)等这只是一种软件分类的方法。

    2. “回归测试(Regression Test)” 如何回归到以前不正常的状态:

      Regress 的英语定义是: return to a worse or lessdeveloped state。是倒退、退化、退步的意思。在软件项目中,如果一个模块或功能以前是正常工作的,但是在一个新的构建中出了问题,那这个模块就出现了一个“退步”(Regression),从正常工作的稳定状态退化到不正常工作的不稳定状态。在一个模块的功能逐步完成的同时,与此功能有关的测试用例也同样在完善中。一旦有关的测试用例通过,我们就得到了此模块的功能基准(Baseline)。

    3. “效能分析"是否可以简单化:

      效能分析是根据影响效能的主要因素,运用一般系统分析的方法,在收集信息的基础上,确定分析目标,建立综合反映某事物达到规定目标的能力测度算法,最终给出衡量某事物效能的测度结果。如某产品的单位成本20元即为基础成本,通过效能分析产品设计生产销售过程,提出调整产品功能、改进产品设计、提高服务质量等降低了产品成本。没有复杂的分析过程得到的数据肯定会出现片面的错误,所以效能分析不能简单化。

    二、对《软件工程》课程的总结和体会

    学习《软件工程》课程,起初我还以为这么深奥的东西肯定学不会,但是通过一个学期的努力在老师的带领下,我渐渐学到了很多东西:

    在老师的多元化教学中,不但让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合。 就我个人看来,软件工程与其说是一门课程,倒不如说是一门思想。是一个如何去分析和处理问题的过程,应该说它的范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。

    就教材选择方面,也是老师深思熟虑深明大义选择了《构建之法》一书,并荣幸请到作者邹欣老师以及一并大咖作为我们班的助教。并且在学期中莅临课堂辅导,这是莫大的荣幸。是我上学期间有史以来第一次,荣幸之至深表感谢。

    在这将近一学期的学习中,虽然我不能说自己的《软件工程》课程学习的有多么好,但是通过学习,我还是受益良多。

    软件=程序+软件工程 , 程序=数据结构+算法

    软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

    软件是可以运行在计算机及电子设备中的指令和数据的有序集合。

    软件工程包括领域众多:软件需求分析、软件设计、软件构建、软件测试和软件维护。

    软件工程和好多学科息息相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。

    软件开发有以下几个阶段:

    1.需求分析
    2.概要设计
    3.详细设计
    4.软件编码
    5.软件测试
    6.软件维护
    

    首先想开发一个软件需要我们做一些准备工作,即基本概念和技术:单元测试、回归测试和效能分析工具。并且要写出自己的个人开发流程即PSP表用来记录我们的效率。

    其次我们如果想成长为一名软件工程师则需要给自己一个好的定位,衡量个人的能力。这就需要我们给自己做一个自我评估。

    软件工程是一个团队的项目,我们自己上手了需要跟小伙伴搭伙了,这就出现一个问题。我们每个人的习惯不同,但是代码一定要规范,这样两个人互相合作才有一个交叉点。代码复审时才能更好进行。

    我们慢慢从二人行逐渐接触三人行、多人行。这就组成了一个团队,团队有自己的团队模式和开发流程,开发模式众多:明星模式、社区模式在这里就不一一讲解了。团队的开发流程比个人开发流程更加详细,更加彻底的深入分解每个步骤,让开发流程变得清澈透明避免遗漏。

    确定团队之后,接下来就是敏捷流程了,敏捷流程是一系列价值观和方法论的集合。开发原则众多。第一步:找出完成产品需要做的事情;第二步:决定当前的冲刺需要解决的事情;第三步:冲刺,还有每日立会。这个过程看似简单,他记录每天都干了什么,但是当项目完成的时候会给我们一个清晰的时间轴图。为我们总结和修改提供了更直观的数据。

    以前,我一直对软件存在一些偏见或是误解,认为软件就是程序,软件的开发就是编写程序,只要编写完了程序,一切也就OK了,而且我还片面的认为只要我掌握了语言和工具,那么我就能写程序了。一个人只要会编程,就能写软件,就是程序猿;一个公司,只要招聘一些程序猿,就能开发好的软件产品。只要有几个经验的程序猿,再找个兼职的大学生,就能组成一个软件公司。

    但是通过《软件工程》这门课的学习,使我认识到了我以前的错误。软件其实不仅仅是程序,软件开发其实也不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息。唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品。

    而且在以前,我一直以为软件的开发其实是一件很轻松快乐的事情,只要一天坐在电脑旁敲敲键盘,那么一切就可以了,但是现在我才发现,我以前的很多思想肤浅可笑。编程其实是一种乐趣和苦恼并存的一项创造性活动,因为编程不仅仅能够满足我们内心深处进行创造和渴望,而且还能愉悦我们内在的情感。

    三、对课程的建议

    对课程的建议:

    课程本身不同于其他课程,避免填鸭式教学,小组要利用好,比如小组讨论、小组共同学习,小组分配是关键。

    课后作业也是巩固学习进度的一项不可或缺的任务。

    调动学生学习的积极性也是课程的关键。


    希望以上建议在以后的学习生活中,能够实现。同时也希望自己对以后的学习更加刻苦认真,也感谢老师这学期对我们的谆谆教诲。

  • 相关阅读:
    QML vs WEB
    《TO C产品经理进阶》
    《TO B产品设计标准化》
    《多元思维模型》跨学科及其核心思维模型
    产品经理审美训练
    Aria2多线程轻量级批量下载利器
    正则表达式
    如何开发一个用户脚本系列教程
    Aria2自动下载
    助贷
  • 原文地址:https://www.cnblogs.com/csblogs/p/5584234.html
Copyright © 2011-2022 走看看