Test 1 Flashcards

1
Q

comes into play as the standard notation used in industry for software documentation.

A

The Unified Modeling Language (UML)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

These days, new software is usually:

A

object- oriented

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

the software is written using an abstraction called an:

A

object

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Programming using binary numbers:

A

Machine code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Programming using alphanumeric symbols, or mnemonics, as short hand for machine code:

A

Assembly language

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Assembly language is translated into machine code by a program called an:

A

assembler

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Programming using languages (such as Fortran and COBOL) that have high- level constructs such as types, functions, loops and branches:

A

High-level languages

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

High-level languages ( and later generations of programming languages) are translated into machine code using a program called a:

A

compiler

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Programming using cleaner high- level languages (such as Pascal Modula and Ada) that are characterized by fewer pitfalls for the programmer and more discipline in the way a program is broken down into sub-tasks and sub- systems:

A

Structured programming

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Programming using independent modules of data and functions that correspond to concepts in the problem domain, such as Customer or ScrollBar. This modularity leads to even fewer pitfalls for the programmer and encourages the reuse of code across separate programs:

A

Object-oriented programming

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

is a description of the steps a development team should go through in order to produce a high-quality system. Also describes what should be produced ( documents diagrams, code, etc.) and what form the products should take (for example, content, icons, coding style)

A

methodology

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Better suited to an object oriented programming style. Included Booch method:

Leading market of methodologies. Owned by IBM

So called ‘agile’ methodology, which means responsive to changes in software requirements or changes in our understanding of the problem

A

Object oriented methodologies

Rational unified process

Extreme programming

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

The methodology used in this book, __________ is a simplified one based on widely accepted theory and practice. As a result, you won’t have to learn the complexities of a full industrial methodology. Nor will you be told exactly what to do at each stagewhich will allow you to be more creative as you learn

A

Ripple

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

The notation used for illustrations , wherever possible, is the. This has become the accepted standard for software diagrams. presentation conventions mean that some lines are thicker than others and that some characters are in bold or italics. Some of these conventions are difficult to accomplish when drawing by hand:

A

Unified Modeling Language (UML)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are some justifications typically given for object orientation?

A

Objects are easier for people to understand

Specialist can communicate better

Data and processes are not artificially separated

Code can be reused more easily

Object orientation is mature and well proven

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Typically, the first rung is fixing faults ( bugs) in the code written by others:

The second rung is writing the code itself:

The third is deciding what code needs to be written:

Finally comes the role of talking to customers to discover what they need and then writing down a specification of what the finished system must be able to do.

A

programmer

senior programmer

designer

analyst

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is an object?

A

An object is a thing, an entity, a noun, something you can pick up or kick, anything you can imagine that has its own identity. Some objects are living and some aren’t

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

All objects have attributes: for example:

Objects also have behavior: for example:

A

a car has a manufacturer, a model number, a color and a pricea dog has a breed, an age, a color and a favorite toy.

a car can move from one place to another and a dog can bark

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

each object has certain knowledge , in the form of attributes, and it knows how to perform certain ____________ for the benefit of the rest of the program.

A

operations

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

the assignment of human characteristics to inanimate objects or animals. It’s common in object- oriented development , imagining software objects as little people.

A

anthropomorphism

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Before we go any further, it’s important to note that we’re not trying to __________ the real world, that would be far too difficult we’re simply trying to make sure that our software is influenced by real-world concepts, so that it is easier to produce and easier to change.

A

simulate

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

is a representation of a problem domain or a proposed solution that allows us to talk, or reason, about the real thing . This allows us to increase our understanding and avoid potential pitfalls:

A

model

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

______________ refers to an object hiding its attributes behind its operations (it seals the attributes in a capsule, with operations on the edge)Hidden attributes are said to be _________.

A

Encapsulation

private

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What are some differences between association and aggregation?

A

Association is a weak form of connection

Aggregation means putting objects together to make bigger objects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Aggregation form a ______________ hierarchy?

A

Part-whole

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Decide which is association or aggregation?

Friends:

Books on a bookshelf:

Windows in an office block:

A

association

association

aggregation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

The connections that you’ve seen on object diagrams until now are called _______. If we want to show that one object knows where the other one is, we can add an arrowhead.

A

Links

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

A ________ is a staple value in programming that comprises a sequence of characters

A

string

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Each link can be thought of as an attribute: the label, or _______, indicates the attribute’s name.

A

role

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

The arrowhead indicates _______________, knowing where the other object is. Because there’s no arrowhead on the customer end, the implication is that String doesn’t know that it’s associated with aCustomer.

A

navigability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Navigable links often end up as _____________ in object-oriented programs. (is the address of an object in memory, so that we can find it when we need too)

A

pointers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Once objects are connected, they can ______________ , to perform more complex tasks than they could on their own.

A

collaborate

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Objects collaborate by sending ____________ to each other

A

messages

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

look rather like object diagrams, except that the links have no direction and the object names are not underlined. Officially, there is no way to show replies, so a long-standing convention , the tadpole, has been used instead. Ideally, we would also show sequence numbers, but they’ve been omitted here, because the UML numbering scheme is rather involved

A

UML communication diagram

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Sometimes, we can’t allow things to failwe would be rather disappointed if a fly-by-wire plane crashed because of a software fault. Ensuring success under such circumstances is a specialist area, _____________. Just to give you an idea, here’s one strategy for this is to install three computers on the plane and get them to vote on what to do nextif one computer says fly to the left, but the other two say fly to the right, the plane flies to the right

A

software reliability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

An object-oriented program works by creating objects, connecting them together and getting them to collaborate by sending messages to each other. But who gets the ball rolling? Who creates the first object and who sends the first message? To solve this problem, all object oriented programs have an:

A

entry point

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

bad programming practice to allow more and more objects to be created by our program without taking steps to clean them up at the end of their useful life. Traditionally programmers have had to decide for themselves when the last connection to an object was about to be removed so that they could explicitly_______ or ______ the object’s memory

A

delete

free

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

( Structured languages don’t have objects , but they do have _______ , _______ and _______ that might need to be freed .) Keeping track of object lifetimes is complicated . It’s very easy for a programmer to forget about some of their unused objects, causing the program to keep growing a fault called a _______________

A

records
structures
arrays

memory leak

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

every program has an assistant called a _______________, wandering around, looking for unconnected objects and sweeping them away.

A

garbage collector

40
Q

It is common these days for every program to have a ____________ a piece of software that’s always present underneath the code that we write ourselves. It’s this system that performs housekeeping tasks, such as garbage collection.

A

run-time system

41
Q

Object- oriented programmers are often heard to say “Every object is an ___________ of a class,” hence the use of this term as a synonym for object.

A

instance

42
Q

Some languages allow the programmer to add __________- logical statements that must always be true, such as ‘Objects of this class will always have a positive balance’ or This message will always return a nonempty string. These are useful for reliability, debugging and maintenance

A

assertions

43
Q

Because information and services such as those listed above don’t seem to fit well with objects, object-oriented languages usually allow the programmer to put elements onto the class itself. So, as well as ________, ________ and _________

A

class field
class message
class method

44
Q

Class elements are not as easy to use as they could be, because some languages don’t treat a class as a pure object inheritance between class elements doesn’t work, for example. Even languages that do treat classes as pure objects run into messy complications with _______________

A

metaclasses

45
Q

a class that is guaranteedby careful programming, to have only one instance: the _________. This is a good match for the ‘Is it a leap year?’ case, because there is only one Gregorian calendar

A

singleton object

46
Q

most object-oriented languages also have nonobject types called ___________. The reasons given for this impurity usually include brevity performance and ancestry.

A

primitives

47
Q
  1. A small piece of information such as color, height or weight that describes one characteristic of an object
  2. A named value inside an object
  3. A piece of code belonging to an object.
  4. A synonym for operation
  5. A request sent from one object to another.
  6. The carrying out of an operation in response to a message.
  7. A synonym for invocation
  8. A direct or indirect connection between two objects
  9. A strong association implying some kind of part-whole hierarchy
  10. A strong aggregation where the part is inside exactly one whole- the part may also be created and destroyed by the whole
  11. A set of messages understood by an object
  12. An agreed way of passing messages over a network
  13. A collective term for all of an object’s operations
A
  1. Attribute
  2. Field
  3. Operation
  4. Method
  5. Message
  6. Invocation
  7. Execution
  8. Association
  9. Aggregation
  10. Composition
  11. Interface
  12. Protocol
  13. Behavior
48
Q

Related, high quality functions can be grouped into a library, so that they’re available all at once.

A

Function libraries

49
Q

An improvement on function libraries, this offer whole classes rather than mere functions . This takes a lots of experience .

A

Class libraries

50
Q

is a description of how to create part of an object-oriented system elegantly and effectively. Since their introduction, patterns have also been applied to other areas such as system architectures. Each pattern has a short description, a detailed description, advice on where to use it, and code samples.

A

Design patterns

51
Q

as its name suggests, is a pre-existing structure to which you attach your own code. In the object-oriented case, this consists of a number of prewritten classes, along with a document describing the construction rules

A

Frameworks

52
Q

represent real-world things, are described by attributes and can carry out behavior (operations, usually called methods).

A

Software objects

53
Q

enable objects to communicate and collaborate to accomplish some task

A

Messages

54
Q

reclaims the space used by objects when they are no longer needed by the program that created them.

A

Garbage collection

55
Q

enable us to group similar objects and share the definition of elements between related objects, so that we don’t have to repeat ourselves.

A

Classes

56
Q

results in faster and simpler development, more robust code and easier maintenance .

A

Reusing code

57
Q

A collection that keeps all of its objects in the order in which they were inserted.

A

List

58
Q

A collection that doesn’t keep its objects in order

A

Bag

59
Q

A collection that keeps its objects in order using an implementation of a sequence of objects in which each object points to the next in the sequence.

A

LinkedList

60
Q

A collection that keeps its objects in order using an array, a sequence of adjacent memory locations. Arrays have fast access but updating is slow because we may have to shift elements around or create a new array on each update.

A

ArrayList

61
Q

An unfinished method is called an _______________, because it’s not realit’s not solid, you can’t kick it.

A

abstract method

62
Q

The complement to an abstract method is a ____________ method. This method has real lines of code, it’s solid, you can kick it. In UML, abstract methods are shown in italics and concrete methods are not - where italics are impractical, you can put abstractto the right of the method instead

A

concrete

63
Q

An abstract class is a class with at least ________ abstract method - the abstract method may be introduced on the class itself, or it may be inherited from a superclass.

A

one

64
Q

What are three reasons to redefine a method?

A

The inherited method was abstract and we want concrete

The method needs to do some additional work in the subclass

We can provide a better implementation for the subclass

65
Q

is a strong aggregation where the composed object is inside a single composite the composed object is usually created at the same time as the composite and can be deleted at the same time. In UML, in order to emphasize that this is stronger than aggregation , we use a black diamond instead of a white one

A

Composition

66
Q

Inheritance has some unique advantages :

A

It’s natural

It’s elegant

It allows us to write generic code - for example, code written to work for Fruit will also work for Apple and Pear

67
Q

However, inheritance suffers from the following problems :

A

It’s difficult to do well.

It’s difficult to change when you discover deficiencies in your design .

It’s more difficult for client programmers to understand .

The hierarchy leaks’ into client code, making it more difficult to change too.

68
Q

Composition achieves the same end result as inheritance. However, it has the following advantages:

A

It’s simpler to produce.

It’s easier to change.

It’s easier for clients to understand.

It doesn’t leak into client code

69
Q

also called implementation inheritance. This allows one class to inherit from another without the inherited elements becoming part of the new interface.

A

private inheritance

70
Q

a class is only allowed to have one parent. works well, which is why languages like Smalltalk and Java have nothing else.

A

Single inheritance

71
Q

where each class has any number of parents, is also possible.

A

multiple inheritance

72
Q

Advantages of multiple inheritance are that:

A

It is powerful.

It permits private inheritance.

It is closer to the real world.

It allows mix-in inheritance.

73
Q

Disadvantages of multiple inheritance are that:

A

It introduces complexity (for the designer and the client programmer ).

It causes name clashes

It causes repeated inheritance.

It makes compilers more difficult to write.

It makes (fast) run-time systems more difficult to write

74
Q

occur when elements with the same name, but different implementations are inherited via different routes.

A

Name clashes

75
Q

means inheriting the same element from more than one route.

A

Repeated inheritance

76
Q

A tool for code sharing and higher level modeling

A

Inheritence

77
Q

_________ can be grouped into more general concepts and a class can get (inherit) some of its characteristics from a _________.

A

Classes

parent class

78
Q

has at least one method without code; in a concrete class, all the methods contain lines of code

A

abstract class

79
Q

the way a business operates:

to specify what our new software system should be able to do:

A

business requirements modeling

system requirements modeling

80
Q

Showing relations between Buisness entities:

Shows how Buisness operates:

A

Domain model

Buisness model

81
Q

Can provide an illustration of use cases:

Interactions themselves and the order in which they take place:

A

Communication diagrams

Sequence diagram

82
Q

A circle standing a long a line represents a Buisness object or _________. It’s it is connected to a vertical bar it represents a ________-

A

Entity

Boundary

83
Q

any collaboration that we depict should be the ______________ through the use case.

When we deal with system use cases, we can be more specific about:

A

normal path

abnormal paths

84
Q

shows dependencies between (parallel) activities as we move from an initial starting point to a desired goal . They are similar to flow charts or Petri nets, traditionally

A

activity diagram

85
Q

black dot indicates the __________ point for the activity

a black dot inside a white circle indicates the ______ of the activity

a diamond represents a _____________ on a departing edge indicates the reason for following that edge;

thick black lines, known as ____________, are used to indicate the beginning and end of a set of concurrent actions

A

starting
end
decision
forks/joins

86
Q

___________ system, because we inherited it as part of the existing business.

A

legacy

87
Q

an informal description of how a group of use cases fit together:

A

use case survey

88
Q

Any actor can _____________ another actor

A

Specialize

89
Q

there are three kinds of relationship between use cases themselves: ____________, ___________, and ____________.

A

specializes, includes and extends.

90
Q

In order to avoid al sorts of complexity relating to the redefinition of steps and the addition of extra ones, can restrict ourselves to specializing:

A

abstract use cases

91
Q

In some cases, an extension is only allowed under certain conditions. We can show this by adding a UML _________ detailing the conditions.

A

comment

92
Q

Conditions in UML are expressed as constraints and may be stated in natural language, in pseudocode or in UML’s formal ____________________.

A

Object Constraint Language (OCL)

93
Q

Normally, a dashed line with an open-ended arrow in UML indicates a ______________- the source relies on the target in some way.

A

dependency

94
Q

Any ________________ (conditions that must be satisfied before the use case is carried out).

Any _______________ (conditions that are guaranteed after successful completion of the use case)

Any _____________ and what to do in each case (although the paths are abnormal, we include them if it’s important for us to specify the system’s reaction ).

Any _____________ that relate to this use case.

A

preconditions

postconditions

abnormal paths

nonfunctional requirements

95
Q

One useful scoring technique is traffic lights:

use cases must be implemented in the current increment failure to do so means that the project has failed to reach its minimum goals:

use cases are optional for the current increment and should only be attempted once the green use cases have been completed (they’re added bonuses that we can use to impress our sponsors). Any use case that is incomplete by the delivery date must be dropped completely (partial implementations look unprofessional ):

use cases won’t be implemented in the current increment even if time permitsthey’re outside the scope of the current increment and proper allowances are unlikely to have been made for them:

A

Green
Amber
Red

96
Q

________: System requirements, analysis, system design, subsystem design, specification implementation and testing should be complete for use cases in this group.

________: System requirements should be complete and analysis and system design should be complete, or nearly complete, for use cases in this groupsubsystem design, specification implementation and testing are optional.

________: System requirements should be complete for use cases in this groupanalysis is optional; system design should support these use cases ; subsystem design, specification implementation and testing should not be performed

A

Green
Amber
Red