计算机类论文答辩常见问题
软件开发类题目常见问题
软件工程相关问题
1.B/S结构程序与C/S结构程序各有哪些特点?
B/S结构程序和C/S结构程序都是常见的软件架构类型,它们有各自的特点和使用场景。
B/S结构程序特点:
- 基于浏览器和Web服务器的架构,用户可以通过Web浏览器远程访问应用程序;
- 应用程序的访问、管理和维护都在Web服务器端实现,用户只需要使用一个普通的浏览器就可以访问应用程序;
- 应用程序集中管理,安装和维护都在服务器端,用户不需要安装任何软件,无需关注软件的升级和管理;
-
由于Web浏览器的普及性,B/S结构程序通常具备跨平台、易于维护和部署的特点。
C/S结构程序特点:
- 基于客户端和服务器之间的架构,应用程序安装在用户的本地计算机上,通过网络连接到远端服务器;
- 应用程序和数据都在本地计算机或远程服务器上执行,用户需要安装应用程序才能访问;
- 应用程序可以利用本地设备和资源,例如打印机、摄像头、音频等,提供更好的用户体验;
- 与服务器建立实时或近实时的连接,可以提供更高的性能和可靠性;
- 由于C/S结构程序通常需要在本地安装应用程序,因此需要关注软件的升级和维护。
计算机软件系统包括
2.说明软件设计与开发过程分为哪几个阶段。每个阶段你都做了哪些工作,得到什么设计结果。一般情况下,软件设计与开发过程分为以下几个阶段:
1. 需求分析阶段
在这一阶段中,主要确定项目的需求和目标,包括功能、性能、安全等方面的需求,并分析业务流程、用户行为和市场需求等因素;同时要明确软件开发的约束条件,如时间、成本、人力资源等。在这个阶段,我通常会:
- 确定软件项目的目标和范围;
- 分析项目的需求并编写需求文档;
- 进行风险评估并提出解决方案;
- 制定软件开发计划。
设计结果:需求文档、风险评估报告、项目计划书。
2. 概要设计阶段
在这一阶段中,主要进行系统的框架设计和模块划分,定义系统的架构和核心功能,并通过接口和流程图等方式进行描述。在这个阶段,我通常会:
- 进行软件架构设计,并绘制结构图和流程图;
- 使用UML(统一建模语言)进行用例建模和场景描述;
- 设计数据库结构,并确定数据表结构、键、索引等详细内容;
- 制定测试计划和细节设计说明书。
设计结果:系统设计文档、数据库设计文档、测试计划文档。
3. 详细设计阶段
在这一阶段中,主要进行软件各模块的详细设计,包括设计模式的选择、算法的实现、模块流程的设计、界面设计等。在这个阶段,我通常会:
- 选择适合的设计模式,根据需求进行设计;
- 完成每个模块流程的设计,并进行伪代码编写;
- 确定UI界面的风格、配和交互效果,并绘制交互UI原型;
- 对系统进行性能测试和安全测试,并根据测试结果进行调整。
设计结果:模块设计文档、性能测试报告、安全测试报告。
4. 编码阶段
在这一阶段中,根据详细设计文档进行编码实现,并对代码进行优化和调试。在这个阶段,我通常会:
- 根据详细设计文档编写代码;
- 对编写的代码进行调试、优化和测试,并修复代码中的Bug;
- 进行代码评审,发现潜在问题并进行修复;
- 完成软件的单元测试和集成测试。
设计结果:实现代码、测试报告。
5. 测试与维护阶段
在这一阶段中,主要进行软件的测试工作,包括系统测试、回归测试、验收测试并进行维
护和升级。在这个阶段,我通常会:
- 进行软件测试和修复测试中发现的问题;
- 对软件进行用户验收测试,得到用户反馈意见;
- 对软件进行维护和升级,优化软件性能,并进行版本管理。
设计结果:测试报告、维护文档。
3.需求分析阶段的主要任务是什么?为了完成这些任务,你都做了哪些工作?
需求分析阶段的主要任务是确定软件系统的需求和目标,以及分析业务流程、用户行为和市场需求等因素,为后续的设计和开发提供基础和指导。具体来说,需求分析阶段需要完成以下几个主要任务:
1. 确定软件项目的目标和范围:明确软件系统的主要功能和应用场景,确定软件项目的目标和范围。
2. 分析项目的需求并编写需求文档:对各种需求进行详细的分析和整理,包括功能、性能、安全等方面的需求,并将这些需求整理成为需求文档。
3. 进行风险评估并提出解决方案:对软件项目开发过程中可能出现的风险进行评估,并提出相应的解决方案,以降低软件项目开发的风险。
4. 制定软件开发计划:依据需求分析结果和风险评估结果,制定软件开发的计划和时间表,以保证软件项目开发的进度和质量。
为了完成上述任务,我在需求分析阶段时,通常会进行以下工作:
1. 与客户和相关方进行沟通交流,明确软件系统的主要应用场景和需求。
2. 对需求进行分类和整理,制定需求分析报告或者需求说明书。
3. 对软件系统可能出现的风险进行评估,制定风险评估报告。
4. 制定软件项目开发计划,指定开发进度,预估开发时间和人力等。
5. 为了更好地理解业务领域和业务流程,我通常会参观现场或者进行深入的市场调研,以获得更多有关于用户需求和预期场景的信息。
得到的形式化设计成果通常包括软件需求文档、风险评估报告、项目计划书等。这些成果可以作为后续几个阶段进行设计和开发的依据。
4.什么是数据流图?什么是数据字典?它们的作用是什么?
数据流图是一种用于描述软件系统业务功能和数据流动的图形化工具,通常由数据流、处理器、数据存储和外部实体等元素组成,用箭头表示数据流的流向。通过数据流图,我们可以清晰地了解到软件系统不同业务流程之间的数据流动和处理过程,有助于我们优化业务流程并指导后续的系统设计和开发。
数据字典是一种用于描述系统中数据定义、结构和属性的清单,包括数据项名称、类型、长度、存储方式及其它相关信息。对于大型复杂的软件系统,数据字典是一个值得重视的管理手段,它可以为设计和开发人员提供一个共同的数据模型和一致的数据定义规范,避免数据定义上的混乱和冲突。
数据流图和数据字典常常被用于信息系统设计和开发过程中,它们的作用包括:
1. 帮助我们清晰地了解软件系统中的业务流程和数据流动,为后续的系统设计和开发提供基础和指导。
2. 提供了一个有力的管理手段,可以对系统中的数据定义和数据结构进行管理和控制。
3. 有助于提高信息系统的可维护性和可扩展性,减少系统更新和升级过程中出错的概率。
4. 可以提高开发人员的协作效率,缩短开发周期,促进 IT 团队的工作效率。
综上所述,数据流图和数据字典都是软件设计过程中不可缺少的一部分,将它们与其它设计工具进行结合可以提高软件系统的质量和开发效率。
5.说明管理信息系统设计和开发的基本过程分为几个阶段?每个阶段的主要工作是什么?
管理信息系统设计和开发的基本过程通常包括以下几个阶段:
1. 需求分析阶段:该阶段的主要工作是与客户沟通了解业务需求,分析所需的功能和特性,
确定准确的需求规格,制定数据字典和数据流程图,最终形成一个可行的系统定义,以便进入下一个阶段的开发工作。
2. 设计阶段:在需求分析阶段得到明确的需求后,设计阶段的主要任务是将这些需求转化为一种功能设计,如架构设计,数据模型设计,用户界面设计和技术选型等。此后,将开发计划制定为蓝图,定义所有必须的功能,以便为开发工作提供明确的指导。
3. 开发阶段:在设计阶段得到明确的设计后,开发阶段主要任务是实际编写代码,进行系统跟踪和调试,以实现需求规格书中所描述的功能,并在内测和测试期间积极修改优化代码。
4. 验收和部署阶段:在开发阶段完成后,系统必须经过一系列的测试,并经批准后部署到生产环境中。验收和部署阶段的主要任务之一是确保系统质量和生产稳定性,例如,进行性能测试和安全检查,将系统上线前进行必要的优化和调整等。
5. 维护和升级阶段:开发阶段完成后,管理信息系统的运营期也就开始了。因此,维护和升级阶段的主要任务是解决生产环境中存在的问题,包括与硬件和软件的相关问题。另外,不断升级和改进系统功能,以适应企业需求的变化,是提高系统应用价值的关键。
总之,以上这些阶段的任务和工作相互依存,不同的阶段之间并不存在明确的界限。因此,在整个开发过程中,秉持着科学、灵活、合作和高效的原则,有助于管理信息系统开发成功地实现。
6.这个课题是你独自完成的还是团体共同完成的?
独立
7.简单介绍你的课题以及你主要负责的模块?有什么特点?
8.软件的开发一般分为几个步骤?
软件开发一般分为需求分析、设计、编码、测试和维护等步骤。
9.软件需求分析的目的是什么?主要分析哪些方面的需求?你采用了什么方法进行需求分析?
软件需求分析的目的是为了识别、表达和验证系统的需求,以便在后续的开发阶段中满足用户的期望。主要分析用户的功能需求、性能需求、界面和交互设计、系统安全和可靠性
需求等方面的需求。我采用了面向对象的UML建模和用户需求调查问卷等方法进行需求分析。
10.你用的系统设计方法是什么?这种方法的基本思想是怎样的?
我用的系统设计方法是面向对象分析与设计(OOAD)。这种方法的基本思想是把系统看作一组相互作用的对象,通过识别对象的属性和方法,建立对象之间的关系,将问题分解为一系列相对独立的业务逻辑对象,再进行设计和实现。
11.软件测试有哪些方法?你采用了什么测试方法?
软件测试的方法有黑盒测试、白盒测试、灰盒测试、性能测试、压力测试等各种手段。我采用了黑盒测试和白盒测试两种方法。黑盒测试是验证程序外部功能的方法,通过输入和输出数据来测试是否符合预期;白盒测试则从程序内部逻辑的角度进行测试,重点测试程序的执行过程和测试全部代码路径。