软件工程第一次作业

软件工程第一次作业

  • 花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。

        https://coding.net/u/Liu_xiang_/p/FourOperations/git

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

        a.在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文

        b.列出一些事例或资料,支持你的提问

        c.说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?

        例如:我看了这一段文字 (引用文字),有这个问题 (提出问题);我查了资料,有这些说法(引用说法);根据我的实践,我得到这些经验(描述自己的经验);但是我还是不太懂,我的困惑是(说明困惑);或者我反对作者的观点(提出作者的观点,自己的观点,以及理由)。

  • 1.  目前属于学生的我们,选择哪种软件团队模式比较好?(第5章 团队和流程)

我在《构建之法》第5章88~92页看到了好几种软件团队模式,并且每种团队模式都有相应的解释,但是我看完之后还是不知道到底哪种模式适合我们。在学校很多同学会因为某个模式听起来或看起来高大尚就选择该模式,但其实该模式根本就不适合我们,我感觉主治医师模式可能适合我们,但又会向书中所说的那样出现“一个学生干活,其余学生跟着打酱油”。

  • 2.  工程师在完成代码之后还会存在很多Bug,要怎样找到这些Bug并修复呢?(第11章 软件设计与实现)

我在看完《构建之法》229~230页之后,知道了在完成代码之后还存在很多Bug,另外在学习中我们总是习惯性的认为在完成代码并且运行成功之后就已经完成该项目了,不会考虑是否存在Bug,由于本书中并未介绍怎样修复Bug,因此提出问题:在完成代码之后,怎样找到存在的Bug并修复的呢?

  • 3.DCR具体怎么做?(第15章 稳定和发布阶段)

我在《构建之法》第15章309~310页看到了这样几段话“怎么做DCR?阿超给大家列出了DCR的要点:1.如何提出DCR? 在DCR的描述文字中,说明:a.问题在哪里,问题的影响;b.如果不修改,会有什么后果?c.几种修改方案,各种方案的优缺点和成本。2.如何决定DCR的执行次序?1)会诊所有DCR。2)按照影响,成本排序,得到一个自上而下的名单,根据现有资源,按照名单执行。”在此出只是给出了DCR的要点,但DCR具体该怎么做,此处并未做出介绍。

  • 4.当Beta分支实现的修改与主分支冲突时,该怎么做?(第15章 稳定和发布阶段)

我在《构建之法》第310页看到“适合在Beta分支实现的修改并不一定适用于主分支”。当在做一个软件时,如果实现Beta分支的修改与主分支冲突时,该怎么做,是不进行修改呢,还是另选他法?

  • 5.如何根据项目和用户的类型来决定设计师与工程师的交互方式?(第12章 用户体验)

在《构建之法》第249页练习与讨论提到:“用户体验和用户界面对一个项目很重要,但是负责这类工作的设计师并不是软件工程师,设计师们什么时候加入进来呢?不同的人有不同的看法:1.最先:“你要从用户体验开始,然后反过来寻求技术的解决方案”。2.最后:代码写的差不多了,请设计师来美化一下,画个图标,对齐一下文字。”我们知道,在实践过程中,如果最先加入的话,可能会出现难以寻找到解决方案,最后加入的话,可能会出现设计师的设计方案会影响到已经写好的代码,因此提出问题:如何根据项目和用户体验的类型来决定设计师与工程师的交互方式?

  • 软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点:

1.学堂在线

(1)学堂在线是基于网页的软件,具有强大的功能,是免费开放的教育平台,方便学生学习,提供了一个了供人学习的平台,满足了人们的自学需求。

(2)该软件并不以盈利为目的;

(3)该软件可通过各大应用商店下载,也可在线访问;

(4)该软件的功能主要靠代码实现,一旦管理员发现Bug,并会修复代码;重新发布后,我们登录后就会发现Bug已经被修复了;

(5)与此同类的软件,通过名师名校,优秀的师源力量来吸引用户。

2.熊猫TV

(1)熊猫是一个以游戏直播为主并拥有大量的观众基础的在线直播平台,同时拓展其他娱乐项目等,希望通过主播传播优质的内容从而产生大量人气和盈利,最近的版本更新出竹子之后,通过观众赠送礼物熊猫从中分红而获利。缺点就是在瞬间大量人员访问时候,服务器有可能会崩溃导致无法访问;

(2)该软件以盈利为目的

(3)通过喜欢的主播在熊猫平台直播而下载的熊猫APP,也可以在线观看;

(4)在登陆之前进行当前版本与现在版本的比对,如果不同会出现提示让人选择是否进行更新。对Bug处理是通过各个超管实时监测和收取观众、主播的反馈进行维护;

(5)同种类型的软件 通过人气主播拉拢观众进行竞争。

3.英雄联盟

(1)英雄联盟是一款安装在电脑上以玩家在线对战为主的游戏,当然也包括不同难度的人机对战,同时通过每周末出一些特殊模式来供玩家娱乐;

(2)该软件以盈利为目的;

(3)通过英雄联盟官网下载;

(4)通过版本更新来解决Bug的,通过网络下载来更新新的版本,通过不断的推出新的人物和新的皮肤来吸引顾客的。

  • 列举在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特征是什么?

答:比如熊猫,有标清,高清,超清等清晰度,还有通过各种路线来播放。软件是逻辑性的,而硬件是物理的,软件想表达出来必须要通过硬件,比如我们看到的视频是靠软件和硬件还有其他软件共同工作产生的,所以软件可以理解为一种信息。

1.软件是一种通过编程实现硬件功能的产品。软件如同电脑的思想和灵魂,它存在于硬件之中;硬件如同电脑的身躯,是可以看见触摸的实体,是计算机的血肉骨骼

2.硬件可以成批量的生产。每个产品中。通过软件和硬件的配合,从而达到产品的目的。

3.一种硬件设备。只能搭配固定的软件,从而实现它的功能。

 

posted @ 2017-04-23 14:09  _陌然浅笑  阅读(136)  评论(0编辑  收藏  举报