informatics 43 midterm 2

¡Supera tus tareas y exámenes ahora con Quizwiz!

verification/validation

"implement the idea properly"/"implement the proper idea"

components and connectors

(data, processing) and (interaction); arranged into configurations

According to Brooks, the following are accidental but not essential to software, EXCEPT: a. Conformity b. Expert system c. Artificial intelligence d. Graphical programming e. Object-oriented programming

a

In a UML Class Diagram, each box can have three sections. The top section in the box contains a. the name of the class. b. the primary function of the class. c. a list of class attributes. d. the name of the user in the use case. e. a count of the number of times the class will be used.

a

Requirements documents should specify a. What the software system should do b. How the system should do it

a

Specifications that are descriptive a. Describe the system as it really is, how it's been in the past and present b. Describe the system as is it planned and envisioned in the future

a

What is the difference between white-box testing and black-box testing? a. How they determine whether the output is correct. b. Whether they can be used for unit testing. c. White-box testing is used with Agile approaches, and black-box is not. d. How test cases are selected. e. White-box testing is done by a Quality Assurance team, and black-box testing is performed by the programmer.

a

Which of the following is not a key value of the agile movement, as laid out in the Agile Manifesto? a. Planning ahead is more important than reacting to events. b. Individuals and interactions are more important than processes and tools. c. Working software is more important than comprehensive documentation. d. Customer collaboration is more important than contract negotiation. e. Responding to change is more important than following a plan.

a

blackbox testing assumes a) you have no knowledge or access to the code b) you have access to the code and know its structure

a

white box testing assumes a) you have access to the code and know its structure b) you have no knowledge or access to the code

a

fault

a defect in source code or in another document, such as a requirements specification

the architect

a distinctive role and character in a project, broad training, extensive experience, deep understanding of the domain, leads the team, good communicator, decision maker

error

a mistake made by a software engineer or programmer

software architectural style

a named collection of architectural design decisions that are applicable in a given development context, constrain architectural design decisions, result in beneficial qualities in each resulting system

defining software architecture

a software system's architecture is the set of principal design decisions about the system; the blueprint for a software system's construction and evolution

quality assurance

all activities designed to measure and improve quality in a product

evolution

all successful software evolves, essential part of software development, must be accommodated/planned as much as possible; architecture is a key tool in accommodating evolution

object-oriented design and UML

an "object" contains both data and methods; a "class" is a blueprint for making objects

in a class diagram, a solid line, w/ blank diamond on one end, means

an aggregation where one class is an aggregate of another

in a class diagram, a solid line, w/ arrowhead on one end, means

an association between the two classes

in a class diagram, a solid line, w/ blank arrow on one end, means

an inheritance relationship between two classes

prescriptive vs. descriptive architecture

as-designed/as-intended architecture; as-implemented/as-realized architecture

According to Brooks, the following is an essential property that makes software difficult: a. Complacency b. Complexity c. Simplicity d. Visibility e. Reliability

b

Specifications that are prescriptive a. Describe the system as it really is, how it's been in the past and present b. Describe the system as is it planned and envisioned in the future

b

The following are all included in (they are part of) the UML design notation, EXCEPT: a. Activity diagrams b. Physical-Activity diagrams c. Use-case diagrams d. Sequence diagrams e. Class diagrams

b

What is the significance of the word "equivalence" in the phrase Equivalence Class Partitioning? a. All classes are white box or all classes are black box. b. The class is divided into the same number of "what" and "how" subsets. c. The UML Class Diagram has only one-to-one relationships. d. Each class has the same liklihood of containing a test case with a bug. e. For the purposes of testing, every element of the class is the same as the others.

b

Which of the following would be a non-functional requirement: a. Withdraw and deposit money b. Manage performance and response time c. Manage customer information d. Manage account information e. Manage transaction information

b

software testing can a) show the absence of bugs, but not their presence b) show the presence of bugs, but not their absence

b

Brooks uses the analogy of a silver bullet that kills the werewolf to describe something in software that a. will have the impact of Ada and other high level languages. b. will make digital computer systems conform to the laws of nature. c. makes the invisible visible. d. provide opportunities for growing designers to interact with and stimulate each other. e. provides an order of magnitude improvement in productivity or reliability.

c

In Open Source Software Development, the distinctive characteristic is that a.the developers rely on Wikipedia as the source of information. b.the UML "Open Source" diagram is used to drive development. c.access to the source code is provided to all people. d.the development team is open about their software process model. e.anyone who pays a small fee can join the development team

c

Which of the following is not part of the design phase of software development? a. Defining modules and their interfaces. b. Selecting programming languages and libraries. c. Coding algorithms and data structures. d. Developing the specifications in more detail. e. All of the above are not part of the design phase.

c

effects of high cohesion/low coupling

changes don't propagate, reuse is facilitated

UML class diagram can have

classes, class attributes, class methods, relationship names

white-box testing

code, path analysis

WWW in a nutshell

collection of resources, each of which has a unique name (URL); a URL can be used to determine the identity of a machine on the Internet, from which the resource may be obtained; clients make requests of servers for their resources

software architecture's elements

components and connectors

A UML class diagram can show the following information, EXCEPT: a. Class name b. Class attributes c. Class operations d. How one class invokes operations available in another class e. How one class is related to/associated with another class

d

Good design and modularization is often said to exhibit a. low cohesion and low coupling. b. low cohesion and high coupling. c. high cohesion and high coupling. d. high cohesion and low coupling. e. all of the above.

d

How does Brooks describe "Brooks's Law" in The Mythical Man-Month? a. Surprisingly accurate. b. Incredibly useful. c. Naively optimistic. d. Outrageously oversimplified. e. Complex and invisible.

d

Requirements documents should specify, EXCEPT: a. What the customer needs b. What problems will be addressed c. What the system should accomplish d. How the system will implement solutions to customer needs and problems

d

Testing is very challenging due to the following reasons, EXCEPT: a. Software has many users who can cause unexpected behavior b. Software has essential properties that can cause unexpected behavior c. Software must accommodate functional and non-functional requirements d. Software doesn't change much over the years e. Software continues to change and evolve over many years

d

What is "Brooks' Law," as stated in The Mythical Man-Month? a. late software projects can be controlled by improved software process models. b. complexity of project increases with the Square of the Man month. c. more software projects have gone awry for the lack of calendar time then for all other causes combined. d. Adding manpower to a late software project makes it later. e. the essence of software is its conceptual construct.

d

parallels

design before build, satisfaction of customers' needs, specification of labor, multiple perspectives of the final product, intermediate points where plans and progress are reviewed

purpose of designs

designs to think, talk, prescribe

testing-basic process

detect and correct errors in a software product

why does architectural erosion happen

developer sloppiness, short deadlines, lack of prescriptive architecture, code optimization, inadequate techniques or tool support

software development languages

different languages are used at different stages: requirements --> design --> coding/testing ==> english --> diagrams/UML --> java, python

By "conformity", Brooks refers to how a. software has to anticipate future needs. b. software process models have to incorporate prototyping. c. software testing has to verify all use cases. d. software has to comply with existing institutions and systems. e. all of the above.

e

In The Mythical Man-Month Brooks writes that "the man-month as a unit for measuring the size of a job is a dangerous and deceptive myth." What does Brooks think is deceptive about the man- month? a. It implies that women cannot be software developers. b. It conflicts with the Waterfall Model. c. It does not account for the multi-person nature of software engineering. d. It does not account for fractional months. e. It implies that men and months are interchangeable.

e

The reason for emphasizing "what" over "how" in a requirements specification is a. the client is more interested in the "what" aspects. b. the "how" aspects are best left to the programmers. c. it is important to determine the "what" aspects before spending time on the "how" aspects. d. the writers of the requirements specification may not be programmers or designers. e. All of the above.

e

Which of the following activities is associated with the upper left hand quadrant of the Spiral model? a. Architecture. b. Prototyping and resolving risks. c. Assigning specific tasks to individuals on the team. d. Software product design. e. Determining objectives.

e

Which of the following would be a functional requirement in your requirements document: a. Usability (user friendliness, ease of use) b. Security (secure access) c. Reliability d. Performance and Response time e. Withdraw and deposit money

e

You should write good clear requirements documents. The following people might read them: a. Customer representatives b. Testers c. Developers d. Project managers e. All of the above

e

Bridge between two other UML diagrams

entity relationship diagram

regression testing

existing test cases

testing goals

find and fix failures/faults/errors, improve confidence that the system performs as specified and as desired

QA techniques

formal methods, static analysis of program properties, reviews and inspections, testing

abstraction

formed by removing irrelevant information and retaining/highlighting relevant information, every design notation supports a certain kind of abstraction, software engineering is all about contracting and elaborating abstractions/models

git command to view changes between two branches

get diff

git command to view one or more existing branches

git branch

create new git repository

git init

high cohesion

grouping related functionality

information hiding

hide design decisions that are most likely to change, thereby protecting other parts of the program from change if the design decision is changed

UML (unified modeling language)

industry standard for software design/modeling; different types of UML diagrams are used to represent different aspects of a system

architecture in software engineering

intellectual control, conceptual integrity, effective project communication, reusability, maintainability

ways to choose test cases

intuition, specification, code, existing test cases, faults

style 5: peer-to-peer

key benefits: efficiency robustness; examples: skype, file sharing systems, bitcoin

style 7: pub-sub

key benefits: efficient, scalability; examples: stock market ticker, stock market, news

style 4: layered

key benefits: modularity, abstraction, anticipation of change, reuse; examples: restaurant, operating systems, networks

style 2: model-view-controller

key benefits: modularity, anticipation of change; examples: web applications, ATM

style 6: pipe-and-filter

key benefits: modularity, reuse, anticipation of change; examples: compiler, UNIX shell, compilers

style 3: client-server

key benefits: shared data/services, centralized control; examples: video game, email, web browser-based programs

style 1: object oriented

key benefits: understandability, abstraction, anticipation of change; examples: uber, business applications

7 styles

object-oriented, model-view-controller, client-server, layered, peer-to-peer, pipe-and-filter, pub-sub

services such as netflix, skipper, and google hangout, can stream data directly between two nodes in a communication network

peer-to-peer

on the command line for the UNIX or Linux operating system, you can start with a file of records, then filter them, sort them, and then remove duplicate records

pipe-and-filter

New York Stock Exchange makes available large amounts of data, as well as 'real time' updates, that many are interested in

publish-subscribe

recurring, fundamental principles

rigor and formality, separation of concerns, anticipation of change, generality, incrementally

approaches to software design (textbook)

software architecture, functional decomposition, relational database design, object-oriented design and UML, user interface design

black-box testing

specification, equivalence class partitioning

failure

the inability of a system to perform the correct function; and incorrect output

limitations of analogy

the nature of software is different from that of building architecture

low coupling

ungrouping unrelated functionality/ reducing interdependency

levels of testing

unit testing, functional/integration testing, system/acceptance testing

UML class diagrams

used in decomposing a system into modules known as classes, typically used to model domain concepts and create a detailed, object oriented design of the code

architectural erosion

when a system evolves, ideally its prescriptive architecture is modified first

not allowed/available multiplicity in UML class diagrams

0 to 0

software design goals/activities

Making system-wide decisions (architecture, languages, libraries, platforms), making lower-level decisions in an iterative manner (studying the problem, identifying solutions, creating abstractions)


Conjuntos de estudio relacionados

My QA: BDD, Cucumber, Gherkin, TestNG, Junit

View Set

Practice Test 2- Medical Terminology

View Set

Los Mandatos de la Clase in the "Ustedes" (plural "you" form) (given to a group, 2 or more people)

View Set

Building Therapeutic Relationships

View Set