软件工程英文版复习题
软件工程学位英语考试

软件工程学位英语考试Software Engineering Degree English Exam1. Introduction to Software Engineering- Define software engineering and describe its importance in modern technology.- Explain the software development life cycle and its different phases.- Discuss the role of a software engineer in the software development process.2. Requirements Engineering- Describe the process of requirements gathering and analysis.- Discuss various techniques used for requirements elicitation.- Explain the importance of requirement validation and verification.3. Software Design- Discuss the principles of software design and architecture.- Explain different design patterns and their application in software development.- Describe the importance of modularization and abstraction in software design.4. Software Testing- Discuss the importance of software testing in the software development life cycle.- Explain different types of software testing techniques, such as unit testing, integration testing, and system testing.- Describe the process of test case design and execution.5. Software Maintenance and Evolution- Explain the need for software maintenance and the challenges associated with it.- Discuss different types of software maintenance, such as corrective, adaptive, and perfective maintenance.- Describe the concept of software evolution and the role of a software engineer in managing software evolution.6. Project Management in Software Engineering- Discuss the principles of project management in software engineering.- Explain different project management methodologies, such as Waterfall, Agile, and Scrum.- Describe the role of a software engineer in project planning, scheduling, and risk management.7. Software Quality Assurance- Explain the concept of software quality assurance and its importance in software development.- Discuss different quality assurance techniques, such as code reviews, static analysis, and automated testing.- Describe the role of a software engineer in ensuring software quality and the importance of continuous improvement.8. Software Ethics and Professionalism- Discuss ethical issues in software engineering, such as privacy, security, and intellectual property.- Explain the importance of following professional codes of conduct in the software engineering profession.- Describe the role of a software engineer in promoting ethicalpractices and responsible use of technology.9. Software Engineering in the Industry- Discuss the current trends and challenges in the software engineering industry.- Describe the skills and knowledge required for a successful career in software engineering.- Explain the importance of continuous learning and professional development in the field of software engineering.。
软件工程 选择题 (中英文)

软件工程选择题 (中英文)1、软件生命周期管理1.1 什么是软件生命周期?答案:软件生命周期是指软件从开始开发直到退役的整个过程,包括需求分析、设计、编码、测试、部署和维护等阶段。
1.2 软件生命周期中的主要阶段有哪些?答案:- 需求分析阶段:确定软件系统需求、功能和性能等方面的要求。
- 设计阶段:根据需求分析的结果设计出软件系统的结构和组件。
- 编码阶段:通过编写源代码实现系统的功能。
- 测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试等。
- 部署阶段:将软件系统部署到目标环境中,让用户可以使用。
- 维护阶段:对软件进行修复bug、升级和改进等操作,以保证系统的正常运行。
1.3 软件生命周期管理的目标是什么?答案:软件生命周期管理的目标是通过规范的过程和方法来控制软件开发过程,从而提高软件质量、降低风险和成本,以及提高项目交付的可靠性和时间性。
2、需求工程2.1 什么是软件需求?答案:软件需求是对软件系统所需要具备的功能、性能、可靠性和其他特性的描述和规定。
2.2 软件需求的分类有哪些?答案:- 功能需求:描述系统应具备的功能和行为。
- 非功能需求:描述系统性能、可靠性、可用性等方面的要求。
- 用户需求:描述用户对系统的期望和需求。
- 系统需求:将用户需求转化为系统可以理解和实现的需求。
- 验证需求:用于验证软件系统是否满足用户需求的需求。
2.3 软件需求工程的关键活动有哪些?答案:- 需求获取:通过与用户沟通、文档分析等方式获取需求。
- 需求分析:对需求进行分析,识别需求的关联和冲突等问题。
- 需求规格化:将需求用规格化的方式进行描述,如使用用例、功能规格说明等。
- 需求验证:对需求进行验证,包括需求审查、原型验证等。
- 需求管理:对需求进行跟踪和变更管理,确保需求的有效性和一致性。
3、软件设计3.1 什么是软件设计?答案:软件设计是将需求转化为具体的软件系统结构和组件的过程。
软件工程的专业英语的题目

8. A7DF is the hexadecimal representa on for what bit pa ern? 1010 0111 1101 1111
4. Which of the following mass storage system does not required physical mo on? a. magne c tape b. magne c disk c. DVDs d, Flash drives
5. How many different symbols can be encoded using Unicode? a. 256 b. 4096 c. 65536 d. 1046476 [i] 6. A computer's main memory consists of numerous memory cells, each of which contains _8__bits. Each memory cell is iden fied by a numeric value called the cell's __address__.
10. Decode each of the following instruc ons that were encoded using the language descrip on table. a. A004 rotate the bit pa ern in register 0 to the right 4 mes b. 1234 load the register 2 with the bit pa ern found in the memory cell whose address is 34 c. 5678 add the bit pa ern in regiser7 and register 8 as they were two complement representa ons and leave result in register 6 d. C000 halt execu on
软件工程专业英语考查(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.。
软件工程英文版复习题

软件工程复习题PART-A Multiple-c hoice Questions1.When should the system testing phase begin? ( C )A. After beta testingB. Before unit testingC. After white box testingD. Before functional testing2.Which is included in the software requirements specification? ( C )A. error handlingB. data descriptionC. functional descriptionD. performance description3.Which factors must be most considered when developing acceptance criteria?( B )A. user availabilityB. match with requirementsC. ability to benchmark systemD. schedule of system delivery4.Software _____ is work done to enhance software functionality, correct errors and improvethe performance of software. ( B )A. re-designsB. MaintenanceC. CorrectionsD. Re-engineering5.Which type of testing is not a part of system testing? ( D )A. Stress testingB. Function testingC. White box testingD. Incremental testing6.Which are included in the software requirements specification? ( B, D )A. error handlingB. functional descriptionC. data descriptionD. maintainability description7. A data dictionary was created during the requirements analysis phase of a softwareengineering project. What information does it contain? ( A,B,D )A. interfaceB. data typeC. restrictionsD. content description8.What is configuration management in software engineering?( C )A. overall management of the design of the systemB. management of the configurable components in a systemC. the identification of the configuration of a system at discreet points in time to controlchanges to the configurationD. in object-oriented programming, the management of objects that control theconfiguration of some other function(s) in the systemPART-B Fill up the blanks1.Most product need ___maintenance_______ because of wear and tear caused by theusage2.__Evolutionary___________ Model is known as the successive versions model3.ISO is abbreviated as____International Standard Organization _________4.__Verification _________ is the process of determining whether one phase of a softwareproduct confirms to its previous phase5.Black-box testing is also known as____ Functional testing or Closed Box ______6.White-box testing is also called the __Structural testing. or Open Box ____7.__ Software reverse engineering ___ is the process of recovering the design and therequirement specification of product from an analysis of its code8.__ Software Life Cycle____ is the series of identifiable stage that a software productundergoes during its life timePART–C Answer the following in one or two sentences each question1.Define software EngineeringAns:It is an approach to develop software using engineering approachEngineering approach meansHEAVY USE OF PAST EXPERIENCEOPTIMIZATIONCOST EFFECTIVENESS2.What is meant by software configuration management?Ans:Software configuration management is the art of identifying, organizing and controlling modifications to the software being built by a programming team 3.Explain Characteristics of a Good SRS Document.Ans:a.It should be concise and at the same time unambiguous.b.It should be consistent.c.It should be complete.d.It should be well-structured and easily modifiable.4.Generate test cases to compute the square root of integer values in the rangebetween 0 and 2000 using Boundary Value Analysis.Ans:{0, 1, 2000, 2001}Boundary Value Analysis5.What is a Formal Technique?Ans:A formal technique is a mathematical method to specify a hardware and/orsoftware system, to verify whether a specification is realizable, to validate whether an implementation satisfies its specification and to prove properties ofa system without necessarily running the system, etc.6.Define Software Life Cycle Model.Ans:Software life cycle is the series of identifiable stage that a software product undergoes during its life time7.Define Fan-OutAns: It is a measure of the number of modules that are directly controlled by a given module. A design having modules with high fan-out is not a good design as such modules would lack cohesion.8.Explain the need of an SRS Document.Ans:a.An SRS establishes the basis for agreement between the client and thesupplier on what the software product will do.b.An SRS provides a reference for validation of the final product.c. A high quality SRS is a prerequisite to high-quality software.d. A high-quality SRS reduces the development cost.9.Generate test cases to compute the square root of integer values in the rangebetween 0 and 5000 using Boundary Value Analysis.Ans:{0, 1, 5000, 5001}Boundary Value Analysis10.Define Decision tableAns:Decision table specify which variables are to be tested, what actions are to betaken and the order in which decision making is to be performed.PART–D Write Short notes1.Empirical Estimation TechniquesAns:Empirical estimation techniques are based on making an educated guess of the project parameters. Although empirical estimation techniques are based on common sense, and experience over the years. The two most widely used empirical estimation techniques are•Expert JudgmentIt is one of the most widely used estimation techniques. In this approach an expert makes an educated guess of the problem size after analyzing the problem thoroughly•Delphi TechniqueIt tries to overcome some of the short coming of the previous method. It is carried out by a team composed of a group of experts and a coordinatoranization and Team StructuresAns:Every software organization handles several projects. Software organizations assign a team of engineers to handle a software project. There are a few standard ways in which software organizations and teams are structured.There are essentially two broad ways in which a software development organization is structured:•Functional format•Project formatTeam StructureProblems of different complexities and sizes require different team structures. For effective solution, usually every organization has a standard formal team structure. The three common formal team structures followed by most organizations are•Democratic Team Structure•Chief Programmer Team Structure•Mixed Team Structure3.Code InspectionsAns:Code inspections aim explicitly at the discovery of commonly made mistakes. Most software development companies collect statistics to identify the type of errors most frequently committed. Such a list of commonly committed(提交)errors can be used during code inspections to keep a look-out for possible errors.The following is a list of some classical programming errors which can be looked for during code inspections:►Use of uninitialized variables.►Jumps into loops.►Non terminating loops.►Incompatible assignment.►Array indices out of bounds.►Improper storage allocation and deallocation.4.Black-Box TestingAns:This testing methodology looks at what are the available inputs for an application and what the expected outputs are that should result from each input. It is not concerned with the inner workings of the application, the process that the application undertakes to achieve a particular output or any other internal aspect of the application that may be involved in the transformation of an input into an output.Most black-box testing tools employ either coordinate based interaction with the applications graphical user interface (GUI) or image recognition.An example of a black-box system would be a search engine.You en ter text that you want to search for in the search bar, press “Search” and results are returned to you.In such a case, you do not know or see the specific process that is being employed to obtain your search results, you simply see that you provide an input – a search term – and you receive an output – your search results5.Data Flow Diagrams (DFDs)Ans:The DFD (also known as the bubble chart) is a simple graphical notation that can be used to represent a system in terms of the input data to the system, various processing carried out on these data and the output data generated by the systemPrimitive Symbols Used for Constructing DFDsThere essentially five different symbols used to construct DFDs. These primitive symbols are depicted in BELOWFIGURE6.Risk (danger or loss) ManagementAns:A risk is any unfavorable (not encouraging or pleasing) event orcircumstances that can occur while a project is underway.Risk management aims at dealing with all kinds of risks that might affect aproject. Risk management consists of three essential activities:Risk Identification,Risk assessment,Risk containmentPART–E Solve the Problems1.Given Control flow graph G of a program for GCD .Calculate the cyclomaticcomplexity.Ans:Given a control flow graph G of a programThe cyclomatic complexity V(G) can be computed asV(G) = E-N+2Where,N is the number of nodes of the control graphE is the number of edges in the control flow graphEdge =8 and Node =6By substituting the values in Cyclomatic complexity formula we get, V(G)= 8 – 6 + 2The cyclomatic complexity = 4pare different software life cycle modelsAns:3.Mention Guidelines for Constructing DFDsAns:Some simple guidelines for constructing the DFD representation of a system, which have been developed after studying the different mistakes that beginners usually make while constructing the DFD model of systems are as follows:►The context diagram should depict the system as a single bubble. Many beginners commit the mistake of drawing more than one bubble in the contextdiagram.►All external entities interacting with the system should be represented only in the context diagram and these should not appear at other levels of the DFD.►Only 3 to 7 bubbles per diagram should be allowed, i.e. each bubble should be decomposed to between 3 and 7 bubbles.►A DFD does not represent control information such as when or in what order different functions (processes) are invoked and nor does it represent theconditions under which different functions are invoked.►All the functionalities of the system must be captured by the DFD model, i.e. no function of the system specified in the SRS document should be overlookedSRS.4.Calculate the length and volume of the f ollowing source code using Hallstead’sTechniquemain ( ){int a, b, c, avg;scanf (“%d %d %d”, &a, &b, &c);avg = (a + b + c) / 3;printf (“Average = %d”, avg);}Ans:The total number of unique operators ( n1 ) are : 12The total number of unique operands ( n2 ) are : 11Estimated Length = (12 * log 12 + 11 * log 11)= (12 * 3.58 + 11 * 3.45)= (43 + 38)= 81Volume = Length * log (23)= 81 * 4.52= 3665.Explain Classical Waterfall ModelAns:Feasibility studyThe aim of the feasibility study is to determine whether developing the product is financially and technically feasibleRequirement analysis and specification phasThe aim of the requirement analysis and specification phase is to understand the exact requirements of the customer and to document them properly. This phase consists of two distinct activities:Design phaseThe goal of the design phase is to transform the requirements specification into a structure that is suitable for implementation in some programming language. Two distinct design approaches followed in different industries are:Coding and Unit TestingThe purpose of this phase (also called the implementation phase) of software development is to translate the software design into source code. The end product ofthe implementation phase is a set of program modules that have been individually tested.Implementation phaseDuring this phase the different modules are integrated in a planned manner. The different modules making up a system are almost never integrated in a single shot. The goal of system testing is to ensure that the developed system functions according to its requirements as specified in the SRS document. The system testing usually consisting of three different kinds of testing activities6.List three major types of risks in a software projectAns:A project can be affected by a variety of risks. The three main categories of risks which can affect a software project are:•Project risksBudgetary, schedule, personnel, resource, customer-related problems etc.•Technical risksPotential design, implementation, interfacing, testing and maintenance problems. In addition, ambiguous specification, incomplete specification, changing specification, technical uncertainty and technical obsolescence.•Business risksThese risks include building an excellent product that no one wants, not fulfilling budgetary or personnel commitments etc.。
软件工程复习资料英文

Lecture 1 An Introduction to Software Engineering1 what does software engineering concern?1) Software engineering is concerned with theories, methods and tools for professionalsoftware development.2) Software engineering is concerned with cost-effective software development.2 What is software?Software includes:①computer programs②data structures③documents3 What is the two types of software productsGeneric software(通用软件) and custom software(定制软件)4 The three key elements of a successful software project are:on time, within budget, satisfies the user’s needs5 Generic activities in all software processes are:Specification(描述), Development(开发), Validation(有效性验证), Evolution(进化)6 The attributes of good software include:Maintainability(可维护性), Dependability(可依赖性), Efficiency(有效性), Acceptability(可接受性)Lecture 2 Software Processes1 What is a software process modelA software process model is an abstract representation of a software process. It presents a description of a process from some particular perspective.2 Draw the graphic presentation of Waterfall model and describe its character.1)这种模型把软件过程划分成几个顺序的阶段。
英文版软件工程复习题201506新版

英文版《软件工程》教学内容回顾2015上(下述问题仅是课件中的主要部分回顾,问题答案以课件为主要参考) Chapter01SE的定义、目的、方法及作用(P2 / P16)//开发模式(paradiam)(P4)说明错误、缺陷、失败的含义与联系。
(请举例说明)(6页)(44页习题3)软件质量应从哪几个方面来衡量?论述之。
(9--12页)//软件系统的系统组成(P16)现代软件工程大致包含的几个阶段及各个阶段文档(P23-24)使现代SE实践发生变化的(七个)关键因素是什么?(28--29页)什么是抽象?(30页)什么是软件过程?软件过程的重要性是什么?包含几个阶段?(32页)(45页)什么是重用等软件工程主要概念?(34页)Chaoter02什么是软件过程?软件过程的重要性是什么?(P45-46)瀑布模型及各阶段文档,优缺点?(P49)原型的概念(P51)论述分阶段开发模型的含义, 其基本分类及特点是什么?(56页)螺旋模型四个象限的任务及四重循环的含义?(P58)P80--81页习题2,3。
//在所有的软件开发过程模型中,你认为哪些过程给予你最大的灵活性以应对需求的变更?(81页习题11)什么是UP,RUP?Chapter03什么是项目调度?活动?里程碑?(83页)如何计算软件项目活动图的关键路径?(习题2,3)冗余时间?最早和最迟开始时间(课堂习题讲解)软件人员应该具备的能力是什么?(96页)软件项目组织的基本结构?(101页)// 专家估算法的大致含义?(106页),算式估算法的大致含义?(108页)试述COCOMO模型的三个阶段基本工作原理或含义。
(111页)什么是软件风险?主要风险管理活动?有几种降低风险的策略?(119、122页)找出图3.23和3.24(139页)的关键路径。
Chapter04需求的含义是什么? (143页)需求作为一个工程,其确定需求的过程是什么?(144页图4.1)举例说明获取需求时,若有冲突发生时,如何考虑根据优先级进行需求分类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程复习题PART-A Multiple-c hoice Questions1.When should the system testing phase begin? ( C )A. After beta testingB. Before unit testingC. After white box testingD. Before functional testing2.Which is included in the software requirements specification? ( C )A. error handlingB. data descriptionC. functional descriptionD. performance description3.Which factors must be most considered when developing acceptance criteria?( B )A. user availabilityB. match with requirementsC. ability to benchmark systemD. schedule of system delivery4.Software _____ is work done to enhance software functionality, correct errors and improvethe performance of software. ( B )A. re-designsB. MaintenanceC. CorrectionsD. Re-engineering5.Which type of testing is not a part of system testing? ( D )A. Stress testingB. Function testingC. White box testingD. Incremental testing6.Which are included in the software requirements specification? ( B, D )A. error handlingB. functional descriptionC. data descriptionD. maintainability description7. A data dictionary was created during the requirements analysis phase of a softwareengineering project. What information does it contain? ( A,B,D )A. interfaceB. data typeC. restrictionsD. content description8.What is configuration management in software engineering?( C )A. overall management of the design of the systemB. management of the configurable components in a systemC. the identification of the configuration of a system at discreet points in time to controlchanges to the configurationD. in object-oriented programming, the management of objects that control theconfiguration of some other function(s) in the systemPART-B Fill up the blanks1.Most product need ___maintenance_______ because of wear and tear caused by theusage2.__Evolutionary___________ Model is known as the successive versions model3.ISO is abbreviated as____International Standard Organization _________4.__Verification _________ is the process of determining whether one phase of a softwareproduct confirms to its previous phase5.Black-box testing is also known as____ Functional testing or Closed Box ______6.White-box testing is also called the __Structural testing. or Open Box ____7.__ Software reverse engineering ___ is the process of recovering the design and therequirement specification of product from an analysis of its code8.__ Software Life Cycle____ is the series of identifiable stage that a software productundergoes during its life timePART–C Answer the following in one or two sentences each question1.Define software EngineeringAns:It is an approach to develop software using engineering approachEngineering approach meansHEAVY USE OF PAST EXPERIENCEOPTIMIZATIONCOST EFFECTIVENESS2.What is meant by software configuration management?Ans:Software configuration management is the art of identifying, organizing and controlling modifications to the software being built by a programming team 3.Explain Characteristics of a Good SRS Document.Ans:a.It should be concise and at the same time unambiguous.b.It should be consistent.c.It should be complete.d.It should be well-structured and easily modifiable.4.Generate test cases to compute the square root of integer values in the rangebetween 0 and 2000 using Boundary Value Analysis.Ans:{0, 1, 2000, 2001}Boundary Value Analysis5.What is a Formal Technique?Ans:A formal technique is a mathematical method to specify a hardware and/orsoftware system, to verify whether a specification is realizable, to validate whether an implementation satisfies its specification and to prove properties ofa system without necessarily running the system, etc.6.Define Software Life Cycle Model.Ans:Software life cycle is the series of identifiable stage that a software product undergoes during its life time7.Define Fan-OutAns: It is a measure of the number of modules that are directly controlled by a given module. A design having modules with high fan-out is not a good design as such modules would lack cohesion.8.Explain the need of an SRS Document.Ans:a.An SRS establishes the basis for agreement between the client and thesupplier on what the software product will do.b.An SRS provides a reference for validation of the final product.c. A high quality SRS is a prerequisite to high-quality software.d. A high-quality SRS reduces the development cost.9.Generate test cases to compute the square root of integer values in the rangebetween 0 and 5000 using Boundary Value Analysis.Ans:{0, 1, 5000, 5001}Boundary Value Analysis10.Define Decision tableAns:Decision table specify which variables are to be tested, what actions are to betaken and the order in which decision making is to be performed.PART–D Write Short notes1.Empirical Estimation TechniquesAns:Empirical estimation techniques are based on making an educated guess of the project parameters. Although empirical estimation techniques are based on common sense, and experience over the years. The two most widely used empirical estimation techniques are•Expert JudgmentIt is one of the most widely used estimation techniques. In this approach an expert makes an educated guess of the problem size after analyzing the problem thoroughly•Delphi TechniqueIt tries to overcome some of the short coming of the previous method. It is carried out by a team composed of a group of experts and a coordinatoranization and Team StructuresAns:Every software organization handles several projects. Software organizations assign a team of engineers to handle a software project. There are a few standard ways in which software organizations and teams are structured.There are essentially two broad ways in which a software development organization is structured:•Functional format•Project formatTeam StructureProblems of different complexities and sizes require different team structures. For effective solution, usually every organization has a standard formal team structure. The three common formal team structures followed by most organizations are•Democratic Team Structure•Chief Programmer Team Structure•Mixed Team Structure3.Code InspectionsAns:Code inspections aim explicitly at the discovery of commonly made mistakes. Most software development companies collect statistics to identify the type of errors most frequently committed. Such a list of commonly committed(提交)errors can be used during code inspections to keep a look-out for possible errors.The following is a list of some classical programming errors which can be looked for during code inspections:►Use of uninitialized variables.►Jumps into loops.►Non terminating loops.►Incompatible assignment.►Array indices out of bounds.►Improper storage allocation and deallocation.4.Black-Box TestingAns:This testing methodology looks at what are the available inputs for an application and what the expected outputs are that should result from each input. It is not concerned with the inner workings of the application, the process that the application undertakes to achieve a particular output or any other internal aspect of the application that may be involved in the transformation of an input into an output.Most black-box testing tools employ either coordinate based interaction with the applications graphical user interface (GUI) or image recognition.An example of a black-box system would be a search engine.You en ter text that you want to search for in the search bar, press “Search” and results are returned to you.In such a case, you do not know or see the specific process that is being employed to obtain your search results, you simply see that you provide an input – a search term – and you receive an output – your search results5.Data Flow Diagrams (DFDs)Ans:The DFD (also known as the bubble chart) is a simple graphical notation that can be used to represent a system in terms of the input data to the system, various processing carried out on these data and the output data generated by the systemPrimitive Symbols Used for Constructing DFDsThere essentially five different symbols used to construct DFDs. These primitive symbols are depicted in BELOWFIGURE6.Risk (danger or loss) ManagementAns:A risk is any unfavorable (not encouraging or pleasing) event orcircumstances that can occur while a project is underway.Risk management aims at dealing with all kinds of risks that might affect aproject. Risk management consists of three essential activities:Risk Identification,Risk assessment,Risk containmentPART–E Solve the Problems1.Given Control flow graph G of a program for GCD .Calculate the cyclomaticcomplexity.Ans:Given a control flow graph G of a programThe cyclomatic complexity V(G) can be computed asV(G) = E-N+2Where,N is the number of nodes of the control graphE is the number of edges in the control flow graphEdge =8 and Node =6By substituting the values in Cyclomatic complexity formula we get, V(G)= 8 – 6 + 2The cyclomatic complexity = 4pare different software life cycle modelsAns:3.Mention Guidelines for Constructing DFDsAns:Some simple guidelines for constructing the DFD representation of a system, which have been developed after studying the different mistakes that beginners usually make while constructing the DFD model of systems are as follows:►The context diagram should depict the system as a single bubble. Many beginners commit the mistake of drawing more than one bubble in the contextdiagram.►All external entities interacting with the system should be represented only in the context diagram and these should not appear at other levels of the DFD.►Only 3 to 7 bubbles per diagram should be allowed, i.e. each bubble should be decomposed to between 3 and 7 bubbles.►A DFD does not represent control information such as when or in what order different functions (processes) are invoked and nor does it represent theconditions under which different functions are invoked.►All the functionalities of the system must be captured by the DFD model, i.e. no function of the system specified in the SRS document should be overlookedSRS.4.Calculate the length and volume of the f ollowing source code using Hallstead’sTechniquemain ( ){int a, b, c, avg;scanf (“%d %d %d”, &a, &b, &c);avg = (a + b + c) / 3;printf (“Average = %d”, avg);}Ans:The total number of unique operators ( n1 ) are : 12The total number of unique operands ( n2 ) are : 11Estimated Length = (12 * log 12 + 11 * log 11)= (12 * 3.58 + 11 * 3.45)= (43 + 38)= 81Volume = Length * log (23)= 81 * 4.52= 3665.Explain Classical Waterfall ModelAns:Feasibility studyThe aim of the feasibility study is to determine whether developing the product is financially and technically feasibleRequirement analysis and specification phasThe aim of the requirement analysis and specification phase is to understand the exact requirements of the customer and to document them properly. This phase consists of two distinct activities:Design phaseThe goal of the design phase is to transform the requirements specification into a structure that is suitable for implementation in some programming language. Two distinct design approaches followed in different industries are:Coding and Unit TestingThe purpose of this phase (also called the implementation phase) of software development is to translate the software design into source code. The end product ofthe implementation phase is a set of program modules that have been individually tested.Implementation phaseDuring this phase the different modules are integrated in a planned manner. The different modules making up a system are almost never integrated in a single shot. The goal of system testing is to ensure that the developed system functions according to its requirements as specified in the SRS document. The system testing usually consisting of three different kinds of testing activities6.List three major types of risks in a software projectAns:A project can be affected by a variety of risks. The three main categories of risks which can affect a software project are:•Project risksBudgetary, schedule, personnel, resource, customer-related problems etc.•Technical risksPotential design, implementation, interfacing, testing and maintenance problems. In addition, ambiguous specification, incomplete specification, changing specification, technical uncertainty and technical obsolescence.•Business risksThese risks include building an excellent product that no one wants, not fulfilling budgetary or personnel commitments etc.。