软件工程的100道经典问答题

合集下载

软件工程问答题答案(仅供参考)(精品)

软件工程问答题答案(仅供参考)(精品)

软件工程问答题答案(仅供参考)(精品)软件工程问答题答案(仅供参考)(精品)软件工程是指通过计算机科学与工程学的原理、方法和工具来开发和维护软件的一门学科。

在软件工程领域,存在着许多关键问题和常见的问答题。

本文将为你提供一些常见软件工程问答题的答案,希望能够帮助你更好地理解和应用软件工程的知识。

1. 什么是软件需求工程?软件需求工程是软件工程中的一个重要领域,它关注的是对用户需求进行分析、规范和管理,以便于软件系统的开发和交付。

软件需求工程包括可行性研究、需求获取、需求分析、需求规格说明和需求验证等过程。

2. 请解释软件配置管理是什么?软件配置管理是指通过管理软件系统中的各种配置项和配置变更,以确保软件系统的正确、完整和可追踪。

它包括配置项识别、变更控制、版本控制、配置库管理等活动,旨在提高软件开发和维护过程的可控性和可靠性。

3. 请介绍软件测试的目的和重要性。

软件测试的目的是发现软件系统中的错误、缺陷和潜在问题,以便在软件交付之前进行修复和改进。

软件测试的重要性在于可以提高软件系统的质量和可靠性,降低软件使用过程中的风险和损失。

4. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。

它描述了软件系统中各个组件之间的关系和交互,以及软件系统的总体设计原则和理念。

软件架构可以帮助团队成员理解和沟通软件系统的设计和实现。

5. 请解释敏捷开发方法。

敏捷开发方法是一种以迭代、循环和适应性为核心的软件开发方法。

它强调团队合作、快速反馈和不断改进,在不断变化的需求环境下能够更加灵活地开发和交付高质量的软件系统。

6. 请介绍软件项目管理的过程和技术。

软件项目管理包括项目计划、项目组织、项目监控和项目交付等过程。

它涉及到时间管理、成本管理、风险管理、质量管理等技术和工具,以确保软件项目能够按时、按量和按质完成。

7. 请解释软件工程中的代码重构。

代码重构是指在不改变软件系统外部行为的前提下,通过对代码的重新组织和调整来改进软件系统的内部质量和可理解性。

软件工程经典面试题

软件工程经典面试题

软件工程经典面试题1. 什么是软件工程?软件工程(Software Engineering)是应用计算机科学与工程原理、方法和技术,以系统化、规范化、可重复化、可维护性高的方式开发和维护软件产品的学科。

2. 软件开发生命周期有哪些阶段?软件开发生命周期一般包括需求分析、设计、编码、测试和维护五个阶段。

需求分析阶段:对需求进行详细的分析、整理和记录,包括功能需求和非功能需求等。

设计阶段:根据需求分析的结果,确定软件的架构和设计方案,设计模块和函数等。

编码阶段:按照设计阶段确定的方案,进行编码开发,实现软件功能。

测试阶段:对软件进行系统测试、集成测试、单元测试等,检测和发现软件存在的问题。

维护阶段:修复软件中出现的问题,对软件进行更新和维护。

3. 什么是软件设计模式?软件设计模式是对软件设计中常见问题的解决方案的描述,是开发人员在使用特定的模式应对软件设计时遇到的问题的经验总结。

常见的软件设计模式有单例模式、工厂模式、观察者模式等,它们能够简化开发,提高代码的可读性、复用性和可维护性。

4. 什么是敏捷开发?敏捷开发(Agile Development)是一种基于迭代和自我组织的软件开发过程方法。

它重视团队合作、用户需求和反馈,并通过迭代、交付和反思的方式实现快速产品开发和可持续交付的目标。

敏捷开发注重不断优化过程,并在不断的用户反馈中进行快速迭代和交付,以满足用户需求,提高软件质量和用户体验。

5. 什么是持续集成?持续集成(Continuous Integration,CI)是一种将代码频繁地、自动地集成到共享代码仓库,并进行自动化构建、测试和分发的软件开发方法。

通过持续集成能够减少软件开发周期、提高代码质量和可维护性。

在持续集成中,开发人员频繁地将自己的代码集成到共享开发分支中,任何时候都可以进行代码构建、测试、分发等,从而在短时间内发现和定位软件问题,提高软件质量。

软件工程的100道问答题

软件工程的100道问答题

软件工程的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. 下列哪个不是软件工程的基本原则?A. 持续集成B. 形式化表示C. 高内聚低耦合D. 可重用性答案:B. 形式化表示2. 软件的可靠性是指什么?A. 软件的正确性B. 软件的可维护性C. 软件的效率D. 软件的稳定性答案:D. 软件的稳定性3. 下列哪个不是软件测试的目标?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 评估软件的质量D. 在短时间内完成软件开发答案:D. 在短时间内完成软件开发二、判断题1. 软件工程是一门工程学科,其目标是通过系统化的、规范化的方法对软件进行开发、运行和维护。

答案:正确2. “高内聚低耦合”是软件工程中的重要原则,指的是模块之间的独立性和模块之间的依赖程度。

答案:正确3. 软件需求分析是软件开发过程中的最后一步,最终确定软件系统的功能和性能。

答案:错误三、简答题1. 什么是软件工程?答:软件工程是一门工程学科,通过系统化的、规范化的方法对软件进行开发、运行和维护。

它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试和维护等,并注重管理和团队合作,以提高软件质量、降低开发成本和加快开发进度。

2. 软件测试的目的是什么?答:软件测试的目的是发现软件中的错误和缺陷,验证软件是否满足用户需求,并评估软件的质量。

通过测试,可以提高软件的可靠性和稳定性,减少软件在使用过程中的风险。

3. 请简述软件开发生命周期中的各个阶段。

答:软件开发生命周期包括需求分析、设计、编码、测试和维护等阶段。

- 需求分析阶段:确定软件系统的功能、性能和约束条件,明确用户需求。

- 设计阶段:根据需求分析结果设计软件系统的结构和模块,确定软件的整体框架。

- 编码阶段:根据设计阶段的文档编写程序代码,实现软件系统的各个功能。

- 测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试,以发现错误和缺陷。

- 维护阶段:根据用户反馈和需求变化,对软件进行修复和更新,确保其持续稳定运行。

软件工程问答题

软件工程问答题

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、典型的详细设计工具有流程图、盒图、、类程序设计语言。

问题反馈【教师释疑】正确答案:【PAD图】2、UML是一种语言。

问题反馈【教师释疑】正确答案:【可视化】3、类是一组具有属性、操作、关系和语义的对象的描述。

问题反馈【教师释疑】正确答案:【相同】4、对象是类的一个。

问题反馈【教师释疑】正确答案:【实例】5、用况图是一种表达系统模型的图形化工具。

问题反馈【教师释疑】正确答案:【功能】6、UML中的顺序图是一种交互图,即由一组对象以及按组织的对象之间的关系组成。

问题反馈【教师释疑】正确答案:【时序】7、模块的作用域是指受该模块内一个所影响的所有模块的集合。

问题反馈【教师释疑】正确答案:【判定】8、模块的控制域是指这个模块本身以及所有直接或间接它的模块的集合。

问题反馈【教师释疑】正确答案:【从属于】9、在数据流图中引入数据源和数据潭这两个术语的目的是为了表示系统的,可以使用它们和相关数据流来定义系统的。

问题反馈【教师释疑】正确答案:【环境|边界】10、模块结构图是系统的一个高层蓝图,允许设计人员在较高的层次上进行抽象思维。

模块结构图可用和两种形式来表示。

问题反馈【教师释疑】正确答案:【层次图|HIPO图】11、在设计模块结构图时要基于原则来设计模块。

问题反馈【教师释疑】正确答案:【高内聚低耦合】12、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“尽力使模块的在其控制域之内”。

问题反馈【教师释疑】正确答案:【作用域】13、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“力求深度、宽度、扇出和扇入”。

问题反馈【教师释疑】正确答案:【适中】14、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“改进软件结构,提高模块的”。

软件工程 简答题复习题(带答案)

软件工程 简答题复习题(带答案)

软件工程简答题复习题(带答案)软件工程简答题复习题(带答案)1. 什么是软件工程?软件工程是一种系统化、规范化、可量化的方法,用于开发、维护和测试软件系统的过程。

它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。

2. 软件开发生命周期有哪些阶段?常见的软件开发生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。

3. 什么是需求分析?需求分析是软件开发过程中的第一步,它涉及与客户进行沟通和理解客户需求的过程。

通过需求分析,开发团队可以明确软件系统的功能和性能要求,并将这些要求转化为详细的规格说明。

4. 需求分析的主要目标是什么?需求分析的主要目标是确保开发团队和客户对软件系统的需求达成共识。

它需要明确软件系统的功能需求、性能需求和约束条件,以便后续的设计和开发工作能够按照这些需求进行。

5. 什么是软件设计?软件设计是在需求分析的基础上,根据系统需求和约束条件,将系统划分为模块,确定模块之间的接口和关系,设计出满足系统需求的软件结构和算法的过程。

6. 软件设计的原则有哪些?常见的软件设计原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)和迪米特法则(LoD)等。

7. 什么是软件测试?软件测试是为了评估系统的质量和功能是否满足需求的过程。

它通过设计和执行测试用例,检查系统的输出是否符合预期,并发现潜在的错误和缺陷。

8. 软件测试的分类有哪些?软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层次。

单元测试用于测试软件的最小功能单元,集成测试用于测试不同模块之间的交互,系统测试则测试整个系统的功能和性能,验收测试是由客户进行的测试,以确认系统是否达到了合同中规定的要求。

9. 什么是软件维护?软件维护是在软件交付给客户后,为了保证其正常运行和适应环境变化而进行的一系列活动。

维护包括错误修复、性能优化、功能扩展等。

软件工程的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. “软件危机”是指( )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、什么是结构分析方法?该方法使用什么描述工具 ?结构化分析:简称 SA,面向数据流进行数据分析的方法。

采用自顶向下逐层分解的分析策略。

顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。

中间层则是从抽象到具体的过渡。

使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。

4、什么是软件概要设计?该阶段的基本任务是什么 ?把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。

称为概要设计或结构设计。

基本任务:⑴设计软件系统结构⑵进行数据结构及数据库的设计⑶编写概要设计的文档⑷评审5、软件维护有哪些内容?( 1 )校正性维护。

在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。

为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。

( 2 )适应性维护。

为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。

( 3 ) 完善性维护。

为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。

( 4 )预防性维护。

为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。

6、软件测试要经过哪些步骤 ?这些测试与软件开发各阶段之间有什么关系 ?软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。

软件工程100个选择题(附参考答案)

软件工程100个选择题(附参考答案)

一、选择填空题( 100 X 1=100分)1、下列关于结构图的叙述中正确的描述,按照编号的顺序是 A 和 B 。

(1)结构图反映的是程序中数据流的情况。

(2)结构图是精确表达程序结构的图形表示法,因此结构图有时也可作为程序流程图。

(3)一个模块的多个下属模块在结构图中所处的左右位置是无关紧要的。

(4)在结构图中上下级椹和下属模块之间的调用线,使用斜、水平线或垂直线具有系统的含义。

2、系统定义明确后,应该对系统的可行性进行研究。

可行性研究应该包括 A 。

(1)软件环境可行性、经济可行性、社会可行性。

(2)经济可行性、技术可行性、社会可行性。

(3)经济可行性、社会科学可行性、系统可行性。

(4)经济可行性、实用性、社会可行性。

3、软件工程学的最终目的是:以较少的投资来获得易维护、可靠、高效率和易理解的软件产品。

软件工程技术应该遵循 A 、 B 确定性及抽象性和信息隐藏。

软件工程的三要素: C 、 D 和过程(按序号填写)。

A、B (1)一致性(2)合理性(3)经济性(4)进化性(5)重用性(6)分解C、D (1)方法(2)技术(3)环境(4)原则(5)工具4、软件的研制工作经过需求分析阶段,进入 A 以后,就开始着手解决“怎么做”的问题。

常用的系统设计方法有: B 、 C 、 D 、和 E (按序号填写)。

A:(1)程序设计(2)设计阶段(3)维护阶段(4)定义阶段B~E:(1)PARANS 方法(2)原型法(3)自顶向下法(4)回溯法(5)瀑布法(6)结构化设计方法(SD)(7)JACKSON 方法(8)逐步求精法(9)LCP(WARNIER)法5、软件工程中描述生存周期的瀑布模型一般包括计划、 A 、软件设计、 B 、测试、维护等几个阶段,其中设计阶段又依次分为 C 、和 D 两步(按序号填写)。

A~D:(1)需求分析(2)需求调查(3)可行性分析(4)问题定义(5)编码(6)代码设计(7)概要设计(8)详细设计(9)数据结构设计6、较全面的评价软件质量,应该从 A 方面衡量。

软件工程-问答题

软件工程-问答题

1.什么是软件?什么叫软件软件工程?其目标是什么?软件定义(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文挡。

软件工程定义1:应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。

定义2:在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。

软件工程的目标:a.降低开发和维护成本,提高软件质量,加快和控制开发进度,b.降低开发的风险(包括你提到的人员流动的风险),c.软件开发的实施使大型软件的开发成为可能2.什么是软件危机?它的表现是什么?文档:各种规格书、说明书、用户手册等等的总称。

软件:程序与文档。

软件危机:在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。

软件危机的表现:⑴对软件开发成本和进度的估计常常很不准确。

⑵用户易对“已完成的”软件系统产生不满。

⑶软件质量不可靠。

⑷软件常常是不可维护的。

⑸软件通常没有适当的文档资料。

⑹软件成本越来越高。

⑺软件开发生产率提高速度慢,跟不上发展。

3.可行性研究的目的是什么?可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。

若值得解,则推荐一个较好的方案,并制定一个初步的计划;若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱)。

4.数据流图的基本要求是什么?描绘“做什么”,而不考虑“怎样做”。

数据流图中描绘的是数据流,而不是控制流。

5.软件生存期分几个阶段?每个阶段的主要作用是什么?(1)问题定义关键:要解决的问题是什么?作用:提出关于问题性质、工程目标和规模的书面报告。

(2)可行性研究关键:问题是否有行得通的解决办法?作用:进行一次大大压缩和简化了的系统分析和设计的过程(抽象的),导出系统的高层逻辑模型(通常用数据流图表示),估计系统的成本和效益作为是否进行此项工程的重要依据。

软件工程试题及答案(较详细)

软件工程试题及答案(较详细)

软件工程试题及答案(较详细)软件工程试题及答案 (较详细)一、简答题1. 什么是软件工程?软件工程是一门综合应用计算机科学与工程学、管理学等知识的学科,它致力于开发和维护高质量的软件系统。

它包括需求分析、设计、编码、测试和维护等各个阶段,以确保软件项目能够按时交付、高效运行,并满足用户需求。

2. 请解释什么是软件生命周期?软件生命周期是指软件从构思、开发、使用到废弃的整个过程。

它包括需求分析、设计、编码、测试、部署和维护等多个阶段。

软件生命周期管理的目标是确保软件产品按时、按质量要求交付,并提供后续的支持与维护。

3. 请解释什么是需求工程?需求工程是软件工程中的一个重要阶段,它主要涉及对用户需求的调研、分析、规划和文档化。

通过需求工程,开发人员能够更好地理解用户需求,并将其转化为具体的软件需求规格说明书,为后续的设计和开发提供基础。

4. 什么是软件设计模式?软件设计模式是一套在软件设计过程中重复出现的解决方案。

它们被广泛接受,并被认为是开发高质量、可维护和可扩展软件的有效方法。

常见的软件设计模式包括单例模式、工厂模式、观察者模式等。

二、分析题1. 请说明面向对象和面向过程的编程范式的区别。

面向对象编程(OOP)和面向过程编程(POP)是两种不同的编程范式。

面向过程编程更侧重于任务的步骤和流程,它将问题分解为多个步骤,通过一系列函数或过程的调用来完成任务。

面向过程编程更加注重解决问题的步骤和执行过程。

面向对象编程更注重数据和对象的定义和封装,它将问题看作是一组对象的交互。

面向对象编程通过定义类、创建对象以及对象之间的协作来解决问题。

2. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。

它定义了软件系统中各个组件的职责、交互方式和部署方式。

常见的软件架构模式包括分层架构、客户端-服务器架构、微服务架构等。

3. 解释软件测试中的黑盒测试和白盒测试。

黑盒测试是一种测试方法,它基于对软件系统的功能需求进行测试,而不考虑内部的实现细节。

(完整word版)软件工程问答题

(完整word版)软件工程问答题

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. 答:需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。

软件工程试题及答案

软件工程试题及答案

软件工程试题及答案一、选择题(每题5分,共25分)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. 模块度答案:1. D2. D3. C4. C5. A二、填空题(每题5分,共25分)1. 软件工程的三要素是:________、________、________。

2. 在面向对象编程中,类和对象的关系是:________和________。

3. 软件开发过程中,需求分析的主要任务是:________。

4. 软件测试的目的是:________。

5. 软件维护包括以下四个方面:________、________、________、________。

答案:1. 方法、工具、过程2. 类、对象3. 确定软件系统的功能、性能、接口等需求4. 发现并修复软件中的错误5. 更正性维护、适应性维护、完善性维护、预防性维护三、简答题(每题10分,共30分)1. 简述软件工程的五大过程。

答案:软件工程的五大过程包括:(1)需求分析:确定软件系统的功能、性能、接口等需求。

(2)设计:根据需求分析结果,设计软件的体系结构、模块划分、数据结构等。

(3)编码:将设计转化为计算机程序。

(4)测试:检查软件的正确性、可靠性、稳定性等。

(5)维护:对软件进行更新、优化、修复等。

2. 简述面向对象编程的基本特点。

答案:面向对象编程的基本特点包括:(1)封装:将数据和处理数据的方法封装在一起,隐藏内部细节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程的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、测试的具体任务是什么?为什么说调试是软件开发过程中最艰巨的任务?
软件工程的100道经典问答题(下)
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、什么是软件生产率数据?有哪些主要因素影响这些数据?为什么要重视这些数据?这些数据对软件开发有什么意义。

相关文档
最新文档