zoukankan      html  css  js  c++  java
  • 构建之法----软件工程简介

    这一周的主要授课知识点是软件工程相关概念,软件工程和计算机科学的关系,源代码管理。实践内容是简单的源代码管理操作。

       首先我们应该认识到我们在学习时,软件工程可分为以下阶段:需求分析,设计阶段,实现阶段,稳定阶段,发布阶段,维护阶段。但是在现实工作时,实习生往往是先从维护阶段开始,学习并维护一些已有的软件,接着能够在项目中改一些bug,发布小规模的更新版本,之后有机会重写一些较小的模块,没有多少文档,自己要写很多代码,表现好的员工有机会设计比较大的模块,自己写一些文档,最后可以有机会计划新的项目,因此我们的学习也可以仿照这样的流程。首先维护,找bug,少部分增量开发,分析需求,设计开发,回归测试,发布并收集反馈。

        其次我们的师生关系不是餐馆和食客,老板和雇员,保姆和幼儿,哥们和哥们,路人甲和路人乙,狱警和犯人,应该是健身教练和健身学员之间的关系,教练是很有经验的身体力行者,并有足够的理论知识,可以随时指出学员的进步和不足。我们应该主动学习理论知识并且积极实践,按照科学的学习方法来循序渐进,不断总结和完善,提高自己的实际能力。

       一个复杂的软件不但要有合理的软件架构,软件设计与实现,还要有各种文件和数据来描述哥哥程序和文件之间的依赖关系、编译参数、链接参数等。构建管理、源代码管理、软件设计、软件测试、项目管理相关的内容是软件工程的核心部分。软件=程序+软件工程。软件开发的不同阶段可以类比:玩具阶段的纸飞机->业余爱好阶段的飞屋->探索阶段的莱特兄弟的飞机->成熟的产业阶段的商用飞机。软件开发有以下几点特别的难题:1.复杂性(大型软件有超过百万行的源代码,上万个不同的文件) 2.不可见性(软件工程师可以看到源代码,可是源代码却不是软件本身)3.易变性(软件看上去很容易修改,但是正确地修改软件却不是一件容易的事)4.服从性(它要服从系统中其他组成部分的要求,以及用户和行业系统的要求) 5.非连续性

       软件工程的目标就是创造足够好的软件,bug的多少可以直接衡量一个软件的开发效率、用户满意度、可靠性和可维护度。

      

  • 相关阅读:
    什么是动态链接库
    <<TCP/IP高效编程>>读书笔记
    C++ 函数
    我的vim配置
    FastReport4.6程序员手册_翻译
    DUnit研究初步
    ADO BUG之'无法为更新定位行....' 解决之道
    极限编程的集成测试工具Dunit
    总结
    项目管理检查清单项目启动
  • 原文地址:https://www.cnblogs.com/1997Ff/p/6572205.html
Copyright © 2011-2022 走看看