这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10618 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10618 |
作业目标 | 提交你的问题清单,以方便同学之间相互查看 |
作业正文 | https://i-beta.cnblogs.com/posts/edit |
参考文献 | 云班课 |
第一次
1.软件是否追求零缺陷
对于绝大多数普通软件来说,没有必要付出巨大代价追求“零缺陷”
2.软件是否质量越高越好
对于一个具体的软件项目来说,保证软件产品的质量并不意味着追求“完美的质量”
3.如何让软件成为一个好软件
第二次
1.为什么软件开发70%成本是维护
2.为什么很少有原编码人员维护
3.学习这门课程要注意什么
第三次
1.如何有效提高代码的执行效率?
2.pylint没看懂
3.代码审查是完成代码编写后的必要步骤吗?
是的,代码审查过程中可以过早的发现问题,比如代码编写格式、代码逻辑、测试用例覆盖的完整性、代码质量等
第四次
1.目前为止我们学到了白盒和黑盒测试等,在现实中每个工程都必须要进行这些测试吗
2.怎么进行单元测试?
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
3.需要的工具是什么?
第五次
1.软件开发具备的思想
1.开发工具(包括语言)自身的思想
2.设计模式中提到的6大设计原则
3.分层思想
4.接口开发思想
5.配置的思想
6.分离的思想
7.分页的思想
8.异步调用的思想
2.4个模型
一、瀑布模型
二、快速原型模型
三、螺旋模型
四、增量模型
3.过程方法是什么
第一阶段为问题定义。
第二阶段为可行性研究阶段,一方面在于把待开发的系统的目标以明确的语言描述出来,我们是否能够做到这些目标:另一方面从经济、技术、法律等多方面进行可行性分析,确认此软件是否符合各种规则
第三阶段为需求分析阶段,主要是和用户进行协商,弄清用户对软件系统的全部需求,从而了解我们到底要实现什么样的功能,编写需求规格说明书和初步的用户手册,提交评审。
第三阶段为开发阶段,主要分为概要设计、详细设计、实现和测试。首先要从大体上设计软件的框架,然后根据前一个过程的输出编写各个结构的数据结构和算法
软件开发的最后一个阶段为软件维护,主要包括四个方面:改正性维护、适应性维护、完善性维护以及预防性维护 :在软件开发完成交付使用后,必然会有一部分隐藏的错误没有被发现,我们需要对这些错误进行修改从而保证用户的体验
第六次
1.需求不可预测,判断需求的方法
数学模型
2.敏捷开发模式存在的缺点是什么
敏捷注重人员的沟通,忽略文档的重要性,若项目人员流动大太,又给维护带来不少难度,特别项目存在新手比较多时,老员工比较累。
3.敏捷开发的出现是不是就意味着瀑布模式的淘汰
不是
第七次
1.开发团队组织模式选择
2.一个好的开发团队需要具备什么
1、计划执行:计划安排得当,不要老加班,不要老是现实和计划不匹配。不要做到哪儿计划就推后到哪儿。
2、研发成果:成功产出几个重影响力级别的、完整成块的、有成就感自豪感的产品或项目
3、团队氛围:这个团队每个人都相处的很融洽,团队有向往的发展愿景,有积极向上、努力拼搏的精神
4、团队协作:每个人都能找到自己擅长并喜欢做的事情。团队允许发出不同声音,不打击不反击。团队允许各种性格和背景的人都能存在并融洽存在。
3.软件项目估算对于软件开发重要吗
第八次
1.git没懂
2.软件配置项重要吗?
3.scrum框架有什么好处。
快速开发尽快交付,团队合作适应变化
第九次
1.了解需求需要到什么程度
2.如何成为一名优秀的需求工程师
1. 需求分析能力
2. 项目设计方法和流程处理能力
3. 复用设计和模块化分解能力
4. 整体项目评估能力
5. 团队组织管理能力
3.如何快速提取客户的需求