软件工程的100道问答题
- 格式:doc
- 大小:27.50 KB
- 文档页数:6
软件工程问答题答案(仅供参考)(精品)软件工程问答题答案(仅供参考)(精品)软件工程是指通过计算机科学与工程学的原理、方法和工具来开发和维护软件的一门学科。
在软件工程领域,存在着许多关键问题和常见的问答题。
本文将为你提供一些常见软件工程问答题的答案,希望能够帮助你更好地理解和应用软件工程的知识。
1. 什么是软件需求工程?软件需求工程是软件工程中的一个重要领域,它关注的是对用户需求进行分析、规范和管理,以便于软件系统的开发和交付。
软件需求工程包括可行性研究、需求获取、需求分析、需求规格说明和需求验证等过程。
2. 请解释软件配置管理是什么?软件配置管理是指通过管理软件系统中的各种配置项和配置变更,以确保软件系统的正确、完整和可追踪。
它包括配置项识别、变更控制、版本控制、配置库管理等活动,旨在提高软件开发和维护过程的可控性和可靠性。
3. 请介绍软件测试的目的和重要性。
软件测试的目的是发现软件系统中的错误、缺陷和潜在问题,以便在软件交付之前进行修复和改进。
软件测试的重要性在于可以提高软件系统的质量和可靠性,降低软件使用过程中的风险和损失。
4. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。
它描述了软件系统中各个组件之间的关系和交互,以及软件系统的总体设计原则和理念。
软件架构可以帮助团队成员理解和沟通软件系统的设计和实现。
5. 请解释敏捷开发方法。
敏捷开发方法是一种以迭代、循环和适应性为核心的软件开发方法。
它强调团队合作、快速反馈和不断改进,在不断变化的需求环境下能够更加灵活地开发和交付高质量的软件系统。
6. 请介绍软件项目管理的过程和技术。
软件项目管理包括项目计划、项目组织、项目监控和项目交付等过程。
它涉及到时间管理、成本管理、风险管理、质量管理等技术和工具,以确保软件项目能够按时、按量和按质完成。
7. 请解释软件工程中的代码重构。
代码重构是指在不改变软件系统外部行为的前提下,通过对代码的重新组织和调整来改进软件系统的内部质量和可理解性。
QA1. What are the essential attributes of good software?Maintainability, dependability and security, efficiency and acceptability2. What is software engineering?An engineering discipline concerned with all aspects of software production from specification to system maintenance.3. What are the four fundamental activities in software processes?Software specification, software development, software validation and software evolution.4. What software engineering fundamentals apply to all types of software systems?a. Systems should be developed using a managed and understood development process.b. Dependability and performance are key system characteristicsc. Understanding and managing the software specification and requirements are important.d. Effective use should be made of available resources.5. List the 3 generic process models that are used in software engineering? The waterfall modelIncremental developmentReuse-oriented software engineering6.What are the three benefits of incremental development, compared to the waterfall model?(a) The cost of accommodating changes to customer requirements is reduced.(b) It is easier to get customer feedback on development work that has been done.(c) More rapid delivery and deployment of useful software to the customer is possible.7.What are the principal requirements engineering activities?Feasibility studyRequirements elicitation and analysis Requirements specification Requirements validation8.What are three important characteristics of extreme programming? Requirements expressed as scenarios,Pair programming,Test-first development.9. What is the distinction between functional and non-functional requirements? Functional requirements define what the system should do. Non-functional requirements are not directly concerned with specific system functions but specify required system properties or place constraints on the system or its development process.10. What is the software requirements document?The official document that defines the requirements that should be implemented by the system developers.11. What is a use-case?A use-case identifies a typical interaction with a system and the actors (human or computer) involved in that interaction.12. What is requirements management?The process of managing changes to requirements during requirements specification and after the system has gone into use.13. What are the 5 key activities in an object-oriented design process? Understand and define the context and use of the system. Design the system architectureIdentify the principal objects in the systemDevelop design modelsSpecify object interfaces14. What are the principal aims of software configuration management?To support system integration so that all developers can access the project code and documents in a controlled way, find out what components have been changed and compile and link components to create a system.15. What is the distinction between validation and verification?Validation: Are we building the right product?Verification: Are we building the product right?16. What are the advantages of inspections over testing?Inspections can discover many errors. In testing, one error may mask another. Incomplete versions of a system can be inspected.Inspections can consider broader quality attributes as well as program defects.17. What is an equivalence partition?A class of inputs or outputs where it is reasonable to expect that the system will behave the same way for all members of the class.18. What are the three types of user testing?Alpha testing, where users work with the development team to test the software as it is being developed.Beta testing where the software is released to selected users for testing before the formal system releaseAcceptance testing, where customers test a system to check that it is readyfor deployment.19. What are the three different types of software maintenance and how is effort distributed across these maintenance types?Maintenance to repair software faults (17%),Maintenance to adapt the software to a different environment (18%), Maintenance to add to or modify the systemʼs functionality (65%).20. What are the principal systems re-engineering activities?Source code translation,Reverse engineering,Program structure improvement,Program modularizationData re-engineering21. List four important factors used to assess applications for maintenance. Any four from:Understandability, Documentation, Data, Performance, Programming language, Configuration management, Test data, Personnel skills22. What are the four principal dependability properties?Reliability, availability, safety and security23. Explain the difference between a system fault and a system failure.A fault is an internal system condition that can lead to an erroneous system state. A failure is an externally observed deviation from expected system behaviour.24. List the main benefits of software reuse.Increased dependability, reduced process risk, effective use of specialists, Standards compliance, accelerated development.25. What are the main benefits of COTS reuse?More rapid deployment of a reliable system is possibleIt is easier to judge if an application is likely to be suitable because its functionality is visible.Some development risks are avoided by reusing complete products. Business can focus on their core activity without devoting resources to software development.As operating platforms evolve, the COTS supplier is responsible for updating the application.26. What is a workflow?A sequence of activities, ordered in time, that make up a coherent business processes with each activity carrying out some part of the work of that process.27. List 4 fundamental project management activities.Project planning, Reporting, Risk management, People management, Proposal writing28. Briefly describe two types of cost estimation techniques?Experience-based techniques where the estimate is based on a managerʼs experience of past projects and the application domain.Algorithmic cost modeling where a formulaic approach is used to estimate the development effort required, based on attributes of the software and the development team.29. What are the stages in the software inspection process?Planning, Overview, Individual preparation, Inspection meeting, Rework, Follow-up.30. What is a baseline?A controlled system (collection of component versions) where the component versions making up the system cannot be changed.31. What may be included in a system release?The executable code of a system, Configuration files,Data files,An installation programElectronic and paper documentation, packaging and publicity.32. What is the difference between a system version and a system release?A system version is an instance of a system that differs, in some ways, from other instances. A system release is a version that is released to customers.33.What are the main factors that affect software product quality? Development technology, People quality, Cost, time and schedule, Process quality.34. What are the identified levels in the CMMI staged model?Initial, Managed, Defined, Quantitatively managed, Optimizing.。
软件工程的100道经典问答题1、什么是软件危机?产生软件危机的原因?怎样消除?2、什么是软件工程?包括哪些内容?3、软件生存周期包含哪些内容?4、软件开发模型有几种?各有什么特点?7、在软件开发的早期阶段,为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?8、一个软件开发系统的可行性研究报告应如何编写?9、数据流图有哪几种基本符号?10、画数据流图原则是什么?11、数据流图在软件分析中的作用是什么?12、数据字典的作用?13、什么是数据字典?有几个定义?各自特点是什么?14、有几种效益的分析方法?15、需求分析的任务是什么?16、需求分析通常采用哪些分析技术?17、什么是结构化分析?他的结构化体现在哪里?18、简述面向对象分析技术的主要步骤?19、原型开发技术的目的,特点是什么?20、简述总体设计的一般过程?21、什么叫软件结构?什么叫软件工程?二者之间关系?22、解释深度、宽度、扇出、扇入对软件的影响。
23、什么叫模块化?M代表的含义是什么?24、模块化的三个重要特征是什么?阐明各自的作用。
25、举例说明各种耦合情况和各种内聚情况。
26、简述设计准则的内容。
27、简述层次方框图与软件结构图的异同点。
28、事物型软件结构图有什么特点?原因是什么?29、详细设计的任务是什么?30、什么是结构化程序设计?用N-S图表示三种基本结构。
31、简述Jackson程序设计方法的主要内容。
32、简述Wariner程序设计方法的主要内容。
35、C语言属于第几代语言?第四代语言特点是什么?36、简述高级语言的应用特点和内在特点。
37、试分析程序设计语言特点及软件可*性、可理解性、可修改性、可测试性及成本的关系。
38、选择一种语言的实用标准是什么?39、简述开发环境、计算机体系结构、软件设计方法、软件开发过程与程序设计语言之间的促进和制约作用。
40、程序的编码风格主要体现在哪几个方面?41、软件测试的基本任务是什么?测试与调试区别是什么?42、软件测试的目标是什么?43、软件测试分几个步骤进行?每个步骤解决什么问题?44、软件测试有几种方法?每种方法的特点是什么?45、软件出错有几种类型?验证其程序正确性有几种方法?46、什么是单元测试和集成测试?他们各有什么特点?47、简述渐增式测试方法与非渐增式测试方法的优劣。
软件工程基础考试(答案见尾页)一、选择题1. 软件工程的基础是什么?A. 程序设计B. 数据结构C. 计算机科学D. 需求分析2. 软件开发过程中,需求分析和系统设计的关系是什么?A. 需求分析是系统设计的依据B. 需求分析和系统设计同时进行C. 需求分析在系统设计之后进行D. 需求分析和系统设计没有必然联系3. 软件工程的三个层次及其在软件开发过程中的作用是什么?A. 应用层、系统层、理论层B. 物理层、数据层、逻辑层C. 需求层、设计层、实施层D. 开发层、测试层、维护层4. 软件开发生命周期(SDLC)的概念是什么?它包括哪几个阶段?A. 软件开发生命周期是指软件的开发过程B. SDLC包括需求分析、设计、编码、测试和维护C. SDLC是一个线性的过程D. SDLC各阶段按顺序进行,不具备迭代性5. 什么是敏捷开发方法?它与其他开发方法的区别是什么?A. 敏捷开发是一种快速开发的软件开发方法B. 敏捷开发强调团队合作和客户参与C. 敏捷开发适合大规模软件项目D. 敏捷开发与其他开发方法的区别在于流程管理6. 什么是面向对象编程(OOP)?请列举OOP的三个基本特征。
A. 封装、继承、多态B. 封装、继承、抽象C. 封装、多态、接口D. 继承、多态、接口7. 数据库管理系统(DBMS)在软件开发中的作用是什么?A. 存储和管理数据B. 提供数据查询和修改功能C. 数据库管理员(DBA)负责DBMS的管理和维护D. 所有选项都正确8. 什么是版本控制?请简述版本控制的两种主要策略。
A. 版本控制是一种软件配置管理技术B. 版本控制可以跟踪软件项目的变更C. 版本控制的主要策略有Git和SVND. 版本控制确保软件代码的安全性9. 什么是软件测试?它的目的和基本原则是什么?A. 软件测试是在软件投入运行后进行的活动B. 软件测试是为了发现软件中的错误和缺陷C. 软件测试的原则包括早期测试、缺陷倾向分布等D. 软件测试的目的是提高软件的质量和可靠性10. 什么是配置管理?它在软件开发中的作用是什么?A. 配置管理是指对软件配置项进行管理和控制的过程B. 配置管理可以确保软件配置的一致性和可追溯性C. 配置管理的主要活动包括配置标识、配置控制、配置审核等D. 配置管理有助于解决软件生命周期中的版本冲突问题11. 软件开发过程中,需求分析的主要任务是?A. 确定软件开发的功能B. 编写需求规格说明书C. 进行系统设计D. 进行程序设计12. 在软件开发中,迭代过程是为了更好地适应变化,它主要包括哪几个阶段?A. 需求分析B. 设计C. 编码D. 测试13. 软件工程中的“软件”指的是什么?A. 程序和数据B. 程序、数据和文档C. 程序和数据,可运行D. 程序、数据和用户手册14. 软件工程的发展历程中,第一个正式发布的软件开发标准是?A. ISO 9000B. CMMIC. PMBOKD.软件开发生命周期(SDLC)15. 在软件工程中,测试的目的是什么?A. 证明软件的正确性B. 找出软件中的错误C. 提高软件的质量D. 规范软件的开发过程16. 软件工程中的“软件生命周期”通常包括哪几个阶段?A. 开发B. 运行C. 维护17. 软件工程中,版本控制的主要作用是什么?A. 监控软件的修改历史B. 管理软件的版本C. 确保软件的一致性D. 保证软件的可靠性18. 软件工程中,敏捷开发方法是一种以人为核心、迭代、循序渐进的开发方法,它的核心价值包括:A. 个体和互动跨功能团队B. 可用的软件客户合作C. 响应变化随时间进化D. 面向结果19. 在软件工程中,UML(统一建模语言)是一种用于描述、构造和编写软件系统的图形化语言,它通常用于以下哪个阶段?A. 需求分析B. 设计C. 编码D. 测试20. 软件工程的定义是什么?A. 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
软件工程—简答题四、简答题1. 简述软件危机产生的缘故。
答案:软件危机产生的缘故有:(每点1分)(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发的治理困难。
由于软件规模大,结构复杂,又具有无形性,导致治理困难,进度操纵困难,质量操纵困难,可靠性无法保证。
(3)软件开发费用不断增加。
软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升专门快。
(4)软件开发技术、开发工具落后,生产率提高缓慢。
(5)生产方式落后。
软件仍旧采纳个体手工方式开发。
2. 简述需求分析的概念及需求分析的差不多任务。
答案:需求分析是指开发人员要准确明白得用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
(3分)需求分析的差不多任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须〝做什么〞的问题。
(2分)3. 简述数据流图的分类及每一类的特点。
答案:数据流图有两类:变换型数据流图和事务型数据流图。
(1分)变换型数据流图是由输入、处理和输出三部分组成,(1分)因此变化型数据流图是一个顺序结构。
(1分)事务型数据流图特点:事务处理中心将它的输入流分离成许多发散的数据流,形成许多加工路径,(1分)并依照输入的值选择其中一个路径来执行。
(1分)4. 简述建立对象模型的过程。
答案:建立对象模型的步骤如下:(每点1分)(1)确定类:标出来自问题域的相关对象类。
(2)预备数据字典:为所有建模实体预备一个数据字典,准确描述各对象类的精确含义,描述当前问题中的类的范畴,包括对类的成员、用法方面的假设或限制;(3)确定关联:确定二个或多个类之间的相互依靠;(4)确定属性:只考虑与具体应用直截了当相关的属性(5)使用继承来细化类:使用继承来共享公共结构,以此来重新组织类__全国2020年1月1.简述软件工程面临的问题。
1、典型的详细设计工具有流程图、盒图、、类程序设计语言。
问题反馈【教师释疑】正确答案:【PAD图】2、UML是一种语言。
问题反馈【教师释疑】正确答案:【可视化】3、类是一组具有属性、操作、关系和语义的对象的描述。
问题反馈【教师释疑】正确答案:【相同】4、对象是类的一个。
问题反馈【教师释疑】正确答案:【实例】5、用况图是一种表达系统模型的图形化工具。
问题反馈【教师释疑】正确答案:【功能】6、UML中的顺序图是一种交互图,即由一组对象以及按组织的对象之间的关系组成。
问题反馈【教师释疑】正确答案:【时序】7、模块的作用域是指受该模块内一个所影响的所有模块的集合。
问题反馈【教师释疑】正确答案:【判定】8、模块的控制域是指这个模块本身以及所有直接或间接它的模块的集合。
问题反馈【教师释疑】正确答案:【从属于】9、在数据流图中引入数据源和数据潭这两个术语的目的是为了表示系统的,可以使用它们和相关数据流来定义系统的。
问题反馈【教师释疑】正确答案:【环境|边界】10、模块结构图是系统的一个高层蓝图,允许设计人员在较高的层次上进行抽象思维。
模块结构图可用和两种形式来表示。
问题反馈【教师释疑】正确答案:【层次图|HIPO图】11、在设计模块结构图时要基于原则来设计模块。
问题反馈【教师释疑】正确答案:【高内聚低耦合】12、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“尽力使模块的在其控制域之内”。
问题反馈【教师释疑】正确答案:【作用域】13、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“力求深度、宽度、扇出和扇入”。
问题反馈【教师释疑】正确答案:【适中】14、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“改进软件结构,提高模块的”。
软件⼯程期末试卷简答题(答案)软件⼯程简答1、软件和软件⽣存周期。
(什么是软件⽣存期。
)软件是能够完成预定功能和性能的可执⾏的计算机程序,包括使程序正常执⾏所需要的数据,以及有关描述程序操作和使⽤的⽂档。
(软件=程序+⽂档)软件⽣存周期:由软件定义、软件开发、运⾏维护3个时期组成,每个时期⼜进⼀步划分成若⼲阶段。
软件⽣存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。
2、什么是软件危机?他有哪些典型的表现?产⽣的原因?软件危机是指计算机软件开发和维护过程中所遇到的⼀系列严重问题。
典型表现有:(1)对软件开发成本和进度的估计常常很不准确(2)软件产品的质量往往靠不住(3)⽤户对已完成的软件系统不满意的现象经常发⽣(4)软件常常是不可维护的(5)软件中没有适当的⽂档资料(6)软件成本在计算机系统总成本所占的⽐例逐年上升(成本上升)(7)软件开发⽣产率提⾼的速度,往往跟不上计算机应⽤迅速普及深⼊的趋势原因:(1)软件本⾝独有的特点,给开发和维护带来了困难(2)与软件开发和维护的⽅法不正确有关(3)程序只是完整软件的⼀个组成部分(4)轻视是⼀个最⼤的错误3、软件项⽬的质量管理制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶段性的软件产品进⾏评审,对最终软件产品进⾏确认,确保软件质量。
5、螺旋模型的适应场合有哪些?0104适应场合:⽀持需求不明确、特别是⼤型软件系统的开发,并⽀持⾯向规格说明、⾯向过程、⾯向对象等多种软件开发⽅法,是⼀种具有⼴阔前景的模型。
6.什么是软件过程?它与软件⼯程⽅法学有何关系?(1)软件过程是为了获得⾼质量软件所需要完成的⼀系列任务的框架,它规定了完成各项任务的⼯作步骤。
(2) 软件过程是软件⼯程⽅法学的3个重要组成部分之⼀。
(3) 软件⼯程⽅法学包含三个要素:⽅法、⼯具和过程。
7.简述软件设计的过程。
答:软件设计是把许多事物和问题抽象起来,并且抽象它们不同层次和⾓度,是将需求转变为软件陈述的过程,是迭代的过程。
软件工程简答题复习题(带答案)软件工程简答题复习题(带答案)1. 什么是软件工程?软件工程是一种系统化、规范化、可量化的方法,用于开发、维护和测试软件系统的过程。
它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。
2. 软件开发生命周期有哪些阶段?常见的软件开发生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
3. 什么是需求分析?需求分析是软件开发过程中的第一步,它涉及与客户进行沟通和理解客户需求的过程。
通过需求分析,开发团队可以明确软件系统的功能和性能要求,并将这些要求转化为详细的规格说明。
4. 需求分析的主要目标是什么?需求分析的主要目标是确保开发团队和客户对软件系统的需求达成共识。
它需要明确软件系统的功能需求、性能需求和约束条件,以便后续的设计和开发工作能够按照这些需求进行。
5. 什么是软件设计?软件设计是在需求分析的基础上,根据系统需求和约束条件,将系统划分为模块,确定模块之间的接口和关系,设计出满足系统需求的软件结构和算法的过程。
6. 软件设计的原则有哪些?常见的软件设计原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)和迪米特法则(LoD)等。
7. 什么是软件测试?软件测试是为了评估系统的质量和功能是否满足需求的过程。
它通过设计和执行测试用例,检查系统的输出是否符合预期,并发现潜在的错误和缺陷。
8. 软件测试的分类有哪些?软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层次。
单元测试用于测试软件的最小功能单元,集成测试用于测试不同模块之间的交互,系统测试则测试整个系统的功能和性能,验收测试是由客户进行的测试,以确认系统是否达到了合同中规定的要求。
9. 什么是软件维护?软件维护是在软件交付给客户后,为了保证其正常运行和适应环境变化而进行的一系列活动。
维护包括错误修复、性能优化、功能扩展等。
软件工程考试题及答案一、选择题1. 下列哪项不是软件工程的基本特征?A. 系统性B. 统一性C. 可度量性D. 个别性答案:D2. 谁提出了软件生命周期模型的概念?A. RoyceB. BrooksC. BoehmD. Yourdon答案:A3. 下列哪个模型是一种迭代的模型?A. 瀑布模型B. 原型模型C. 增量模型D. 螺旋模型答案:D4. 软件测试的目的是什么?A. 证明程序是正确的B. 发现程序中的错误C. 验证程序的正确性D. 保证程序可靠性答案:B5. 下列哪项不是软件配置管理的任务?A. 识别软件配置项B. 控制软件配置项的变更C. 维护软件配置项的单位标识D. 确认软件配置项是否软件错误答案:D二、问答题1. 请简要说明软件质量保证的概念及作用。
答案:软件质量保证是确保软件产品达到预期质量水平的所有活动的总称。
它包括制定质量政策、计划和目标,制定和实施过程、标准和检查措施等。
软件质量保证的主要作用是确保软件产品在交付给用户之前达到预期的标准,提高软件开发过程的效率和质量。
2. 请简要介绍软件配置管理的基本概念和主要任务。
答案:软件配置管理是控制软件产品变化和构建组合软件的过程。
它包括软件配置项的识别、版本控制、变更控制、状态报告等任务。
主要任务包括识别软件配置项和管理它们的变更,保持软件产品的相互间的一致性和交付版本的可跟踪性。
3. 请分析软件测试中的黑盒测试和白盒测试的区别。
答案:黑盒测试是根据软件的需求规格进行测试,测试者不需要了解软件的内部结构和实现细节,只关注软件的功能和接口。
白盒测试是基于对软件内部结构和代码的了解进行测试,测试者可以根据代码的逻辑路径和执行情况设计测试用例。
黑盒测试更关注软件的功能是否符合需求,白盒测试更关注软件的代码逻辑和执行路径是否正确。
三、综合题1. 请简要描述软件生命周期模型的特点及常见的几种模型,并比较它们之间的优缺点。
答案:软件生命周期模型是描述软件开发过程中不同阶段顺序和关系的模型。
第一章1,与计算机硬件相比,计算机软件有哪些特点?软件的特点如下。
1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等。
2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动。
3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题。
4)软件的开发和运行必须依赖于特定的计算机系统环境。
5)具有可复用性。
3,什么是软件危机?什么原因导致了软件危机?软件危机的现象如下。
1)经费超出预算,项目一再拖延。
2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。
3)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。
4)开发工具落后,手工方式,开发效率低。
所有导致软件危机的原因,都与软件本身的产品特点相关。
1)软件是一个复杂的逻辑产品。
如果没有解决复杂问题的有效方法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。
2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。
3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做到准确估算,生产过程不易控制。
4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得多。
5,请简述软件工程研究的内容。
软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer 和Rational Rose等。
7,请简述软件工程的目标、过程和原则。
最新软件工程考试题库(含答案和解析)一、选择题1. 以下哪个不是软件工程的三个基本目标之一?A. 可维护性B. 可靠性C. 可用性D. 低成本答案:D解析:软件工程的三个基本目标是可维护性、可靠性和可用性。
低成本虽然也是一个重要的考虑因素,但并不是软件工程的基本目标。
2. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程答案:A解析:面向对象编程(OOP)通过将数据和操作数据的方法封装在一起,降低了软件复杂性,提高了代码的可重用性和可维护性。
3. 软件开发过程中,以下哪个阶段需要进行需求分析?A. 设计阶段B. 编码阶段C. 测试阶段D. 需求分析阶段答案:D解析:需求分析是软件开发过程中的第一个阶段,其主要任务是明确软件系统的功能、性能等需求。
4. 以下哪个软件工程方法主要关注软件项目的管理?A. 敏捷开发B. ScrumC. UMLD. 设计模式答案:B解析:Scrum 是一种敏捷开发方法,主要关注软件项目的管理和团队协作。
UML(统一建模语言)主要用于软件设计,设计模式主要用于解决软件设计中的常见问题。
5. 以下哪个软件工具主要用于版本控制?A. GitB. EclipseC. JiraD. Visual Studio答案:A解析:Git 是一款分布式版本控制系统,主要用于跟踪和管理软件开发过程中的代码变更。
二、填空题1. 软件工程的基本活动包括______、______、______和______。
答案:需求分析、设计、编码、测试2. 敏捷开发的核心价值观包括______、______、______、______和______。
答案:个体和互动、工作软件、客户协作、响应变化、持续交付3. 软件开发过程中,常用的设计模式包括______、______、______、______和______。
答案:工厂模式、单例模式、策略模式、装饰模式、观察者模式4. 软件测试的目的是______、______和______。
第一章:三、简答题1. 软件产品的特性是什么?答:●软件是一种逻辑产品,具有无形性;●软件产品的生产主要是研制;主要是脑力劳动;●软件不存在磨损和老化问题,但存在退化问题;●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。
2. 软件发展有几个阶段?各有何特征?答:①程序设计阶段。
硬件特征:价格贵、存储容量小、运行可靠性差。
软件特征:只有程序、程序设计概念,不重视程序设计方法。
②程序系统阶段。
硬件特征:速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。
软件特征:程序员数量猛增,开发人员素质低。
③软件工程阶段。
硬件特征:向超高速、大容量、微型化及网络化方向发展。
软件特征:开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。
3. 什么是软件危机?其产生的原因是什么?答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。
致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。
软件危机主要表现在两个方面:(1) 软件产品质量低劣,甚至开发过程就夭折。
(2) 软件生产率低,不能满足需要。
4. 什么是软件过程?有哪些主要的软件过程模型?它们各有哪些特点?答:软件过程是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。
软件过程模型是对软件开发实际过程的抽象和简化,是描述软件开发过程中各种活动如何执行的模型,因此又称为软件开发模型。
主要的软件过程模型有:瀑布模型、增量模型、螺旋模型、喷泉模型和基于知识的模型等。
⑴瀑布模型是经典的软件开发模型,将软件开发活动中的各项活动规定为依线性顺序连接的若干阶段,它简单易用,在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很大的作用。
软件工程试题及答案(较详细)软件工程试题及答案 (较详细)一、简答题1. 什么是软件工程?软件工程是一门综合应用计算机科学与工程学、管理学等知识的学科,它致力于开发和维护高质量的软件系统。
它包括需求分析、设计、编码、测试和维护等各个阶段,以确保软件项目能够按时交付、高效运行,并满足用户需求。
2. 请解释什么是软件生命周期?软件生命周期是指软件从构思、开发、使用到废弃的整个过程。
它包括需求分析、设计、编码、测试、部署和维护等多个阶段。
软件生命周期管理的目标是确保软件产品按时、按质量要求交付,并提供后续的支持与维护。
3. 请解释什么是需求工程?需求工程是软件工程中的一个重要阶段,它主要涉及对用户需求的调研、分析、规划和文档化。
通过需求工程,开发人员能够更好地理解用户需求,并将其转化为具体的软件需求规格说明书,为后续的设计和开发提供基础。
4. 什么是软件设计模式?软件设计模式是一套在软件设计过程中重复出现的解决方案。
它们被广泛接受,并被认为是开发高质量、可维护和可扩展软件的有效方法。
常见的软件设计模式包括单例模式、工厂模式、观察者模式等。
二、分析题1. 请说明面向对象和面向过程的编程范式的区别。
面向对象编程(OOP)和面向过程编程(POP)是两种不同的编程范式。
面向过程编程更侧重于任务的步骤和流程,它将问题分解为多个步骤,通过一系列函数或过程的调用来完成任务。
面向过程编程更加注重解决问题的步骤和执行过程。
面向对象编程更注重数据和对象的定义和封装,它将问题看作是一组对象的交互。
面向对象编程通过定义类、创建对象以及对象之间的协作来解决问题。
2. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。
它定义了软件系统中各个组件的职责、交互方式和部署方式。
常见的软件架构模式包括分层架构、客户端-服务器架构、微服务架构等。
3. 解释软件测试中的黑盒测试和白盒测试。
黑盒测试是一种测试方法,它基于对软件系统的功能需求进行测试,而不考虑内部的实现细节。
How do software characteristics differ from hardware characteristics?1软件是设计开发的,而不是传统意义上生产制造的。
2软件不会“磨损”。
3虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。
What is equivalence partitioning as it applies to software testing? What is scenario-based testing?等价划分是一种黑盒测试方法,它将程序的输入划分为若干的数据类,从中生成测试用例。
理想的测试用例是可以单独的发现一类错误,否者在观察到一般错误之前需要进行许多测试用例,等价划分试图定义一个测试用例以发现一类错误,由此减少所需测试用例的总数。
基于场景的测试:它关心的是用户做什么,而不是产品做什么,捕获用户完成的任务,然后在测试时候使用它们及其变体。
场景用来发现交互错误。
这种测试倾向于用单一测试检查多个子系统。
Describe the differences between software construction and software deployment.软件的构造包括了编码和测试任务,从而为向客户和最终用户交付可运行软件做好准备。
部署则包括了三个动作:交付,支持和反馈。
用于现代软件工程本质上是演变的,因此部署并不是只发生一次。
两者都是软件工程的通用框架活动,但是构件肯定是发生在部署之前,部署是构件的下一个活动。
What are the six steps for requirements engineering?需求工程的六个步骤是:起始,导出,精化,协商,规格说明,确认和管理Which UML (unified modeling language) diagrams are useful in object-oriented analysis modeling?静态图:用例图,类图,对象图,构件图,部署图。
软件工程基础知识考试(答案见尾页)一、选择题1. 软件工程的基础是什么?A. 程序设计B. 数据结构C. 硬件D. 需求分析2. 软件开发过程中,需求分析和系统设计阶段的主要任务是什么?A. 编写代码B. 确定软件系统的功能需求C. 编写用户手册D. 进行系统测试3. 软件工程的生命周期通常包括哪些阶段?A. 开发B. 测试C. 部署D. 维护4. 在软件开发中,常用的软件开发方法有哪些?A. 敏捷开发B. 瀑布模型C. 结构化方法D. 面向对象方法5. 需求分析的目的是什么?A. 详细描述软件的功能和性能要求B. 确定软件开发的总成本C. 规划软件开发过程D. 评估项目风险6. 在软件工程中,什么是版本控制?A. 一种文件管理技术,用于跟踪软件的变更历史B. 一种软件开发方法论C. 一种编程语言D. 一种数据库管理技术7. 软件测试的目的是什么?A. 发现软件中的错误和缺陷B. 评估软件的性能C. 确保软件符合用户需求D. 提高软件的质量8. 在敏捷开发中,迭代周期通常有多长?A. 1周B. 2周C. 3周D. 4周9. 在软件工程中,什么是配置管理?A. 管理软件配置项的过程B. 软件开发过程中的一个活动C. 与软件开发和维护相关的所有活动的集合D. 软件开发完成后进行的活动10. 软件工程的定义是什么?A. 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
B. 软件工程关注软件的开发、测试、维护和项目管理。
C. 软件工程的目标是实现软件的自动化开发。
D. 软件工程是一种实践性知识,不依赖于特定的工具或技术。
11. 软件开发过程中通常使用的模型有哪些?A. 瀑布模型B. 迭代模型C. 螺旋模型D. 面向服务的模型12. 什么是需求分析?它在软件开发过程中的作用是什么?A. 需求分析是识别和分析软件系统需要满足的条件或功能的过程。
B. 需求分析在软件开发过程中确保最终产品满足用户需求。
软件工程答案一、单项选择题1. D2. C3. A4. A5. C6. B7. C8. C9. A10. B11. B12. A13. B14. B15. D16. C17. B18. D19. D20. A21. B22. D二、判断题1. 错2. 对3. 错4. 对5. 错6. 错7. 对8. 对9. 错10. 错11. 错12. 错13. 错14. 错15. 对16. 对17. 对18. 错19. 对20. 对21. 对22. 对23. 错24. 对三、简答题1. 答:软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
)软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等2. 答:a.软件产品是一种逻辑产品。
b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。
c.软件产品不会用坏,不存在磨损、消耗问题。
d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。
e.软件费用不断增加,成本相当昂贵。
3. 答:软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发管理:软件管理学、软件经济学、软件心理学4. D5. B6. B7. 答:a,结构化语言b,判定表c.判定树8. 答:需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
软件工程的100道问答题
软件工程的100道问答题软件工程的100道问答题1、什么是软件危机?产生软件危机的原因?怎样消除?
2、什么是软件工程?包括哪些内容?
3、软件生存周期包含哪些内容?
4、软件开发模型有几种?各有什么特点?
7、在软件开发的早期阶段,为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?
8、一个软件开发系统的可行性研究报告应如何编写?
9、数据流图有哪几种基本符号?
10、画数据流图原则是什么?
11、数据流图在软件分析中的作用是什么?
12、数据字典的作用?
13、什么是数据字典?有几个定义?各自特点是什么?
14、有几种效益的分析方法?
15、需求分析的任务是什么?
16、需求分析通常采用哪些分析技术?
17、什么是结构化分析?他的结构化体现在哪里?
18、简述面向对象分析技术的主要步骤?
19、原型开发技术的目的,特点是什么?
20、简述总体设计的一般过程?
21、什么叫软件结构?什么叫软件工程?二者之间关系?
22、解释深度、宽度、扇出、扇入对软件的影响。
23、什么叫模块化?m代表的含义是什么?
24、模块化的三个重要特征是什么?阐明各自的作用。
25、举例说明各种耦合情况和各种内聚情况。
26、简述设计准则的内容。
27、简述层次方框图与软件结构图的异同点。
28、事物型软件结构图有什么特点?原因是什么?
29、详细设计的任务是什么?
30、什么是结构化程序设计?用n-s图表示三种基本结构。
31、简述jackson程序设计方法的主要内容。
32、简述wariner程序设计方法的主要内容。
35、c语言属于第几代语言?第四代语言特点是什么?
36、简述高级语言的应用特点和内在特点。
37、试分析程序设计语言特点及软件可*性、可理解性、可修改性、可测试性及成本的关系。
38、选择一种语言的实用标准是什么?
39、简述开发环境、计算机体系结构、软件设计方法、软件开发过程与程序设计语言之间的促进和制约作用。
40、程序的编码风格主要体现在哪几个方面?
41、软件测试的基本任务是什么?测试与调试区别是什么?
42、软件测试的目标是什么?
43、软件测试分几个步骤进行?每个步骤解决什么问题?
44、软件测试有几种方法?每种方法的特点是什么?
45、软件出错有几种类型?验证其程序正确性有几种方法?
46、什么是单元测试和集成测试?他们各有什么特点?
47、简述渐增式测试方法与非渐增式测试方法的优劣。
48、简述存根程序驱动程序的作用。
49、编最大、最小公倍数程序,并为它设计测试用例。
50、测试的具体任务是什么?为什么说调试是软件开发过程中最艰巨的任务?
51、举出几种常用的测试工具,说明他们的用法。
52、mttf的含义是什么?如何计算et值?
53、假设有一个由1000行pascal语句构成的程序(编译后约有5000条机器指令),请估算对它进行测试期间将发现多少错误。
为什么?
54、什么叫软件维护?软件维护的基本内容是什么?
55、软件维护分几类?每类的基本内容是什么?占软件维护总工作量的百分比是多少?
56、软件维护有哪些特点?
57、简述软件的维护过程。
58、软件的可维护性与哪些因素有关?在软件开发过程中应采
取哪些措施才能提高软件产品的可维护性?
59、什么是软件工程的文档?分哪两大类?每类内容是什么?
60、计算软件价格时,应不应该把维护费用计入成本?为什么?
61、软件项目分几类?划分依据是什么?
62、简述软件项目的特点和项目中人员的特点对软件管理的影响。
65、变动分两类,阐述每类特点及二者之间的区别。
66、谈谈你对软件现代技术的理解,预测一下软件发展方向。
67、计算机技术已不再是单一学科的发展,它是许多相关学科的融合和渗透。
举例说明你所熟悉的这方面的技术、方法和应用。
68、何为软件?软件可分哪几种类?
69、软件危机主要有哪些表现?
70、什么是软件工程?试说明软件工程是如何克服软件危机的。
71、面向对象生存期模型与传统的生存期模型有什么区别?
72、列出两种以上的软件开发过程模型。
并说明各自的特点。
73、分析员职责是什么?分析员应具备什么条件?
74、分析员应采取哪些方法来明确需求?
75、建立系统模型有什么作用?
76、建立良好的规格说明的原则有哪些?
77、为什么要进行规格说明评审?
78、数据流图作用是什么?
79、数据字典的作用是什么?数据字典中包含了哪些信息?
80、何为结构化分析方法?他在发展过程中得到了哪些扩充?
81、什么是面向数据流的设计?数据流包括哪几种?
82、怎样完成从数据流图到程序结构图的转换?
83、面向数据流的设计方法包含那些步骤?
84、jackson结构化编程方法是以控制技术为中心还是以数据结构为中心?为什么?
85、jsp方法包括那些步骤?
86、如何表示数据的顺序结构、选择结构、重复结构?
87、回溯用于解决jsp方法遇到了什么问题?为什么jsp往往会面临这种问题而别的方法往往不会?
88、为什么jsp方法会遇到结构冲突问题?如何解决?
91、什么是原型?原型应具有什么特点?
92、什么是原型开发?原型开发包括那几类?
93、原型开发由哪几个步骤组成?
94、用户界面原型开发方法有哪几种?与传统的用户界面开发方法相比具有哪些优点?
95、面向对象语言必须支持那些概念?
96、面向对象编程语言分几大类?
97、试说明面向对象编程语言用哪些机制支持面向对象方法的基本概念?
98、影响软件成本的主要因素有哪些具体方面?
99、什么是ibm、slim和cocomo成本估算模型?它们之间有什么不同?
100、什么是软件生产率数据?有哪些主要因素影响这些数据?为什么要重视这些数据?这些数据对软件开发有什么意义?
软件工程的100道问答题相关内容:。