软件工程第一次作业(2)

1.关注《构建之法》的作者邹欣老师的博客
2.花二十分钟写一个能自动生成小学四则运算题目的“软件”,要求除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。
(Coding地址:https://git.coding.net/syp412340452/syp.git)
3.在一周之内快速看完《构建之法》,列出你不懂的5-10个问题,发布在自己的博客。
1)团队合作模式和开发流程的关系密切,两者能否脱离?
“第五章节团队和流程”中 团队模式有很多种,开发流程同样有多种模式,所以在什么情况下团队和流程的各种模式是互搭的,能不能脱离两者间的关系,直接考虑其在团队和流程中单独的功效。
软件团队的模式包括以下几种:

(1)主治医师模式:一人为主,其他人为此人服务。

(2)明星模式:主治医师模式到达极致,一人的光芒掩盖所有人。

(3)社区模式:每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。

(4)业余剧团模式:在不同项目中每个人扮演着不同的角色,可能随着项目的改变,自己的角色也会发生变化。

(5)秘密团队模式:一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。

(6)特工团队模式:有一些有特殊技能的专业人士组成的团队。

(7)交响乐团模式:人员工具齐全,准备充足的团队。

(8)爵士乐模式:相对自由,有风险,人少且不靠谱。

(9)功能团队模式:具备不同能力的同事们平等协作,共同完成一个功能。

(10)官僚模式:层层领导的团队模式。

团队的开发模式包括以下几种:

(1)写了再改模式:和一窝蜂团队模式比较像。

(2)瀑布模型及其各种变形。

(3)RUP统一流程。

(4)老板驱动的流程。

(5)渐进交付的流程。

(6)TSP的原则。

至于团队模式和团队的开发模式的关系,我个人的理解是一群人在一起做软件开发,总是要一些方式方法。而这里团队模式就是这一群人的定性,团队的开发模式则是这群人使用的方法的定性。
2)典型的软件团队模式和开发流程怎么样合理的搭配,比如非团队和团队模式下如何正确合理的搭配窝蜂模式等。
“第五章节团队和流程”中,团队有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时工作。
团队成员有各自的分工,互相依赖合作,共同完成任务。
团队的模式有:主治医生模式,明星模式,社区模式,业余剧团模式,秘密团队,特工团队,交响乐团模式,爵士乐模式,功能团队模式,官僚模式
开发流程:写了再改模式,瀑布模式,Rational Unified Process统一流程,老板驱动的流程,渐进交付的流程,TSP的原则。

蜂窝群组决策从以前的领导层做决策,变成了多个人一起提供智慧,最后再由负责人做出最佳决策,这样比较容易走出个体思维的误区。 在蜂窝群组中,每个人都可以充分发表自己的观点和想法,大家共同切磋、商量、推导,拿出最优的解决方案。 通过团队充分沟通过的决策可以利用信息的多元性,对各种可能提供采样,在相对多采样的基础上做出决策,会比较趋近于最合理的解决方案。 在蜂窝群组沟通中,也会出现争论,大家都坚持自己的想法和看法,这样的争论其实会避免因仓促决定而犯下错误,将犯错误的概率降到最低

3)敏捷的方法论有爱抚弟弟,史克朗姆,极限编程,他们各自有什么特点。
设及的章节:第六章 敏捷流程
敏捷的方法论比较有名的有:爱抚弟弟(FDD-Feature Driven Design)、史克朗姆(SCRUM)、极限编程(XP)

敏捷开发的原则是:(1)尽早并持续地交付有价值的软件以满足顾客的需求;

                     (2)敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势;

                     (3)经常发布可用的软件,发布间隔可以从几周到几个月,能短则短;

                     (4)业务人员和开发人员在项目开发过程中应该每天共同工作;

                     (5)以有进取心的人为项目核心,充分支持信任他们;

                     (6)无论团队内外,面对面的交流始终是最有效的沟通方式;

                     (7)可用的软件是衡量项目进展的主要指标;

                     (8)敏捷流程应能保持可持续的发展。 领导, 团队和用户应该能按照目前步调持续合作下去;

                     (9)只有不断关注技术和设计才能越来越敏捷;

                     (10)保持简明 - 尽可能简化工作量的技艺 - 极为重要;

                     (11)只有能自我管理的团队才能创造优秀的架构, 需求和设计;

                     (12)时时总结如何提高团队效率, 并付诸行动。

4)要做出便于用户使用,减少使用者和企业服务人员的不必要因素的软件-->要做好用户界面设计和用户体验。用户体验是否贯穿整个开发流程?
我的理解是,若一开始脱离用户,未能从用户的角度出发,而后期的用户体验中会很容易产生难以修改的问题,如UI界面设计不合理,没有考虑用户年龄段。

网上资料:马库拉在苹果刚成立时教给Jobs一套“苹果营销哲学”,至今看来依然威力十足:1. 共鸣,紧密结合客户的感受;2. 专注,为了做好决定做的事情,必须拒绝所有不重要的机会,3. 灌输,人们会通过一个公司或一个产品传达的信号,来形成对它的判断。个人觉得以上是苹果精神的精髓所在,不仅仅在乎、重视客户的体验,也需要引导、提升他们的所感所知,体验是否分层还是产品的分层,皆不重要,重要的是你是否真的想让客户“共鸣

由此可知,若是要做好用户界面设计和用户体验,就需贯穿这个开发流程。

5)微软开发了windows操作系统垄断了电脑系统,那么以后还会有其他的系统超越windows吗?

在5年前,安卓系统的市场份额只有2.4%。从分布来看,Windows系统依然是电脑操作系统中的霸主,市场占有率高达84%。安卓系统之所以在总量上超越Windows系统,原因有两方面:一是智能手机使用越来越多,而智能手机上使用最多的系统就是安卓系统;二是亚洲市场的兴起,彻底改变了世界市场格局。在欧美地区,Windows依然是使用最多的操作系统,而在亚洲,安卓已经牢牢占据了第一把交椅。
首先,在移动终端上(包括手机和平板电脑),Windows系统很难有大的突破了,但是接下来的科技发展很可能会给Windows系统恢复市场占有率的机会。在AR领域、AI领域、智能语音领域以及智能生态圈领域,Windows系统依然可以大有作为,重新成为操作系统市场的龙头老大

由此可见,一个系统的发展伴随着技术和时代的两步骤,所谓的超越实则是市场的降低。软件需同时代共进步。

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

1.爱奇艺影音:是一款流行于国内的影视软件,内含各类大小型节目,是面向市场的一款盈利型播放软件。
2.英雄联盟:由美国拳头公司研发的,中国大陆地区腾讯游戏代理运营的英雄对战MOBA竞技网游,面向世界的一款盈利型游戏软件。
3.微信:是腾讯公司推出的一个为智能终端提供即时通讯服务的免费应用程序。
①这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
软件开发者每开发一个软件,必有其针对人群和实用目的,就比如微信,qq这些软件其目的就是给人们提供一个交流平台,它的这一目的性便是给适用人群最好的吸引方式
,另外在同一目的下每一种软件都有其自身的特征功能,来吸引人群。他们的目标不都是盈利,有纯盈利的软件,其自身功能性必然有保证。也有非盈利性的软件,这种软件,建构单一,功能不完善。还有起初非盈利等自身的性质完善到一定程度,才有盈利的目的。
微信利用它强大的通讯平台和各种特殊功能(摇一摇,微信公众号等)来吸引客户使用,并且这款通讯软件面向对象广,操作简单,使得在市场中占据了很大的地位。
爱奇艺利用其稳固的后台,及多年的发展成果,在这个信息时代,利用其庞大的资源库和独有的视频播放器,为人们提供娱乐休闲平台。
英雄联盟则使用其特有的游戏设计理念,新开发的游戏规则下,在其个性的人物设计,较为简单的操作和游戏视觉效果下吸引了全世界的人。
②这些软件是如何到你手里的(邮购,下载,互相拷贝)
微信,英雄联盟及爱奇艺影音均通过下载软件下载所得,在网络上也可找到资源包。
③这些软件是如何处理Bug的?又是如何更新新的版本的?
各种软件会不断的发布一些补丁和新版本,这些补丁和更新会提供全新的改进的工具和功能。这些更新也将包括 bug 修复和其他增强功能。
④同一类型的软件之间是如何竞争的?
微信:同一类软件通过不断改造皮肤,窗口等等,给用户推送更精彩的新闻来竞争的。
英雄联盟:同一类游戏通过不断改造英雄皮肤,改造游戏画面,更低的会员价格来竞争的。
爱奇艺:同一类软件通过更大的资源库,更廉价的会员价,更清晰的画质效果,来竞争。

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

posted @ 2017-04-19 21:14  Angle7  阅读(153)  评论(1编辑  收藏  举报