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 }
Category: Design
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