Final Flashcards

1
Q

What are the 3 Object-Oriented Methods?

A

Object-Oriented Development (Booch), Object Modeling Technique (Rumbaugh), Object-Oriented SE (Jacobson)

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

What does UML stand for?

A

Unified Modeling Language, standard in system development, merges the 3 OO languages

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

What are 6 things UML is used for specifying/visualizing/documenting?

A

functions, entities with whom the software interacts, sequence of events during run-time for a function, classes & relationships, states of objects at run-time, physical architecture of the software

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

How are UML diagrams useful for stakeholders?

A

Stakeholders view the system from different perspectives using the set of UML diagrams that make up the system model

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

What are the 10 Common UML Diagrams?

A

Use case, Activity, Collaboration, Sequence, Class, Object, State Transition, Component, Deployment, Package

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

What are the 3 views for software systems?

A

Use case (interactions), static (structure), dynamic (behaviour)

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

What does the use case view describe?

A

Describes the functionality of the system from the user’s POV [use case diagram]

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

What does the static view describe?

A

Describes the entities of the system and their relationships [class, object, component, deployment, and package diagrams]

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

What does the dynamic view describe?

A

Describes the behaviour of the system (shows changes and progress) [state transition, activity, interaction (sequence and collaboration) diagrams]

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

What are UML tools used for?

A

Drawing UML diagrams, fixing errors, some code generation (in Java and C++)

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

What does OMG stand for?

A

Object Management Group

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

What are the Object-Oriented Concepts with UML?

A

Abstraction, Information Hiding, Inheritance, Polymorphism, Composition, Strong Cohesion, Loose Coupling

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

What is Abstraction?

A

Details are ignored

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

What is Information Hiding?

A

Details are hidden

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

What is Inheritance?

A

Reusability through specialization

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

What is Polymorphism?

A

Many forms

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

What is Composition?

A

Larger classes

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

What is Strong Cohesion?

A

One responsibility

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

What is Loose Coupling?

A

Low dependency

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

What is the object-oriented approach?

A

Focus on both data and actions, system state is decentralized, system viewed as a collection of interacting objects, objects communicate via message passing (method invocation)

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

What does a use case diagram include?

A

Functions of the system (set of use cases) and who will interact with them (actors [initiating and benefiting]), and relationships (extension, inclusion, inheritance)

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

What needs to be included in a use case diagram?

A

Pre-conditions, primary scenario, alternate scenarios, post-conditions

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

What is a scenario?

A

A sequence of related actions performed by the actor and system

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

What are the 3 Types of use case relationships?

A

Inclusion, Extension, Inheritance

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

What is Inclusion in use case relationships?

A

Reuse one use case’s actions inside another use case (behaviour factored out)

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

What is Extension in use case relationships?

A

Additional behaviour performed under certain conditions

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

What is Inheritance in use case relationships?

A

Inherit the behaviour of a parent use case and replace some actions

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

What is Generalization?

A

Inheritance among actors

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

What does a Sequence diagram describe?

A

Describe the dynamic behaviour between objects: runtime communication

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

What is the syntax of a Sequence diagram?

A

Actor, objects, boxes (time needed by an object to complete a task), messages, lifeline

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

What is a Sequence fragment?

A

Grouping of actions with an operator (alt, opt, loop)

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

What is a Petri Net used for?

A

Specifying and verifying concurrent systems. Used to model and test the behaviour of complex processes.

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

What is improved with concurrent processing?

A

Time-efficiency

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

What are two problems of concurrency?

A

Starvation and deadlock

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

What is Starvation?

A

A process is denied a resource for a long time. Enabled transitions that do not fire

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

What is Deadlock?

A

No progress is possible in the system. No enabled transitions.

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

What is Liveness?

A

A deadlock can never occur - opposite of deadlock

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

What are the characteristics of a Petri Net?

A

Directed, weighted graph defined with: places (input/output), transitions, input and output arcs, and tokens

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

What is a PN state?

A

The marking of its places

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

What is marking in a PN?

A

The distribution of tokens in a net (number of tokens in a place)

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

What is the initial marking of a PN?

A

Indication of where the tokens are initially. Format: <P1(2), P2(1)>

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

When is a transition enabled in a PN?

A

When there is at least one token in each of its input places

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

What is a ‘firing sequence’ for a PN?

A

The order of transitions to be executed <t1, t2, …, tn>

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

What happens when a transition fires?

A

One token is removed from each input place and one token is inserted in each output place.

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

Describe the execution of a PN.

A
  1. Establish initial marking, 2. Select an eligible (enabled) transition. The choice is non-deterministic., 3. Executing the selected transition, 4. Repeating steps 2 and 3.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

What is the difference between a Deterministic and Non-deterministic choice?

A

Deterministic: Single possible outcome, Non-deterministic: Multiple possible outcomes

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

What happens when an input/output arc has a weight?

A

The arc’s weight determines how many tokens are required for the input or output.

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

What is a Parallel transition?

A

Firing of one transition does not prevent the other from executing

49
Q

What is a Conflicting transition (mutual exclusion)?

A

Firing of one transition prevents the other from executing (a resource is available for only one transition)

50
Q

What are the characteristics of advanced PNs?

A

Prioritized, coloured, timed

51
Q

What is a Prioritized PN?

A

Transitions are assigned priority

52
Q

What is a Coloured PN?

A

Different colours represent different data values or entities

53
Q

What is a Timed PN?

A

Transitions are assigned time constraints that limit when the transition can fire

54
Q

What does a Class diagram show?

A

Shows the structure of the software, identifies classes and relationships

55
Q

What is a register in a class diagram?

A

Classes connected via an association

56
Q

What are the 3 parts of a class?

A

Data, control (set of operations), responsibility

57
Q

What are the 3 Levels of access/visibility?

A

Public (+): directly accessed by other classes, Protected (#): directly accessed by derived classes, Private (-): only accessed by the class

58
Q

What do class diagram responsibilities describe?

A

Describes what a class has to do

59
Q

What does OCL stand for?

A

Object Constraint Language

60
Q

What are Constraints in OCL?

A

A text or formula attached to a class, operation, attribute, or association

61
Q

What are the 5 types of relationships between classes?

A

Generalizations (inheritance), dependencies, associations, aggregations & compositions, realizations

62
Q

What is Class generalization/inheritance?

A

Parent class (superclass) is more general than child class (subclass). We can have both single or multiple inheritance

63
Q

What is a Root/base class?

A

Class without a parent

64
Q

What are Leaf classes?

A

Class without children

65
Q

What are the two types of classes?

A

Abstract and concrete

66
Q

What is an Abstract class?

A

Used specifically for inheritance and do not provide any objects (cannot be directly instantiated)

67
Q

What is the Association of classes?

A

Name, direction of relationship, role of each class, multiplicity

68
Q

What is Multiplicity?

A

One object of a class is related to some objects of the associated class

69
Q

What is Aggregation?

A

The relationship between the whole (aggregate) and the parts (components). ‘Has-a’ relationship.

70
Q

What is Composition?

A

A strong aggregation where the component belongs to exactly one rule and has no purpose without the rule.

71
Q

What does an Object diagram show?

A

How instances of classes are linked to each other at runtime. Assists stakeholders in understanding important/complex classes & relationships

72
Q

What is a link in an object diagram?

A

An instance of an association; connects objects

73
Q

What is a State Transition Diagram?

A

(a.k.a. State Chart Diagrams) Used to understand the behaviour of important and complex classes

74
Q

What does a Component diagram show?

A

The structure of the source code. Shows the components (code, data file, and executable) and their dependencies

75
Q

What does a Deployment diagram describe?

A

Describes the physical architecture of the application.

76
Q

What does the physical architecture of an application consist of?

A

Various hardware devices (nodes) and their connections, represented by the association relationship.

77
Q

What is a package?

A

Group of diagram elements that can be used to decompose a complex system into subsystems. Used to increase readability and decrease complexity.

78
Q

What is used to reduce ambiguities in a diagram?

A

Attaching notes to attributes, operations, constraints, classes, relationships, etc.

79
Q

What is a stereotype in diagrams?

A

Organizes operations and attributes to make the class more readable. Format: string enclosed in double-angle brackets.

80
Q

What does FSM stand for?

A

Finite State Machine

81
Q

What is an FSM?

A

A graphical model showing the dynamic behaviour of a system. A directed graph with a set of states and a set of transitions that model synchronous systems.

82
Q

What are possible applications of FSMs?

A

Compilers, automata theory, communication protocols, hardware digital circuits, games

83
Q

What are the components of an FSM?

A

A finite set of states (Q), finite set of transitions (I), the transition function 𝛌: Q*I → Q, initial state (Q0 ∈ Q), and set of final/accept states (F ⊆ Q)

84
Q

What are the two modes for FSM?

A

Acceptive mode and Generative mode

85
Q

What is an Acceptive mode FSM?

A

To check if sequence transitions are valid or not

86
Q

What is a Generative mode FSM?

A

The machine will generate a goal word as part of the language, or generally speaking, it will generate valid sequence transitions.

87
Q

What is a Deterministic FSM?

A

No state has more than one transition with the same label

88
Q

What are the differences between a Petri Net and an FSM?

A

Petri Nets can fire transitions in parallel, check correctness, check concurrency properties like deadlock or starvation, and are smaller graphs. FSMs can fire one transition at a time, check correctness, have no concurrency properties and are usually larger in scale (more states)

89
Q

Why is software management critical for the success of software projects?

A

It ensures the project is completed on time, within budget, and meets all requirements. Poor management practices often lead to project failure.

90
Q

What are the main activities involved in software management?

A
  • Planning and scheduling development tasks
  • Estimating costs
  • Assigning tasks to developers
  • Monitoring project progress
91
Q

When does software management occur during a project?

A

Software management is a continuous activity from the first development task to the delivery of the software.

92
Q

What are the main constraints software management must address?

A
  • Budget
  • Deadlines
  • Changing requirements
93
Q

What are the 5 main components of a software project plan?

A
  • Project Objectives
  • Software Functionalities
  • Software Size
  • Deliverables
  • Stakeholder assignments
94
Q

What are the three main parts of the software process?

A

Feasibility study, software management, and project execution.

95
Q

What graphical tools are commonly used for planning and scheduling in software management?

A

Charts for planning and Gantt charts for scheduling.

96
Q

How does a manager organize and communicate within a development team?

A

By assigning tasks based on expertise, overseeing collaboration, and facilitating communication between stakeholders.

97
Q

What is the role of a manager in handling risks in software management?

A

Identify risks, assess their probabilities and severity, and prioritize addressing the most damaging risks first.

98
Q

What are common types of risks in software projects?

A
  • Requirement-related risks
  • Technology-related risks
  • Cost estimation risks
99
Q

What is the goal of quality assurance in software management?

A

To ensure that documents meet stated requirements and company standards, preventing issues and guaranteeing high-quality outputs.

100
Q

What is the most challenging management activity, and what model is used for it?

A

Budget estimation is the most challenging. The COCOMO model is commonly used for cost estimation.

101
Q

What is the goal of monitoring and reporting in software management?

A

To track project progress, ensure tasks align with the plan, and inform stakeholders through progress reports.

102
Q

What balance does a software manager aim to achieve in a project?

A

A compromise between cost, time and quality.

103
Q

Why must a manager account for changing requirements in software projects?

A

Changes can significantly impact the project plan, budget and timeline.

104
Q

How does organizing tasks in parallel benefit software projects?

A

It increases developer productivity by reducing idle time and maximizing resource utilization.

105
Q

What is the manager’s role in stakeholder communication?

A

To oversee collaboration, ensure clear communication, and address concerns to maintain project alignment.

106
Q

Examples of risks in software development

A
  • unclear requirements
  • adopting new or untested technology
  • inaccurate budget or time estimations
107
Q

What does understanding task dependencies achieve in software management?

A

It helps in scheduling tasks efficiently, ensuring prerequisite tasks are completed first.

108
Q

How is quality assurance defined in software management?

A

A set of procedures to verify that documents and deliverables meet requirements and standards.

109
Q

Name a tool often used for task scheduling in software management.

A

Gantt charts.

110
Q

Why is software management considered continuous?

A

Because it spans from the initial development tasks to the final software delivery.

111
Q

What compromises must a software manager make?

A

Between the project cost, delivery time and product quality.

112
Q

Why is estimating software size crucial in project management?

A

To determine the effort and time required for development.

113
Q

What does the COCOMO model estimate?

A

The total cost of developing software based on resource identification.

114
Q

What should a manager do when problems arise in scheduling?

A

Update the schedule to reflect new priorities and address delays.

115
Q

Why are stakeholder assignments included in the project overview?

A

To ensure everyone knows their roles and responsibilities in the project.

116
Q

Why is technical documentation important during planning?

A

It outlines techniques, tools, and standards for development tasks, ensuring consistency.

117
Q

How does quality assurance prevent issues in software projects?

A

By establishing standards and checking compliance throughout development.

118
Q

How does monitoring contribute to successful software management?

A

It ensures tasks are completed according to the plan and identifies potential delays early.