Software Architecture

The set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral element into progressively larger subsystems and the architectural style that guides organization: these elements and their interfaces, their collaborations, and their composition.

-Verhoff
The software architecture of a deployed software is determined by those aspects that are the hardest to change.

LinesVisible Association

context LinesVisible inv:
	ViewPort : viewContents->size() =
	ViewPort : height.min(FileManager : document->size())

Displays Diagram

context LinesVisible inv:
	let topLineNumber = ScrollBar : handlePosition *
		FileManager : document->size()
	in ViewPort : viewContents = FileManager : document->
		subsequence(topLineNumber, topLineNumber + ViewPort: viewContents->size() - 1)

GUI

GUI toolkit(library) for textBrowser
-window
-scrollbar

File Manager
-some way to access the file’s contents
-provide a module that can retrieve a limited length, consecutive subsequence of the file’s lines.

ViewPort
-need to be able to display the textual content graphically

ScrollBar
-need to give the user some way to access different parts of the file

Use Cases
-three candidate structural elements
-behavior of the TextBrowser
-how the user will use the intended solution

Basic Concept: Why this application exist?
-> Re-text
– move handle
– change window(ViewPort) size

Analysis Model
– UML class-model diagram
– rectangle for classes
– Each rectangle is divided vertically
– Lines between the components denote relationships

Operation
– comprise those actions that the user can undertake to interact with the TextBrowser

Adrian Shaughnessy

“Having employed dozens of designers, I’ve never once taken into account a candidate’s academic qualification. I might take into account with design college, but I’m not swayed by the quality of degree.. I just know that too many good designers achieved poor grades at design school and it is always worth looking beyond academic marks.”
Adrian Shaughnessy

Definition of Scripts

Definition of Scripts
A causally coherent set of events.

1. Each event sets off, or causes, the next event.
2. The causal connections between events make sense.
3. The parts are actions or scenes in the world.

Restaurant Script
Script: restaurant
track: formal dining
props: tables, menu, check, money, F = food, P = place
roles: S = customer, W = waiter, C = cook, M = cashier, O = owner
entry: S is hungry, S has money
result: S has less money, O has more money, S is not hungry, S is pleased
scenes:

Thematic Role System

David went to the meeting with Ashok by car.

Thematic Role
verb : go
agent : David
coagent : Ashok
destination : meeting
conveyance : car

Prepositional Constraints
Preposition, Themantic Roles
by | agent, conveyance, location
for | beneficiary, duration
from | source
to | destination
with | coagent, instrument

e.g.
That was written by Ashok.
David went to New York by train
David stood by the statue.

formal logic

Why do we need formal logic?
Soundness: Only valid conclusions can be proven.
Completeness: All valid conclusions can be proven.

Vertebrate -> Bird -> Eagle, Bluebird, Penguin
If an animal has feathers, then it is a bird.
If an animal lays eggs and it files, then it is a bird.

Frame: How do we make sense of a sentence?

Ashok ate a frog.
subject: Ashok
object: a frog
time:
utensils:
object-alive: false
object-is: in-subject
subject-mood: happy

David ate a pizza at home:
subject: David
object: a pizza
time:
utensils:
object-alive: false
object-is: in-subject
subject-mood: happy

Angela ate lasagna with her dad last night at Olive Garden.
subject : Angela
object : lasagna
location : Olive Garden
time : night
utensils :
object-alive : false
object-is : in-subject
subject-mood : happy

Levels of Cognitive Architectures

Low Level <-> High Level
Hardware/Implementation Level(e.g. a brain, transister), Algrithm/Symbol Level(e.g. means-ends analysis, semantic networks), Task/Knowledge Level(e.g. selecting a pitch, playing baseball)

The layers of Watson: the physical computer searching and decision-making answering the inputted clue

Assumptions of a Cognitive Architecture
– Goal-oriented
– Rich, complex envrionment
– Significant knowledge
– Symbols and abstractions
– Flexible and function of the environment
– Learning

Architecture + Content = Behavior
Function for cognitive architectures: f:P* -> A
Percepts -> Action

SOAR
Procedural, Semantic, Episodic
-> Working Memory

Semantic Networks

A:B
x -> x :unchanged
y -> y :expanded
z -> z :deleted

lexically: nodes
structurally: directional links
semantically: application specific labels

Guards and prisonaers

similarity weight
5point for unchanged, 4 for reflected, 3 for rotated, 2 for scaled, 1 for deleted, 0 for shape changed