《构建之法》阅读笔记03

软件设计与实现

  我们写软件就是要解决用户需求,整个软件开发周期我们需要搞清楚很多问题:

    在需求分析阶段:都会涉及到哪些实体,每个实体之间的联系是什么,实体的属性怎么确定,用户的需求是什么,软件怎么能解决用户的需求。

    在设计与实现阶段:软件是怎么解决这些需求的,现实世界的实体和属性在软件系统中是怎么表现和交换信息的。

    在测试和发布阶段:软件真的解决了需求分析阶段的用户的需求了吗,用户还有什么新的需求?

  注:分析和设计的方法:

      1.以文字为主的文档,word,ppt等。

      2.以图形为主的构造的模型,UML,思维导图等。

      3.数学语言描述

      4.类自然语言+代码构造

      5.源代码+注释

  在软件设计这方面,uml图是之前学过的,但是没有学到精髓,仅仅是简单的入门而已,在实际的开发中,很少做uml建模这件事情,也是平时我们考虑的比较少的原因吧,暴露出来的问题不可怕,暴露了问题不改正才是最麻烦的事情,这会在编程道路上产生很多不利影响。

  对于修改bug和新功能开发,应该先修改bug,然后再进行新功能开发,bug如果不修复就继续进行新功能的开发,那么bug只会越来越多,在新功能开发时可能会遇到更多的问题,倘若用到的刚好是产生bug 的代码,又该如何,所以修复bug是重中之重,只有地基夯实,才能建起高楼大厦。

  团队开发,对于源代码的管理很重要,之前老师推荐过GitHub,让我们将自己的源代码都上传到github上,然后每次更新github上的代码版本,之前我们的做法都是通过QQ互相传文件,虽然感觉很简单方便,但是也还是有很多的弊端的,就比如对个别文件的修改,修改了部分代码之后,根本不知道修改在哪里,还需要修改人做出说明,甚至当面指出修改,很麻烦。

用户体验

  用户的第一印象是十分重要的,用户在安装自己的软件之后,软件第一次启动,软件设计者要给用户留下的印象是什么样子的?不用说,肯定是极好的,肯定让用户好评,如果第一次就给用户留下很差的印象,那么还有谁会继续使用你的东西呢?所以在软件设计方面需要费一些心思,首先要考虑到适用人群,对特定的用户建设特定的画面,在界面上先吸引用户,然后再在功能上留住客户,当然,不能只有漂亮的前端设计,没有足够强大的功能作为支撑,那么这个软件仅仅是个空壳子,就算界面再优美又能说明什么,用户只会夸赞界面,但是软件是靠功能吃饭的,没有功能什么都不是!

  同时,在软件设计时,是否为用户进行思考,就比如外国留学生注册银行卡的例子,如果不能一直记住用户的选择,那么永远都不会注册成功。这也是开发时必须考虑到的问题。

软件测试

  软件测试是必不可少的一部分,没有经过软件测试就发布的软件就是一颗手雷,处处的bug不断,极大降低用户的体验。而软件测试就是解决这个问题的重要方法:

  软件测试有很多的测试方法:单元测试和代码覆盖率测试,构建验证测试,验收测试,探索式的测试,回归测试,场景/集成/系统测试,伙伴测试……各种测试方法,只是为了减少BUG,提高程序的健壮性,测试的时候也要有标准的测试步骤,随时进行记录,以还原案发现场,这些都是应该具备的专业素质,而不是直接一句程序挂了,然后一问三不知,这样的测试能解决什么问题?

  在今后的软件测试中要吸取经验教训,减少不必要的时间浪费,做就要做好。

posted @ 2019-04-21 10:34  枫黎  阅读(114)  评论(0编辑  收藏  举报