软件工程第一次作业补充

  • 软件工程第一次作业要求
    • 本次作业的标题命名为“软件工程第一次作业”
    • 花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。
    • 在一周之内快速看完《构建之法》,列出你不懂的5-10个问题,发布在自己的博客。
    • 1.我看了软件团队的模式一章,对其中“主治医师模式”和“功能团队模式”这两种团队模式感觉是完全相反的,其中“主治医师模式”因为有首席程序员,所有团队的凝聚力很强,分工明确,却会出现“一个人干活,其他人打酱油”的现象,二“功能团队模式”中,具备不同能力的人平等协作,共同完成一个功能,小组内部的交流很频繁,但是小组之间的交流却很少,小组之间达成一致很不容易,所以我想知道在当下的公司开发环境中,哪种模式更有优势?---《构建之法》(第五章 团队和流程)
    • 2.两人合作的开发方式中,首先要注意的便是代码风格规范,只有两人的代码风格一致,才能做到更快的相互理解,在以后的代码合并中亦能更快,但是在代码复审阶段,由于毕竟是两个人,互相提问题时依然不能很快代入对方的想法,从而导致时间的浪费,效率的下降;问:在已有相同代码规范的条件下,怎样能更快的相互理解,加快代码的合并,并尽可能减少分歧?---《构建之法》(第四章 两人合作)
    • 3.在需求分析的过程中,软件产品的利益相关者包括用户、顾客、市场分析着、监管机构、系统/应用集成商、软件团队和软件工程师,由于软件开发不可能一次满足所有利益相关者的要求,但是我们我们依然会征询所有相关角色的需求和意见,所以在这些角色中,谁的需求和意见是最需要考虑的,作为软件开发者又将如何调剂这些利益相关者的矛盾的,即优先级是怎么样的?---《构建之法》(第八章 需求分析)
    • 4.在需求分析阶段,我们要搞清楚:在问题领域的现实世界中,都有哪些实体,如何抽象出我们真正关心的属性,实体之间的关系是什么,在这个基础上,用户的需求是什么,软件是如何解决用户的需求的,怎样选择软件的侧重点,比如侧重用户,软件对硬件的依赖性,以及PC端还是移动端;那么在以上问题都解决的条件下,软件开发团队需要处理、了解这些信息,如书中所说:如果在处理的过程中有误解和遗失,就会导致开发过程中的问题发生,那么到底怎么表达才能更准确有效的交流?---《构建之法》(第十一章 软件设计与实现)
    • 5.开发流程包括写了再改模式(Code-and-Fix)、瀑布模型(Waterfall Model)及其相关变形、统一流程(Rational Unified Process)和老板驱动的流程(Boss-Driven Process),那么对于如今越来越多的中小型企业来说,哪种开发流程是最适合他们的,能够更少的减少资源的浪费以及尽可能地减少项目所需的时间?---《构建之法》(p.92--5.3 开发流程)
    • 软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。
    • 1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么?还是别的?
    • 2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
    • 3)这些软件是如何处理Bug的?又是如何更新新的版本的?
    • 4)同一类型的软件之间是如何竞争的?
    • 列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
      • 游戏--《CSGO》
        1.首先作为一款网络游戏,它的目标肯定是盈利,但是一小部分人也能通过这个游戏获利,我第一次看到这游戏是在一场电竞比赛中;这款游戏的目标不仅仅是赚取用户的现金,还能通过举行世界性的比赛,从而扩大游戏的知名度和用户的受众群体。
        2.是通过一款叫做Steam的软件上买了这款游戏。
        3.先通过用户的反馈获取相关Bug信息,然后技术人员对游戏的Bug进行修复,在对游戏进行更新维护;通过下载补丁的方式进行维护和修复。
        4.通过举办比赛,获取比赛的奖金来吸引玩家。
    >- 视频播放软件--bilibili
          1.能找到很多视频,各个方面都有涉及,但是最多的是动漫;盈利,赚取的是广告费,用户可以通过冲会员的形式观看清晰度更高的视频。
          2.网上下载的。
          3.通过用户的反馈收集Bug,采用更新的方式处理Bug,下载安装包进行更新。
          4.更好的观看体验,更高的清晰度,稳定的片源,更合理的广告布局。
    >- 操作系统--Windows10
          1.电脑必备的操作系统;不光是盈利。
          2.电脑自带的。
          3.用户反馈,通过打补丁的方式。
          4.软件的兼容性,系统的易用性,免费开放。
    >- 硬件与软件的区别
          1.软件必须依赖于硬件,而硬件不需要要依赖于软件;
          2.软件的更新可以通过打补丁的方式,也可以通过重新安装来进行,而硬件的更新只能通过更换硬件才行;
          3.软件是一种逻辑的产品,而硬件是看得见摸得着的产品。
原文地址:https://www.cnblogs.com/Gobenk/p/6747977.html