AAAAAAAAAAAAAAAAAAAAAAAA
How can informal graphical models be improved?
By adding semantics to the diagram editor through scripts
What does a Behavioral Viewpoints capture?
Capture the expected behavior of (parts of) a system
What is a concurrency viewpoint?
Captures how concurrency and threading will be managed in a system.
What does the "Cautions" relationship with Connector Dimension Interrelationships mean
Combinations may result in unstable or unreliable connectors
What are the 4 roles that need to be determined for a software connector?
Communication, coordination, conversion, facilitation
What is Koala Language for modeling?
Darwin-inspired notation for specifying product lines of embedded consumer-electronics devices
What does unit interconnection define?
Defines relations between system's unit. Units are the components and the basic unit relationship is a dependency.
What is syntactic interconnection?
Describes relationships among syntactic elements of programming languages
What are Static vs Dynamic aspect inconsistencies with Views?
Dynamic aspects (e.g. behavioral specifications) conflict with static aspects (topologies)
All connectors can be composed. True or False
False
It is feasible to capture everything we want to model in a single model or document. True or False
False
What is informal graphical modeling?
General diagrams produced in tools like Powerpoint
What are refinement inconsistencies with Views?
High-level (more abstract) and low-level (more concrete) views of the same parts of a system conflict
Views are consistent when?
If the design decisions they contain are compatible
Views are inconsistent when?
If two views assert design decisions that cannot simultaneously be true.
What is a model "viewpoint"
It is a concern (or criteria) in modeling
What is a model "View"
It is a subset of a model capturing certain design decisions
Types of Domain-and style-specific languages to Modeling (3)
Koala, Weaves, AADL
What is the one disadvantage to Koala?
Limited to structural specification with additional focus on interfaces.
Types of generic approaches to modeling (3)
Natural language, Powerpoint-style modeling, UML
What 4 properties of interaction does semantic interconnections ensures?
Robustness, reliability, security, availability
What are the 3 fundamental use cases for an Intent
Starting an activity, Start a service, delivering a broadcast
What type of interconnection is this: IM = ( {methods, types, variables, locations}, {"is def at", "is set at", "is used at", "is del from", "is changed to", "is added to"})
Syntactic
What are domain and style specific ADLs good for?
They are great for providing more advanced features and or reduced complexity.
What is an Implicit intent
They do not name a specific component, but instead declare a general action to perform, which allows a component from another app to handle it. For example, if you want to show the user a location on a map, you can use an implicit intent to request that another capable app show a specified location on a map.
How can Ambiguity in Natural Language be reduced?
Through the use of Templates where there are fill-in-the-black wordage (think behave tests)
Temporary inconsistencies are a natural part of exploratory design. True or False
True
There is a distinction between dynamic aspects of a model and a dynamic model. True or False
True
True or False: Android Runtime can run multiple virtual machines on low-memory devices by executing DEX files
True
TypeScript transcompiles to JavaScript. True or False
True
What does the "Prohibits" relationship with Connector Dimension Interrelationships mean
Two dimensions can never be composed into a single connector
What are Android System Apps?
a set of core apps for email, SMS messaging, calendars, internet browsing, contacts, and more.
What does Android Content Providers do
enable apps to access data from other apps, such as the Contacts app, or to share their own data
What does the Android Notification Manager do
enables all apps to display custom alerts in the status bar
What is a Linux Kernel?
foundation of the Android platform, security
When is a model ambiguous?
if it is open to more than one interpretation
What is a Service worker in a PWA?
is a background script that runs separately from your web page. Its main job is to respond to events (such as network requests) and push notices from your server. A service worker is on demand. Meaning it is only active when it gets an event and runs only as long as it needs to process it. Basically, it's a programmable proxy.
What is an Intent in Android
is a messaging object you can use to request an action from another app component.
What is Angular
is a platform and framework for building single-page applications (SPA) using HTML and TypeScript.
What is TypeScript?
is a primary language for Angular application development. It is a programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript and adds optional static typing to the language.
What is a progressive web application (PWA)?
is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser, including both desktop and mobile devices.
When is a model accurate?
is accurate if it is correct, conforms to fact, or deviates from correctness within acceptable limits
What is an Architectural Model?
is an artifact that captures some or all of the design decisions that comprise a system's architecture
What is Node.js
is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser.
What is Angular written in and who is it written by?
is written in TypeScript led by the Angular Team at Google and by a community of individuals and corporations. It implements core and optional functionality as a set of TypeScript libraries that you import into your apps.
What architecture style does Android closely resemble?
it closely resembles the Layered architecture style. In a Layered architecture style, the architecture is separated into layers, wherein a program in one layer may obtain services from a layer below it. The communication between the layers facilitates the completion of certain tasks like displaying a restaurants website, providing a map with the restaurant's location, or to call the restaurant.
What does the Android Activity Manager do
manages the lifecycle of apps and provides a common navigation back stack
What does the Android Resource Manager provide
provides access to non-code resources such as localized strings, graphics, and layout files
What is an Explicit Intent
specify which application will satisfy the intent, by supplying either the target app's package name or a fully-qualified component class name. You'll typically use an explicit intent to start a component in your own app, because you know the class name of the activity or service you want to start.
What architecture style does PWA use?
use the Client-Server Architecture Style. Newer web architectures use Client-side rendering where JavaScript runs in the browser and manipulates the DOM. The main advantage is that CSR can selectively re-render portions of the page when new data is received from server.
What does the "Restricts" relationship with Connector Dimension Interrelationships mean
1)Dimensions are not always required to be used together 2)Certain dimension combinations may be invalid
What are the 3 main characteristics of syntactic interconnections?
1)Finer-grain interconnections 2)Interconnections are static & dynamic 3)Incomplete interconnection specification
Prior to Android version 5.0, which runtime environment was used?
Dalvik
Types of early arch description languages (ADL) (3)
Darwin, Rapide, Wright
What type of interconnection is this : IM = ({files},{"include"})?
Unit
What is Architectural Modeling Notation?
is a language or means of capturing design decisions.
What is an example of direct inconsistencies with Views?
"The system runs on two hosts" and "the system runs on three hosts"
What are the advantages of Wright ADL ? (2)
1) Structural specification similar to Darwin or Rapide 2) Formal interface specifications can be translated automatically into CSP an analyzed with tools
What are the advantages to UMLs? (3)
1) Support for a diverse array of viewpoints focused on many common software engineering concerns 2) Ubiquity improves comprehensibility 3) Extensive documentation and tool support from many vendors
What does the "Requires" relationship with Connector Dimension Interrelationships mean
Choice of one dimension mandates the choice of another
In many systems a connector of multiple types may be required to service (a subset of) the components. True or False
True
Architectural models tend to be functional. Is it still important to capture the non-functional decisions even if they cannot be automatically or deterministically interpreted or analyzed? Yes or No
Yes
What is Architectural Modeling?
is the reification and documentation of design decisions that comprise a system's architecture
Android: View System refers to what?
is used for building an app's UI, including lists, grids, text boxes, buttons, and even an embeddable web browser
Describe semantic interconnections
-Expresses how system components are meant to be used -Component designers' intentions -Captures how system components are actually used -Component users' (i.e., system builders') intention -Interconnection semantics can be formally specified -Pre- & post-conditions
What are the 2 advantages of Koala
1) Advanced product-line features left you specify many systems in a single model 2) Direct mapping to implemented systems promotes design and code reuse
What are the disadvantages to Informal Graphical Modeling? (2)
1) Ambiguous 2) Cannot be effectively process or analyzed by machines
What are the disadvantages to Natural Language? (3)
1) Ambiguous 2) often verbose 3) Cannot be effectively processed by machines/software
What are examples of syntactic interconnections? (4)
1) Automated software change management 2) Static analysis e.g., Detection of unreachable code by compilers 3) Smart recompilation....Changes inside unit ->recompilation of only the changes 4) System modeling Finer level of granularity than unit-IM
What are semantic interconnections characteristics (3)
1) Builds on syntactic interconnections 2) Interconnections are static & dynamic 3) Complete interconnection specification
What are the advantages of informal Graphical Modeling (3)
1) Can be aesthetically pleasing 2) Size limitations 3) Extremely flexible due to large symbolic vocab
What are 3 considerations for choosing a Software Connector?
1) Determine its appropriate type(s) 2) Determine its dimensions of interest 3) Select appropriate values for each dimension
What are the advantages of Weaves (2)?
1) Extremely optimized notation (even simpler than darwin diagrams) 2) Close mapping to implemented systems
Describe examples of the functional and non-functional parts of the system that we model?
1) Functional "The system prints medical records" 2)Non-functional "The system prints medical records quickly and confidentially."
Well known Composite Connectors (4)
1) Grid Connectors 2) Peer to Peer Connectors 3) Client-Server Connectors 4) Event-Based Connectors
What are the disadvantages of Wright ADL (3)
1) High learning curve 2) No direct mapping to implemented systems 3) Addresses a small number of system properties relative to cost of use.
What are the advantages to Natural Language? (4)
1) Highly Expressive 2) Accessible to all stakeholders 3) Good for capturing non-rigorous or informal architectural elements like rationale or non-functional requirements 4) Plentiful tools available
What elements and constraints do we model? (5)
1) Inclusion of specific basic elements (e.g., components, connectors, interfaces) 2) Component, connector, and interface types 3) Constraints on interactions 4) Behavioral constraints 5) Concurrency constraints
What 4 things is semantic interconnections necessary for?
1) Large components 2) Complex interactions 3) Heterogeneity 4) Component reuse
What are the disadvantages to Darwin ADL? (2)
1) Limited usefulness beyond simple structural modeling 2) No notion of explicit connectors
What are 3 commonly used viewpoints? Describe them.
1) Logical - Captures the logical (often software) entities in a system and how they are interconnected. 2) Physical - Captures the physical (often hardware) entities in a system and how they are interconnected. 3) Deployment - Capture how logical entities are mapped onto physical entities.
What are the disadvantages to UMLs? (3)
1) Needs customization through profiles to reduce ambiguity 2) Difficult to assess consistency among views 3) Difficult to capture foreign concepts or views
What are the disadvantages of Rapide ADL? (3)
1) No natural or explicit mapping to implemented systems 2) high learning curve 3) important tool support is difficult to run on modern machines
What are 4 key features of Node.js
1) Open source --> is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser. 2) Server-side scripting --> lets developers use JavaScript to write command line tools and for server-side scripting - running scripts server-side to produce dynamic web page content before the page is sent to the user's web browser. 3) JavaScript everywhere --> represents a "JavaScript everywhere" paradigm, unifying web-application development around a single programming language, rather than different languages for server-side and client-side scripts. 4) Event-Driven Arch --> has an event-driven architecture capable of asynchronous I/O. These design choices aim to optimize throughput and scalability in web applications with many input/output operations, as well as for real-time Web applications.
What connector types does a composite Grid connector contain?
1) Procedure Calls 2) Data Access 3) Stream 4) Distributor
What is the advantages of Darwin ADL? (4)
1) Simple, straightforward mechanism for modeling structural dependencies 2) Interesting way to specify repeated elements through programmatic constructs 3) Can be modeled in pi-calculus for formal analysis 4) Can specify hierarchical structures
What Static and Dynamic aspects do we model? (2)
1) Static aspects of a system do not change as a system runs e.g., topologies, assignment of components/connectors to hosts 2) Dynamic aspects do change as a system runs e.g., State of individual components or connectors, state of a data flow through a system
What are the 3 software interconnection models?
1) Unit interconnection 2) Syntactic interconnection 3) Semantic interconnection
What are 2 key advantages of PWAs?
1) provide the same utilities as conventionally installed apps including offline web pages, push notifications and fast speed load times. 2) They work on-demand and are always accessible, without taking up a smart phone's valuable memory or data.
What are the advantages of the Rapide ADL? (2)
1) unique and expressive language for describing asynchronously communicating components 2) Tool-set supports simulation of models and graphical visualization of event traces
What are the 3 main characteristics of unit interconnections?
1)Coarse-grain interconnections 2)Interconnections are static 3)Does not describe component interactions (only dependencies)
How does Stakeholder Driven modeling work?
1)Stakeholders identify aspects of the system they are concerned about 2)Stakeholders decide the relative importance of these concerns 3)Modeling depth should roughly mirror the relative importance of concerns
Why are syntactic interconnections incomplete?
1)Valid syntactic interconnections may not be allowed by semantics 2)Operation ordering, communication transactions e.g., Pop on an empty stack 3)Violation of (intended) operation semantics e.g., Trying to use calendar add operation to add integers
What are the 2 questions to ask when determining the correct values for the different connector dimensions?
1)What are the appropriate values? 2)What values are imposed by your favorite programming language(s)?
How do we choose what to Architecturally Model? What 3 critical decisions do architects and stakeholders have to make?
1.What architectural decisions and concepts should be modeled, 2.At what level of detail, and 3.With how much rigor or formality
When is a model precise?
A model is precise if it is sharply exact or delimited
After Android 5.0, which runtime environment was used?
ART. Each app runs its own process with its own instance of ART
Types of Extensible architecture description languages
Acme, ADML, xADL
What is Weaves notation?
An architectural style and notation for modeling systems of small-grain tool fragments that communicate through data flows of objects
What connector types does a composite P2P connector contain? (4)
Arbitrator, Data Access, Stream, Distributor