Software Engineering Question Bank
计算机科学:十大领域的介绍与解析

计算机科学:十大领域的介绍与解析计算机科学是研究计算机系统及其使用的科学领域,涵盖了众多的子领域。
在这篇文章中,我们将介绍并解析计算机科学的十大主要领域。
1. 人工智能(Artificial Intelligence,简称AI):人工智能是计算机科学的一个分支,通过研究和开发智能软件和机器来模仿和模拟人类智能。
人工智能领域涉及到机器学习、自然语言处理、机器视觉和专家系统等技术,应用广泛,包括语音识别、图像识别、自动驾驶等。
2. 数据科学(Data Science):数据科学是研究如何从大数据集中提取有用信息的学科。
数据科学家使用数据分析、机器学习和统计学等手段,探索和发现数据背后的模式和趋势,并为决策提供支持。
数据科学在商业、医疗、金融等领域有广泛应用。
3. 网络与信息安全(Network and Information Security):网络与信息安全是确保计算机系统和数据免受未经授权访问、破坏和盗取的一系列技术和策略。
领域包括密码学、防火墙、网络入侵检测等,以确保数据的保密性、完整性和可用性。
4. 软件工程(Software Engineering):软件工程是关于开发、维护和管理软件系统的学科。
软件工程师使用系统化的方法,包括需求分析、设计、编码和测试,以确保软件的质量、可靠性和可维护性。
5. 数据库(Database):数据库是存储和组织大量数据的软件系统。
数据库管理系统负责管理和处理数据,提供高效的数据存储和检索机制,以满足用户的需求。
数据库领域包括关系数据库、分布式数据库和大数据处理等。
6. 计算机图形学(Computer Graphics):计算机图形学是研究如何通过计算机生成和处理图像的学科。
它包括三维建模、渲染、动画和图像处理等技术。
计算机图形学广泛应用于电影、电子游戏、虚拟现实等领域。
7. 计算机网络(Computer Networking):计算机网络是连接计算机和设备的物理和逻辑结构。
软件工程 软件工程概述

计划
评价
运行速成原型的工作模型是一个循 环的模型。
1.快速分析 快速确定软件系统 的基本要求,确定原型所要体现的 特征(界面,总体结构,功能,性 能)
2.构造原型 考虑主要特征,快 速构造一个可运行的系统。有三类 原型:用户界面原型,功能原型, 性能原型。
3.运行和评价原型
螺旋模型将开发过程 分为几个螺旋周期,每 个螺旋周期可分为4个工 作步骤:
开发可通过使用现成的可复用构件组装
1、第一代软件工完提程成高,效—而率无和传需质统从量的头,软开降件始低构成工造本程,的以目此的达。到称
为构件工程。
2、第二代软件工程 — 对象工程
3、第三代软件工程 — 过程工程
4、第四代软件工程 — 构件工程
软件工程是一门新兴的边缘学科,涉及的学科多, 研究的范围广,研究的主要内容有以下几方面:
软件工程的发展已经历了四个重要阶段:
1.第一代软件工程 — 传统的软件工程 2.第二代软件工程 — 对象工程 3.第三代软件工程 — 过程工程 4.第四代软件工程 — 构件工程
软件工程的发展已经历了四个重要阶段:
1.第一代软件工程 — 传统的软件工程
60年代末到70年代为了
2.第二代软件工程 — 克对象服工“程软 件 危 机 ”
结构化设计方法 SD法(Structured Design) 结构化分析方法 SA法(Structured Analysis)
SA,SD,SP 法相互衔接,形成了一整套开发方 法。
原型化方法及其工作模型
什么是原型化方法(Prototyping Method)
原型——是软件的一个早期可运行的版本,它 反映了最终系统的部分重要特性。
本课程学习的主要内容
西南大学及迪肯大学软件工程课程英文试题

Question 1: What is the software process and why is it important? List out the four main software process models, and describe the drawbacks of RAD Model? Discuss the primary differences between incremental, iterative and agile models.Answer:1)What is the software process and why the process model is important-A software process (also known as software methodology) is a set of related activities that leads to the production of the software. These activities may involve the development of the software from the scratch, or, modifying an existing system.Any software process must include the following four activities:1.Software specification (or requirements engineering): Define the main functionalities of thesoftware and the constrains around them.2.S oftware design and implementation: The software is to be designed and programmed.3.Software verification and validation: The software must conform to its specification and meetsthe customer needs.4.Software evolution (software maintenance): The software is being modified to meet customerand market requirements changes.In practice, they include sub-activities such as requirements validation, architectural design, unit testing, …etc.There are also supporting activities such as configuration and change management, quality assurance, project management, user experience.Along with other activities aim to improve the above activities by introducing new techniques, tools, following the best practice, process standardization (so the diversity of software processes is reduced), etc.When we talk about a process, we usually talk about the activities in it. However, a process also includes the process description, which includes:1.Products: The outcomes of the activity. For example, the outcome of architectural designmaybe a model for the software architecture.2.Roles: The responsibilities of the people involved in the process. For example, the projectmanager, programmer, etc.3.Pre and post conditions: The conditions that must be true before and after an activity. Forexample, the pre condition of the architectural design is the requirements have been approvedby the customer, while the post condition is the diagrams describing the architectural have been reviewed.Software process is complex, it relies on making decisions. There’s no ideal process and most organizations have developed their own software process.For example, an organization works on critical systems has a very structured process, while with business systems, with rapidly changing requirements, a less formal, flexible process is likely to be more effective.2)Four main process model: Waterfall model, incremental model, iterative model and agilemodel3)Drawbacks of RAD Model are :•Require sufficient number of Human Resources to create enough number of teams. •Developers and Customers are not committed, system result in failure.•Not Properly Modularized building component may Problematic.•Not applicable when there is more possibility for Technical Risk.4)The primary differences between incremental, iterative and agile models:Each increment in the incremental approach builds a complete feature of the software, while in iterative, it builds small portions of all the features.An agile approach combines the incremental and iterative approach by building a small portion of each feature, one by one, and then both gradually adding features and increasing their completeness.============================================================================Question 2: What software life-cycle model would you use if there is significant technical risk and the customer's requirements are not well-known in advance? Justify your answer in a short essay.Question 3: Consider an automated library circulation system.o Every book has a bar code and every borrower has a card bearing a bar code.o When a borrower wishes to check out a book, the librarian scans the bar code on the book and on the borrower's card, and then enters C at the computer terminal.o When a book is returned, it is again scanned and the librarian enters R .o Librarians can add books ( + ) to the library collection or remove them ( - ).o Borrowers can go to a terminal and determine:▪ all the books in the library by a particular author(the borrower types A= followed by the author's name)▪ all the books with a specific title(the borrower types T= followed by the title)▪ all the books in a particular subject area(the borrower types S= followed by the subject area)o If a borrower wants a book that is currently checked out, the librarian can place a hold on the book so that, when it is returned, it will be held for the borrower who requested it (the librarian types H= followed by the number of the book)Questions1) Draw a dataflow diagram for the system, showing as much detail as you can without making assumptions about implementation.2) Draw a state transition diagram for the system.The dataflow diagram for the entire system is shown immediately below. The Process Command process is shown using a hierarchical expansion in the second diagram.NOTE about the diagram:▪ The diagram uses separate states for reading commands and bar codes to show the sequence in which the bar codes and commands are expected.。
计算机辅助软件工程

计算机辅助软件工程在当今数字化的时代,计算机技术的飞速发展给各个领域带来了深刻的变革,软件工程也不例外。
计算机辅助软件工程(ComputerAided Software Engineering,简称 CASE)作为一种重要的技术手段,正逐渐成为软件工程领域中不可或缺的一部分。
那么,什么是计算机辅助软件工程呢?简单来说,它是指借助计算机的强大功能来辅助软件的开发、管理和维护过程。
这包括从需求分析、设计、编码、测试到维护的整个软件生命周期。
在需求分析阶段,CASE 工具可以帮助开发团队更好地理解和梳理用户的需求。
通过图形化的方式展示需求之间的关系,使得需求更加清晰直观。
比如,使用用例图可以清晰地描述系统与外部参与者之间的交互,帮助团队确定系统的功能范围。
设计阶段是软件构建的关键环节。
CASE 能够提供各种设计工具,如类图、时序图等,帮助开发人员进行系统架构和模块设计。
这些工具不仅能够提高设计的准确性和规范性,还能促进团队成员之间的沟通与协作。
编码阶段,虽然编写代码本身主要依赖开发人员的技能,但 CASE 工具也能发挥作用。
比如,代码生成工具可以根据设计模型自动生成部分代码框架,减少重复性工作,提高开发效率。
同时,代码检查工具能够检测代码中的错误和不规范之处,提高代码质量。
测试是保证软件质量的重要手段。
CASE 提供了测试管理工具,用于规划测试用例、执行测试、记录测试结果和跟踪缺陷。
自动化测试工具还能够自动执行重复的测试任务,节省时间和人力成本。
在软件维护阶段,CASE 工具可以帮助维护人员更好地理解软件的结构和逻辑,快速定位和解决问题。
版本控制工具能够有效地管理软件的不同版本,确保修改的可追溯性和稳定性。
与传统的软件开发方法相比,计算机辅助软件工程具有诸多显著的优势。
首先,它提高了软件开发的效率。
自动化的工具和流程减少了繁琐的手工操作,使得开发人员能够将更多的精力集中在核心业务逻辑的实现上。
其次,提高了软件质量。
软件工程专业英语考查(1)

1.1.WHAT IS SOFTWARE ENGINEERING?5The latter example indicates that errors in a software system may have serious financial consequences for the organization using it.One example of such afinancial loss is the large US airline company that lost$50M because of an error in their seat reservation system.The system erroneously reported that cheap seats were sold out,while in fact there were plenty available.The problem was detected only after quarterly results lagged considerably behind those of both their own previous periods and those of their competitors.Errors in automated systems may even have fatal effects.One computer science weekly magazine contained the following message in April1983:The court in D¨usseldorf has discharged a woman(54),who was on trialfor murdering her daughter.An erroneous message from a computerizedsystem made the insurance company inform her that she was seriouslyill.She was said to suffer from an incurable form of syphilis.Moreover,she was said to have infected both her children.In panic,she strangledher15year old daughter and tried to kill her13year old son and herself.The boy escaped,and with some help he enlisted prevented the womanfrom dying of an overdose.The judge blamed the computer error andconsidered the woman not responsible for her actions.This all marks the enormous importance of thefield of software engineering. Better methods and techniques for software development may result in largefinancial savings,in more effective methods of software development,in systems that betterfit user needs,in more reliable software systems,and thus in a more reliable environment in which those systems function.Quality and productivity are two central themes in thefield of software engineering.On the positive side,it is imperative to point to the enormous progress that has been made since the1960s.Software is ubiquitous and scores of trustworthy systems have been built.These range from small spreadsheet applications to typesetting systems,banking systems,Web browsers and the Space Shuttle software.The techniques and methods discussed in this book have contributed their mite to the success of these and many other software development projects.1.1What is Software Engineering?In various texts on this topic,one encounters a definition of the term software engineering.An early definition was given at thefirst NATO conference(Naur and Randell,1968):Software engineering is the establishment and use of sound engineeringprinciples in order to obtain economically software that is reliable andworks efficiently on real machines.The definition given in the IEEE Standard Glossary of Software Engineering Terminol-ogy(IEEE610,1990)is as follows:6INTRODUCTION Software engineering is the application of a systematic,disciplined,quantifiable approach to the development,operation,and maintenanceof software;that is,the application of engineering to software.These and other definitions of the term software engineering use rather different words.However,the essential characteristics of thefield are always,explicitly or implicitly,present:Software engineering concerns the development of large programs.(DeRemer and Kron,1976)make a distinction between programming-in-the-large and programming-in-the-small.The borderline between large and small obviously is not sharp:a program of100lines is small,a program of50000lines of code certainly is not.Programming-in-the-small generally refers to programs written by one person in a relatively short period of time.Programming-in-the-large,then,refers to multi-person jobs that span,say,more than half a year.For example:–The NASA Space Shuttle software contains40M lines of object code(this is30times as much as the software for the Saturn V project from the1960s)(Boehm,1981);–The IBM OS360operating system took5000man years of developmenteffort(Brooks,1995).Traditional programming techniques and tools are primarily aimed at support-ing programming-in-the-small.This not only holds for programming languages, but also for the tools(likeflowcharts)and methods(like structured program-ming).These cannot be directly transferred to the development of large programs.In fact,the term program--in the sense of a self-contained piece of software that can be invoked by a user or some other system component--is not adequate here.Present-day software development projects result in systems containing a large number of(interrelated)programs--or components.The central theme is mastering complexity.In general,the problems are such that they cannot be surveyed in their entirety.One is forced to split the problem into parts such that each individual part can be grasped,while the communication between the parts remains simple.The total complexity does not decrease in this way,but it does become manageable.In a stereo system there are components such as an amplifier,a receiver,and a tuner,and communication via a thin wire.In software,we strive for a similar separation of concerns.In a program for library automation,components such as user interaction,search processes and data storage could for instance be distinguished,with clearly given facilities for data exchange between those components.Note that the complexity of many a piece of software is not1.1.WHAT IS SOFTWARE ENGINEERING?7so much caused by the intrinsic complexity of the problem(as in the case of compiler optimization algorithms or numerical algorithms to solve partial differential equations),but rather by the vast number of details that must be dealt with.Software evolves.Most software models a part of reality,such as processing requests in a library or tracking money transfers in a bank.This reality evolves.If software is not to become obsolete fairly quickly,it has to evolve with the reality that is being modeled.This means that costs are incurred after delivery of the software system and that we have to bear this evolution in mind during development.The efficiency with which software is developed is of crucial importance.Total cost and development time of software projects is high.This also holds for the maintenance of software.The quest for new applications surpasses the workforce resource.The gap between supply and demand is growing.Time-to-market demands ask for quick delivery.Important themes within thefield of software engineering concern better and more efficient methods and tools for the development and maintenance of software,especially methods and tools enabling the use and reuse of components.Regular cooperation between people is an integral part of programming-in-the-large.Since the problems are large,many people have to work concurrently at solving those problems.Increasingly often,teams at different geographic locations work together in software development.There must be clear arrangements for the distribution of work,methods of communication,responsibilities,and so on.Arrangements alone are not sufficient,though;one also has to stick to those arrangements.In order to enforce them,standards or procedures may be employed.Those procedures and standards can often be supported by tools.Discipline is one of the keys to the successful completion of a software development project.The software has to support its users effectively.Software is developed in order to support users at work.The functionality offered shouldfit users’ers that are not satisfied with the system will try to circumvent it or,at best,voice new requirements immediately.It is not sufficient to build the system in the right way,we also have to build the right system.Effective user support means that we must carefully study users at work, in order to determine the proper functional requirements,and we must address usability and other quality aspects as well,such as reliability,responsiveness, and user-friendliness.It also means that software development entails more than delivering er manuals and training material may have to be written,and attention must be given to developing the environment in which the new system is going to be installed.For example,a new automated library system will affect working procedures within the library.8INTRODUCTION Software engineering is afield in which members of one culture create artifacts on behalf of members of another culture.This aspect is closely linked to the previous two items.Software engineers are expert in one or more areas such as programming in Java,software architecture, testing,or the Unified Modeling Language.They are generally not experts in library management,avionics,or banking.Yet they have to develop systems for such domains.The thin spread of application domain knowledge is a common source of problems in software development projects.Not only do software engineers lack factual knowledge of the domain for which they develop software,they lack knowledge of its culture as well.For example,a software developer may discover the‘official’set of work practices of a certain user community from interviews,written policies,and the like;these work practices are then built into the software.A crucial question with respect to system acceptance and success,however,is whether that community actually follows those work practices.For an outside observer,this question is much more difficult to answer.Software engineering is a balancing act.In most realistic cases,it is illusive to assume that the collection of requirements voiced at the start of the project is the only factor that counts.In fact,the term requirement is a misnomer.It suggests something immutable,while in fact most requirements are negotiable.There are numerous business,technical and political constraints that may influence a software development project.For example,one may decide to use database technology X rather than Y, simply because of available expertise with that technology.In extreme cases, characteristics of available components may determine functionality offered, rather than the other way around.The above list shows that software engineering has many facets.Software engineering certainly is not the same as programming,although programming is an important ingredient of software engineering.Mathematical aspects play a role since we are concerned with the correctness of software.Sound engineering practices are needed to get useful products.Psychological and sociological aspects play a role in the communication between human and machine,organization and machine,and between humans.Finally,the development process needs to be controlled,which is a management issue.The term‘software engineering’hints at possible resemblances between the construction of programs and the construction of houses or bridges.These kinds of resemblances do exist.In both cases we work from a set of desired functions,using scientific and engineering techniques in a creative way.Techniques that have been applied successfully in the construction of physical artifacts are also helpful when applied to the construction of software systems:development of the product in a number of phases,a careful planning of these phases,continuous audit of the whole process,construction from a clear and complete design,etc.1.1.WHAT IS SOFTWARE ENGINEERING?9Even in a mature engineering discipline,say bridge design,accidents do happen. Bridges collapse once in a while.Most problems in bridge design occur when designers extrapolate beyond their models and expertise.A famous example is the Tacoma Narrows Bridge failure in1940.The designers of that bridge extrapolated beyond their experience to create moreflexible stiffening girders for suspension bridges.They did not think about aerodynamics and the response of the bridge to wind.As a result, that bridge collapsed shortly after it wasfinished.This type of extrapolation seems to be the rule rather than the exception in software development.We regularly embark on software development projects that go far beyond our expertise.There are additional reasons for considering the construction of software as something quite different from the construction of physical products.The cost of constructing software is incurred during development and not during production. Copying software is almost free.Software is logical in nature rather than physical. Physical products wear out in time and therefore have to be maintained.Software does not wear out.The need to maintain software is caused by errors detected late or by changing requirements of the user.Software reliability is determined by the manifestation of errors already present,not by physical factors such as wear and tear. We may even argue that software wears out because it is being maintained.Viewing software engineering as a branch of engineering is problematic for another reason as well.The engineering metaphor hints at disciplined work,proper planning,good management,and the like.It suggests we deal with clearly defined needs,that can be fulfilled if we follow all the right steps.Many software development projects though involve the translation of some real world phenomenon into digital form.The knowledge embedded in this real life phenomenon is tacit,undefined, uncodified,and may have developed over a long period of time.The assumption that we are dealing with a well-defined problem simply does not hold.Rather,the design process is open ended,and the solution emerges as we go along.This dichotomy is reflected in views of thefield put in the forefront over time(Eischen,2002).In the early days,thefield was seen as a craft.As a countermovement,the term software engineering was coined,and many factory concepts got introduced.In the late1990’s, the pendulum swung back again and the craft aspect got emphasized anew,in the agile movement(see chapter3).Both engineering-like and craft-like aspects have their place,and we will give a balanced treatment of both.Two characteristics that make software development projects extra difficult to manage are visibility and continuity.It is much more difficult to see progress in software construction than it is to notice progress in building a bridge.One often hears the phrase that a program‘is almostfinished’.One equally often underestimates the time needed tofinish up the last bits and pieces.This‘90%complete’syndrome is very pervasive in software development.Not knowing how to measure real progress,we often use a surrogate measure,the rate of expenditure of resources.For example,a project that has a budget of100person-days is perceived as being50%complete after50person-days are expended.Strictly speaking,we then confuse speed with progress.Because of the imprecise measurement10INTRODUCTION of progress and the customary underestimation of total effort,problems accumulate as time elapses.Physical systems are often continuous in the sense that small changes in the specification lead to small changes in the product.This is not true with software. Small changes in the specification of software may lead to considerable changes in the software itself.In a similar way,small errors in software may have considerable effects.The Mariner space rocket to Venus for example got lost because of a typing error in a FORTRAN program.In1998,the Mars Climate Orbiter got lost,because one development team used English units such as inches and feet,while another team used metric units.We may likewise draw a comparison between software engineering and computer puter science emerged as a separate discipline in the1960s.It split from mathematics and has been heavily influenced by mathematics.Topics studied in computer science,such as algorithm complexity,formal languages,and the semantics of programming languages,have a strong mathematicalflavor.PhD theses in computer science invariably contain theorems with accompanying proofs.As thefield of software engineering emerged from computer science,it had a similar inclination to focus on clean aspects of software development that can be formalized,in both teaching and research.We used to assume that requirements can be fully stated before the project started,concentrated on systems built from scratch, and ignored the reality of trading off quality aspects against the available budget.Not to mention the trenches of software maintenance.Software engineering and computer science do have a considerable overlap.The practice of software engineering however also has to deal with such matters as the management of huge development projects,human factors(regarding both the development team and the prospective users of the system)and cost estimation and control.Software engineers must engineer software.Software engineering has many things in common both with otherfields of engineering and with computer science.It also has a face of its own in many ways.1.2Phases in the Development of SoftwareWhen building a house,the builder does not start with piling up bricks.Rather,the requirements and possibilities of the client are analyzedfirst,taking into account such factors as family structure,hobbies,finances and the like.The architect takes these factors into consideration when designing a house.Only after the design has been agreed upon is the actual construction started.It is expedient to act in the same way when constructing software.First,the problem to be solved is analyzed and the requirements are described in a very precise way.Then a design is made based on these requirements.Finally,the construction process,i.e.the actual programming of the solution,is started.There are a distinguishable number of phases in the development of software.The phases as discussed in this book are depicted infigure1.2.。
软件工程试卷及答案,英文版

2011~2012学年第二学期期末考试《软件工程(双语)》复习范围注意事项:每个学生必须写上本人的学号、任课教师姓名、姓名、班级,另外所有的答案必须全部写在答卷纸上请不要写的试卷上,试题及答卷一同交上。
Part 1 Select the most appropriate choice to answer the following questions or to complete following statements. (1*15 =15 )1.. Which one of following statement about Client-server architecture is not correct? ca)Set of stand-alone servers which provide specific services such as printing, datamanagement, etc.b)Set of clients which call on these services.c)Most of the data is stored in the most important server.d)Network which allows clients to access servers..2. . Several techniques of Requirements discovery are covered in this book. Which one is not the case? aa)Model-driven engineeringb)Scenariosc)Interviewingd)EthnographyPart 2 Mark the right statement √, the wrong statement×(1*15=15)1.In the software architecture design,using large-grain components improvesperformance and maintainability.2.According Lehman and Belady's ‘laws’ , A program that is used in a real-worldenvironment must necessarily change, or else become progressively less useful inthat environment.Part 3 Fill the blankets: (1*15=15)1.the attributes of good software are are Maintainability , Dependability,Efficiency , Acceptability2.General issues that affect most software are heterogeneity , Business and social change ,Security and trust .3.The reasons of software change are 1 New requirements emerge when the software isused ,The business environment changes ,Errors must be repaired ,Newcomputers and equipment is added to the system;The performance or reliability of the system may have to be improved.4.Generic process models are The waterfall model , Incremental development ,Reuse-oriented software engineering.5. A structured set of activities required to develop a software system, which areSpecification , Design and implementation, Validation _, Evolution.Part 4 Answer the following questions in brief. (4*5=20 )1.What are the program testing goals?Program testing goalsTo demonstrate to the developer and the customer that the software meets its requirements.For custom software, this means that there should be at least one test for everyrequirement in the requirements document.For generic software products, it means that there should be tests for all of the systemfeatures,plus combinations of these features, that will be incorporated in the product release.To discover situations in which the behavior of the software is incorrect, undesirable or does not conform to its specification.Defect testing is concerned with rooting out undesirable system behavior such as system crashes, unwanted interactions with other systems, incorrect computations and data corruption.2.What is architectural patterns?Architectural patterns are a means of reusing knowledge about generic system architectures. They describe the architecture,explain when it may be used and describe its advantages and disadvantages.3.What is the difference between software engineering and computer science?Computer science is concerned with theory and fundamentals; software engineering isconcerned with the practicalities of developing and delivering useful software4.What differences has the web made to software engineering?The web has led to the availability of software services and the possibility of developing highly distributed service-based systems.Web-based systems development has led to important advances in programming languages and software reuse.5.What is Software architecture design?Software architecture designThe design process for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural designThe output of this design process is a description of the software architectureThe architecture of a packing robot control system6.What is Path testing?The objective of path testing is to ensure that the set of test cases is such that each path through the program is executed at least onceBinary search flow graphPart 5 Solve the following problems(30)1.(5) Based on your experience with a bank A TM, draw an activity diagram that modelsthe data processing involved when a customer withdraws cash from the machine.2.(5) Develop a sequence diagram showing the interactions involved in a application.3.(5) Design the application architecture using the MVC pattern.4.(5)Design a set of test data to accomplish the path testing about the following program(Figure 1).5.(10) Based on the statechart which models a application, describe the whole process indetail.。
天津理工大学-软件工程期末考试考点
大学啊不错啊,好好学习,不要耽误了青春,但是是这个专业坑爹啊,,找好自己的方向,不要被这个专业误导了啊,,理工的学妹,学弟们,你说呢,,哈哈哈哈,嘿嘿联系fruitonline.sinaapp./填空10个,选择10个,名词解释5个,简答题2个,画图题2个第一章一、FAQs about software engineering软件工程中常见的问题1、software:Computer programs and associated documentation软件是计算机程序和所有使程序正确运行所需要的相关文档和配置信息Software products软件产品分为:Generic通用、Bespoke (custom)定制2、Software engineering is an engineering discipline that is concerned with all aspects of software production.软件工程是一门工程学科,涉及软件生产的各个方面Software engineers should adopt a systematic and organised approach 软件工程人员运用的是系统的、有组织的工作方法。
3、difference between software engineering and computer science:系统工程和计算机科学的区别:Software engineering is an engineering discipline that is concerned with all aspects of software production.计算机科学侧重于理论和基础,而软件工程侧重于软件开发和交付的实际活动。
4、the difference between software engineering and system engineering:软件工程和系统工程的区别:System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process系统工程侧重基于计算机系统开发的所有方面,包括硬件、软件和处理工程。
2022软件水平考试真题英语汇总
2022软件水平考试真题英语汇总2022 Software Proficiency Exam English Exam CompilationIf you are preparing for the 2022 Software Proficiency Exam, it's essential to practice with real exam questions to familiarize yourself with the format and difficulty level. In this document, we have compiled a series of English exam questions that you may encounter in the upcoming exam. These questions cover a range of topics related to software development, programming languages, and industry trends. By practicing with these questions, you can assess your English proficiency in the context of software engineering and identify areas for improvement.1. What are the key differences between object-oriented programming and procedural programming? Provide examples to illustrate your answer.2. Explain the concept of version control and why it is important in software development. Describe the benefits of using version control systems such as Git in a team setting.3. Discuss the importance of writing clean, maintainable code in software development. How can principles such as DRY (Don't Repeat Yourself) and SOLID help improve code quality?4. Describe the role of agile methodologies in software development. How do practices such as Scrum and Kanban facilitate collaboration and adaptability in a project?5. What is the significance of test-driven development (TDD) in software engineering? Explain the process of writing tests before implementing code and how it contributes to software quality.6. Discuss the advantages and disadvantages of using open-source software in a development project. What factors should be considered when choosing between open-source and proprietary solutions?7. Describe the key principles of DevOps and how they promote efficiency and collaboration between development and operations teams. Provide examples of tools and practices used in a DevOps environment.8. Explain the concept of continuous integration and continuous deployment (CI/CD) in software development. How do these practices automate the testing and deployment processes to ensure faster delivery cycles?9. Discuss the impact of artificial intelligence and machine learning on software development. How are these technologiesbeing used to enhance applications and improve user experiences?10. Provide recommendations for improving cybersecurity in software projects. What measures can developers take to prevent common security vulnerabilities and protect sensitive data?By practicing these English exam questions, you can enhance your understanding of software development concepts and terminology while improving your language skills. Good luck with your preparation for the 2022 Software Proficiency Exam!。
软件工程复习题总样本
软件工程复习题一.选择题1. Which of the following is an advantage of implementing applications via the Web?a. Security c. Reliabilityb. Accessibility d. Throughput2.Coupling is a qualitative indication of the degree to which a moduleA) can be written more compactly.B) focuses on just one thing.C) is able to complete its function in a timely manner.D) is connected to other modules and the outside world.正确答案: D3.Which of these are characteristics of a good design?A) exhibits strong coupling between its modulesB) implements all requirements in the analysis modelC) includes test cases for all componentsD) provides a complete picture of the softwareE) both b and d正确答案: E4.Which of the following are areas of concern in the design model?A) architectureB) dataC) interfacesD) project scopeE) a, b and c正确答案: E5.Polymorphism reduces the effort required to extend an object system byA) coupling objects together more tightly.B) enabling a number of different operations to share the same name.C) making objects more dependent on one another.D) removing the barriers imposed by encapsulation正确答案: B6.Which of the following models can be used to represent the architectural design of a piece of software.A) Dynamic modelsB) Functional modelsC) Structural modelsD) All of the above正确答案: D7.Cohesion is a qualitative indication of the degree to which a moduleA) can be written more compactly.B) focuses on just one thing.C) is able to complete its function in a timely manner.D) is connected to other modules and the outside world.正确答案: B8. Which of the items listed below is not one of the software engineeringlayers?a) Process b) Manufacturing c) Methods d)Tools9. Evolutionary software process modelsa) Are iterative in natureb) Can easily accommodate product requirements changesc) Do not generally produce throwaway systemsd) All of the above10. The importance of software design can be summarized in a single word:(A) accuracy (B) complexity (C) efficiency (D) quality11. Systems ____ is the process of describing, organizing, and structuring the components of a system at both the architectural level and a detailed level with a view toward constructing the proposed system.a. design c. implementationb. analysis d. maintenance12. List the four design models required for a complete specification ofa design in traditional software engineering method(1) Subsystem design (2) Data design (3) Task design(4) Architecture design (5) Interface design (6) Component-level design(A) 1234 (B) 2345 (C) 1256 (D) 245613. Design patterns can be used by applying in object-oriented systems.(A). inheritance(B). encapsulation(C). complexity(D). polymorphism14 。
软件工程选择题-副本讲义
Chapter 1 - Introduction to Software EngineeringMultiple Choices1. Which question no longer concerns the modern software engineer? (a)a) Why does computer hardware cost so much?b) Why does software take a long time to finish?c) Why does it cost so much to develop a piece of software?d) Why can't software errors be removed from products prior to delivery?2. Today the increased power of the personal computer has brought about an abandonment of the practice of team development of software.(b)a) True b) False3. Software is a product and can be manufactured using the same technologies used for other engineering artifacts.(b)a) True b) False4. Software deteriorates(变坏) rather than wears(磨损)out because (c)a) Software suffers from exposure to hostile environmentsb) Defects are more likely to arise after software has been used oftenc) Multiple change requests introduce errors in component interactions(交互)d) Software spare parts become harder to order5. Most software continues to be custom(定制)built because (d)a) Component reuse is common in the software world.b) Reusable components are too expensive to use.c) Software is easier to build without using someone else's components.d) Off-the-shelf (现成)software components are unavailable in many application domains.6. The nature of software applications can be characterized by their information (d)a) complexity b) content c ) determinacy(确定性)d) both b and c7. Modern software applications are so complex that it is hard to develop mutually exclusive (独有的)category names.(a)a) Tru e b) False8. The so called "new economy" that gripped commerce and finance during the 1990s died and no longer influences decisions made by businesses and software engineers.(b)a) True b) False9. The functionality of most computer systems does not need to be enhanced the lifetime of the system.(b)a) True b) False10. Change cannot be easily accommodated in most software systems, unless the system was designed with change in mind.(a)a) True b) False11. Most software development projects are initiated to try to meet some business need.(a)a) True b) False12. In general software only succeeds if its behavior is consistent with(与…一致)the objectives of its designers.(b)a) True b) FalseChapter 2 – A Generic View of ProcessMultiple Choices1. Which of the items listed below is not one of the software engineering layers?(b)a) Process b) Manufacturing c) Methods d)Tools2. Software engineering umbrella activities are only applied during the initial phases of software development projects.(b)a) True b) False3. Which of these are the 5 generic software engineering framework activities?(a)a) communication, (交流)planning(计划), modeling,(建模)construction(构造), deployment(部署)b) communication, risk management, measurement, production, reviewingc) analysis, designing, programming, debugging, maintenanced) analysis, planning, designing, programming, testing4. Process models(过程模型)are described as agile because they(b)a) eliminate the need for cumbersome documentationb) emphasize maneuverability 可操作性and adaptability可适应性c) do not waste development time on planning activitiesd) make extensive use of prototype creation5. Which of these terms are level names in the Capability Maturity Model?(e)(软件能力成熟度模型)a) Performed b) Repeated c) Reused d) Optimizede) both a and d6. Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.(a)a) True b) False7. Which of these are standards for assessing software processes?(e)a) SEI b) SPICE c) ISO 19002 d) ISO 9001e) both b and d8. The best software process model is one that has been created by the people who will actually be doing the work.(a)a) True b) False9. Which of these is not a characteristic of Personal Software Process?(b)a) Emphasizes personal measurement of work productb) Practitioner requires careful supervision by the project managerc) Individual practitioner is responsible for estimating and schedulingd) Practitioner is empowered to control quality of software work products10. Which of these are objectives of Team Software Process?(e)a) Accelerate software process improvementb) Allow better time management by highly trained professionalsc) Build self-directed (自主的)software teamsd) Show managers how to reduce costs and sustain qualitye) both b and c11. Process technology tools allow software organizations to compress 压缩schedules by skipping unimportant activities.(b)a) True b) False12. It is generally accepted that one cannot have weak software processes and create high quality end products.(a)a) True b) FalseChapter 3 – Process ModelsMultiple Choices1. The linear sequential model of software development is(a)a) A reasonable approach when requirements are well defined.b) A good approach when a working program is required quickly.c) The best approach to use for projects with large development teams.d) An old fashioned model that cannot be used in a modern context.2. The linear sequential model of software development is also known as the(e)a) Classical life cycle model (经典生命周期模型)b) Fountain modelc) Spiral modeld) Waterfall model (瀑布模型)e) both a and d3. The incremental model of software development is(b)a) A reasonable approach when requirements are well defined.b) A good approach when a working core produc(核心产品)t is required quickly.c) The best approach to use for projects with large development teams.d) A revolutionary model that is not used for commercial products.4. The rapid application development model is(c)a) Another name for component-based development.b) A useful approach when a customer cannot define requirements clearly.c) A high speed adaptation of the linear sequential model.d) All of the above.5. Evolutionary software process models(d) (演化过程模型)a) Are iterative(迭代)in natureb) Can easily accommodate product requirements changesc) Do not generally produce throwaway systemsd) All of the above6. The prototyping model (原型模型)of software development is (b)a) A reasonable approach when requirements are well defined.b) A useful approach when a customer cannot define requirements clearly.c) The best approach to use for projects with large development teams.d) A risky model that rarely produces a meaningful product.7. The spiral model(螺旋模型)of software development(c)a) Ends with the delivery of the software productb) Is more chaotic than the incremental modelc) Includes project risks evaluation(风险评估)during each iterationd) All of the above8. The concurrent development model(并行开发模型)is(b)a) Another name for the rapid application development model.b) Often used for the development of client/server applications.c) Only used for development of parallel or distributed systems.d) Used whenever a large number of change requests are anticipated.9. The component-based development model is(c)a) Only appropriate for computer hardware design.b) Not able to support the development of reusable components.c) Works best when object technologies are available for support.d) Not cost effective by known quantifiable software metrics.10. The formal methods model of software development makes use of mathematical methods to(d)a) Define the specification for computer-based systemsb) Develop defect free computer-based systemsc) Verify the correctness of computer-based systemsd) All of the above11 Which of these is not one of the phase names defined by the Unified Process model for software development?(d)a) Inception phaseb) Elaboration phasec) Construction phased) Validation(确认)phase12 In the Unified Process model requirements are determined iteratively and may span 跨度more than one phase of the process.(a)a) True b) FalseChapter 7 – Requirements Engineering TestMultiple Choices1. Requirements engineering is a generic process that does not vary from one software project to another.(A)a) Tru e b) False2. During project inception (起始)the intent of the of the tasks are to determine(E)a) basic problem understandingb) nature of the solution neededc) people who want a solutiond) none of the bbovee) a, b and c3. Three things that make requirements elicitation需求诱导difficult are problems of(e)a) budgetingb) scopec) understandingd) volatilitye) b, c and d4.It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.(a)a) True b) False5. The result of the requirements engineering elaboration task is an analysis model that defines which of the following problem domain(s)? (d)信息功能行为a) informationb) functionalc) behaviorald) all of the above6. The system specification 系统规格说明书describes the (A)a) Function, performance and constraints of a computer-based systemb) implementation of each allocated systemc) element software architectured) time required for system simulation7. The best way to conduct a requirements validation review is to (d)a) examine the system model for errorsb) have the customer look over the requirementsc) send them to the design team and see if they have any concernsd) use a checklist(清单)of questions to examine each requirement8. The use of traceability tables (追踪表)helps to(c)a) debug programs following the detection of run-time errorsb) determine the performance of algorithm implementationsc) identify, control, and track requirements changesd) none of the above9. The nature of collaboration is such that all system requirements are defined by consensus of a committee of customers and developers. (B)a) True b) False10. The job of the requirements engineer is to categorize all stakeholder information in a way that allows decision makers to choose an internally consistent set of requirements.(a)a) True b) False11. A stakeholder is anyone who will purchase 购买the completed software system underdevelopment.(b)a) True b) False12. Which of the following is not one of the context-free questions that would be used during project inception起始?(b)a) What will be the economic benefit from a good solution?b) Who is against this project?c) Who will pay for the work?d) Who will use the solution?13. Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.(a)a) True b) False14. In collaborative 协作的requirements gathering, the facilitator(c)a) cannot be a member of the software teamb) cannot be a customerc) controls and facilitates the processd) must be an outsider15. Which of the following is not one of the requirement classifications used in Quality Function Deployment (QFD)(质量功能部署)?(C)a) excitingb) expectedc) mandatoryd) normal16. The work products produced during requirement elicitation 需求获取will vary depending on the(B)a) size of the budgetb) size of the product being builtc) software process being usedd) stakeholders needs17. Use-case actors are always people, never system devices.(B)a) True b) False18. Which of following is not a UML diagram used creating a system analysis model?(C)a) activity diagramb) class diagramc) dataflow diagramd) state diagram19. Analysis patterns facilitate(促进)the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.(B)a) True b) False20. In win-win negotiation, the customer's needs are met even though the developer's need may not be.(B)a) True b) False21. In requirements validation the requirements model is reviewed评估to ensure its technical feasibility技术可行性.(B)a) True b) FalseChapter 8 – Building The Analysis Model TestMultiple Choices1. Which of the following is not an objective for building an analysis model?(C)a) fine set of software requirements that can be validatedb) describe customer requirementsc) develop an abbreviated简短的solution for the problemd) establish basis for software design2.Object-oriented domain analysis is concerned with the identification and specification of reusable classes within an application domain.(A)a) True b) False3. The data dictionary contains descriptions of each software(E)a) control itemb) data objectc) diagramd) notatione) both a and b4. Which of these is not an element of an object-oriented analysis model?(C)a) Behavioral elements 行为元素b) Class-based elements 基于类的元素c) Data elementsd) Scenario-based elements 基于场景的元素5. In analysis models the only data objects that need representation are those that will be implemented using software classes.(B)a) True b) False6. The values that are assigned to an object's attributes make that object unique.(A)a) True b) False7. The relationships shown in a data model must be classified to show their(E)a) cardinality 基数b) Directionalityc) modality 形式d) probabilitye) both a and c8. The entity relationship diagram)(实体关系图)(A)a) depicts relationships between data objectsb) depicts functions that transform the data flowc) indicates how data are transformed by the systemd) indicates system reactions to external events9. A generalized 广义的description of a collection 集合of similar objects is a (A)a) classb) instancec) subclassd) super class10. Operations are object procedures that are invoked when an object receives a message.(A)a) True b) False11. In many cases there is no need to create a graphical representation of a usage scenario.(A)a) True b) False12. UML activity diagrams are useful in representing which analysis model elements?(D)a) Behavioral elementsb) Class-based elementsc) Flow-based elementsd) Scenario-based elements13. The data flow diagram(E)a) depicts relationships between data objectsb) depicts functions that transform the data flowc) indicates how data are transformed by the systemd) indicates system reactions to external eventse) both b and c14. Control flow diagrams are(E)a) needed to model event driven 事件驱动systems.b) required for all systems.c) used in place of data flow diagrams.d) useful for modeling real-time systems.e) both a and d15. The data flow diagram must be augmented by descriptive text描述性文本in order to describe the functional requirements for a software product.(A)a) True b) False16. Which of the following should be considered as candidate objects in a problem space?(D)a) eventsb) peoplec) structuresd) all of the above17. Attributes cannot be defined for a class until design has been completed.(B)a) True b) False18. Which of the following is not one of the broad categories used to classify operations?(D)a) computationb) data manipulationc) event monitorsd) transformers19. Which of the following items does not appear on a CRC card?(C)协作者-职责-类a) class collaboratorsb) class namec) class reliabilityd) class responsibilities20. Class responsibilities are defined by(D)a) its attributes onlyb) its collaboratorsc) its operations onlyd) both its attributes and operations21. An analysis package involves the categorization of analysis model elements into useful groupings.(A)a) True b) False22. Ev ents occur whenever a(n)(A)a) actor and the OO system exchange informationb) class operation is invokedc) messages are passed between objectsd) all of the above23. The state diagram(D)a) depicts relationships between data objectsb) depicts functions that transform the data flowc) indicates how data are transformed by the systemd) indicates system reactions to external events24. For purposes of behavior modeling a state is any(C)a) consumer or producer of data.b) data object hierarchy.c) well defined process.d) observable mode of behavior.Chapter 9 – Design Engineering TestMultiple Choices1. Which of the following are areas of concern in the design model?(E)a) architectureb) datac) interfacesd) project scopee) a, b and c2. The importance of software design can be summarized in a single word(D)a) accuracyb) complexityc) efficiencyd) quality3. Which of these are characteristics of a good design?(E)a) exhibits strong coupling between its modulesb) implements all requirements in the analysis modelc) includes test cases for all componentsd) provides a complete picture of the softwaree) both b and d4. Which of the followi ng is no t a characteristic common to all design methods?(D)a) configuration managementb) functional componentc) notation quality assessmentd) guidelines refinement heuristics5. Software design is an iterative generic process that may be applied without modification(修改)to any software project.(B)a) True b) False6. What types of abstraction(抽象)are used in software design?(E)a) controlb) datac) environmentald) procedurale) a, b and d7. Which of the following models can be used to represent the architectural design ofa piece of software.(D)a) Dynamic modelsb) Functional modelsc) Structural modelsd) All of the above8. Design patterns are not applicable to the design of object-oriented software?(B)a) True b) False9. Since modularity(模块化)is an important design goal it is not possible to have too many modules in a proposed design.(B)a) True b) False10. Information hiding makes program maintenance(程序维护)easier by hiding data and procedure from unaffected parts of the program.(A)a) True b) False11. Cohesion(内聚性)is a qualitative indication of the degree to which a module(B)a) can be written more compactly.b) focuses on just one thing.c) is able to complete its function in a timely manner.d) connected to other modules and the outside world.12. When using structured design(结构化设计)methodologies the process of stepwise refinement(逐步求精法) is unnecessary.(B)a) True b) False13. a qualitative indication of the degree to which a module(D)a) can be written more compactly.b) focuses on just one thing.c) is able to complete its function in a timely manner.d) Connected to other modules and the outside world.14. Software designs are refactored (重构)to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.(A)a) True b) False15. Inheritance provides a mechanism by which changes to lower level classes can be propagated to all super classes quickly.(B)a) True b) False16. Polymorphism(多态)reduces the effort required to extend an object system by(B)a) coupling objects together more tightly.b) enabling a number of different operations to share the same name.c) making objects more dependent on one another.d) removing the barriers imposed by encapsulation.17. Which of the following is not one of the five design class types(B)a) Business domain classes(业务域类)b) Entity classes (实体类)c) Process classes (过程类)d) User interface classes (用户界面类)18. Which design model elements are used to depict a model of information represented from the user's view?(C)a) Architectural design elementsb) Component-level design elementsc) Data design elementsd) Interface design elements19. Which design is analogous to(与…类似)the floor plan楼层of a house?(A)a) Architectural designb) Component-level designc) Data designd) Interface design20. Which design model is analogous to the detailed drawings of the access points and external utilities for a house?(D)a) Architectural designb) Component-level designc) Data designd) Interface design21. Which design model is analogous to a set of detailed drawings for each room in a house?(B)a) Architectural designb) Component-level designc) Data designd) Interface design22. The deployment(部署)design elements specify(指定)the build order for the software components.(B)a) True b) False23. One of the key problems in software reuse is the inability to find existing reusable design patterns when hundreds of candidates exist.(A)a) True b) False24. Design patterns are best thought of as coding patterns.(B)a) True b) False25. Frameworks and design patterns are the same thing as far as designers are concerned.(B)a) True b) FalseChapter 10 – Creating An Architectural Design TestMultiple Choices1. The best representation of system architecture is an operational software prototype(原型).(B)a) True b) False2. The architectural representations can be an enabler for communication among project stakeholders.(A)a) True b) False3. Which of these characteristics are true of a data warehouse, but not a typical data base?(E)A) business level orientationB) currency of informationC) integration (集成)D) nonvolatility (不挥发性)E) both c and d4. Data design actually begins during the creation of the analysis model, not the architectural model.(A)a) True b) False5. An architectural style encompasses (包含)which of the following elements?(E)a) constraints (约束)b) set of components (组件)c) semantic models (语义模型)d) syntactic modelse) a, b and c6. To determine the architectural style or combination of styles that best fits the proposed system, requirements engineering is used to uncover(发现)(B)a) algorithmic complexityb) characteristics and constraintsc) control and datad) design patterns7. Before an architectural pattern can be chosen for use in a specific system it must have a code implementation to facilitate its reuse.(B)a) True b) False8. The criteria(条件)used to assess the quality of an architectural design should be based on system (E)a) Accessibilityb) Controlc) datad) implementatione) both b and c9. During the process of modeling the system in context, systems that interact with the target system are represented as(E)a) Peer-level systemsb) Subordinate (下属)systemsc) Superordinate (上级)systemsd) Working systemse) a, b and c10. Once selected, archetypes (原型)always need to be refined further as architectural design proceeds.(A)a) True b) False11. Which of the following is not an example of infrastructure components (基本组件)that may need to be integrated into the software architecture?(C)a) Communications componentsb) Database componentsc) Interface componentsd) Memory management components12. In the architecture trade-off analysis method the architectural style should be described using the(E)a) data flow viewb) module viewc) process viewd) user viewe) a, b and c13. Quantitative(定量)methods for assessing (评估)the quality of proposed architectural designs are readily available.design actions.(B)a) True b) False14. A useful technique for evaluating the overall complexity of a proposed architecture is to look at the component(E)a) cohesion flowb) dependenciesc) sharing dependenciesd) sizee) both b and c15. When the overall flow in a segment of a data flow diagram is largely sequentialand follows straight-line paths, ( ) is present.(D)a) low couplingb) good modularityc) transaction flowd) transform flow16. When a single item that triggers(引起)other data flow along one of many paths of a data flow diagram, ( )characterizes the information flow.(C)a) high couplingb) poor modularityc) transaction flow(事务流)d) transform flow17. When you encounter both transform flow and transaction flow in the same DFD 数据流程图the flow is partitioned and the appropriate mapping technique is used on each part of the DFD.(A)a) True b) False18. In transaction mapping the first level factoring results in the(B)a) creation of a CFDb) derivation of the control hierarchyc) distribution of worker modulesd) refinement of the module view19. A successful a pplication of transform or transaction mapping to create an architectural design is supplemented by(E)a) entity relationship diagramsb) module interface descriptionsc) processing narratives for each moduled) test cases for each modulee) both b and cChapter 11 – Modeling Component-level Design TestMultiple Choices1. In the most general sense a component is a modular building block for computer software.(A)a) True b) False2. In the context of object-oriented software engineering a component contains(D)a) attributes and operationsb) instances of each classc) roles for each actor (device or user)d) a set of collaborating classes3. In traditional software engineering, modules must serve in which of the following roles?(D)a) Control componentb) Infrastructure componentc) Problem domain componentd) All of the above4. Software engineers always need to create components from scratch in order to meet customer expectations fully.(B)a) True b) False5. Which of the following is not one of the four principles used to guide component-level design?(D)a) Dependency Inversion Principleb) Interface Segregation Principlec) Open-Closed Principled) Parsimonious Complexity Principle6. During component-level design it is customary to ignore organization issues like subsystem membership or packaging.(B)a) True b) False7. The use of stereotypes can help identify the nature of components at the detailed design level.(A)a) True b) False8. Classes and components that exhibit functional, layer, or communicational cohesion are relatively easy to implement, test, and maintain.(A)a) True b) False9. Software coupling (耦合)is a sign of poor architectural design and can always be avoided in every system.(B)a) True b) False10. In component design, elaboration requires which of the following elements to be described in detail?(E)a) Source codeb) Attributesc) Interfacesd) Operationse) b, c and d11. In component-level design "persistent(不变)data sources" refer to (E)a) Component librariesb) Databasesc) Filesd) All of the abovee) both b and c12. The object constraint language (OCL) complements UML by allowing a software engineer to use a formal grammar to construct unambiguous (明白的)statements about design model elements.(A)a) True b) False13. OCL is not strong enough to be used to describe pre- or post-conditions for design actions.(B)a) True b) False14. Which of these constructs is used in structured programming?(E)a) branchingb) conditionc) repetitiond) sequencee) b, c, and d15. Which of these is a graphical notation (图形表示法)for depicting procedural detail?(D)a) process diagramb) decision tablec) ER diagramd) flowchart16. A decision table should be used(D)a) to document all conditional statementsb) to guide the development of the project management planc) only when building an expert systemd) when a complex set of conditions and actions appears in a component17. A program design language (PDL) is often a(A)a) combination of programming constructs(编程结构)and narrative text(叙述文本)b) legitimate programming language in its own rightc) machine readable software development languaged) useful way to represent software architecture18.Which of these criteria 标准are useful in assessing the effectiveness of a particular design notation?(E)a) maintainability 可维护性b) modularity 模块性c) simplicity 简单d) sizee) a, b, and c。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Software Engineering Question Bank 2 Marks 1. What is Application Software? Apply to real-world tasks. Helps to solve user problems
2. Define Freeware. 1. Free to all 2. Copyrighted 3. Distributed in machine-readable format
3. Define Software Engineering. Software engineering is the engineering discipline through which software is developed
4. Define Requirement Analysis. Extracting the requirements of a desired software product is the first task
5. Define Software prototyping. Software prototyping, refers to the activity of creating prototypes of software applications
6. Define Data Design. Created by transforming the analysis model into data structures required to implement the software
7. Define Abstraction. Allows designers to focus on solving a problem without being concerned about lower level details
8. Define Requirement Engineering. Requirements engineering is the process of establishing the services that the customer requires from a system
9. Define Domain Requirements Requirements that come from the application domain of the system and that reflect characteristics of that domain
10. Define Data processing model. Data processing model shows how the data is processed at different stages
11. Define Software Testing Software testing is an investigation conducted to provide customers with information about the quality of the product under test 12. Define Black Box Testing Internal system design is not considered in this type of testing. Tests are based on requirements and functionality.
13. Define 4P’s in Project Management. People Product Process Project
14. Define PM-CMM. People Management Capability Maturity Model
15. Define Common Process Framework Activity. Communication Planning Modeling Construction Deployment
5 Marks 1. Explain Freeware and Shareware. Freeware Free to all Copyrighted Distributed in machine-readable format Shareware Freely distributed for a trial period Pay a nominal fee to register with the author
2. Explain Commercial Software Used most often Copyrighted Generally costly May not be copied without permission of the manufacturer
3. Explain Need for Software Engineering A systematic approach to the 1. Analysis 2. Design 3. Implementation 4. Maintenance of software 4. Explain Software Requirements. Software Requirements can broadly divided into 1. Elicitation 2. Analysis 3. Specification 4. Management
5. Advantages of Prototyping Improved and increased user involvement Prototyping requires user involvement and allows them to see and interact with a prototype Reduced time and costs Prototyping can improve the quality of requirements and specifications provided to developers.
6. Explain Interface Design. Describes how the software elements communicate with each other With other systems With human users The data flow diagrams provides necessary information
7. Explain User and System Requirements User requirements Statements written in natural language plus diagrams. Written for customers System requirements A structured document sets out detailed descriptions of the system services. Written as a contract between client and contractor
8. Explain White Box Testing This testing is based on knowledge of the internal logic of an application’s code. Also known as Glass box Testing. Internal software and code working should be known for this type of testing. Tests are based on coverage of code statements, branches, paths, conditions
9. Explain Structured Analysis Structured Analysis (SA) in software engineering are methods used for 1. Analyze and convert business requirements into specifications 2. Computer programs 3. Hardware configurations 4. Related manual procedures 10. Explain Key practice areas of PM-CMM. Recruiting Selection Performance Management Training Compensation Career development Organization and work design Team/culture development
15 Marks 1. Explain Software Engineering need in detail. Process involves finding out 1. What the client wants 2. Composing list of requirements 3. Designing an architecture to support requirements 4. Designing 5. Coding 6. Testing and integrating the separate parts 7. Testing the whole 8. Deploying and maintaining the software
2. Explain Outline of Prototyping Process in detail Identify basic requirements Determine basic requirements including the input and output information desired Develop Initial Prototype The initial prototype is developed that includes only user interfaces. Review The customers, including end-users, examine the prototype and provide feedback on additions or changes Revise and Enhance the Prototype Using the feedback both the specifications and the prototype can be improved