ACME

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

Affordances

Affordances
-right size
-flip it
-throw it
-hide behind it

conceptual model
signified

most interesting solution comes out most interesting question.

good conceptual model <-> inaffective conceptual model

Quantitative:Quantitative data are things you measure as numbers such as temperature, money, and the number of scratches from your cat. You can split quantitative data into two groups, continuous and discrete.

Qualitative:Qualitative data is descriptive information about things that can’t be quantified with numbers, like male/female and hair color. These are categorical data, data that indicates belonging to a category or group. Often you’ll want to group your data by the categories and compare them.

Representing data with visual elements
Dots, Lines, Bars, Color

Google and iOS Design

Google Design
https://design.google.com/

Apple accessibility
https://developer.apple.com/accessibility/ios/

W3C Web content accessibility guideline
https://www.w3.org/TR/WCAG20/

Key thing is accessibility
-> try to make product accessible and useful

mobile
-> touch screen
-> color contrast ratio