软件工程第一次作业(补充)

软件工程第一次作业补充

  • 花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net, 并将地址发布至自己的博客。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 在一周之内快速看完《构建之法》,列出你不懂的5-10个问题,发布在自己的博客。

    • First, 突发奇想的问题——如果现在有一个团队,有5人构成,但是他们的编程水平各不相同,那么这个团队的“Boss”如何安排工作,以使得团队工作的正常运行?达到人员的各尽其用,各司其职?(个人感觉这是很多项目开发团队首要解决的事,对一个项目的领头人挑战很大!)。
      • 我的理解:物尽其用,人尽其力是自然的要求!所以就应该将项目的各个模块的复杂度进行排序,最难的部分自然交给最有能力的人,依次类推,最终达到人尽其力。
      • 我的问题:基本的思路是有了,但是如何判定项目各个部分的复杂度?有何依据?
    • Second,学习上的问题——前段时间一直在学习用例图,类图和顺序图等的相关知识,但是最深的体会是:一千读者心中有一千个哈姆雷特。对于一个系统,其用例图每个人完全有自己的独特想法,所以画出来的自然不同,那么现在有一个问题,对于一个软件的构建来说,其初始用例图如何绘制?人数?人群?(学习中遇到的问题,觉得很有必要解决!)。
      • 我的理解:很暴力的一个解决方法是:先“募”来百千个志愿者,然后让他们开始画系统的UseCase图,最后交给分析的部门,进行总结,以得到“最为准确的”用例图。
      • 我的问题:首先人数多少比较合理?需要去各个行业的不同群体里抽样,最终选出合适人数的志愿者吗?
    • Third,书上的问题——P30页中有一段话:“在运行效能分析前,阿超让大家预计耗时最多的是什么函数,或者哪些语句。”看到这里我就有点疑问了:代码的实现不是越简洁越好吗?需要考虑复杂的情况吗?有何意义?
      • 我的理解:毕竟在大学中计算机学习了接近两年,所以在头脑中有一个理念:代码越简洁就代表程序越好!毕竟效率无形之中得到了提升!个人感觉想法没有什么问题!相信大多数的“码农”也同意本人的观点!
      • 问题:在一个软件构建过程中,需要考虑那些耗时的代码与语句吗?如果考虑,那么在哪些方面?何时?有什么意义呢?如果不考虑,那么在什么情况下可能需要我们去考虑那些耗时的代码?
    • Fourth,书上的问题——书中第2章第3小节:个人开发流程,一节中主要谈论的是PSP(Personal Software Process),其效能是衡量一个软件工程师的能力成熟程度,那么本人就很疑惑了,软件工程师在“需求分析”和“测试”两方面花了更多的时间,而大四学生在“具体代码”上花费的时间多一些,这个就能表明软件工程师的能力成熟程度高于大四学生吗?判断的依据是什么?而且后面也有提及:PSP依赖于数据,并且有时即使工程师的实现需求的效率很高,但是顾客觉得很不满意。那么这种情况下PSP模型的意义又在何处呢?
      • 我的理解(上网查了一下):PSP能够:1.说明个体软件过程的原则; 2.帮助软件工程师作出准确的计划; 3.确定软件工程师为改善产品质量要采取的步骤; 4.建立度量个体软件过程改善的基准; 5. 确定过程的改变对软件工程师能力的影响。从而使自己了解自己的优势与劣势,以改善自己的技能与才智。
      • 问题:那么能否通过PSP模型来判断一个工程师是否“达标”呢?如果能,其标准是什么?能够完全当作衡量一个工程师好与坏的指标吗?
    • Fifth,书上的问题——在书中第3章第3小节提到了一个概念“精通”,三个层次的问题:低层次、中间层次和高层次。我的问题是:“精通”如何才能达到?
      • 我的理解:如果我们花费大量的时间去练习,多思考,多学习,那么我们就能达到精通的层次。但事实上,我们还需要时间和经验的积累,才能最终称得上为:问题的精通。
      • 我的问题:作为一个学生,实际上在达到“精通”的道路上还有很长的一段路要行走,那么您有什么好的见解以供我们学生来进行参考吗?

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。
    • 1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
    • 2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
    • 3)这些软件是如何处理Bug的?又是如何更新新的版本的?
      1. 同一类型的软件之间是如何竞争的?
    • 列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
      • First,操作系统。目前只接触过Windows 和 Linux 两种操作系统。对于Windows而言,适用于普通大众,由于其操作简单,是可视化的图形操作,极易上手,故而其用户众多,但是其缺点就是CPU的使用效率不高,易卡顿;对于Linux而言,不太适合普通人群,因为需要一定的计算机知识(即编程的相关知识),但是由于其高效率,依旧有大批使用者。总之而言,借用一位同学的话,“Windows 是用来玩的,Linux是用来工作的!”私以为是极好的!
      • Second,游戏。大一上学期,就被一个“巨坑爹”老乡带入了《英雄联盟》的不归路,玩到现在,终于兴致大不如前了,感谢上苍保佑!不过,不得不承认,这款游戏确实有其过人之处,实时战略类的游戏本身就有其多变性、战略性的特点,加之其画质比较优秀,所以让人看起来感觉很舒服,不失为一个缓解压力的好游戏,个人觉得比较完美!;然后,去年又受到某个“无良”同学的蛊惑,掉进了《洛奇英雄传》的“坑”之中,挣扎数月,终于幡然悔悟,这次得感谢它“质量感人”的服务器!不得不说,服务器实在是太伤了!人多会卡、迷之掉线等问题直接让人觉得“木有爱”了!所以它的特点我概括为:服务器可以被拉出去人道毁灭了!
      • Third,手机应用。个人听音乐一直用的《网易云音乐》,主要有几点原因:首先,基本完全免费,只有某些歌可能需要收费,对于“吃土”一族来说,功能perfect;其次,社交做得好,主要体现在别人分享的歌单,有的很合自己的口味,只要收藏一下,以后点开听听就行,完全没有时间的约束,随时听,随时收藏;还有一点比较重要,每首歌都有评论区,听歌的时候顺便看看评论,了解一下他人的感觉也是很好的!尤其是一群生性幽默的“奇葩”群体,评论很是有特色,让人忍俊不禁,听歌的同时又让人心情愉悦,何乐而不为!
      • 总结。对于上述的操作系统,Windows操作系统自然是电脑组装时主机中已经装好了的,到现在都已经是Windows 10版本,记得初中时自己 用的Windows XP系统,觉得很好用,现在更加习惯Windows 10的操作,所以Windows的版本升级在生活和学习中不知不觉的进行了,感觉是现在使用最广的操作系统了(个人观点);对于Linux,只在同学的电脑上试过几次,感触不是很多,但是感觉界面特别简洁,很有韵味。对于游戏,自然以盈利为目的,其用户需求便使得其必须定期更新,增加新事物,基本上每个游戏都具有各自的特色,才能使得在同类游戏中显得出类拔萃(当然排除那些“情怀”玩家)。对于手机应用,手机中自带的软件商城使得我常常试用一些新的APP,遇到功能好的、界面清爽的APP自然不能轻易放过!个人感觉,大多数的APP都是以盈利和人气为首要目标,而它们在同类软件中脱颖而出的原因在于——谁拥有更加优质的“用户体验”!
        ---------------------------------------------------------------------------由于个人能力有限,所以可能存在纰漏与错误,敬请指正!-------------------------------------------------------------------------------
posted @ 2017-04-23 12:36  东陵圣洲  阅读(148)  评论(2编辑  收藏  举报