-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathse464.txt
More file actions
1804 lines (1124 loc) · 44.6 KB
/
se464.txt
File metadata and controls
1804 lines (1124 loc) · 44.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
* What is the Software Architecture?
The set of principal design decisions about the system.
* Generally, what is architecture?
The parts of a system that would be difficult to change once the system is
built.
* What are the 3 primary dimensions that architectures capture?
- Structure
- Communication
- Nonfunctional requirements
* What is Software Architecture about?
- Communication
- "What parts are there?"
- "How the parts fit together."
* What is Software Architecture not about?
- Development
- Algorithms
- Data structures
* What are the 5 steps of the design process?
1. Ideation
2. Analysis
a. Determine Criteria
b. Apply Criteria
3. Selection
4. Elaboration/Refinement
5. Iteration
* Why is building software hard?
- Young field
- High user expectations
- Software cannot execute independently
* What are the two types of difficulties?
Incidential and essential.
* What are incidental difficulties?
Problems that can be overcome.
* What are essential difficulties?
Problems that cannot be easily overcome.
* What are some examples of essential difficulties?
- Complexity: Grows non-linearly with program size.
- Conformity: System is dependent on its environment
- Changeability: Perception that software is easily modified.
- Intangibility: Not constrained by physical laws.
* What are some of the ways to tackle the problem of complexity?
- High-level languages
- Development tools and environments
- Component-based reuse
- Development strategies
- Emphasizing design
# Properties
* What are "principal" design decisions?
Decisions so important that they are granted "architectural status".
* What is a prescriptive architecture?
The design decisions made prior to the system's construction.
(As-conceived or as-intended architecture.)
* What is descriptive architecture?
Describes how the system has been built.
The "as-implemented" or "as-realized" architecture.
* What are some reasons why a system's descriptive architecture is directly modified?
- Developer sloppiness.
- Perception of short deadlines which prevent thinking through and documenting.
- Lack of documented prescriptive architecture.
- Need or desire for code optimizations.
- Inadequate techniques or tool support.
* What are the two ways that architectural degradation can occur?
- Architectural drift
- Architectural erosion
* What is architectural drift?
Introduction of principal design decisions into a system's descriptive
architecture that:
- Are not included in, encompassed by, or implied by the prescriptive
architecture.
- But which do not violate any of the prescriptive architecture's design
decisions.
* What is architectural erosion?
Introduction of principal design decisions into a system's descriptive
architecture that violate its prescriptive architecture.
* What is architectural recovery?
The process of determining a software system's architecture from its
implementation-level artifacts.
* What are some examples of implementation-level artifacts w.r.t architectural recovery?
- Source code
- Executable files
- Java .class files
* What 3 elements should a software system's architecture be composed of?
- Processing
- Data, aka state
- Interaction
* What are software components?
Elements that encapsulate processing and data in a system's architecture.
* What is the definition of a software component?
An architectural entity that:
- Encapsulates a subset of the system's functionality and/or data.
- Restricts access to that subset via an explicitly defined interface.
- Has explicitly defined dependencies on its required execution context.
* What do software components usually provide?
Application-specific services.
* What, in complex systems, can become more important and challenging?
Interaction
* What is a software connector?
An architectural building block tasked with effecting and regulating
interactions among components.
* What do software connectors typically provide?
Application-independent interaction facilities.
* What are some examples of connectors?
- Procedure call
- Shared memory
- Message passing
- Streaming
- Distribution
- Wrapper/adaptor
* What are software configurations?
A set of specific associations between the components and connectors of a
software system's architecture.
Also called topology.
* What are possible assessment dimensions for the deployment view of a system?
- Available memory
- Power consumption
- Required network bandwidth
* What are the two main topological goals?
- Minimize coupling between components.
- The less components know about each other, the better.
- Maximize cohesion within each component.
- Components should be responsible for a single, logical service.
* What is abstraction?
Focusing on key details while eliding extraneous detail.
* What are some ways abstraction is used in software?
- Control abstraction (e.g. structured programming)
- Data abstraction (e.g. abstract data types)
* What is decomposition?
- Break problem into independent components
- Describe each component
Top-down abstraction.
* What are some criteria for decomposition?
- Implementing teams
- Application domains
- Parallelization
* What is Conway's Law?
The structure of a software system reflects the structure of the organization
that built it.
* What is software architecture fundamentally about?
Facilitating technical communication between stakeholders.
* What are the 3 properties of architectural representations?
- Ambiguity: Open to more than one interpretation?
- Accuracy: Correct with tolerances
- Precision: Consistent but not necessarily correct
* What is an architecture model?
An artifact documenting some or all of the architectural design decisions
about a system.
* What is an architecture visualization?
A way of depicting some or all of the architectural design decisions about a
system to a stakeholder.
* What is an architecture view?
A subset of related architectural design decisions.
* What does a component diagram capture or record?
Components and relationships.
Required and provided APIs.
* What does a sequence diagram focus on or capture?
Inter-component collaboration.
Behaviour of specific runtime scenarios.
* What does a deployment diagram provide?
Mapping between components and physical devices.
* What is a statechart diagram?
More formal description of system behaviour.
Poor mapping between states and components.
# F and NF properties
* What are functional properties?
What the system is supposed to do. ("The system shall do X")
* What are non-functional properties?
What the system is supposed to be ("The system shall be X");
* What are some examples of non-functional properties?
- Efficiency
- Scalability
- Adaptability
- Complexity
- Heterogeneity
- Dependability
* What is the relation between FPs and NFP w.r.t success of a product?
Engineering products are generally sold based on their FPs.
The system's success ultimately rests on its NFPs.
* What are the challenges of designing NFPs?
- Only partially understood in many domains.
- Qualitative vs quantitative.
- Frequently multi-dimensional
- Non-technical pressures
* What are the 5 design guidelines for ensuring NFPs?
- Only guidelines, not laws or rules.
- Promise but do not guarantee a given NFP.
- Necessary but not sufficient for a given NFP.
- Have many caveats and exceptions.
- Many trade-offs are involved.
* What is efficiency w.r.t NFPs?
A quality that reflects a system's ability to meet its performance requirements.
* How can one design components to be efficent?
- Keep them "small"
- Simple and compact interfaces.
- Allow multiple interfaces to the same functionality
- Separate data from processing components.
- Separate data from metadata.
* How can one design connectors to be efficient?
- Carefully select connectors.
- Be careful of broadcast connectors
- Encourage asynchronous interaction.
- Be wary of location/distribution transparency.
* How can one design the topology to be efficient?
Keep frequent collaborators "close".
Consider the efficiency impact of selected styles.
* What is scalability?
The capacity of a system to be adapted to meet new size/scope requirements.
* What is heterogeneity?
The system's ability to be composed of, or execute within, disparate parts.
* What is portability?
The ability of a system to execute on multiple platforms while retaining
their functional and non-functional properties.
* How can one design components to be scalable/heterogenic?
- Keep components focused.
- Simplify interfaces.
- Avoid unnecessary heterogeneity
- Distribute data sources
- Replicate data
* How can one design connectors to be scalable/heterogenic?
- Use explicit connectors
- Choose the simplest connectors
- Direct vs. indirect connectors
* How can one design the topology to be scalable/heterogenic?
- Avoid bottlenecks
- Place data close to consumer
- Location transparency
* What is evolvability?
The ability to change to satisfy new requirements and environments.
* How can one design components for evolvability?
- Same as for complexity
- Reduce risks by isolating modifications
* How can one design connectors for evolvability?
- Clearly define responsibilities
- Make connectors flexible
* How can one design the topology for evolvability?
- Avoid implicit connectors
- Encourage location transparency
* What are the three parts of dependability?
- Reliability: The probability a system will perform within its design limits
without failure over time.
- Availability: The probability the system is available at a particular instant
in time
- Robustness: The ability of a system to respond adequately to unanticipated
runtime conditions.
* What is fault-tolerance?
The ability of a system to respond gracefully to failures at runtime.
* Where can faults arise from at runtime?
- Environment
- Components
- Connectors
- Component-connector mismatches
* What is survivability?
The ability to resist, recover, and adapt to threats.
* What are sources of threats w.r.t survivability?
- Attacks
- Failures
- Accidents
* What are the steps for combatting threats?
Resist, recognize, recover, adapt.
* What is safety w.r.t dependability?
The ability to avoid failures that will cause loss of life, injury, or loss
to property.
* How can one design components for dependability?
- Control external component dependencies
- Support reflection
- Support exception handling
* How can one design connectors for dependability?
- Use explicit connectors
- Provide integration guarantees
* How can one design the topology for dependability?
- Avoid single points of failure
- Enable back-ups
- Support system health monitoring
- Support dynamic adaptation
* FP or NFP: "Clicking the approve button moves the request to the Approval Workflow"
FP
* FP or NFP: "Field 2 only accepts dates before the current date."
FP
* FP or NFP: "The system must handle 1,000 transactions per second."
NFP
* FP or NFP: "Screen 1 can print on-screen data to the printer."
FP
* FP or NFP: "The system must have less than 1hr downtime per 3 months."
NFP
* FP or NFP: "Source code should contain no more than X bugs per 10K LOC."
NFP
# Architectural Styles
* What is an architectural pattern?
A set of architectural design decisions that are applicable to a recurring
design problem, and parameterized to account for different software development
contexts in which that problem appears.
* What is the three-tiered architectural pattern?
Composed of three tiers:
- Front tier: Contains the user interface functionality to access the system's
services
- Middle tier: Contains the application's major functionality
- Back tier: Contains the application's data access and storage functionality.
* What is the Model-View-Controller architectural pattern?
Model: Encapsulation of information.
View: Encapsulation of display choices.
Controller: Encapsulation of interaction semantics.
* What is the Sense-Compute-Control architectural pattern?
1. Read all sensor values
2. Compute control outputs
3. Send controls to all actuators
* What is an architectural style?
A named collection of architectural design choices that:
- Are applicable in a given development context.
- Constrain architectural design decisions that are specific to a particular
system with that context.
- Elicit beneficial qualities in each resulting system.
* What are 4 good properties of an architecture?
- Result in a consistent set of principled techniques.
- Resilient in the face of (inevitable) changes.
- Source of guidance through product lifetime.
- Reuse of established engineering knowledge.
* What is the difference between "pure" architectural styles and their use in practice?
Pure architectural styles are rarely used. Instead, systems in practice:
- Regularly deviate from pure styles
- Typically feature many architectural styles.
* What are the benefits of using architectural styles?
- Design reuse
- Code reuse
- Understandability of system organization
- Interoperability
- Style-specific analyses
- Visualizations
* What are some architectural style analysis dimensions?
- What is the design vocabulary? (Component and connector types)
- What are the allowable structural properties?
- What is the underlying computational model?
- What are the essential invariants of the style?
- What are common examples of its use?
- What are (dis)advantages of using the style?
- What are the style's specializations?
* What are 4 architectural styles?
- Language based
- Layered
- Dataflow
- Peer-to-Peer
- Shared Memory
- Interpreter
- Implicit Invocation
* What is the Layered architectural style?
- Hierarchical system organization
- Each layer exposes an API to the above layers.
- Each layer is a:
- Client to layers below.
- Server to layers above.
* What are the connectors in the layered architectural style?
Protocols of layer interaction.
* What is an example of a system that uses the layered architectural style?
Operating systems.
* What are the advantages of the layered architectural style?
- Increasing abstraction levels
- Evolvability
- Changes in a layer affect at most the adjacent two layers -> Reuse
- Different implementations of layers
- Standardized layer interfaces
* What are the disadvantages of the layered architectural style?
- Not universally applicable
- Performance
* What is the Client-Server architectural style?
- Components are clients and servers.
- Servers do not know number or identities of clients.
- Clients know servers' identities.
* What are the connectors in the client-server architectural style?
RPC-based network interaction protocols.
* What is an example of a system that uses the client-server architectural style?
Games.
* What are 2 types of data-flow architectural styles?
- Batch Sequential
- Pipe and Filter
* What is the batch sequential data-flow architectural style?
Separate programs are executed in order; data is passed as an aggregate from
one program to the next.
* What are the connectors in the batch sequential data-flow architectural style?
The mechanisms that carry information between each program.
* What are data elements in the batch sequential data-flow architectural style?
Explicit, aggregate elements passed from one component to the next upon
completions of the producing program's execution.
* What is an example of system that uses the batch sequential data-flow architectural style?
Transaction processing in financial systems.
* What is the pipe and filter data-flow architectural style?
Components are filters that transform input data streams into output data
streams.
Allows for incremental production of output and feedback loops.
* What are connectors in the pipe and filter data-flow architectural style?
Conduits for data streams.
* What are the invariants in the pipe and filter data-flow architectural style?
Filters are independent (no shared state)
Filter has no knowledge of up- or down-stream filters.
* What are some examples of systems that use the pipe and filter data-flow architectural style?
- UNIX shell
- Distributed systems
- Signal processing
- Parallel programming
* What is a common shared-memory architectural style?
Blackboard.
* What is the blackboard architectural style?
2 components:
- Central data structure (i.e. blackboard)
- Components operating on the blackboard
System control is entirely driven by the blackboard state.
* What are some examples of systems that use the blackboard architectural style?
- AI systems
- Integrated software environments
- Compiler architecture
* What is the rule-based architectural style?
- Inference engine parses user input and determines if it is a fact/rule or a
query.
- If it is a rule, it adds the entry to its knowledge base.
- Otherwise, if queries the knowledge base to try to resolve the query.
* What is the interpreter architectural style?
Interpreter parses and executes input commands, updating the state maintained by
the interpreter.
* What are the typical components in the interpreter architectural style?
- Command interpreter
- Program/interpreter state
- User interface
* What is the implicit invocation architectural style?
Use event announcement instead of method invocation.
- Listeners register interest in and associate methods with events.
- System invokes all registered methods implicitly.
* What are the invariants in the implicit invocation architectural style?
- Announcers are unaware of their events' effects.
- No assumption about processing in response to events.
* What is the peer-to-peer architectural style?
State and behaviour are distributed among peers which can act as either clients
or servers.
* What are peers, connectors, and data elements w.r.t the peer-to-peer architectural style?
Peers: Independent components, having their own state and control thread.
Connectors: Network protocols.
Data Element: Network messages.
# Design Recovery
* What is the task of design recovery?
- Examining the existing code base.
- Determining what the system's components, connectors, and overall topology
are.
* What is a common approach to design recovery?
Clustering of the implementation-level entities into architectural elements.
* What are the two types of clustering w.r.t design recovery?
Syntactic clustering, or semantic clustering.
* What is syntactic clustering w.r.t design recovery?
- Focusing exclusively on the static relationships in code.
- Can be performed without executing the system
- Embodies inter-component (coupling) and intra-component (cohesion) connectivity
* What is a problem of syntactic clustering w.r.t design recovery?
May ignore or misinterpret subtle relationships, because dynamic information is
missing.
* What is semantic clustering w.r.t design recovery?
- Includes all aspects of a system's domain knowledge and information about the
behavioural similarity of its entities.
* What are some problems of semantic clustering w.r.t design recovery?
- Requires interpreting the system entities, meaning that one many need to
execute the system.
- Difficult to automate
- May also be difficult to avail oneself of it.
* How does one tackle greenfield design?
- Analogy searching
- Brainstorming
- "Literature" searching
- Morphological charts
- Removing mental blocks
# Back to NFPs
* What are the 3 parts of security?
- Confidentiality: Preventing unauthorized parties from accessing the information.
- Integrity: Preventing unauthorized parties to manipulate the information.
- Availability: Allowing authorized parties to view the information.
* What are some design principles for security?
- Least privilege
- Fail-safe defaults
- Economy of mechanism
- Complete mediation
- Open Design
- Separation of Privilege
- Least Common Mechanism
- Psychological Acceptability
- Defense in Depth
* What is the least privilege design principle w.r.t security?
Give each component only the privileges it requires.
* What is the fail-safe defaults design principle w.r.t security?
Deny access if explicit permission is absent.
* What is the economy of mechanism design principle w.r.t security?
Adopt simple security mechanisms.
* What is the complete mediation design principle w.r.t security?
Ensure every access is permitted.
* What is the open design design principle w.r.t security?
Do not rely on secrecy for security.
* What is the separation of privilege design principle w.r.t security?
Introduce multiple parties to avoid exploitation of privileges.
* What is the least common mechanism design principle w.r.t security?
Limit critical resource sharing to only a few mechanisms.
* What is the psychological acceptability design principle w.r.t security?
Make security mechanisms usable.
* What is the defense in depth design principle w.r.t security?
Have multiple layers of countermeasures.
* What are architectural access control models?
Models for deciding whether access to a protected resource should be granted
or denied.
* What are the two types of architectural access control models?
Discretionary and mandatory.
* What is the discretionary access control model?
Restricting access based on the identity of the user.
Users can define access for their own resources.
* What is the mandatory access control model?
There is a higher-level service that determines whether the access is granted.
(e.g. Operating systems)
* What are some problems that affect security?
- Impersonation
- Fraudulent actions
- Misrepresentation
- Collusion
- Addition of unknowns
* What is impersonation w.r.t security?
Pretending to be someone else.
* What is an example of a fraudulent action w.r.t security?
Buyer pays for an item but seller does not ship anything.
* What is misrepresentation w.r.t security?
Lying about the facts around someone else.
* What is collusion w.r.t security?
Multiple people spreading false information.
* What is an example of addition of unknowns w.r.t security?
A new user joins the system.
* What is trust?
A particular level of the subjective probability with which an agent assesses
that another agent will perform a particular action.
* What is reputation?
The expectation about an entity's behaviour based on past behaviour.
* What are the 2 types of trust management systems?
- Credential or policy-based
- Reputation-based
* What can online content compromise w.r.t security?
Confidentiality: Leak user data.
Integrity: Read/write data to disk.
Availability: Crash host.
* What 3 main security design principles does Chrome rely on?
- Least privilege
- Separation of privilege
- Defence in depth
# Architecture modelling
* What is architectural modelling?
The reification and documentation of architectural models.
* What is an architectural modelling notation?
A language or means of capturing design decisions.
* What basic architectural elements should be modelled?
- Components
- Connectors
- Interfaces
- Configurations
- Rationale
* What elements of the architectural style should be modelled?
- Inclusion of specific basic elements (e.g. components, connectors)
- Component, connector, and interface types
- Constraints and interactions
- Behavioural constraints
- Concurrency constraints
* What are the different aspects w.r.t architectural modelling?
Static and Dynamic.
Function and Non-functional.
* What are static aspects w.r.t architectural modeling?
Aspects of a system that do not change as a system runs.
* What are examples of static aspects w.r.t architectural modeling?
Topologies, assignment of components/connectors to hosts.
* What are dynamic aspects w.r.t architectural modeling?
Aspects that change as a system runs.
* What are examples of dynamic aspects w.r.t architectural modeling?
State of individual components or connectors.
State of dataflow.
* What are the 3 important characteristic of architectural models?
- Ambiguity
- Accuracy
- Precision
* What is ambiguity w.r.t architectural models?
The model is open to more than one interpretation.
* What is accuracy w.r.t architectural models?
The model is accurate if it is correct, conforms to fact, or deviates from
correctness within acceptable limits.
* What is precision w.r.t architectural models?
The model is precise if it is sharply exact or delimited.
* What are views and viewpoints w.r.t architectural models?
Since it is not feasible to documentation everything at once, you define
several models that each capture a subset of the design decisions.
The subset model is a "view" and the concern is a "viewpoint".
* What are 5 commonly-used viewpoints?
- Logical
- Physical
- Deployment
- Concurrency
- Behavioural
* What is consistency w.r.t architectural models?
Views are consistent if the design decisions they contain are compatible.
* When are views inconsistent w.r.t architectural models?
When two views assert design decisions that cannot simultaneously be true.
* What are direct inconsistencies w.r.t architectural models?
Direct contradictions, such as the number of hosts a system runs on.
* What are refinement inconsistencies w.r.t architectural models?
Conflicts between the high-level and low-level views.
* What are some common types of inconsistencies?
- Dynamic vs dynamic aspect inconsistencies
- Functional vs non-functional inconsistencies.
* What are the various ways to evaluate modeling approaches?
- Scope and purpose
- Basic elements
- Style
- Static and dynamic aspects
- Dynamic modeling
- Non-functional aspects
- Ambiguity
- Accuracy
- Precision
- Viewpoints
- Viewpoint consistency
* What is UML?
Unified Modelling Language. 13 loosely-interconnected notations that capture
static and dynamic aspects of software-intensive systems.
* What are the advantages of using UML to model?
- Supports diverse array of viewpoints.
- Ubiquitous.
- Extensive documentation and tool support.
* What are the disadvantages of using UML to model?
- Needs customization through profiles to reduce ambiguity.
- Difficult to access consistency among views.
- Difficult to capture foreign concepts or views.
* How are static structures modelled in UML?
- Component diagrams
- Deployment diagrams
- Class diagrams
* How is dynamic behaviour modelled in UML?
- Sequence diagrams