Lecture 1: Overview of OOAD Flashcards
What is a system?
• A set of components /activities to achieve an objective • Interacts with the environment (INO) • System cannot interact if there is a boundary
What is Software system complexity?
Consists of many properties of a software that may affect the internal interactions
What are the 5 problems in software system complexity?
• 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
4 Reasons for System Complexity
- • Nature of the problem domain (Complex requirements)
- • Complexity of process (Manage problems) (Need simplicity)
- • Software flexibility (Balanced distribution of responsibilities)
- • Characterising the behaviour of discrete systems (Difficult and numerous states)
Human limitations of Complex systems
- Limitations of individuals
- Poor communication between individuals
3 Abstraction that helps to understand
- Grouping
- Generalising
- Chunking
What is the identification of sub-systems and Components?
Identification of sub-systems and components managing the model of system
System decomposition
- Process-oriented of complex problems (Steps of functions. Broken down to understand the program)
- Behavior of objects and data
3 things that they are both valid?
• Stronger framework • Reuse of common abstractions • Resilient under change
What is a paradigm?
Shapes the way programmers design/organise and write programs
Name 2 kinds of paradigms
• Procedural • Object-oriented
What is a Procedural Paradigm?
• Consists of functions/methods with levels of scope- (Cannot be seen through the outer layer) • Calls using statement “Procedures”
Why is statement procedures good?
• Easier to read • Flexible • Good program design • Scope can be reused
What is object-oriented paradigm?
Models problem data and functions to interact using message passing
What is OO?
• 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
Advantages of OO
• Can be reused in other programs • Can “encapsulate” data by hiding or revealing • Flows freely back and forth