Formal methods in software engineering question bank


















This is also an important question, as you want to know why they are looking for a new job and why they applied to your particular company. Did they do research about your company? If they did not do research about your company and are simply looking for a new job because they need the money, they might not end up being a good fit for your team.

You want to make sure that their values align with your own and that they will be dedicated to your mission. You want to hire a software engineer who is passionate about your values and goals and wants to help you reach them. This is also an important question, as it will give the applicant the opportunity to explain more about themselves, what their skills are, what they bring to the table, and how they will help your company reach its goals.

That last part is important, as it will give you an opportunity to see whether teamwork is important to them or not. Every software engineer who is passionate about engineering and has worked on personal and business projects will have made some mistakes.

Perhaps they worked on a project that ended up failing. That is not a bad thing, however, as it allows them to learn important lessons from those failures. During the interview process, try to find out what mistakes the software engineer made and what lessons they learned from those mistakes. This allows you to get an insight into their work ethic, their willingness to admit mistakes and learn, and how they work on improving their skills while working on projects.

This question will allow the candidate to explain how they approach problems and their methodology for solving them. It will show whether they have the skills to hold up to pressure and use their problem-solving skills to arrive at a solution. This does not have to be a software engineering problem, though it may be.

It can also be a problem with teamwork. Terry 23 December at GhaziiSEO gr 3 October at Newer Post Older Post Home. Subscribe to: Post Comments Atom. Follow Vidyarthiplus. Popular Posts. Engineering Physics 1 - Ultrasonic and Magnetostriction Method. Principles of communication - Double Conversion Principles of communication - Super Heterodyne Rec Q 22 Draw E-R diagram for the following situation An account is a relationship between customer and bank.

A customer has a name. A bank has a branch. A customer may have several accounts of different type and balance. The students fill a form and submit it. This is sent to the departments for confirmation. Once it is confirmed, the form and the fees is sent to the account section. Draw a data flow diagram using SRD technique. Risks can be identified by a check list or looking at previously identified risks.

Risk analysis involves examining how project outcomes may change with modification of risk input variables. Risk prioritization helps in focus on most severe risks. Q 25 What is a modular system? List the important properties of a modular system. Aggregation among objects. Repeated inheritance. Aggregation among objects Aggregation among objects represents a relationship.

Aggregation may imply containment. Class A class is a template that specifies the properties of objects. Classes have an interface which consists of the operation, a body which implements the operations and instance variable which contain the state of an object. Repeated inheritance If a class inherits more than once from the same class then it is referred to as repeated inheritance. Encapsulation An object encapsulates the data and information it contains and supports a well defined abstraction.

Encapsulation leads to the separation of the interface and implementation. Scenario A scenario is a sequence of events that occur in a particular execution of the system. A scenario can be described textually by enumerating the sequence of events or it can be shown as an event trace diagram in which events between objects are shown.

Q 27 Explain the following: i Equivalence class testing. AC16 Software Engineering 23 iii Core dumps. Two steps for this method are Identify equivalence class by taking each input condition and partition into valid and invalid classes. Generate the test cases using the equivalence class of the previous step.

The test cases are generated for the valid and the invalid classes. Examples are installation guide and reference guide. System documents contain all the facets of the system, including analysis, specification design, implementation, testing, security error diagnosis and recovery.

Examples are SRS and system test plan. A printout of all relevant memory locations is obtained and studied. All dumps should be well documented and retained for possible use on subsequent problems. Sometimes it is difficult to interpret the dump which is represented using hexadecimal numbers.

Q 28 Define capability. What are the quantities that determine the degree of capability of a software reliability model? The quantities are MTTF, expected date of reaching reliability, resource and cost requirements to reach the objectives. Explain why it is more advantageous than adhoc methods. Ans Waterfall Model: 1. The waterfall model is a sequential software development process, in which progress is seen as flowing steadily downwards like a waterfall through the phases of Conception, Initiation, analysis, design validation , Construction, testing and maintenance.

The first formal description of the waterfall model is given by Winston W. Royce in , however, popular in , and further refined by Barry Boehm. To follow the waterfall model, one proceeds from one phase to the next in a purely sequential manner. For example, one first completes requirements specifications, which are set in stone. When the requirements are fully completed, one proceeds to design. Process structured as a cascade of phases where output of one is input of next.

Many variants of model depending on organization and specific project. However underlying phases are same for all. Why Waterfall model is advantageous than Adhoc Methods Schedules, budgets, functionality, and product quality are generally inconsistent. Performance depends on the capabilities of individuals and varies with their innate skills, knowledge, and motivations. There are few stable software processes in evidence, and performance can be predicted only by individual rather than organizational capability.

Waterfall model is simple to follow, however real projects rarely follows this approach. Iteration is not required. It is widely use because it is easy. How do we transform an informal design to a detailed design? Ans Objectives of software design The purpose of the design phase is to plan a solution of the problem specified by the requirements document. This phase is the first step in moving from the problem domain to the solution domain.

Non-formal methods of specification can lead to problems during coding, particularly if the coder is a different person from the designer that is often the case. Software designers do not arrive at a finished design document immediately but develop the design iteratively through a number of different phases. The design process involves adding details as the design is developed with constant backtracking to correct earlier, less formal, designs.

The transformation is done as per the following diagram. Discuss the important issues that a SRS must address. SRS is the process of establishing the services, the system should provide of the system in new, it is difficult for software engineer to understand the nature of problem constraints under which it must operates, so software engineer take help of a step called requirement capture and analysis.

It is first formal document Informal design outline More formal design Finished design Informal design Informal design outline More formal design Finished design Informal design The important issues that a SRS must address are: a System goals and requirements are different: Goal is a more general characteristics.

Requests are more testable in nature. For example all users command selection should be only using pop up menus. There should be a clear relationship between this documents and the software request specification.

The reader of this document is software engineer, system analyst and project leaders. Discuss the differences between the two. Ans Throw-Away Prototyping: Also called close ended prototyping. Throwaway or Rapid Prototyping refers to the creation of a model that will eventually be discarded rather than becoming part of the final delivered software. Rapid Prototyping involved creating a working model of various parts of the system at a very early stage, after a relatively short investigation.

The method used in building it is usually quite informal, the most important factor being the speed with which the model is provided. The model then becomes the starting point from which users can re-examine their expectations and clarify their requirements. When AC16 Software Engineering 26 this has been achieved, the prototype model is 'thrown away', and the system is formally developed based on the identified requirements.

The most obvious reason for using Throwaway Prototyping is that it can be done quickly. If the users can get quick feedback on their requirements, they may be able to refine them early in the development of the software. Speed is crucial in implementing a throwaway prototype, since with a limited budget of time and money little can be expended on a prototype that will be discarded. Strength of throwaway prototyping is its ability to construct interfaces that the users can test.

The user interface is what the user sees as the system, and by seeing it in front of them, it is much easier to grasp how the system will work. Evolutionary prototyping: Evolutionary Prototyping also known as breadboard prototyping is quite different from Throwaway Prototyping. The main goal when using Evolutionary Prototyping is to build a very robust prototype in a structured manner and constantly refine it.

The reason for this is that the Evolutionary prototype, when built, forms the heart of the new system, and the improvements and further requirements will be built. When developing a system using Evolutionary Prototyping, the system is continually refined and rebuilt. Although they may not have all the features the users have planned, they may be used on an interim basis until the final system is delivered.

In Evolutionary Prototyping, developers can focus themselves to develop parts of the system that they understand instead of working on developing a whole system. There are 15 different attributes, called cost drivers attributes that determine the multiplying factors. These factors depend on product, computer, personnel, and technology attributes also know as project attributes. Each cost driver has a rating scale, and for each rating, there is multiplying factor is provided.

For eg. The multiplying factor for these ratings is. So, if the reliability requirement for the project is judged to be low then the multiplying factor is. AC16 Software Engineering 27 Run-time performance constraints 1. Productivity P may be conceived of as a metrics of the technical or engineering efficiency of production.

AC16 Software Engineering 28 Static single variable model: Methods using this model use an equation to estimate the desired value such as cost, time, effort etc. They all depend on same variable used as predictor say, size. The constants a and b are derived from the historical data of the organization. Since a and b depends on the local development environment, these models are not transportable to different organizations.

Static multivariable model: They depend on several variables representing various aspects of the software development environment, for e. An effort multiplier from the table below applies to the rating. The product of all effort multipliers results in an effort adjustment factor EAF. Typical values for EAF range from 0. The coefficient ai and the exponent bi are given in the next table. Software project ai bi Organic 3. A design process may include a series of steps followed by designers.

Depending on the product or service, some of these stages may be irrelevant, ignored in real-world situations in order to save time, reduce cost, or because they may be redundant in the situation.

Typical stages of the simplified design process include: Changing the shared resource implies changing all the modules using it. Diagnosing problems in structures with considerable common coupling is time consuming and difficult. It does not mean that a software designer must be aware of potential consequences of common coupling and take special care to guard against them. In this all of the elements of a component operate on the same input data or produce the same output data.

So we can say if a module performs a series of actions related be a sequence of steps to be followed by the product and all actions to be performed on the same data. The UML specifies two types of scope for members: instance and classifier.

In the case of instance members, the scope is a specific instance. For attributes, it means that its value can vary between instances. For methods, it means that its invocation affects the instance state, in other words, affects the instance attributes.

Otherwise, in the classifier member, the scope is the class. For attributes, it means that its value is equal for all instances. For methods, it means that its invocation do not affect the instance state. Classifier members are commonly recognized as "static" in many programming languages. AC16 Software Engineering 31 iv Structure chart: A structure chart is a top-down modular design tool, constructed of squares representing the different modules in the system, and lines that connect them.

The lines represent the connection and or ownership between activities and sub activities as they are used in organization charts. In structured analysis structure charts are used to specify the high-level design, or architecture, of a computer program.

As a design tool, they aid the programmer in dividing and conquering a large software problem, that is, recursively breaking a problem down into parts that are small enough to be understood by a human brain.

Explain Equivalence Class Partitioning and Boundary value analysis. Compare the two. Equivalence Class Partitioning: It is a technique in black box testing. It is designed to minimize the number of test cases by dividing tests in such a way that the system is expected to act the same way for all tests of each equivalence partition.

Test inputs are selected from each class. Every possible input belongs to one and only one equivalence partition. You identify classes of input or output conditions. The rule is that each member in the class causes the same kind of behaviour of the system. In other words, the "Equivalence Class Partitioning" method creates sets of inputs or outputs that are handled in the same way by the application.

Using equivalence partitioning method above test cases can be divided into three sets of input data called as classes. Each test case is a representative of respective class. More application errors occur at the boundaries of input domain. Boundary value analysis is a next part of Equivalence partitioning for designing test cases where test cases are selected at the edges of the equivalence classes. This capability is significant only when failure behaviour is changing.

There are two general AC16 Software Engineering 32 ways of viewing predictive validity based on the two equivalent approaches to characterizing failure random process, namely; 1.

We can visually check the predictive validity by plotting the relative error against the normalised test time. Let Xr be the usage of resource r. The model should be judged by its degree of applicability across software products that vary in size, structure and function.

The model should be usable in different development environments, different operational environments, and different life cycle phases. It is desirable that a model should be robust with respect to deviations from its assumptions, errors in the data or parameters it employs, and unusual conditions.

Compare the execution-time component for basic model and the logarithmic Poisson model. The execution-time component is based on the following assumptions: 1 Tests represent the environment in which the program will be used.

Both rates are with respect to execution time. The two models-basic execution time model and logarithmic Poisson execution time model- have failure intensity functions that differ as functions of execution time.

However, the difference between them is best defined in terms of slope or decrement per failure experienced. The decrement in the failure intensity function remains constant for basic model while the decrement per failure decreases exponentially as shown in the following graph. Describe the various types of restructuring techniques. Project planning B.

Scope management C. Project estimation D. Functional Requirement. Nonfunctional Requirement. Goals of implementation. Algorithm for software implementation. Which of the following is the understanding of software product limitations, learning system related problems or changes to be done in existing systems beforehand, identifying and addressing the impact of project on organization and personnel etc? Software Design B. Feasibility Study C. Requirement Gathering D.

System Analysis. Which design identifies the software as a system with many components interacting with each other? Architectural design B.

High-level design C. Detailed design D. Set of programs. Quality management B. Risk management C. Performance management D. Efficiency management.

Requirements elicitation B. Requirements analysis C. Requirements design D. Requirements documentation. Functional Application Specification Technique B. Fast Application Specification Technique C. Facilitated Application Specification Technique D. Adaptive maintenance B. Corrective maintenance C. Perfective maintenance D. Preventive maintenance. Software Requirement Specification B.

Software design C. Testing D. Both A. Object Oriented Analysis B. Object Oriented Design C. Object Oriented Analysis and Design D. Determine the test technique to be employed ii. Determine the extent of testing to be carried out iii. Prioritize testing in an attempt to find critical defects as early as possible.

Determine the cost of the project. Which of the following is not a part of the Test Implementation and Execution Phase? Creating test suites from the test cases B. Executing test cases either manually or by using test execution tools C. Comparing actual results D. Designing the Tests. Are most useful in uncovering defects in the process flows during real world use of the system.

Are most useful in uncovering defects in the process flows during the testing use of the system. Are most useful in covering the defects in the process flows during real world use of the system. Are most useful in covering the defects at the Integration Level. The use of a variable before it has been defineD. Memory leaks. Array bound violations. Which plan describes how the skills and experience of the project team members will be developed?

Evolutionary Development Model B. Waterfall Model C. Prototyping D. Iterative Enhancement Model. Common Cost Estimation Model. Constructive Cost Estimation Model. Complete Cost Estimation Model. Comprehensive Cost Estimation Model. Software Requirements Definition B. Structured Requirements Definition C. Software Requirements Diagram D. Structured Requirements Diagram. Which defect amplification model is used to illustrate the generation and detection of errors during the preliminary steps of a software engineering process?

Which method is used for evaluating the expression that passes the function as an argument? Organization can have in-house inspection, direct involvement of users and release of beta version are few of them and it also includes usability, compatibility, user acceptance etC. Task analysis B.

GUI requirement gathering C. Which project is undertaken as a consequence of a specific customer request? Concept development projects B. Application enhancement projects C. New application development projects D. Application maintenance projects. Feasibility study B. Requirement Gathering C. Software safety is a quality assurance activity that focuses on hazards that may cause an entire system to fall.

Smaller components are easier to maintain B. Program can be divided based on functional aspects C. Desired level of abstraction can be brought in the program D. People, performance, payment, product B. People, product, process, project C. People, product, performance, project D. All of the above. As technology advances, it becomes costly to maintain old software. The standard age of any software is considered up to 10 to 15 years. Most maintenance engineers are newbie and use trial and error method to rectify problem.

Which testing is the re-execution of some subset of tests that have already been conducted to ensure the changes that are not propagated? Unit testing B. Regression testing C. Integration testing D. Thread-based testing.

Define the scope 2. Decide its verification and control 3. Divide the project into various smaller parts for ease of management. Verify the scope.

White box testing B. Acceptance testing C. Integrated testing D. Black box testing. Software components provide interfaces, which can be used to establish communication among different components. Which SDLC activity does the user initiates the request for a desired software product? In Risk management process what makes a note of all possible risks, that may occur in the project? Requirement engineering process B. Requirement elicitation process C. User interface requirements D. Software system analyst.

Software project tracking and control B. Software configuration management C. Measurement D. Technical reviews. Procedural cohesion B. Logical cohesion C. Emporal cohesion D. Co-incidental cohesion. What is the detailed sequence of steps that describes the interaction between the user and the application? Box Structure Specification B. Box Statistical Specification C. Box Statistical System D. Box Structure Sampling. What is the testing to ensure the WebApp properly interfaces with other applications or databases?

Which Variation control in the context of software engineering involves controlling variation? Process applied B. Resources expended C. Product quality attributes D. Which classes represent data stores e. Process classes B.

System classes C. Persistent classes D. User interface classes. Capability Maturity Model Integration B. Capability Model Maturity Integration C. Capability Maturity Model Instructions D. Capability Model Maturity Instructions. Answer: Capability Maturity Model Integration. Which of the items listed below is not one of the software engineering layers? Reliable software B. Cost effective software C.

Reliable and cost effective software D. Answer: Reliable and cost effective software. Statement 1: Software is a physical rather than a logical system element. Statement 2: Computer software is the product that software engineers design and builD. Statement 3: Software is a logical rather than a physical system element. Statement 4: Software is a set of application programs that are built by software engineers.

Statement 1 and 2 are correct. Only Statement 2 and 3 are correct. Statement 2 and 3 and 4 are correct. All statements are correct. Answer: Statement 2 and 3 and 4 are correct. You are working in CareerRide as a project manager. What will you do to minimize the risk of software failure?

Request a large budget B. You will increase the team size C. Track progress D. For the best Software model suitable for the project, in which of the phase the developers decide a roadmap for project plan? Which of these software characteristics are used to determine the scope of a software project? Only performance. Only context. Information objectives, function, performance D.

Answer: Information objectives, function, performance. SDLC is not a well-defined, structured sequence of stages in software engineering to develop the intended software product. From the following select the correct option that is used to display the available option for selection. Develop the software. Improve the software process. Improve the testing process. Which of the level carries out goal, objective, work tasks, work products and other activities of the software process?

If you have no clue of how to improve the process for the quality software which model is used? In Software validation, requirements can be checked against following conditions:.



0コメント

  • 1000 / 1000