Software Engineering

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

Which of the following isn't an aspect of high-level design?

Focuses on the details of how the pieces of the application will work

When performing maintenance tasks, which part of the software engineering process should you use to begin addressing each task?

Follow all the normal steps of software development

What term defines a set of one or more fields in one table with values that uniquely define a record in another table?

Foreign Key

What should you do if a bug is discovered and is being used by users to do something not intended?

Formalize it and add it to the application's requirements

Which process tries to use the application's complexity when analyzing metrics?

Function-point normalization

What term defines the process in which several classes are combined into a single parent class to represent common features?

Generalization

Which type of deployment involves moving users over a little at a time where you have some users running the new version and other users running the old version of the software?

Gradual Cutover

Which of the following is a tool used to find the root cause of an issue?

Ishikawa Diagrams

What type of table contains values that are used just as foreign keys?

Lookup

Which step of the software engineering process involves heavy interaction with the customer to gather as much information as possible to lay out a foundation for the project?

Requirements Gathering

Which trait of a prototype is disadvantageous to its use?

Some features may be demonstrated that don't make it into the finished application and are perceived as missing

Which level of code documentation (in terms of actual comments added to the code) does the author of the textbook suggest is the best approach?

Somewhere in the middle - enough comments to make the code understandable

When deploying updates, if you run into problems, you may want to fix a couple of issues to work through easy issues, but at some point, you should stop pushing forward and rollback.

True

Which type of testing is the most specific type, focusing on a specific piece of code?

Unit Test

Which type of software development model assumes you finish each step completely and thoroughly before moving on to the next step?

Waterfall

Which type of testing allows you to be aware of how the method works, giving you extra knowledge for designing tests that lead to finding bugs?

White-Box Testing

Order the steps in the correct sequence as defined by the Software Development Life Cycle.

1. Requirements 2. Design 3. Implementation 4. Verification 5. Deployment 6. Maintenance

The industry average number of bugs per thousand lines of code (kilo lines of code or KLOC) is typically estimated at what range?

15-50

Which level of normalization handles the worst kinds of database problems and is typically the furthest most people go?

3

Which type of testing is usually performed by a user or other customer representative to ensure that requirements have been fulfilled?

Acceptance Tests

Which UML diagram type represents work flows for activities that contains information about individual tasks and decisions for the workflow?

Activity Diagram

Which type of maintenance task would deal most with changes to the hardware environment in which the software is installed? For example, new version of operating systems or hardware becoming obselete?

Adaptive

Which type of model allows you to change the project's goals if necessary during development?

Adaptive Model

Which of the following is NOT a task you may have to perform during deployment?

All of the above could be tasks during deployment

Which of the following is NOT an example of a feature of a most source code control system?

Allows multiple developers to be editing the same file at the same time

What type of documentation includes user manuals, training materials, quick start guides, screencasts, and videos that is meant primarily for consumption by the customer or users of the project?

Application Documentation

Which common database-specific design item deals with tracking modifications to data in the database?

Audit Trails

Which type of test is setup so that regression testing can be ran on a regular interval, on code check in, or other triggers?

Automated Tests

Which of the following is NOT a valid action to take when a flaw is found during the software engineering process?

Blame the customer

After the project has started, what is the name of the process that ensures any stray from original requirements are reviewed and discussed with the customer to approve or reject new requests or revisions?

Change Control

Which architectural pattern separates pieces of a system that needs to use particular functions from parts of the system that provide those functions?

Client / Server

Which architectural pattern regards the system as a collection of loosely coupled components that provide services for each other?

Component-based

When looking at the low-level design for an object-oriented class, which of the following would you not define as part of the class?

Deconstructors

The second system effect refers to having a rollback plan to revert to a previous system state if the software project fails.

False

Which architectural pattern plans for different parts of the application to run on multiple processors, potentially at the same time across multiple computers?

Distributed

Which algorithm feature focuses on making sure that the algorithm meets the need and is useful for the scenario at hand?

Effective

Which architectural pattern designs the system such that the system responds to events as they occur?

Event-Based

Which of the following is the BEST answer as to what "documents" should be stored in regards to a project?

Everything

Using the DRY principle (don't repeat yourself), you have some code to perform a set of actions in one place that needs to be used in another place. The best way to approach the problem is to:

Extract the code into a shared class or method that can be called from multiple places

During deployment you should install all available updates at one time so that you don't inconvenience users repeatedly.

False

Experienced developers can generally agree that even complex programs can be virtually bug free.

False

Fixing a bug is less risky than performing new development.

False

For the source code, the same document management tools used for storing requirements from the customer are typically used for storing source code as well.

False

If a new patch is available to release that includes a security patch, how soon should it be released?

Immediately, even if a patch was released yesterday

Which type of prototyping involves creating a collection of prototypes that separately demonstrate the application's features that are later combined to build the finished application? This system also allows different programmers or teams to work on the pieces at the same time.

Incremental

Which of the following is a disadvantage when using predictive modeling?

Inflexible when handling changes to requirements

Which type of testing verifies that a method fits in with other related code in the existing codebase; it can call other methods correctly and other methods can call it correctly?

Integration Tests

What term defines the communication between two different components or systems that is used to share data? This term can be used both internally and externally.

Interface

Which architectural pattern is a single program that does everything?

Monolithic

Which is NOT an ideal feature in a document management system?

Multiple people can be editing the same file at once

What term defines the process of rearranging a database to put it into a standard form that prevents different types of database problems or anomalies?

Normalization

Which deployment strategy calls for some users to start using the new system while still using the old system as a way to work through any bugs found before completely switching to the new system?

Parallel Testing

Match the following maintenance task categories with the correct definition.

Perfective: Improving existing features and adding new ones Adaptive: Modifying the application to meet changes in the application's environment Corrective: Fixing Bugs Preventive: Restructuring the code to make it more maintainable

What term describes the capability for treating objects as if they were actually from a different class?

Polymorphism

What type of hardware should a developer have to be productive?

Powerful development machine, even if more expensive

Which is likely the best for tracking bugs for a large project with hundreds to thousands of users?

Prebuilt bug tracking software

Which of the following describes the methodology used to predict in advance everything that needs to be done before a project before starting?

Predictive Modeling

Match each type of software development methodology with the correct definition.

Predictive: Provides all features at the same time with full fidelity Iterative: Initially provides all features at a low fidelity. Later releases provide higher and higher fidelity until all features are provided with full fidelity. Incremental: Initially provides fewest possible features for a usable application, but all the features present are provided with full fidelity. Later versions add more features, always at full fidelity. Agile: Initially provides the fewest possible features at low fidelity. Later versions improve the fidelity of existing features and add new features. Eventually all features are provided at full fidelity.

Which feature of an algorithm leads to the algorithm being more thoroughly tested and more performant than if you were to create the algorithm on your own?

Prepackaged

Which type of metric is designed to measure the organization's development process over a long period of time over many projects?

Process Metrics

Which type of development tool allows analysis of a program to determine which parts use the most time, memory, files, and other resources?

Profilers

The term _____ defines an issue where two people or processes updating data results in the last update being accepted and the first update to be rejected.

Race Condition

What is the name of the process that breaks down a parent class into multiple subclasses to capture some difference between objects in the class?

Refinement

Which type of database is the most common and stores related data into tables?

Relational

Which determines defines what is captured when working with the customer that is documented and referred to throughout the rest of the software engineering process?

Requirements

Which below is the best naming of a method or methods for getting stock prices and returning the stock with the largest gain?

RetrieveStocks() FindStockWithHighestGain(stocks)

Which architectural pattern uses a collection of rules to decide what to do next and are sometimes called expert systems or knowledge-based systems?

Rule-Based

Which of the following is the best style of code?

Small blocks of code with comments that explain code should do

Which type of model uses a risk-driven approach to help project teams decide on what development approach to take for various parts of the project?

Spiral

Which deployment strategy using a separate test environment than the developers machine where the software can be installed and tested to work out kinks before moving into the production environment?

Staged Deployment

Which of the following best describes top-down design?

Start with a high-level statement of a problem, then break the problem down into more detailed pieces

Which type of development tool focuses on code's style - measuring how complex code is to examine code quality and maintainability?

Static Analysis Tools

For very small bug fixes, you may not need to spend as much time in all areas of the software engineering process. Which of the following is an area that should NEVER be skimped on?

Testing

Which of the following would indicate that a predictive model may not be the best fit for a project?

The project is substantial in size with many complex pieces

Which of the following best describes the phrase Not Invented Here?

Thinking you need to rewrite a piece of code just because someone else wrote it

Which option is the best for validating input in code released to production?

Throw an exception that is handled in calling code

In general, tall, thin inheritance hierarchies are more confusing than shorter ones.

True

It is more important to write code that works first before spending time optimizing code to make it run fast.

True

It's easier to gather metrics throughout the project rather than waiting until the end.

True

Maintenance is expensive and often accounts for 75 percent of a project's total cost.

True


Kaugnay na mga set ng pag-aaral

Leadership Development Chapter 1 Quiz

View Set

7.14.W - Lesson: Russia & Central Asia: Climate and Regions Review

View Set

Business Ethics Ethical Decision Making Expert Video Case 2

View Set

Live Virtual Lab 12.2: Module 12 Authentication and Authorization Solutions

View Set

Exam 3: Chapter 11 - Customer Relationship Management

View Set