zoukankan      html  css  js  c++  java
  • 2020软件工程作业00——问题清单

    第一次问题

    1.Garvin质量维度和ISO9126质量模型哪个更容易体现软件的质量?

    答:ISO9126.六个特性有功能性,可靠性,易用性,效率性,维护性,可移植性。

    2.软件复用仅仅是代码复用吗?

    答:不仅仅,还有算法的复用,数据结构的复用,设计的复用,分析的复用。

    3.开发更好的软件是为了更多的利益吗?

    答:不是,是为了恰好让广大用户满意,并且是高质量的软件产品。

    第二次问题

    1.JAVA和Python有什么相同和区别?

    答:python虚拟机没有java强,java虚拟机是java的核心,python的核心是可以很方便地使用c语言函数或c++库。
    python是全动态性的,可以在运行时自己修改自己的代码,java只能通过变通方法实现。python的变量是动态的,而java的变量是静态的,需要事先声明,所以java ide的代码提示功能优于python ide。
    python的产生几十年了,几十年前面向过程是主流,所以用python有好多程序用的是面向过程设计方法,很多概念从c语言过来的,class在python中是后加入的,而java是为了实现没有指针的c++(当年com组件用的引用记数,java用的虚拟机),主要采用面向对象的设计方法,很多概念是oop的概念。面向过程,相对简洁直观,但容易设计出面条程序,面向对象,相对抽象优雅,但容易过度抽象。
    在实际使用的python入门简单,但要学会用python干活,需要再学习python各种库,pyhton的强大在于库,为什么python的库强大,原因是python的库可以用python,c语言,c++等设计,再提供给python使用,所以无论gpu运行,神经网络,智能算法,数据分析,图像处理,科学计算,各式各样的库在等着你用。而java没有python那么多的开源库,很多库是商业公司内部使用,或发布出来只是一个jar包,看不到原始代码。python虚拟机因为编译性没有java的支持的好(或者说故意这么设计的),一般直接使用源码(linux),或源码简单打个包(如pyexe)。
    python有很多虚拟机实现,如cython,Pyston,pypy,jython, IronPython等等,适合用于业务语言,或插件语言,或面向领域语言,而java因为虚拟机巨大,很少用于插件语言,发布也不方便。
    java主要用于商业逻辑强的领域,如商城系统,erp,oa,金融,保险等传统数据库事务领域,通过类似ssh框架事务代码,对商业数据库,如oralce,db2,sql server等支持较好,软件工程理念较强,适合软件工程式的多人开发模式。python主要用于web数据分析,科学计算,金融分析,信号分析,图像算法,数学计算,统计分析,算法建模,服务器运维,自动化操作,快速开发理念强,适合快速开发团队或个人敏捷模式。
    java的商业化公司支持多,如sap,oracle,ibm等,有商业化的容器,中间件,企业框架ejb。python的开源组织支持多,如qt,linux,google,很多开源程序都支持python, 如pyqt,redis,spark等。
    python用途最多的是脚本,java用途最多的是web,pyhotn是胶水,可以把各类不相关的东西粘在一起用,java是基佬,可以通过软件工程组成几百个人的团队和你pk,商业化气息重。不过我认为还是python强大,因为可以方便调用c或c++的库,但软件工程和商业化运作没有java好,适合快捷开发。

    2.模块化程序设计的优点?

    答:各模块相对独立、功能单一、结构清晰、接口简单
    (1)控制了程序设计的复杂性。
    (2)提高了代码的重用性。
    (3)易于维护和功能扩充。
    (4)有利于团队开发。

    3.Python程序有哪些方法来处理异常?

    方法一:捕获所有异常
    方法二:采用traceback模块查看异常
    方法三:采用sys模块回溯最后的异常

    第三次问题

    1.为了保证软件的质量,使其具有较好的维护性,关键在于?

    答:选择好的程序设计风格

    2.pylint使用方法有哪些?

    答:方法

    第四次问题

    1.黑盒测试和白盒测试的运用区别?

    测试方式不同
    (1)黑盒测试:功百能测试,是通过测试来检测每个功能是否都能正常使用。
    (2)白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
    测试目的不同
    (1)黑盒测试:把程序度看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
    (2)白盒测试:通过检查软件内部的逻辑结构,对问软件中的逻辑路径答进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
    测试原则不同
    (1)黑盒测试:以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,内用黑盒测试方法是发现不了的。
    (2)白盒测试:一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试true和false两种情况。

    2.对提高代码性能的能力如何提高?

    答:一是养成好的编程习惯,二是针对自已的工作提高自已的知识含量。

    3.哪个是最强的逻辑覆盖准则?

    答:路径覆盖。

    第五次问题

    1.软件开发活动由几个过程构成?

    1问题定义
    2可行性研究
    3需求分析
    4总体设计
    5详细设计
    6编码和单元测试
    7综合测试
    8软件维护

    2.软件过程有几种模型?

    答:瀑布模型,原型模型,迭代式开发,可转换模型。

    3.瀑布模型适用哪些软件项目?

    答:小型软件系统开发

    第六次问题

    1.敏捷方法的实践有哪些?

    答: “敏捷方法”是一个囊括了各种框架和方法的涵盖性术语,它指的是符合《敏捷宣言》价值观和原则的任何方法、技术、框架、手段或实践。敏捷概述中有提到,常用的敏捷实践有:精益、看板、Scrum、XP极限编程、水晶、DSDM动态系统开发、FDD功能驱动开发、AUP敏捷统一过程、OpenUP,《敏捷实践指南》将敏捷方法和看板方法视为精益方法的子集。

    2.瀑布模型和敏捷方法的区别有哪些?

    答: 瀑布模型的结症在这里,无法适应变化,而敏捷是一种思路,是一种解决问题的思路。
    敏捷方法主要是针对中小型团队设计的。因此,团队中的每个成员应当准确地明白自己的角色、以及工作的独立性。

    3.迭代式开发是否是软件开发主流?

    答:不是

    第七次问题

    1.软件项目开发车成本有哪些基本估算方法?

    自顶向下的估算方法
    自底向上的估计法
    差别估计法

    2.软件项目计划又分为哪几个步骤?

    开发问题描述
    定义顶层结构
    定义工作分解结构
    建立初始时间表

    3.关于项目的沟通,沟通一定是为了达到目的吗?

    答:不一定

  • 相关阅读:
    将Nginx添加到windows服务中
    springboot使用redis管理session
    GIT常用命令
    阻止360、谷歌浏览器表单自动填充
    谈谈对Spring IOC的理解
    同一个Nginx服务器同一端口配置多个代理服务
    LeetCode 653. Two Sum IV
    109. Convert Sorted List to Binary Search Tree(根据有序链表构造平衡的二叉查找树)
    108. Convert Sorted Array to Binary Search Tree(从有序数组中构造平衡的BST)
    LeetCode 236. Lowest Common Ancestor of a Binary Tree(二叉树求两点LCA)
  • 原文地址:https://www.cnblogs.com/codesasan/p/12673699.html
Copyright © 2011-2022 走看看