软件工程问答题
- 格式:doc
- 大小:83.00 KB
- 文档页数:5
第一章绪论1. 软件产品的特性是什么?2. 软件生产的发展有几个阶段?各有何特征?3. 什么是软件危机?软件危机的表现是什么?4. 什么是软件工程?软件工程性质是什么?5. 软件工程目标和内容是什么?6. 软件工程面临的问题什么?7. 什么是软件工程过程?它包含些过程?8. 什么是软件生存周期?它有哪几个活动?9. 什么是软件生存周期模型?有哪些主要模型?10. 什么是软件开发方法?有哪些主要方法?第二章软件可行性研究与项目开发计划1. 可行性研究的任务是什么?2. 研究项目的技术可行性一般要考虑哪些情况?3. 可行性研究有哪些步骤?4. 可行性研究报告有哪些主要内容?5. 成本一效益分析可用哪些指标进行度量?6. 项目开发计划有哪些内容?第三章软件需求分析1. 什么是需求分析?需求分析阶段的基本任务是什么?2. 需求分析的难点主要表现在哪几个方面?3. 需求分析方法应遵循的原则是什么?4. 需求分析阶段的文档是什么?5. 什么是结构化分析方法?该方法使用什么描述工具?6. 结构化分析方法通过哪些步骤来实现.7. 什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?8. 画数据流图的步骤是什么?画数据流图应该注意什么事项?9. 什么是数据字典?其作用是什么?它有哪些条目?10. 建立数据字典的形式是什么?11. 描述加工逻辑有哪些工具?12. 什么是IDEF方法?该方法中建立功能模型的基本步骤是什么?IDEF方法有什么特点?13. 简述SA方法的优缺点.第四章软件概要设计1. 什么是软件概要设计?该阶段的基本任务是什么?2. 什么是模块?模块有哪些基本属性?3. 软件设计的基本原理包括哪些内容?4. 衡量模块独立性的两个标准是什么?它们各表示什么含义?5. 模块间的耦合性由哪几种?它们各表示什么含义?6. 影响公共耦合的复杂程度的因素是什么?公共耦合会引起什么问题?7. 降低模块间的耦合度的方法有哪些?8. 模块的内聚性由哪几种?各表示什么含义?9. 什么是软件结构?结构图的主要内容是什么?10. 简述软件结构设计优化准则.11. 什么是模块的作用范围?什么是模块的控制范围?它们之间应该建立什么关系?12. 什么是”变换流”?13. 什么是”事务流”14. 面向数据流设计方法的过程是什么?15. 试述”变换分析”的设计步骤.试将变换型DFD数据流图转换成软件结构图.16. 试述”事务分析”的设计步骤.试将事务型DFD数据流图转换成软件结构图17. 叙述由IDEF图导出初始软件结构图的方法.第五章软件详细设计1. 详细设计的基本任务是什么?2. 结构化程序设计基本要点是什么?3. 详细设计有哪几种描述方法?4. 程序流程图的特点是什么?5. PAD图的特点是什么?6. 过程描述语言(PDL)的特点是什么?7. 简述Jackson方法的设计步骤.第六章软件编码1. 程序语言有哪些共同特征?2. 在项目开发时,选择程序设计语言通常考虑哪些因素?3. 第4代语言(4GL)有哪些主要特征?4. 举例说明各种程序设计语言的特点及适用范围.5. 什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?第七章软件测试1. 软件测试的目的是什么?2. 在软件测试中,应注意哪些原则?3. 什么是静态测试?什么是动态测试?4. 什么是黑盒测试法?什么是白盒测试法?5. 白盒测试有哪些覆盖标准?试对它们的检错能力进行比较.6. 采用黑盒技术设计测试用例有哪几种方法?这些方法呼有什么特点?7. 简要说明如何划分等价类?8. 用等价类划分的方法设计测试用例的步骤是什么?9. 使用边界值分析方法设计测试用例的原则有哪些?10. 软件测试过程中需要哪些信息?11. 软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?12. 单元测试有哪些内容?测试中采用什么方法?13. 什么是集成测试?为什么要进行集成测试?14. 非渐增式测试与渐增式测试有什么区别?15. 渐增式测试中组装模块的方法有哪些?各有什么优点和缺点?16. 什么是确认测试?该阶段有哪些工作?17. 调试的目的是什么?调试有哪些技术手段?第八章软件维护1. 软件维护有哪些内容?2. 什么是非结构维护?非结构化维护的特点是什么?3. 什么是结构化维护?结构化维护的特点是什么?4. 软件维护困难的原因是什么?5. 影响软件维护代价的因素有哪些?6. 软件维护费用的度量模型是什么?7. 软件维护的流程是什么?8. 维护技术有哪些?9. 软件维护的副作用有哪些?10. 如何控制因修改而引起的副作用?11. 什么是软件可维护性?可维护性度量的特性是什么?12. 提高可维护性的方法有哪些?13. 为了保证软件的可维护性,需要做哪些质量保证检查?14. 好的文档的作用和意义是什么?第九章软件开发的增量模型1. 瀑布模型有何局限性?2. 增量模型的基本思想是什么?3. 渐增模型有几种?各有何特点?4. 快速原型模型有几种?各有何特点?5. 快速原型模型的基本思想是什么?6. 运用原型的策略有几种?7. 使用快速原型方法构造原型时,对原型的要求是什么?8. 原型特性分为几种类型?9. 快速原型模型的开发步骤是什么?10. 构造原型的技术有哪些?11. 评价快速原型模型的优缺点.12. 原型的作用是什么?13. 什么情况下适宜使用原型?什么情况下不宜使用原型?第十章面向对象的方法1. 简述对象,类,类结构,消息方法的基本概念.2. 传统开发方法存在的问题什么?3. 为什么说用结构化方法开发的软件,其稳定性,可修改性和可重用性都比较差?4. 简述面向对象的特征.5. 继承性和多态性的好处是什么?6. 简述面向对象的要素.7. 面向对象分析模型的用途是什么?8. 简述对象模型的特征,举现实世界的例子,给出它的一般化关系,聚集关系的描述.9. 简述动态模型的特征,说明事件,事件跟踪图,状态,状态图的含义.10. 简述功能模型的特征.11. 简述三种分析模型的关系.12. 简述对象建模的过程.13. 简述动态建模的过程.14. 简述功能建模的过程.15. 面向对象设计准则是什么?16. 简述面向对象设计的启发规则.17. 系统设计的内容是什么?18. 对象设计的内容是什么?19. 在面向对象程序设计中,为适应面向对象方法所特有的概念(例如继承性)而必须遵循哪些新准则?20. 在类的实现中,利用既存类的途径是什么?21. 面向对象软件的测试如何进行?第十一章软件质量与质量保证1. 软件质量的含义是什么?2. 影响软件质量的因素有哪些?3. 什么是软件质量保证?4. 软件质量保证的主要功能是什么?5. 软件质量保证策略是什么?6. 软件质量保证的主要任务是什么?7. 说明McCall软件质量度题模型.8. 说明ISO的软件质量评价模型.9. 软件复杂性度量的主要参数有哪些?10. 程序复杂性的度量方法有哪些?11. McCabe度量法的缺点是什么?12. 什么是软件的可靠性?它们能否定量计算?13. 为什么要进行软件评审?软件设计质量评审与程序质量评审都有哪些内容?14. 提高软件质量和可靠性的技术有哪些?15. 说明容错软件的定义?16. 说明容错的一般方法?17. 说明容错系统的设计过程.第十二章软件工程管理1. 说明软件工程管理的重要性.2. 软件工程管理包括哪些内容?3. 软件项目计划中包括哪些内容?4. 软件开发成本估算方法有哪几种?各有什么特点?5. 画出表示软件任务开发并行性的网络图.6. 软件质量保证应做好哪几方面的工作?7. 什么是软件配置管理?什么是基线?8. 请叙述软件工程过程中版本控制与变更控制处理过程.9. 软件工程的意义是什么?都有哪些软件过程标准?10. 请说明软件文档的作用?软件开发项目生存期各阶段都包含哪些文档?第十三章软件开发环境1. 什么是软件开发环境?请列出其发展情况.2. 软件开发环境的基本要求是什么?3. “软件开发环境应是高度集成的一体化的系统”的含义是什么?4. 软件开发环境应具体高度的通用性.在些,通用性包括哪些方面?5. “软件开发环境应易于定制,裁剪或扩充以符合用户要求”,在此,”定制”,”裁剪”,”扩充”的含义是什么?6. 请叙述软件开发环境的分类.7. 何谓软件工具?通常包含哪几部分?8. 当今软件工具发展有何特点?9. 什么是CASE?CASE工具有哪些分类?10. 请叙述集成化CASE的五级模型.11. CASE工作台有哪些分类?。
软件工程问答题答案(仅供参考)(精品)软件工程问答题答案(仅供参考)(精品)软件工程是指通过计算机科学与工程学的原理、方法和工具来开发和维护软件的一门学科。
在软件工程领域,存在着许多关键问题和常见的问答题。
本文将为你提供一些常见软件工程问答题的答案,希望能够帮助你更好地理解和应用软件工程的知识。
1. 什么是软件需求工程?软件需求工程是软件工程中的一个重要领域,它关注的是对用户需求进行分析、规范和管理,以便于软件系统的开发和交付。
软件需求工程包括可行性研究、需求获取、需求分析、需求规格说明和需求验证等过程。
2. 请解释软件配置管理是什么?软件配置管理是指通过管理软件系统中的各种配置项和配置变更,以确保软件系统的正确、完整和可追踪。
它包括配置项识别、变更控制、版本控制、配置库管理等活动,旨在提高软件开发和维护过程的可控性和可靠性。
3. 请介绍软件测试的目的和重要性。
软件测试的目的是发现软件系统中的错误、缺陷和潜在问题,以便在软件交付之前进行修复和改进。
软件测试的重要性在于可以提高软件系统的质量和可靠性,降低软件使用过程中的风险和损失。
4. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。
它描述了软件系统中各个组件之间的关系和交互,以及软件系统的总体设计原则和理念。
软件架构可以帮助团队成员理解和沟通软件系统的设计和实现。
5. 请解释敏捷开发方法。
敏捷开发方法是一种以迭代、循环和适应性为核心的软件开发方法。
它强调团队合作、快速反馈和不断改进,在不断变化的需求环境下能够更加灵活地开发和交付高质量的软件系统。
6. 请介绍软件项目管理的过程和技术。
软件项目管理包括项目计划、项目组织、项目监控和项目交付等过程。
它涉及到时间管理、成本管理、风险管理、质量管理等技术和工具,以确保软件项目能够按时、按量和按质完成。
7. 请解释软件工程中的代码重构。
代码重构是指在不改变软件系统外部行为的前提下,通过对代码的重新组织和调整来改进软件系统的内部质量和可理解性。
软件工程的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、简述渐增式测试方法与非渐增式测试方法的优劣。
绪论1、什么是软件工程?软件工程和计算机科学有何区别?答:软件工程是以计算机科学理论及其他有关学科旳理论为指导,采用工程化旳概念、原理、技术和措施进行软件旳开发和维护,把通过时间证明是对旳旳管理措施和目前可以得到旳最佳旳技术、措施相结合,以期用较少旳代价获取高质量旳软件。
计算机科学侧重于理论研究,其成果可应用于软件工程,而软件工程则强调怎样有效旳建造一种软件系统。
2、什么是软件?答:计算机软件是与计算机系统操作有关旳程序、规程、规则及任何与之有关旳文档及数据;3、什么是软件危机?分析其产生旳原因与挣脱危机旳措施,你认为目前已经挣脱软件危机了吗?请阐明理由。
软件危机是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
重要是两个问题:(1)怎样开发软件,怎样满足对软件旳日益增长旳需求;(2怎样维护数量不停膨胀旳已经有软件;软件危机旳出现,究其原因,首先是由软件自身旳特点引起旳,如软件越来越复杂,软件故障难于检测,工作量难以估计;另首先则是由于软件开发和维护措施不妥所导致旳,如软件旳个体化特性太强等。
为了挣脱软件危机所导致旳困境,提出软件工程旳概念,其重要思绪是:要把人类长期以来从事多种工程项目所积累起来旳行之有效旳原理,概念,技术和措施,尤其是人类从事计算机硬件研究和开发旳经验教训,应用到软件旳开发和维护中来。
我认为我国目前尚未完全挣脱软件危机,由于伴随经济发展,各行各业对软件人才旳需求不停扩大,由于我国旳软件人才缺口仍旧很大,导致了某些行业内软件开发进度难以预测,软件开发成本难以控制,顾客对产品功能难以满足,软件产品质量无法保证,软件产品难以维护,软件缺乏合适旳文档资料。
4、软件产品旳特性是什么?软件是一种逻辑产品,具有无形性;软件产品旳生产重要是研制;软件不存在磨损和老化问题,但存在退化问题;软件产品旳生产重要是脑力劳动;软件产品生产成本昂贵,目前生产方式尚未挣脱手工生产方式;软件具有“复杂性”,其开发和运行常受到计算机系统旳限制。
Chapter 1 - Test Questions1. How does software differ from the artifacts produced by other engineeringdisciplines?Answer (Section 1.1):Software is both a product and a vehicle for delivering a product. As aproduct, software is an information transformer. As a vehicle for delivering a product, software serves as a basis for computer control, communication, and creation of other programs.2. How do software characteristics differ from hardware characteristics?Answer (Section 1.2):Software is developed, not manufactured. Software does not wear out. Most software is custom built, not assembled out of components.Final Exam Question3. Explain what is wrong with the notion that computer software does not needto evolve over time.Answer (Section1.1):Computer software must be revised as errors are discovered and corrected.Software must be updated to accommodate changes in the computingenvironment. Many times a customer will request changes to add newfunctions to an existing product or to accommodate changes in the business environment. Sometimes an older system will need to be reengineered to provide benefits to the user in a modern context. The bottom line is thatsoftware that does not evolve will eventually become unusable.Chapter 2 - Test Questions1. List three areas in which process models may differ from one another.Answer (Section 2.2):Overall flow and level of interdependencies among tasksDegree to which work tasks are defined within each framework activityDegree to which work products are identified and requiredManner in which quality assurance activities are appliedManner in which project tracking and control activities are appliedOverall degree of detail and rigor of process descriptionDegree to which stakeholders are involved in the projectLevel of autonomy given to project teamDegree to which team organization and roles are prescribed2. Describe how Polya’s problem solving principles describe the essence ofengineering practice?Answer (Section 2.3):•Understand the problem (communication and analysis)•Plan a solution (modeling and design)•Carry out the plan (code generation)•Examine the result for accuracy (testing and quality assurance)Final Exam Question1. Describe the relationships among software engineering process, methods,and tools.Answer (Section2.1):Software process defines the framework that must be established for effective delivery of software engineering technology, by providing a context by which the software engineering methods are applied. Software engineering methods provide the technical how-to’s for building software. Software engineering tools provide automated or semi-automated support for software engineering process and methods.Chapter 3 - Test Questions1. How are tasks, actions, and activities related to software process models?Answer (Section 3.1):A software process is made up of activities. Each activity is defined by aset of engineering actions. Each activity is defined by a task set thatindentifies the work items to be completed.2. How does software team choose the task set for a particular project?Answer (Section 3.3):The software chooses the task set based on the characteristics of theteam, the project, and the problem to be solved.3. How can process patterns assist a development team build software productsefficiently?Answer (Section 3.4):Process patterns are proven solutions to commonly encountereddevelopment problems. If developers can recognize that that this isproblem seen before they can use a previously known means of solving it, without have to take the time to invent a new solution.Final Exam Questions1. Why it important for software processes to be agile?Answer (Chapter 3 Overview):Software process provides the stability, control, and organization to anactivity to prevent it from becoming chaotic. Yet, modern softwareprocesses must only demand the activities, controls, and work productsthat are appropriate for the team and product to be produced – to ensurethat it can accommodate changes easily and deliver a high qualitysoftware product.Chapter 4 - Test Questions1. Describe the phases of the prototyping model for software development?Answer (Section 4.1.3):Requirements are gathered by having the customer and developer meetand identify whatever objectives and requirements they can. Quick design follows, focusing on representation of the software that will be visible tothe customer. A prototype is constructed by the developer and evaluatedby the customer and used to refine the requirements. Iteration occurs and the prototype is tuned to satisfy the customer's needs.2. What are the primary advantages of the component-based process model forsoftware engineering?Answer (Section 4.2.1):Component-based process models promote software reuse andreusability and can result in: 70% reduction in development cycle times,84% reduction in project costs, and 70% increase in productivity.3. Why has the Personal Software Process not been widely adopted byindustry?Answer (Section 2.6.1):PSP is intellectually challenging and demands a level of commitment (e.g.lengthy and costly training required) that is not always possible to obtain.In addition the required level of measurement is culturally hard for manysoftware practitioners.Final Exam Questions4. Why are evolutionary models considered by many to be the best approach tosoftware development in a modern context?Answer (Section 4.1.3):Because time lines for the development of modern software are gettingshorter and shorter, customers are becoming more diverse (making theunderstanding of requirements even harder), and changes torequirements are becoming even more common (before delivery), weneed a way to provide incremental or evolutionary delivery. Theevolutionary process accommodates uncertainty better than most process models, allows the delivery of partial solutions in an orderly and plannedmanner, and most importantly, reflects what really happens when complex systems are built.Chapter 5 - Test Questions2. List the key issues stressed by an agile philosophy of software engineering.Answer (Section 5.7):The importance of self-organizing teamsCommunication and collaboration between team members and customers Recognition that change represents opportunityEmphasis on rapid delivery of software that satisfies the customer3. What are the tradeoffs proposes by the “Manifesto for Agile SoftwareDevelopment”?Answer (Section 5.1):Individuals and interactions valued over processes and toolsWorking software valued over comprehensive documentationCustomer collaboration valued over contract negotiationResponding to change valued over following a plan4. Describe the role of customers and end-users on an agile process team?Answer (Section 5.4):Customers and end-users participate as full collaborators on agile process teams. They are the source of information used to create use cases andprovided needed information on the business value of proposed softwarefeature and functionality. They also provide much needed feedback onoperational prototypes during incremental delivery of software increments.Final Exam Question1. Describe the three key assumptions regarding software projects that everyagile software process must address.Answer (Section 5.3):It is difficult to predict in advance which software requirements andcustomer priorities will change and which will not.For many types of software design and construction must be interleaved, it is difficult to predict how much design is needed before construction canbe used to prove the design.Analysis, design, construction, and testing are not always predictableprocesses and this makes planning difficult.Chapter 6 - Test Questions5. List the key attributes of an effective software teams.Answer (Section 6.3):Sense of purposeSense of involvementSense of trustSense of improvementDiversity of team member skill sets6. Describe the strengths and weaknesses of the random paradigm teamstructure?Answer (Section 6.4):The random paradigm depends on the initiative of individual teammembers. Good when innovation or technological breakthrough isneeded. These teams struggle when orderly performance is required.7. Describe the five values held by XP teams?Answer (Section 6.5):Communication – close informal verbal communication among teammembers and stakeholders and establishing meaning for metaphors aspart of continuous feedbackSimplicity – design for immediate needs nor future needsFeedback – derives from the implemented software, the customer, andother team membersCourage – the discipline to resist pressure to design for unspecified future requirementsRespect – among team members and stakeholders.Final Exam Question2. List environment characteristics that can be considered toxic to softwareteams.Answer (Section 6.3):Frenzied work atmosphereHigh frustration that causes friction among team membersFragmented or poorly coordinated software processUnclear definition of roles on the software teamContinuous and repeated exposure to failureDiffering and incompatible team member human traitsChapter 8 - Test Questions1. What are the six steps for requirements engineering?Answer (Section 8.1):InceptionElicitationElaborationNegotiationSpecificationRequirements validation2. Describe the job of the requirements engineer with respect to stakeholdercollaboration?Answer (Section 8.2.3):The requirements engineer needs to identify areas of stakeholdercommonality, conflict, and inconsistency on the desired needs or features. 3. What are the benefits of using analysis patterns during the analysis modelingprocess?Answer (Section 8.5.2):Patterns suggest solutions (a class, a function, or a behavior) that can be reused when modeling future applications. Analysis patterns can speed up the development of abstract analysis models by utilizing reusable models.Facilitate the transformation of the analysis model into a design model by suggesting design patterns and reliable solutions to common patterns.Final Exam Question1. What work products result from the requirements engineering process?.Answer (Section 8.1):The intent of requirements engineering is to provide stakeholders with awritten understanding of the problem, the work products produced include usage scenarios, function and feature lists, and requirements modelsChapter 9 - Test Questions1. Describe the purposes of domain analysis.Answer (Section 9.1.3):•Umbrella activity involving the Identification, analysis, and specification of common requirements from a specific application domain, typically forreuse in multiple projects•Object-oriented domain analysis involves the identification, analysis, and specification of reusable capabilities within a specific application domain in terms of common objects, classes, subassemblies, and frameworks2. Which UML (unified modeling language) diagrams are useful in scenario-based modeling?Answer (Section 9.2):•use-case diagrams•activitiy diagrams•swimlane diagrams3. What questions should be asked to help refine a preliminary use case?.Answer (Section 9.2.2):•Can an actor take some other action at this point?•Is it possible that the actor will encounter some error condition at this point?•Is it possible the actor will encounter some other behavior at this point? Final Exam Questions1. List the types of models that might be used in requirements modeling andexplain the role of each type of modelAnswer (Section 9.1):•Scenario-based (system from the user’s point of vie w)•Data (shows how data are transformed inside the system)•Class-oriented (defines objects, attributes, and relationships)•Flow-oriented (shows how data are transformed inside the system) •Behavioral (show the impact of events on the system states)Chapter 10 - Test Questions4. What types of nouns resulting from a grammatical parse should beconsidered as potential analysis classes?Answer (Section 10.1):•External entities (systems, devices, people)•Things (e.g. reports, displays, letters, signals)•Events occurring during system operation•Roles (e.g. manager, engineer, salesperson)•Organizational units (e.g. division, group, team)•Places•Structures (e.g. sensors, vehicles, computers)5. Describe the roles of the three sections of CRC (class responsibilitycollaborator) cards?Answer (Section 10.4):•Class name identifies the data object uniquely.•Responsibilities are the attributes and operations for the class.•Collaborators are those classes required to provide a class with information needed to complete a responsibility.6. List three types of classes that may be present in the analysis model.Answer (Section 10.4): Entity classes, Boundary classes, Controller classes Final Exam Questions2. List the characteristics that should be considered when considering potentialclasses for inclusion in an analysis modelAnswer (Section 10.1):•Contains information that should be retained•Provides needed services•Contains multiple attributes•Has common set of attributes that apply to all class instances•Has common set of operations that apply to all object instances•Represents external entity that produces or consumes informationChapter 11 - Test Questions7. What are the steps needed to build a behavioral model?Answer (Section 11.1)•Evaluate the use-cases to understand the interaction sequence within the system.•Identify events that drive the interaction sequence and how the events relate to specific objects.•Create an event trace for each use-case.•Build a state transition diagram for the system.•Review the object-behavior model to verify accuracy and consistency.8. How should analysis patterns be documented once they are discovered?Answer (Section 11.4)The pattern documentation contains a description of the problem, theprescribed solution, assumptions, constraints, motivations, driving forces, advantages, disadvantages, and references to know applications.9. Describe the contents of the WebApp content, functional, interaction, andconfiguration models.Answer (Section 11.5.3):•Content model - structural elements that represent WebApp content requirements (UML class diagrams)•Functional model - user observable behavior delivered to end-users and operations contained in analysis classes to implement class behaviors(UML activity diagrams)•Interaction model – indicates how users make use of the WebApp content and functionality (use-cases, UML sequence diagrams, state diagrams,user interface prototype)•Configuration model - may be a list of server-side and client-side attributes required for the WebApp (UML deployment diagrams)Final Exam Questions1. Under what circumstances should requirements modeling be utilized forWeb or mobile apps?Answer (Section 11.5)•Large or complex app to be built•Large number of stakeholders•Large number developers onapp team•Development team members have not worked together before•App success will have strong bearing on success of companyChapter 12 - Test Questions1. List three characteristics that can serve as a guide to evaluate design quality.Answer (Section 12.2.1):Design implements all explicit requirements from the analysis model, as well as accommodating implicit customer requirements.Design must be understandable to the people who generate the code toimplement design, those who test it, and those who support it.Design must provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective.2. Explain how effective modular design is achieved through functionalindependence of the individual modules?Answer (Section 12.3.5):Functional independence of modules is achieved by making modules single-minded (high cohesion) and preventing excessive interaction (low coupling) with other modules or system elements. Independent modules are easier to develop, maintain, and test, because the impact of side effects is reduced (as is the propagation of errors). This also makes it easier to perform parallelimplementation of modules.3. Describe the principle of information hiding as it applies to software design.Answer (Section 12.3.6):The principle of information hiding implies that modules only shareinformation with each other on a "need to know" basis to achieve somespecific software function. Hiding enforces the procedural constraints to both the module procedural detail and any data structures local to the module. Final Exam Question1. List the four design models required for a complete specification of a softwaredesign and the role of each.Answer (Section 12.4):Data design –high level model depicting user’s view of the data orinformation.Architecture design – shows relationships and collaborations amongspecific analysis model software and hardware elementsInterface design – interface depicts a set of operations that describe theexternally observable behavior of a class and provides access to itsoperationsComponent-level design – describes the internal detail of each softwarecomponentDeployment-level design – indicates how software functionality andsubsystems will be allocated in the physical computing environment that will support the softwareChapter 13 - Test Questions1. What are the elements that make up a software architectural style?Answer (Section 13.3):•Set of components that perform required system functions.•Set of connectors allowing communications among the components.•Constraints describing how the components maybe integrated to form a system.•Semantic models that enable the designer to understand the overall system properties by analyzing the known properties of its components.2. What is an archetype?Answer (Section 13.6.2):An archetype is a class or pattern that represents a core abstraction that is critical to the design of an architecture for the target system.3. Explain the key differences between thin client architectures and a rich clientarchitectures.Answer (Section 13.6.6):For mobile devices or web apps using thin client only the user interface layer is implemented on the device, A rich client typical allocates the user interface layer, business layer, and often the data layer too on the user’s device.Final Exam Question1. Describe the types of dependencies that can exist in an architectural design.Answer (Section 13.7.2):Sharing dependencies - represent the dependence relationships amongconsumers whose use the same source or producers who have the same consumers.Flow dependencies - represent dependence relationships between producers and consumers of resourcesConstrained dependencies - represent constraints on the relative flow ofcontrol among a set of activitiesChapter 14 - Test Questions1. How does the object-oriented view of component-level design differ from thetraditional view?Answer (Section 14.1.1 and 14.1.2):The object-oriented view focuses on the elaboration of design classes that come from both the problem and infrastructure domains. Classes areelaborated by specifying messaging details, identifying interfaces, defining attribute data structures, and describing process flow for operations. In the traditional view, three of components are refined: control modules, domain modules, and infrastructure modules. This requires representations to becreated for data structures, interfaces, and algorithms for each programmodule in enough detail to generate programming language source code.2. Describe the differences between the software engineering terms couplingand cohesion?Answer (Section 14.2.3 and 14.2.4):Cohesion implies that a component or class encapsulates only the attributes and operations closely related to one another and to the class itself. Coupling is a qualitative measure of the degree to which components are connected to one another.3. Describe the component-level design for WebApps.Answer (Section 14.4):Component-level design incorporates elements of both content design and functional design. Content design at the component level focuses on content objects and then manner in which they may be packaged for presentation to aWebApp end-user. A functional architecture that describes the key functional components in the WebApp and how these components interact with each other is also created.4. What is the intent of domain engineering in CBSE?Answer (Section 14.7.1):The intent of domain engineering is to identify, construct, catalog, anddisseminate a set of software components that have applicability to existing and future software products.Final Exam Question1. What are the steps used to complete the component-level design for asoftware development project?Answer (Chapter 14.3):•Identify all design classes that correspond to the problem domain.•Identify all design classes that correspond to the infrastructure domain.•Elaborate all design classes that are not acquired as reusable components.•Identify persistent data sources (databases and files) and identify the classes required to manage them.•Develop and elaborate behavioral representations for each class or component.•Elaborate deployment diagrams to provide additional implementation detail.•Factor every component-level diagram representation and consider alternatives.2. Describe what is accomplished during the component qualification,adaptation, and composition activities of component-based development.Answer (Section 14.7.2):•Component qualification is the task of examining candidate library components and ensuring that they perform the function required forthe new application.•During component adaptation any component conflicts that surface when a library component is added to the new application are dealtwith by wrapping the component (sometimes a new component mustbe engineered).•During component composition, the qualified, adapted, and newlyengineered components are used to populate the new applicationarchitecture.Chapter 15 - Test Questions1. List three principles that should be applied when building any user interface.Answer (Section 15.1):•Place user in control.•Reduce user's memory load.•Make the interface consistent.2. What framework activities are completed when following an evolutionary (orspiral) user interface development process?Answer (Section 15.2.2):•User, task, and environmental analysis•Interface design•Interface construction•Interface validation3. List four interface design issues present in the development of most userinterfaces.Answer (Section 15.4.3):•System response time•User help facilities•Error information handling•Menu and command labeling•Application accessibility•Internationalization4. What are the primary design objectives of a WebApp interface?Answer (Section 15.5):The WebApp interface should be design a WebApp interface so it answers three primary questions for the end-user:•Where am I?”•What can I do now?•Where have I been, where am I going?Final Exam Question1. What elements of a user interface design can be evaluated without building aworking computer prototype?Answer (Section 15.6):The length and complexity of the interface specification (provides insight into learning effort required by user).The number of user tasks specified and the number of user actions required to complete each (provide estimates of system efficiency). Number of tasks, actions, and states in the design model (imply the memory load imposed on the user).Interface style, help facilities, and error handling protocol provide a general indication of complexity of the interface and its acceptance by the users.Chapter 19 - Test Questions1. What are three dimensions of software quality?Answer (Section 19.2):•An effective software process establishes the infrastructure that supports any effort at building a high quality software product.• A useful product delivers the content, functions, and features that the end-user desires, but as important, it delivers these assets in a reliable, errorfree way.•By adding value for both the producer and user of a software product, high quality software provides benefits for the software organization and theend-user community.2. Describe the costs associated with software quality work?Answer (Section 19.3.2):•Prevention costs - quality planning, formal technical reviews, test equipment, training•Appraisal co sts - in-process and inter-process inspection, equipment calibration and maintenance, testing•Internal failure costs - rework, repair, failure mode analysis•External failure cos ts - complaint resolution, product return and replacement, help line support, warranty work3. What practices should software engineers follow to enhance the quality ofsoftware produced by their team?Answer (Section 19.4):•Software quality is the result of good project management and solid engineering practice•To build high quality software you must understand the problem to be solved and be capable of creating a quality design the conforms to theproblem requirements•Eliminating architectural flaws during design can improve qualityFinal Exam Question1. Discuss how poor management decisions can impact software quality?Answer (Section 19.3.6):•Estimation decisions – irrational delivery date estimates cause teams to take short-cuts that can lead to reduced product quality•Scheduling decisions – failing to pay attention to task dependencies when creating the project schedule may force the project team to test moduleswithout their subcomponents and quality may suffer•Risk-oriented decisions – reacting to each crisis as it arises rather than building in mechanisms to monitor risks and having establishedcontingency plans may result in products having reduced qualityChapter 20 - Test Questions1. What are the goals for any product review?Answer (Section 20.1):•Point out needed improvements in the product of a single person or team •Confirm those parts of a product in which improvement is either not desired or not needed•Achieve technical work of more uniform, or at least more predictable, quality than can be achieved without reviews, in order to make technicalwork more manageable2. What effect do software reviews have on software production costs?Answer (Section 20.1):•Industry studies suggest that design activities introduce 50-65% of all defects or errors during the software process•Review techniques have been shown to be up to 75% effective in uncovering design flaws which ultimately reduces the cost of subsequent activities in the software process3. What are the differences between a review summary report and a reviewissues list?Answer (Section 20.6.2):Review Summary Report•What was reviewed?•Who reviewed it?•What were the findings and conclusions?Review Issues List•Identifies problem areas within product•Serves as action list to guide the work product creator as corrections are made before it occurs or the rapid detection of a quality problem if one isintroduced.Final Exam Question1. What is a formal technical review and why is one conducted? Outline thesteps required to conduct a successful FTR?Answer (Section 20.6):The purpose of an FTR is to have a group of software engineers examine a discrete work product and determine whether on not the product is free of defects using the software specifications and standards as the review criteria.To perform a successful FTR, the steps described in Section 15.6.3 areconducted.Chapter 22 - Test Questions1. Why is regression testing an important part of any integration testingprocedure?Answer (Section 22.3.2):。
1什么是软件工程?基本原理有哪些?软件工程是指导计算机软件开发和维护的工程学科。
用分阶段的生命周期计划管理、坚持阶段评审、实行严格产品控制、采用现代设计技术、结果审查、开发小组人员少而精、并不断改进方法。
2成本_效益分析可用哪些指标进行度量?(写出公式)可用投资回收期、纯收入、投资回收率指标,通过P=F/(1+i)n计算求得。
3什么是数据流图?其中的基本符号各表示什么含义?画出定货系统基本数据流图。
用符号描绘信息在系统中流动的情况,源点、终点、处理、数据存储、数据流。
4非渐增式测试与渐增式测试有什么区别?两种都用于集成测试。
渐增式是把下一个要测试的摸块同已经测试好的模块结合起来进行测试,每次增加一个模块。
非渐增式先分别测每个模块,再把所有模块按设计要求放在一起结合成所要的程序。
5试从基本符号和设计方法分析HC图与JACKSON图异同点答:HC图是面向DFD,而JACKSON图是面向数据结构的。
符号省略。
6软件测试的目的是什么?测试的目的是为了发现错误.7结构化程序设计的思想是什么?答:自上而下,逐步求精8请解释极限编程和自适应软件开发,并说明其异同?答:极限编程和自适应软件开发都属于敏捷过程模型。
极限编程是应用最广泛的敏捷过程(2分)。
按照计划、设计、编码和测试四个框架活动组织。
极限编程建议一系列新颖和有力的技术,保证敏捷团队创建能力体现客户指定优先级特征和功能的频繁软件开发(2分)。
自适应软件开发强调人的合作和团队的组织,按思考、协作和学习的三个框架活动组织,其使用迭代过程。
该过程由自适应循环计划、相对严格的需求收集方法和一个迭代开发循环构成(2分)。
9需求工程的起始阶段,需求工程师的主要工作是?答:需求工程的起始阶段,工程师的主要工作为:1)建立基本的问题需求(2分)2)定义最重要的项目约束以及陈述主要的特征和功能(2分)3)与共利益的各方建立基本的谅解(2分)10请画出“在餐厅使用信用卡付费”这一活动的完整用例图?11分析说明结构化分析和面向对象分析的区别?答:分析建模的目标是创建各种表现形式,以描述软件信息、功能和行为的需求(2分)。
软件工程—简答题四、简答题1. 简述软件危机产生的原因。
答案:软件危机产生的原因有:(每点1分)(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发的管理困难。
由于软件规模大,结构复杂,又具有无形性,导致管理困难,进度操纵困难,质量操纵困难,可靠性无法保证。
(3)软件开发费用不断增加。
软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快。
(4)软件开发技术、开发工具落后,生产率提高缓慢。
(5)生产方式落后。
软件仍然使用个体手工方式开发。
2. 简述需求分析的概念及需求分析的基本任务。
答案:需求分析是指开发人员要准确懂得用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
(3分)需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统务必“做什么”的问题。
(2分)3. 简述数据流图的分类及每一类的特点。
答案:数据流图有两类:变换型数据流图与事务型数据流图。
(1分)变换型数据流图是由输入、处理与输出三部分构成,(1分)因此变化型数据流图是一个顺序结构。
(1分)事务型数据流图特征:事务处理中心将它的输入流分离成许多发散的数据流,形成许多加工路径,(1分)并根据输入的值选择其中一个路径来执行。
(1分)4. 简述建立对象模型的过程。
答案:建立对象模型的步骤如下:(每点1分)(1)确定类:标出来自问题域的有关对象类。
(2)准备数据字典:为所有建模实体准备一个数据字典,准确描述各对象类的精确含义,描述当前问题中的类的范围,包含对类的成员、用法方面的假设或者限制;(3)确定关联:确定二个或者多个类之间的相互依靠;(4)确定属性:只考虑与具体应用直接有关的属性(5)使用继承来细化类:使用继承来共享公共结构,以此来重新组织类__全国2010年1月1.简述软件工程面临的问题。
软件⼯程简答题三.名词解释1.软件⼯程是将系统的、规范的、可度量的⽅法(1分)应⽤于软件的开发、运⾏和维护的全过程及上述⽅法的研究。
(3分)4.软件维护是软件⽣存周期的最后⼀个阶段,所有活动都发⽣在软件交付并投⼊运⾏之后。
分)1计算机软件是与计算机系统操作有关的程序(1分)、规程、规则(1分)及任何与之有关的⽂档(1分)和数据(1分)。
2数据流图是以图形的⽅式描述数据在系统中流动和处理的过程。
只反映系统必须完成的逻辑功能,是⼀种功能模型。
3软件可维护性是指软件被理解、改正、调整和改进的难易程度(3分),是指导软件⼯程各个阶段⼯作的⼀条基本原则,也是软件⼯程追求的⽬标之⼀。
(1分)4软件测试:是对软件规格说明、软件设计和编码的最后复审(1分),⽬的是在软件产品交付之前尽可能发现软件中潜伏的错误。
(3分)1软件⽣命周期:软件产品从形成概念开始,经过开发(1分)、运⾏(使⽤)(1分)和维护(1分)直到退役(1分)的全过程称为软件⽣存周期,包括软件定义、开发、使⽤和维护三部分。
3. 协作图⽤于描述相互合作的对象间的交互关系(2分)和链接关系(2分)。
4. 软件重⽤是指在两次或多次不同的软件开发过程中(2分)重复使⽤相同或相似软件元素的过程。
(2分)2. 变换流:由输⼊﹑输出﹑变换(或称处理)三部分组成,是⼀顺序结构。
3.模块的耦合和内聚内聚:⼜称为块内联系,指模块内部各成分之间相互关联的程度,以⾼内聚为设计⽬标。
耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独⽴性越差,以低耦合为设计⽬标。
4.等价类划分:等价类的划分,是将输⼊数据按有效的或⽆效的划分成若⼲个等价类,测试每个等价类的代表值。
⽤少量有代表性的例⼦代替⼤量测试⽬的相同的例⼦,能有效地提⾼测试效率。
5. 预防性维护:为了提⾼软件的可维护性和可靠性⽽对软件进⾏的修改称为预防性维护。
2.事务流:它的某个加⼯,分离成许多发散的数据流,形成许多加⼯路径,并且根据输⼊值选择其中⼀个路径来执⾏。
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.什么是软件工程?简述软件工程的七条基本原理。
软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法来进行软件开发和维护的学科。
七条基本原理:用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚地审查;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性。
2.什么是软件生存周期模型?请至少列举四种主要的模型。
软件生存周期模型是软件开发全部过程、活动和任务的结构框架。
它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。
四种主要的模型:瀑布模型,演化模型,喷泉模型,螺旋模型、基于构件的开发模型3.为什么软件需要维护?简述软件维护的过程。
1)改正在特定使用条件下暴露出来的一些潜在程序错误或设计缺陷;2)因在软件使用过程中数据环境发生变化(如所要处理的数据发生变化)或处理环境发生变化(如硬件或软件操作系统等发生变化),需要修改软件,以适应这种变化;3)用户和数据处理人员在使用时常提出改进现有功能、增加新功能、以及改善总体性能的要求,为满足这些要求,需要修改软件。
软件维护的过程:首先建立维护的机构,申明提出维护申请报告的过程及评价的过程,为每一个维护申请规定标准的处理步骤,建立维护活动的记录保管,并规定复审的标准。
4.影响软件维护工作量的因素有哪些?1)系统大小。
系统越大,功能越复杂,理解掌握起来就越困难,需要的维护工作量越大。
2)程序设计语言。
使用功能强的程序设计语言可以控制程序的规模。
语言的功能越强,生成程序所需的指令数就越少;语言的功能越弱,实现同样功能所需的语句就越多,程序就越大,维护起来就越困难。
3)系统年龄。
老系统比新系统需要更多的维护工作量。
许多老系统在当初并未按照软件工程的要求进行开发,没有文档,或文档太少,或者在长期的维护中许多地方与程序不一致,维护起来困难较大。
4)数据库技术的应用。
使用数据库工具,可有效地管理和存储用户程序中的数据,可方便地修改、扩充报表。
1. “软件危机”是指( )A. 计算机病毒的浮现B. 利用计算机进行经济犯罪活动C. 软件开辟和维护中浮现的一系列问题D. 人们过分迷恋计算机系统2. DFD 中的每一个加工至少需要( )A. 一个输入流B. 一个输出流C. 一个输入或者输出流D. 一个输入流和一个输出流3. 为了提高模块的独立性,模块之间最好是( )A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合4. 下面关于 PDL 语言不正确的说法是( )A. PDL 是描述处理过程怎么做B. PDL 是只描述加工做什么C. PDL 也称为伪码D. PDL 的外层语法应符合普通程序设计语言常用的语法规则5. 详细设计与概要设计衔接的图形工具是( )A. DFD 图B. 程序图C. PAD 图D. SC 图6. 不适合作为数据处理与数据库应用的语言是( )A. SQLB. CobolC. 4GLD. Lisp7. 下列关于功能性注释不正确的说法是( )A. 功能性注释嵌在源程序中,用于说明程序段或者语句的功能以及数据的状态B. 注释用来说明程序段,需要在每一行都要加注释C. 可使用空行或者缩进,以便很容易区分注释和程序D. 修改程序也应修改注释8. 下列关于效率的说法不正确的是( )A. 效率是一个性能要求,其目标应该在需求分析时给出B. 提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法C. 效率主要指处理机时间和存储器容量两个方面D. 程序的效率与程序的简单性无关9. 测试的关键问题是( )A. 如何组织对软件的评审B. 如何验证程序的正确性C. 如何采用综合策略D. 如何选择测试用例10. 结构化维护与非结构化维护的主要区别在于( )A. 软件是否结构化B. 软件配置是否完整C. 程序的完整性D. 文档的完整性11. 软件维护艰难的主要原因是( )A. 费用低B. 人员少C. 开辟方法的缺陷D. 得不到用户支持12. 可维护性的特性中,相互矛盾的是( )A. 可理解性与可测试B. 效率与可修改性C. 可修改性和可理解性D. 可理解性与可读性13. 快速原型是利用原型辅助软件开辟的一种新思想,它是在研究( )的方法和技术中产生的。
软件工程简答题1. 什么是软件工程?软件工程是一门通过系统化、规范化和量化的方法,来开发和维护软件系统的学科。
它关注软件开发全过程中的需求分析、设计、编码、测试和维护等环节,以提高软件质量、降低开发成本和缩短开发周期。
2. 软件工程有哪些基本原则?软件工程遵循以下基本原则:- 按照客户需求导向:软件工程过程应始终以满足客户需求为目标,并持续与客户进行合作和沟通。
- 适应性和灵活性:软件工程方法应当具备适应不同项目需求和灵活变化的能力。
- 风险管理:对项目风险进行有效的识别、评估和管理,以减少项目失败的可能性。
- 团队合作:软件开发需要各个角色之间的密切合作和协同努力。
- 不断改进和学习:软件工程过程应不断反思和改进,学习新的技术和方法,以提高开发效率和质量。
3. 解释软件生命周期模型。
软件生命周期模型是指软件从开始开发到退役的全过程,包括需求分析、设计、编码、测试、发布和维护等阶段。
常见的软件生命周期模型有瀑布模型、迭代模型、螺旋模型等。
- 瀑布模型:按照线性顺序依次进行需求分析、设计、编码、测试和维护等阶段,每个阶段产生的文档和成果是下一个阶段的输入。
- 迭代模型:迭代模型强调快速迭代开发,将软件开发过程划分为多个迭代周期,每个迭代周期内包含需求分析、设计、编码、测试等阶段。
每个迭代周期都会产生可工作的部分软件。
- 螺旋模型:螺旋模型采用风险驱动的迭代方式,每个迭代周期都会评估和处理风险,根据评估结果确定下一步的开发方向。
4. 请解释软件需求工程的概念和目标。
软件需求工程是软件工程中的一个重要领域,旨在确保软件开发过程中对需求进行全面、一致和可验证的规格说明。
其目标包括:- 理解和明确用户和利益相关者的需求。
- 确定需求的优先级和约束条件。
- 分析和定义需求的功能和非功能特性。
- 确保需求的一致性和完整性。
- 验证和验证需求的正确性和满足性。
- 管理和追踪需求变更。
5. 什么是软件验证和确认?软件验证是指通过评审、检查、演练和测试等手段,确认软件是否符合规定的需求和规格要求。
软件工程试题及答案一、选择题1. 下列哪项不是软件工程的目标?A. 提高软件质量B. 减少开发成本C. 缩短开发周期D. 增加硬件依赖答案:D2. 软件生命周期模型是用来描述软件开发过程中的不同阶段和活动。
下列哪个不是常见的软件生命周期模型?A. 瀑布模型B. 原型模型C. 敏捷模型D. 瀑布-原型混合模型答案:D3. 如果一个软件开发项目处于需求分析阶段,以下哪项工作不应该进行?A. 进行用户需求调研B. 评估项目的风险C. 设计软件架构D. 编写需求规格说明书答案:C4. 软件测试的目的是什么?A. 发现软件中的缺陷B. 测试软件的性能C. 测试软件的安全性D. 评估软件的可用性答案:A5. 下列哪项不是软件维护的类型?A. 纠错性维护B. 改进性维护C. 适应性维护D. 构造性维护答案:D二、填空题1. 软件工程的核心活动是________________。
答案:软件开发2. 软件需求定义了软件要做什么,________________定义了如何构建软件。
答案:软件设计3. 软件开发中的一项常见风险是________________。
答案:进度延迟4. 软件测试可以分为________________、系统测试和验收测试。
答案:单元测试5. 软件维护的目标是________________软件的可靠性和可用性。
答案:提高三、简答题1. 请解释什么是软件需求工程?答:软件需求工程是软件工程中的一个关键过程,旨在识别、分析和定义系统或产品的用户需求。
它涉及与利益相关者合作,了解他们对软件的期望和需求,然后将这些需求转化为明确、一致和可验证的规格说明。
软件需求工程包括需求获取、需求分析、需求规格说明等活动。
2. 请解释什么是软件架构?答:软件架构是指软件系统的基本结构和组织方式,包括系统中的组件、模块、接口以及它们之间的关系。
软件架构定义了软件系统的整体框架,决定了软件的组织结构、性能、可扩展性等特性。
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. 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. 答:需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
1.什么是软件?什么叫软件软件工程?其目标是什么?软件定义(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文挡。
软件工程定义1:应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
定义2:在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。
软件工程的目标:a.降低开发和维护成本,提高软件质量,加快和控制开发进度,b.降低开发的风险(包括你提到的人员流动的风险),c.软件开发的实施使大型软件的开发成为可能2.什么是软件危机?它的表现是什么?文档:各种规格书、说明书、用户手册等等的总称。
软件:程序与文档。
软件危机:在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。
软件危机的表现:⑴对软件开发成本和进度的估计常常很不准确。
⑵用户易对“已完成的”软件系统产生不满。
⑶软件质量不可靠。
⑷软件常常是不可维护的。
⑸软件通常没有适当的文档资料。
⑹软件成本越来越高。
⑺软件开发生产率提高速度慢,跟不上发展。
3.可行性研究的目的是什么?可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。
若值得解,则推荐一个较好的方案,并制定一个初步的计划;若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱)。
4.数据流图的基本要求是什么?描绘“做什么”,而不考虑“怎样做”。
数据流图中描绘的是数据流,而不是控制流。
5.软件生存期分几个阶段?每个阶段的主要作用是什么?(1)问题定义关键:要解决的问题是什么?作用:提出关于问题性质、工程目标和规模的书面报告。
(2)可行性研究关键:问题是否有行得通的解决办法?作用:进行一次大大压缩和简化了的系统分析和设计的过程(抽象的),导出系统的高层逻辑模型(通常用数据流图表示),估计系统的成本和效益作为是否进行此项工程的重要依据。
/*****************************简答题********************************************/1.什么是软件工程?软件工程的目标是什么?答:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。
目标:1合理预算开发成本,付出较低的开发费用。
2实现预期的软件功能,达到较好的软件性能,满足用户的需求。
3 提高软件的可维护性,降低维护费用。
4 提高软件开发生产率,及时交付使用2.指出瀑布模型中下列任务的顺序:验收测试,项目计划,单元测试,需求评审,成本估计,概要设计,详细设计,系统测试,设计评审,编码,需求规格说明书。
答:项目计划,成本估计,需求规格说明书,需求评审,概要设计,详细设计,设计评审,编码,单元测试,系统测试,验收测试3.可行性研究报告的主要内容是什么?答:可行性研究主要包括以下几个部分:(1)概述(2)技术可行性(3)项目成熟程度(4)市场需求情况和风险分析(5)投资估算及资金筹措(6)经济与社会效益(7)综合实力和产业基础(8)项目实施进度计划(9)其它尚需要说明的必要的方面(10)结论4.什么是需求分析?需求分析阶段的基本任务是什么?答:所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
可以说,“需求分析”就是确定要计算机“做什么”。
任务:确定软件项目的目标和范围。
调查使用者的要求,分析软件必须做什么,编写需求规格说明书等它相关文档,并进行必要的需求审查。
除此之外,还包括需求变更控制,需求风险控制,需求版本控制等对需求的管理工作5.什么是结构化分析方法?该方法使用什么描述工具?答:结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。
结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止描述工具:1系统流程图 2 数据流程图3数据字典4 IPO图 5层次方框图6实体—关系图7状态—变迁图6.结构化分析方法通过哪些步骤来实现?答:1)确定系统的功能要求 2)确定系统的数据要求 3)确定系统的操作要求和界面要求 4) 确定系统的性能要求5)确定系统的运行要求 6)获得当前系统的物理模型 7)抽象出当前系统的逻辑模型 8)建立目标系统的逻辑模型。
9)修正开发计划 10)如果需要则开发系统原型7.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?答:数据流图:简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据流图的基本符号的意思: 1.矩形表示数据的外部实体;2.圆角的矩形表示变换数据的处理逻辑; 3.少右面的边矩形表示数据的存储; 4.箭头表示数据流。
8.什么是数据字典?其作用是什么?它有哪些条目?答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。
作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
包括的条目:数据流词条数据元素词条数据存储词条数据加工处理词条数据源点及终点词条9.什么是概要设计?有哪些基本任务?答:概要设计:根据用户的需求先确定软件系统的总体结构和总的设计原则基本的任务:设想供选择的方案。
推荐最佳方案。
功能分解,确定软件结构。
设计软件结构。
制定测试计划。
数据设计。
书写文档。
包括总体设计规格说明书。
用户手册。
测试计划。
设计审查和复审。
10.详细设计的基本任务是什么?有那几种描述方法?答:详细设计阶段的任务是要为编写程序代码设计“图纸”,由程序员按“图纸”用某种高级程序设计语言编写程序代码。
主要方法有设计程序流程图,表格设计符号以及过程设计语言。
11.什么是变换流?什么是事物流?答:变换型数据流可以划分为明显的三部分:逻辑输入,中心变换,逻辑输出。
事务流的特点是数据沿某个输入路径流动,该路径将外部信息转换成事务,其中发射出多条事务处理路径的中心处理被称为中心事务12.模块的内聚有哪几种?模块间的耦合有哪几种?答:内聚分为七种类型:巧合内聚:一个模块执行多个完全互不相关的动作,那么这个模块就有巧合内聚逻辑内聚:当一个模块执行一系列相关的动作时,称其有逻辑内聚。
时间性内聚:当一个模块内的多个任务是与时间有关时,这个模块具有时间性内聚。
过程内聚:模块执行的若干动作之间有顺序关系。
通信内聚:模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。
信息内聚:一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码,所有的动作都作用在相同的数据结构上,这样的模块叫做信息内聚。
功能性内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分耦合分为七类:内容耦合:如果一个模块直接参考另一个模块的内容,则这两个模块是内容耦合。
公共耦合:如果多个模块都访问同一个公共数据环境,则称它们是公共耦合。
外部耦合:如果两个模块都访问同一个全局简单变量而不是同一全局数据结构,而且,不是通过参数表传递该全局变量的信息,则这两个模块属于外部耦合。
控制耦合:如果模块A向模块B传递一个控制信息,则称这两个模块是控制耦合的。
数据结构耦合:当一个模块调用另一个模块时传递了整个数据结构,这两个模块之间具有数据结构耦合。
数据耦合:如果两个模块传递的是数据项,则这两个模块是数据耦合。
非直接耦合:如果两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现的,这就是非直接耦合。
1.举例说明类和对象的关系。
答:学生可作为一个类---学生类,每个学生就是这个学生类的一个实例,例如,学生张三就是学生类的一个实例。
2.面向对象分析的关键步骤有哪些?应建立哪几个模型?答:关键步骤有识别问题域的对象并分析它们相互之间的关系,建立简洁、精确、可理解的正确模型;应建立的模型有功能模型,对象模型,动态模型。
3.什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?答:(1)实体类保存要存入永久存储体的信息。
实体类通常在事件流或交互图中,是对用户最有意义的类。
边界类位于系统与外界的交界处,包括所有的窗体、报表、系统硬件接口、与其他系统的接口。
控制类负责协调其他类的工作。
每个用例中至少应该有一个控制类,它控制用况中的事件顺序。
(2)分为三种类型是因为它们各自的功能不同。
界面类——描述系统与角色之间的接口。
控制类——在分析模型内表示协调、顺序、事务处理以及控制其他对象的类。
实体类——为需要长久保存的信息进行建模的类。
4.UML中有哪几类个视图,它们的作用分别是什么?答:(1)用例视图(Use-Case view),用例视图用于描述系统的功能集。
它是从系统外部以用户角度,对系统做的抽象表示。
用例视图所描述的系统功能依靠于外部用户或另一个系统触发激活,为用户或另一个系统提供服务,实现与用户或另一个系统之间的交互。
用例视图中可以包含若干个用例,用例表示系统能够提供的功能,用例视图是其他视图的核心和基础。
其他视图的构造依赖于用例视图中所描述的内容,因为系统的最终目标是实现用例视图中描述的功能,同时附带一些非功能性的特性,因此用例视图影响着所有其他的视图。
(2)逻辑视图(Logical view),如果说用例视图描述系统“做什么”,那么逻辑视图就是描述“怎么做”。
系统的静态结构描述类、对象和它们之间的关系,反映的是系统静态特征或结构组成。
(3)组件视图(Component view),组件视图用来描述系统实现的结构和行为特征,反映系统各组成元素之间的关系。
组件视图由组件图实现,主要供开发者和管理者使用。
(4)并发视图(Concurrency View),并发视图用来描述系统的动态和行为特征。
并发视图将任务划分为进程或线程形式,通过任务划分引入并发机制,可以高效地使用资源、并行执行和处理异步事件。
除了划分系统为并发执行的进程或线程外,并发视图还必须处理通信和同步问题。
(5)配置视图(Deployment View)配置视图体现了系统的实现环境,反映系统的物理架构。
配置视图还包括一个映射,该映射显示在物理架构中组件是怎样分配的。
5. 顺序图在分析阶段的作用?答:顺序图描述了一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序6. 活动图在分析阶段的作用?活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。
活动图特别适合描述工作流和并行处理过程。
具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;说明一个业务活动中角色、工作流、组织和对象是如何工作的。
7.比较结构化设计和面向对象设计区别?答:结构化设计:系统被划分成多个模块,这些模块被组织成一个树型结构。
根就是主模块,叶子是最低级的功能模块。
这棵树也表示调用结构:每个模块都调用自己的直接下级模块,并被自己的直接上级模块调用。
顶层模块负责收集应用程序最重要的那些执行策略,底层模块实现处理细节。
在这个体系结构中越靠上层位置,概念的抽象层次就越高。
但是,由于上层模块需要调用下层模块,所以这些上层模块就依赖于下层模块的处理细节。
也就是说,当实现细节发生变化时,抽象也会受到影响;如果想复用某一个抽象的话,就必须把它依赖的细节都一起拖过去。
面向对象设计:上层创建的抽象不依赖于任何细节,而细节则高度依赖于上层的抽象。
这种依赖关系的变化正是结构化设计与面向对象设计的根本区别。
8.什么是框架,它与“设计”有什么关系?答:框架是一组可用于不同应用的类的集合。
框架中的类通常是一些抽象类并且相互有联系,可以通过继承的方式使用这些类,当面向对象设计进行底层设计时,对每个类进行详细设计,设计类的属性和操作,优化类之间的关系,就可以设计成框架来对类的设计进行构架和优化。
9.系统的物理构架中应该包括哪些信息?答:用UML的配置图描述系统的物理构架,然后将需求分析阶段捕获的系统功能分配到这些物理节点上。
包括的信息为节点的拓扑结构、硬件设备配置、通信路径、各个节点上运行的系统软件配置、应用软件配置。
1.为建立良好的编程风格应遵循什么原则?答:1)节简化①不使用不必要的变量和函数②避免变量重名,变量重名可导致很难被发现的错误。