Software Engineering Final

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/96

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No study sessions yet.

97 Terms

1
New cards

You should choose longer names for local variables or entities, but can use shorter ones for global variables or entities. (T/F)

False

2
New cards

Best definition for requirements

Statements that define and qualify what the software needs to do

3
New cards

What type of testing refers to testing done by the client or someone on their behalf to make sure the program runs as specified?

Acceptance Testing

4
New cards

Extreme Programming practices writing test cases at which point?

Before writing the code.

5
New cards

In white box testing, the test cases are based on the requirements specifications, design and code implementation. (T/F)

True

6
New cards

What are examples of good software implementation practices

Chose descriptive names, use standard libraries, use code reviews, test early, and follow coding conventions

7
New cards

What is a good definition of design constraints

Statements that constrain the ways in which the software can be designed or implemented

8
New cards

Definition for design decisions

Decisions made about the best ways to achieve requirements

9
New cards

What methods are used to simplify a complex problem

Incremental iteration, Modularization, Decomposition

10
New cards

Once the requirements are documented, a review with the user/s customers is done before the design of the software. (T/F)

True

11
New cards

The issue in software complexity that refers to the "relations and interactions" among the functions and components is what?

Depth

12
New cards

What is software integration

The process of linking together individually tested units into a coordinated whole system

13
New cards

The technique of continuous integration for system development did not exist until it was introduced by the Agile development methodologies. (T/F)

True

14
New cards

A key to dealing with the more parts and the extra programmers required to build a large system is coordinating Processes and methodologies, final Product and intermediate artifacts, and People. (T/F)

True

15
New cards

According to the text the term software engineering was first used where?

At the 1968 NATO conference.

16
New cards

Software engineers can also obtain a professional engineer (PE) license in every state of the United States. (T/F)

False

17
New cards

Software engineering is a broad field that touches upon all aspects of (a) developing and (b) supporting a software system; it does not support ______

Multi threaded algorithms for the solving of linear equations

18
New cards

Since the Caper Jones study in 2008 found that requirements errors accounted for only 12.5% of errors and coding errors accounted for 38.33% of errors, we should not focus very much on getting the requirements correct. (T/F)

False

19
New cards

The software engineering discipline has proven laws and proven principles equivalent to the laws of motion or the laws of thermodynamics. (T/F)

False

20
New cards

Requirements specification can be tested with _____

hand-drawn screens, a prototype, or writing the user manual before implementation

21
New cards

Software process models are defined by the

Task's preconditions and post-conditions, input and output, and tasks to be performed

22
New cards

What model has the disadvantages of very little task overlap, a sequential process, and a single iteration

Waterfall

23
New cards

The need to develop multiple components, to overlap the development, and to be more evolutionary leads to which models or models from the Waterfall model.

Incremental model and spiral model

24
New cards

As a software product is developed using RUP, it may go through several iterations during ___________

Elaboration, Transition, Inception, Construction

25
New cards

The Unified Modeling Language (UML) is a foundational part of the Rational Unified Process (RUP). (T/F)

True

26
New cards

What is NOT a major concept that drives RUP framework

Sequential and get it right in a single pass

27
New cards

The Software Engineering Institute located on the Carnegie Mellon University campus created the SEI Capability Maturity Model (CMM) to accomplish what?

Help a software organization to assess the level of maturity of their software development processes.

28
New cards

In both the CMM model and the CMMI staged representation model, if the organization is ranked as Level 1 it means what?

The organization has no processes in place for developing software.

29
New cards

What are two representations of the CMMI-SW model?

Continuous and Staged

30
New cards

What is the Unified Modeling Language (UML)

An object oriented modeling language that provides the elements and relationships to model software requirements and design.

31
New cards

Characteristics of agile methods

short releases and iterations, incremental design and user involvement, minimal documentation and informal communication

32
New cards

Fundamental principles of Extreme Programming?

Simplicity in design and code, constant feedback, frequent communication

33
New cards

The Agile method will design everything about the entire project up front. (T/F)

False

34
New cards

What is NOT a characteristic of the Scrum development process?

It is dependent on ALL the requirements for the system being specified before design, code and test. These stages are only done once and are done sequentially.

35
New cards

Agile processes were designed to deal with the inability of the "Traditional Processes" to cope with changes in requirements and technology fast enough. (T/F)

True

36
New cards

What is the set of statements that describe the user's needs and desires?

requirements

37
New cards

Incomplete requirements can cause which of the following consequences to a project?

Increase in project costs, increase in the project development time, failure of the project

38
New cards

A commonly used standard template for the SRS (Software Requirements Specification) that is often used to base an SRS is available from IEEE. (T/F)

True

39
New cards

Requirements are the "what" and design is the "how." (T/F)

True

40
New cards

The requirements engineering activities include review and validation, which are the testing of the requirements. (T/F)

True

41
New cards

According to the text and the lecture the major activities that must be performed after solicitation, analysis and prioritization does NOT include _____________

Hiring the members of the development team

42
New cards

Analysis of the requirements consists of ________

Clustering the requirements, categorizing the requirements, prioritizing the requirements

43
New cards

Two common tools used in producing and analyzing requirements are UML Use Case Diagrams and user interface prototypes. (T/F)

True

44
New cards

All requirements must be enumerated uniquely. Why?

It makes the requirement easily identifiable, a requirement can be referenced easily in another project document, identifiers can be referenced in the traceability matrix.

45
New cards

Examples of architectural design styles

event driven, pipes-and-filters, client-server, and model-view-controller

46
New cards

What are the two types of prototypes described in the text and lecture that can be done in design?

Low-fidelity, High-fidelity

47
New cards

What is the view representing the run-time components (processes) and how they communicate with each?

process view

48
New cards

Not all software systems have an architecture. (T/F)

False

49
New cards

Architecture deals with the interaction between the important modules of the software system. (T/F)

True

50
New cards

The Unified Modeling Language (UML) is a popular notation for specifying a design. (T/F)

True

51
New cards

An architectural view is a representation of a system structure. Multiple views of a system are possible and useful. (T/F)

True

52
New cards

The Model-View-Control style is a popular way of organizing what?

GUI programs

53
New cards

Modeling an object's different states and how it transitions between these states can be best modeled with what UML diagram?

UML State Transition Diagram

54
New cards

We consider code indentation a very important issue affecting which of the following?

readability and maintainability

55
New cards

Software engineers consistently produce programs that CANNOT be improved. (T/F)

False

56
New cards

You should always optimize your code for performance. (T/F)

False

57
New cards

The most important issues for maintaining a good coding style are to be consistent and to try to highlight the meaning of your code. (T/F)

True

58
New cards

A defensive programming practice of testing the preconditions and postconditions of your modules can be accomplished with which programming technique.

Assertions

59
New cards

What is an important component of the technique of refactoring?

Implement good unit tests so that you can tell if your code improvements altered its behavior

60
New cards

Use of a switch statement in the object oriented languages Java, C++ and C# can be indicative that polymorphism can be used to make the code cleaner. (T/F)

True

61
New cards

It is possible to include too many comments in your code. (T/F)

True

62
New cards

In many cases, if you cannot think of a good name for a module, then it may be indicative that you do not understand it well enough or have improperly decomposed you system. (T/F)

True

63
New cards

What is one of the main purposes of testing

Finding defects and assessing and ensuring quality

64
New cards

When we use an automated static analysis tool, we need to be cognizant of false positives. (T/F)

True

65
New cards

The only person who can test the system is the programmer. (T/F)

False

66
New cards

The white box testing technique develops test cases with knowledge of the requirements and the source code? (T/F)

True

67
New cards

When we are using static analysis of source code we are investigating programming style or error-prone programming practices such as excessive structural complexity. (T/F)

True

68
New cards

Running all the branch coverage test cases would ensure total statement coverage, but is seldom practically achievable. (T/F)

True

69
New cards

The use of boundary value analysis is not very important in constructing test cases. (T/F)

False

70
New cards

What is NOT a benefit of having a good unit test?

It guarantees that there are no defects in the tested code by utilizing black-box testing techniques

71
New cards

One cost-effective technique for detecting errors is to have code and document reviews. It can be applied to all types of all types of artifacts and have the side benefit of disseminating knowledge of parts of the project to other members of the team. (T/F)

True

72
New cards

What is the process of managing all the pieces and parts of artifacts produced as part of software development and support activities?

Software configuration managment

73
New cards

Software configuration is done at the conclusion of a software project. (T/F)

False

74
New cards

An important aspect of configuration management is ensuring that all the source materials are the right ones during and throughout the development stages. (T/F)

True

75
New cards

What process is a set of activities associated with the integration and conversion of source files to a set of executable files targeted for a specific execution environment?

Build process

76
New cards

The three tiers of configuration management tools are version and change control, the build function, and integration with development and support process activities. (T/F)

True

77
New cards

Verification testing definition

Checking that the software product conforms to its requirements and specifications

78
New cards

Performance testing refers to verification that the program behaves according to its performance specification, such as some number of transactions per second. (T/F)

True

79
New cards

Stress testing ensures that the program behaves correctly or degrades gracefully under stress conditions, such as a high load or low availability of resources. Stress testing typically will extend the testing of software beyond the performance specification to see where the breaking points are. (T/F)

True

80
New cards

New product releases are developed by which organization?

Product development organization

81
New cards

A large software product goes through a lengthy and expensive development process. However, the post release product support and maintenance cycle is several times longer that the original development process. (T/F)

True

82
New cards

Customer support and service for large software products are usually free to users. (T/F)

False

83
New cards

Steps that occur during a products sunset period include ___________

Eliminate all customer support for the product as soon as the planned termination of the product is announced

84
New cards

Usually the last layer of support and service functions are ______________

Technical problem/fix analysts

85
New cards

It is not necessary to use the same discipline of requirements, design, coding and testing since a problem-fix may only involve a small number of lines of code. (T/F)

False

86
New cards

It is typical to have a customer who has skipped early software updates and wants to install the latest update to be required to install the skipped updates first. Because of this most companies encourage customers to apply the fix releases as soon as possible after it becomes available. (T/F)

True

87
New cards

Whenever a change request comes in from the field or the customer support and service organization, the developers immediately get the request transferred to them electronically so that they can start solving the issue as quickly as possible and get it into the next update. (T/F)

False

88
New cards

In experienced support organizations, detailed accounts of usage and problem reports are constantly and carefully analyzed to ensure quality. (T/F)

True

89
New cards

What is a description of a time and materials agreement?

The client pays the developer for the time spent and the actual costs incurred in creating the software

90
New cards

Which of the following describes a fixed-price agreement?

The client pays the developer a fixed sum for the entire project

91
New cards

What should be a part of all well written software development agreements?

method for a dispute resolution, details of copyright ownership and license to use the software of parts of the software in specific ways, a breakdown of the project schedule with discrete stages called milestones, warranty provisions, a detailed software specification, payment arrangements

92
New cards

The advantage for the client of including the major milestones in the agreement is getting the work in phases avoids the danger of getting an unsatisfactory product at the very end. It also gives the client the opportunity to comment on work, and keeps the project moving forward on schedule. (T/F)

True

93
New cards

The advantage for the developer of having the client sign off on each phase of the project is the best way to avoid unwarranted claims of nonperformance or unsatisfactory performance by the client when the project is concluded. (T/F)

True

94
New cards

Who is bearing the majority of the risk in a time and materials agreement?

The client

95
New cards

It is common to have legal disclaimers and a copyright notice on the file header for every source file. (T/F)

True

96
New cards

Software developers should avoid transferring ownership of their background technology to the client by making sure the development agreement provides that the developer retains all ownership rights in this material. (T/F)

True

97
New cards

Most software development contracts warranty the software will work correctly for a couple of years at least. (T/F)

False