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
What is Inclusion in use case relationships?
Reuse one use case's actions inside another use case (behaviour factored out)
26
What is Extension in use case relationships?
Additional behaviour performed under certain conditions
27
What is Inheritance in use case relationships?
Inherit the behaviour of a parent use case and replace some actions
28
What is Generalization?
Inheritance among actors
29
What does a Sequence diagram describe?
Describe the dynamic behaviour between objects: runtime communication
30
What is the syntax of a Sequence diagram?
Actor, objects, boxes (time needed by an object to complete a task), messages, lifeline
31
What is a Sequence fragment?
Grouping of actions with an operator (alt, opt, loop)
32
What is a Petri Net used for?
Specifying and verifying concurrent systems. Used to model and test the behaviour of complex processes.
33
What is improved with concurrent processing?
Time-efficiency
34
What are two problems of concurrency?
Starvation and deadlock
35
What is Starvation?
A process is denied a resource for a long time. Enabled transitions that do not fire
36
What is Deadlock?
No progress is possible in the system. No enabled transitions.
37
What is Liveness?
A deadlock can never occur - opposite of deadlock
38
What are the characteristics of a Petri Net?
Directed, weighted graph defined with: places (input/output), transitions, input and output arcs, and tokens
39
What is a PN state?
The marking of its places
40
What is marking in a PN?
The distribution of tokens in a net (number of tokens in a place)
41
What is the initial marking of a PN?
Indication of where the tokens are initially. Format:
42
When is a transition enabled in a PN?
When there is at least one token in each of its input places
43
What is a 'firing sequence' for a PN?
The order of transitions to be executed
44
What happens when a transition fires?
One token is removed from each input place and one token is inserted in each output place.
45
Describe the execution of a PN.
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.
46
What is the difference between a Deterministic and Non-deterministic choice?
Deterministic: Single possible outcome, Non-deterministic: Multiple possible outcomes
47
What happens when an input/output arc has a weight?
The arc's weight determines how many tokens are required for the input or output.
48
What is a Parallel transition?
Firing of one transition does not prevent the other from executing
49
What is a Conflicting transition (mutual exclusion)?
Firing of one transition prevents the other from executing (a resource is available for only one transition)
50
What are the characteristics of advanced PNs?
Prioritized, coloured, timed
51
What is a Prioritized PN?
Transitions are assigned priority
52
What is a Coloured PN?
Different colours represent different data values or entities
53
What is a Timed PN?
Transitions are assigned time constraints that limit when the transition can fire
54
What does a Class diagram show?
Shows the structure of the software, identifies classes and relationships
55
What is a register in a class diagram?
Classes connected via an association
56
What are the 3 parts of a class?
Data, control (set of operations), responsibility
57
What are the 3 Levels of access/visibility?
Public (+): directly accessed by other classes, Protected (#): directly accessed by derived classes, Private (-): only accessed by the class
58
What do class diagram responsibilities describe?
Describes what a class has to do
59
What does OCL stand for?
Object Constraint Language
60
What are Constraints in OCL?
A text or formula attached to a class, operation, attribute, or association
61
What are the 5 types of relationships between classes?
Generalizations (inheritance), dependencies, associations, aggregations & compositions, realizations
62
What is Class generalization/inheritance?
Parent class (superclass) is more general than child class (subclass). We can have both single or multiple inheritance
63
What is a Root/base class?
Class without a parent
64
What are Leaf classes?
Class without children
65
What are the two types of classes?
Abstract and concrete
66
What is an Abstract class?
Used specifically for inheritance and do not provide any objects (cannot be directly instantiated)
67
What is the Association of classes?
Name, direction of relationship, role of each class, multiplicity
68
What is Multiplicity?
One object of a class is related to some objects of the associated class
69
What is Aggregation?
The relationship between the whole (aggregate) and the parts (components). 'Has-a' relationship.
70
What is Composition?
A strong aggregation where the component belongs to exactly one rule and has no purpose without the rule.
71
What does an Object diagram show?
How instances of classes are linked to each other at runtime. Assists stakeholders in understanding important/complex classes & relationships
72
What is a link in an object diagram?
An instance of an association; connects objects
73
What is a State Transition Diagram?
(a.k.a. State Chart Diagrams) Used to understand the behaviour of important and complex classes
74
What does a Component diagram show?
The structure of the source code. Shows the components (code, data file, and executable) and their dependencies
75
What does a Deployment diagram describe?
Describes the physical architecture of the application.
76
What does the physical architecture of an application consist of?
Various hardware devices (nodes) and their connections, represented by the association relationship.
77
What is a package?
Group of diagram elements that can be used to decompose a complex system into subsystems. Used to increase readability and decrease complexity.
78
What is used to reduce ambiguities in a diagram?
Attaching notes to attributes, operations, constraints, classes, relationships, etc.
79
What is a stereotype in diagrams?
Organizes operations and attributes to make the class more readable. Format: string enclosed in double-angle brackets.
80
What does FSM stand for?
Finite State Machine
81
What is an FSM?
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
What are possible applications of FSMs?
Compilers, automata theory, communication protocols, hardware digital circuits, games
83
What are the components of an FSM?
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
What are the two modes for FSM?
Acceptive mode and Generative mode
85
What is an Acceptive mode FSM?
To check if sequence transitions are valid or not
86
What is a Generative mode FSM?
The machine will generate a goal word as part of the language, or generally speaking, it will generate valid sequence transitions.
87
What is a Deterministic FSM?
No state has more than one transition with the same label
88
What are the differences between a Petri Net and an FSM?
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
Why is software management critical for the success of software projects?
It ensures the project is completed on time, within budget, and meets all requirements. Poor management practices often lead to project failure.
90
What are the main activities involved in software management?
- Planning and scheduling development tasks - Estimating costs - Assigning tasks to developers - Monitoring project progress
91
When does software management occur during a project?
Software management is a continuous activity from the first development task to the delivery of the software.
92
What are the main constraints software management must address?
- Budget - Deadlines - Changing requirements
93
What are the 5 main components of a software project plan?
- Project Objectives - Software Functionalities - Software Size - Deliverables - Stakeholder assignments
94
What are the three main parts of the software process?
Feasibility study, software management, and project execution.
95
What graphical tools are commonly used for planning and scheduling in software management?
Charts for planning and Gantt charts for scheduling.
96
How does a manager organize and communicate within a development team?
By assigning tasks based on expertise, overseeing collaboration, and facilitating communication between stakeholders.
97
What is the role of a manager in handling risks in software management?
Identify risks, assess their probabilities and severity, and prioritize addressing the most damaging risks first.
98
What are common types of risks in software projects?
- Requirement-related risks - Technology-related risks - Cost estimation risks
99
What is the goal of quality assurance in software management?
To ensure that documents meet stated requirements and company standards, preventing issues and guaranteeing high-quality outputs.
100
What is the most challenging management activity, and what model is used for it?
Budget estimation is the most challenging. The COCOMO model is commonly used for cost estimation.
101
What is the goal of monitoring and reporting in software management?
To track project progress, ensure tasks align with the plan, and inform stakeholders through progress reports.
102
What balance does a software manager aim to achieve in a project?
A compromise between cost, time and quality.
103
Why must a manager account for changing requirements in software projects?
Changes can significantly impact the project plan, budget and timeline.
104
How does organizing tasks in parallel benefit software projects?
It increases developer productivity by reducing idle time and maximizing resource utilization.
105
What is the manager’s role in stakeholder communication?
To oversee collaboration, ensure clear communication, and address concerns to maintain project alignment.
106
Examples of risks in software development
- unclear requirements - adopting new or untested technology - inaccurate budget or time estimations
107
What does understanding task dependencies achieve in software management?
It helps in scheduling tasks efficiently, ensuring prerequisite tasks are completed first.
108
How is quality assurance defined in software management?
A set of procedures to verify that documents and deliverables meet requirements and standards.
109
Name a tool often used for task scheduling in software management.
Gantt charts.
110
Why is software management considered continuous?
Because it spans from the initial development tasks to the final software delivery.
111
What compromises must a software manager make?
Between the project cost, delivery time and product quality.
112
Why is estimating software size crucial in project management?
To determine the effort and time required for development.
113
What does the COCOMO model estimate?
The total cost of developing software based on resource identification.
114
What should a manager do when problems arise in scheduling?
Update the schedule to reflect new priorities and address delays.
115
Why are stakeholder assignments included in the project overview?
To ensure everyone knows their roles and responsibilities in the project.
116
Why is technical documentation important during planning?
It outlines techniques, tools, and standards for development tasks, ensuring consistency.
117
How does quality assurance prevent issues in software projects?
By establishing standards and checking compliance throughout development.
118
How does monitoring contribute to successful software management?
It ensures tasks are completed according to the plan and identifies potential delays early.