System simple_cs = {
Component client = { Port send-request; Port err-trap; }
Component server = { Port receive-request; Port alert; }
Connector rpc = { Role caller; Role callee; }
Connector err = { Role source; Role sink; }
Attachment server.receive-request to rpc.callee;
Attachment client-request to rpc.caller;
Attachment client.err-trap to err.sink
Attachment server.alert to err.source
}
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