Lecture 1: Overview of OOAD Flashcards

1
Q

What is a system?

A

• A set of components /activities to achieve an objective • Interacts with the environment (INO) • System cannot interact if there is a boundary

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

What is Software system complexity?

A

Consists of many properties of a software that may affect the internal interactions

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

What are the 5 problems in software system complexity?

A

• Developed by a team in a lengthy process • Difficult to document and test • Inconsistent and Incomplete • Can change • No fundamental laws to explain the change

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

4 Reasons for System Complexity

A
  1. • Nature of the problem domain (Complex requirements)
  2. • Complexity of process (Manage problems) (Need simplicity)
  3. • Software flexibility (Balanced distribution of responsibilities)
  4. • Characterising the behaviour of discrete systems (Difficult and numerous states)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Human limitations of Complex systems

A
  • Limitations of individuals
  • Poor communication between individuals
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

3 Abstraction that helps to understand

A
  1. Grouping
  2. Generalising
  3. Chunking
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the identification of sub-systems and Components?

A

Identification of sub-systems and components managing the model of system

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

System decomposition

A
  • Process-oriented of complex problems (Steps of functions. Broken down to understand the program)
  • Behavior of objects and data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

3 things that they are both valid?

A

• Stronger framework • Reuse of common abstractions • Resilient under change

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

What is a paradigm?

A

Shapes the way programmers design/organise and write programs

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

Name 2 kinds of paradigms

A

• Procedural • Object-oriented

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

What is a Procedural Paradigm?

A

• Consists of functions/methods with levels of scope- (Cannot be seen through the outer layer) • Calls using statement “Procedures”

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

Why is statement procedures good?

A

• Easier to read • Flexible • Good program design • Scope can be reused

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

What is object-oriented paradigm?

A

Models problem data and functions to interact using message passing

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

What is OO?

A

• Models and builds software systems o Supports + reps objects o Instances of classes used to interact with another program • Objects maps the problem domain o Collections of messages understood by an object

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

Advantages of OO

A

• Can be reused in other programs • Can “encapsulate” data by hiding or revealing • Flows freely back and forth

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

The flow of Procedural paradigm

A

Flows in one direction

18
Q

What is Object-oriented?

A

the paradigm we use to model software system

19
Q

OOAnalysis

A

What the system needs to do

20
Q

& Design

A

How the system shall do it

21
Q

What is OOAD used for?

A

Used to create models of software systems

22
Q

Representation of OO

A

Represents the interaction of objects

23
Q

Representation of OOAD

A

Specifics the software system and how it is built

24
Q

Representation of Model

A

important details from a particular perspective

25
Representation of UML
Visual syntax for object models
26
What is UML?
Visual modelling language • Supports business processes • Support CASE tools (Design, implementation/ software based system)
27
What does UML do?
• Unifies past techniques and experiences • Incorporates the best practice in software engineering
28
UML defines several domains:
* Historical methods and notations * Development life-cycle * Application domains * Implementing languages and platforms * Development processes
29
What does object and UML model?
Models a collection of objects that interacts with outside users
30
UML models 2 models
• Static “structure”: o Represents meaningful concepts o Their relationships • Dynamic “behaviour”: o Changes of the system overtime o Design the logic and behaviour in response to external events o Object interaction: Identifies objects needed through messages and methods
31
UML Structure
* Building blocks * Common mechanisms * Architecture
32
UML building blocks
• Things – Modelling elements • Relationships – Brought together • Diagrams = Collection of things • “Views” of models
33
4 Things in UML building blocks
• Structural things “nouns” of UML: o Class, interface, use case, active class • Behavioural things “Verbs” of UML o Interactions, state machines • Grouping things o Packages • Annotation things o Notes o Tagged values
34
Relationship
Captures meaningful semantic connections between things
35
List the 6 Structure "Static" diagrams
1. Class diagram 2. Composite structure diagram 3. Component diagram 4. Deployment diagram 5. Object diagram 6. Package diagram
36
List the 8 Behavioural “Dynamic” diagrams
1. Activity diagram 2. Interaction diagram 3. Use case diagram 4. State machine diagram 5. Sequence diagram 6. Communication diagram 7. Interaction Over view diagram 8. Timing diagram
37
Important diagrams (Old):
Use case diagram - Interaction with external actors Class diagram - Structure of code, hiding details
38
Important diagrams (New):
• Sequence diagram - Shows interaction with objects (messages are exchanged) • State machine - Shows how data is held by objects • Deployment diagram- Shows how software gets deployed on physical hardware • Component diagram – Software components
39
The Unified Process (UP)
An incremental software engineering process that describes how requirements are turned into software
40
Four phases of UP:
1. Inception 2. Elaboration 3. Construction 4. Transition
41
Five core workflows of iteration:
1. Requirements 2. Analysis 3. Design 4. Implementation 5. Test
42
Complete this Relationship table