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
The flow of Procedural paradigm
Flows in one direction
What is Object-oriented?
the paradigm we use to model software system
OOAnalysis
What the system needs to do
& Design
How the system shall do it
What is OOAD used for?
Used to create models of software systems
Representation of OO
Represents the interaction of objects
Representation of OOAD
Specifics the software system and how it is built
Representation of Model
important details from a particular perspective
Representation of UML
Visual syntax for object models
What is UML?
Visual modelling language • Supports business processes • Support CASE tools (Design, implementation/ software based system)
What does UML do?
• Unifies past techniques and experiences • Incorporates the best practice in software engineering
UML defines several domains:
- Historical methods and notations
- Development life-cycle
- Application domains
- Implementing languages and platforms
- Development processes
What does object and UML model?
Models a collection of objects that interacts with outside users
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
UML Structure
- Building blocks
- Common mechanisms
- Architecture
UML building blocks
• Things – Modelling elements • Relationships – Brought together • Diagrams = Collection of things • “Views” of models
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
Relationship
Captures meaningful semantic connections between things
List the 6 Structure “Static” diagrams
- Class diagram 2. Composite structure diagram 3. Component diagram 4. Deployment diagram 5. Object diagram 6. Package diagram
List the 8 Behavioural “Dynamic” diagrams
- 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
Important diagrams (Old):
Use case diagram - Interaction with external actors Class diagram - Structure of code, hiding details
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
The Unified Process (UP)
An incremental software engineering process that describes how requirements are turned into software
Four phases of UP:
- Inception
- Elaboration
- Construction
- Transition
Five core workflows of iteration:
- Requirements
- Analysis
- Design
- Implementation
- Test
Complete this Relationship table

