zoukankan      html  css  js  c++  java
  • 阅读报告--构建之法

      软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。软件工程牵涉的范围很广,对于即将投身IT业的学生而言,软件工程的内容又非常重要。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。

    一、软件=程序+软件工程

      正如书中所言,几乎所有的程序员都知道“程序=数据结构+算法”这句名言。但是,对于一个团队来说,最重要的不是写出一个程序,而是设计这个程序,包括各种需求以及扩展。客户的需求总是在改变,程序的功能也需要随时做出改变;程序需要对各种静态动态的数据进行操作;面对不同的环境,一个程序需要32位、64位等不同的版本;软件团队的人员总是在改变,新的成员需尽快读懂已有的程序;一个好的软件需要有良好的用户体验;等等,一切的一切都是软件开发的活动,都是软件工程的核心部分。

    二、窝蜂&写了再改

      在团队和流程章节,书中最先介绍了一种团队模式-窝蜂模式和一种开发流程-写了再改模式。大致的意思就是,一个团队一窝蜂地去干某一件事,很多其他的事情根本顾不过来,开发时,不需要任何的准备,上来就写代码,也许能写出来,或许也写不出来。看到这里时,我的感受颇深。作为一个大学生,杨老师给我们布置的几次团队作业,我们大多都是像那样去做的,因为,这些程序都是一些“演示”程序或者是“用一次就扔”的程序。所以我们并没有很认真的去做一些需求分析等,导致代码虽然写出来了,但是有着各种各样的问题。

    三、需求分析

      之前不知道要做需求分析,每次编写代码时,都是想起什么就往里加入,导致最后好多功能都是强行加入进去的,代码整体结构变得很差,有些地方甚至会出现严重的bug。但一个好的需求分析,能够让开发团队更好地了解用户的行为和需求,能够开发出一个让用户满意的软件。

      本书对一个软件的需求分析,可以从4个方面去分析,对产品功能性的需求,要求产品必须实现某些功能;对产品开发过程的需求,要求软件的开发流程必须满足某些约束条件;非功能性需求,也叫服务质量需求;综合需求,有些需求并不是单单一个软件模块就能满足。

      一个软件的需求分析最终利益相关者,最大的就是开发这个软件的团队或者个人,但是利益相关者中还要包含用户和顾客等,所以,软件开发时,还要顾及到所有利益相关者之间的需求关系,这样才能让整个软件的需求分析分析的更好。

    四、软件测试

      本书介绍的两种测试方法:黑箱测试和白箱测试

      黑箱:指的是在设计测试的过程中,把软件系统当作一个黑箱,无法了解到内部,更准确的说法是行为测试

      白箱:指的是在设计测试的过程中,设计者可以看到软件系统的内部结构,并选择测试数据即具体的测试方法来测试

      对于测试部分,我深有体会,这次的团队项目开发时,遇到了很多的问题,用了白箱测试的办法,调试了很多,模块开发完成后,我们用黑箱测试了一下,发现了一些用户操作方面的不足。这使得我们的程序更加的完善,并且加快了开发的速度。

      总体来说,构建之法这一本书,从代领我们走进了软件这个世界,到介绍团队开发流程,再到需求分析的介绍,软件设计与实现,到最终软件质量如何去保障,每一部分配以生动实例的讲解,都帮助了我提高开发软件的技能,使得我收获颇深

    自我总结

      一学期的软件工程课,对我影响颇深。记得之前,自己写的代码,只是为了完成某个任务或者功能而编写的,并没有注重别的。后来有了结对编程后,才发现,我们相互的代码并不能很好的相容,而且,综合后出现了很多的问题。这时候,我才深刻的意识到软件工程这个课程的重要性,尤其是多人结组的情况下,编写大型项目的时候更为重要。需求分析,用例图,类图,黑白盒测试,瀑布模型,等等,很多的东西都让我获益匪浅,我觉得从软工课程学习到的东西,对于我以后的成长,尤其是工作后,有着更为深刻的影响。

  • 相关阅读:
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    PHP serialize() 函数
    PHP print_r() 函数
  • 原文地址:https://www.cnblogs.com/chengyu404/p/5587065.html
Copyright © 2011-2022 走看看