Functional and non-functional requirements, Functionality is our concern Usability : is the ease of use and learnability of a human-made object; how the user is going to use the system (there must be an UI interface, and there must be enough help for the user) Reliability : frequency of failure means how many times is allowed to fail in a period (let’s say a year). For example, the system must not fail more than 10 times in a year. predictability: by providing monitors (threshold) Performance : is characterized by the amount of useful work accomplished by a system compared to the time and resources used Supportability : It refers to the ability of technical support personnel to install, configure, and monitor computer products, identify exceptions or faults, debug or isolate faults
Note the behaviors starts with a verb and indicate the system behavior
Partitioning (swim lane)
If you know 20 concepts of these 26 concepts, then you are fine. This chapter is really useful for job interviews :-D
Object characteristics can be properties and/or behavior
compartmentalizing
Hierarchy is based on the classification (finding the similarities and putting them in a more generic abstraction)
By finding similarities Some commonalities between abstraction in the same level can lead to a more generic abstraction that represents these commonalities (this called classificiation)
By finding similarities
Abstraction is the process of finding the related characteristics of an object, what is the object?
State is all properties (attributes and relationships)
Relationship between class and object
Attribute is a description of
Till the moment we didn’t talk about how to represent object in uml The properties values here are actual values that the object hold, not initial values
General relationships can be used at the early stages of analysis and design (when the relationships are not yet clear)
Object structure is the set of the object properties
Navigability and Multiplicity are applicable only on associations, aggregations and compositions There is nothing called dependency navigability or dependency multiplicity
Sometimes it is called Shared aggregation
Sometimes it is called Composite aggregation
UML Structured class is a different way that can be used to represent the composition and aggregation.
One instance of whole may have a reference to one instance or more of Part2 One instance of Whole may have zero or more instances of Part1
We must agree that if a change occurred on a class, then all the dependencies must be: Rebuild Retest Redeploy
For more information: http://publib.boulder.ibm.com/infocenter/rtnlhelp/v6r0m0/index.jsp?topic=%2Fcom.ibm.xtools.modeler.doc%2Ftopics%2Fcdepend.html
If we returned back to the principle hierarchy. Where the general abstractions at the top of the hierarchy and the specialized abstractions at the bottom of the hierarchy. Then the generalization relationship is the relationship between the general (at the top) and the specialized abstraction (at the bottom)
Use elided form in case you need to denote the existence of an interface Use canonical form in case you need to see the details of the interface
Interface1 is a provided interface by Class1 Class1 is the provider for the interface
Interface1 is required interface by Consumer In canonical form, the required interface is modeled using usage dependancy
Supporting the changing of the implementation without affecting the clients
The above describes what is a software architecture The software architect must cover the above views. In this step the focus will be on the Logical View. At the logical view the Software architect defines
How do you choose which classes to put in which packages? The question will be addressed later
Change to Package A may cause change to Package B. The circular dependency between Package A and B means that they must be treated as one package.
Domain Layer called Application-Logic Layer Application layer is different than Application-logic Layer The higher layers are more application specific
Note the use of the <<layer>> sterotype
The Database and LDAP are physical implementation components, not a layer in the logical architecture.
The next part of the course is all about the Domain layer