Software Qualities, SEI Views and Styles, and conveying key

Software Qualities, SEI
Views and Styles, and
conveying key concepts in a
software design document.
!
Architects need to think about their
software in three ways simultaneously:
1.How it is structured as a set of
implementation units.
2.How it is structured as a set of
elements that have runtime behavior
and interactions.!
3.How it relates to non-software structures
in its environment.
C&C Views
As noted in [1, page 50], a component and connector view expresses
runtime behavior. In such views, a component is a processing unit
such as a service, thread, filter, or server. A connector is some
interaction mechanism such as a pipe, queue, or remote invocation.
1. Clements, Paul and Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford. Documenting Software Architectures: Views and Beyond. 2nd ed.
Addison-Wesley, 2011. Print.
Upper Saddle River:
1. Clements, Paul and Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford. Documenting Software Architectures: Views and Beyond. 2nd ed.
Addison-Wesley, 2011. Print.
Upper Saddle River:
C&C Views
Within the component and connector view, there are four
documentation styles of interest. These are:
!
• Pipe and Filter. “Characterized by successive transformations of
streams of data.” [1, page 158].
• Client-Server. “Components interact by requesting services of
other components.” [1, page 162].
• Service-Oriented Architecture. “Consists of a collection of
distributed components that provide and consume services.” [1,
page 169].
1. Clements, Paul and Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford. Documenting Software Architectures: Views and Beyond. 2nd ed.
Addison-Wesley, 2011. Print.
Upper Saddle River:
1. Clements, Paul and Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford. Documenting Software Architectures: Views and Beyond. 2nd ed.
Addison-Wesley, 2011. Print.
Upper Saddle River:
1. Clements, Paul and Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford. Documenting Software Architectures: Views and Beyond. 2nd ed.
Addison-Wesley, 2011. Print.
Upper Saddle River:
C&C Views
Within the component and connector view, there are four
documentation styles of interest. These are:
!
• Pipe and Filter. “Characterized by successive transformations of
streams of data.” [1, page 158].
• Client-Server. “Components interact by requesting services of
other components.” [1, page 162].
• Service-Oriented Architecture. “Consists of a collection of
distributed components that provide and consume services.” [1,
page 169].
1. Clements, Paul and Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford. Documenting Software Architectures: Views and Beyond. 2nd ed.
Addison-Wesley, 2011. Print.
Upper Saddle River:
* Summary of Client-Server Style *!
Overview: Components interact by requesting services of other components.
!
Elements:
• Client, which is a component that invokes services of a server component.
• Service, which is a component that provides services to client components.
Properties will vary according to concerns of the architect, but typically include
information about the nature of the server ports (such as how many clients can
connect) and performance characteristics (such as maximum rates of service
invocation).
• Request/reply connector, which is used by a client to invoke services on a
server. Request/reply connectors have two roles: a request role and a reply
role. Connector properties may include whether the calls are local or remote,
and whether data is encrypted.
!
Relations: The attachment relation associates client service -request ports with
the request role of the connector and service-reply ports with the reply role of the
connector.
* Summary of Client-Server Style (continued) *!
!
Computational model: Clients initiate interactions, invoking services as needed
from servers and waiting for the results of those requests.
!
Constraints:
•Clients are connected to servers through request/reply connectors.
•Server component can be clients to other servers.
•Specializations may impose restrictions, such as numbers of attachments to a
given port or allowed relations among servers.
•Components may be arranged in tiers.
!
What It’s For:
• Promoting modifiability and reuse by factoring out common services.
• Improving scalability and availability in case server replication is in place.
• Analyzing dependability, security, and throughput.
!
tcp/ip
server
client
tcp/ip
fork
child
http port 80
• What is the view?
• What are the structures?
• What are the activities?
• What are the relations?
• Is it accessible?
UML Sequence Diagrams
Source: http://www.thomasalspaugh.org/pub/fnd/img/sequenceDiagram.png
Figure 1.0. The Component & Connecter View, Client-Server Style
diagram for the Librarians Course Project. During the initial page load,
the browser uses http GET requests to fetch all the resources included
by the page. The librs.controller() queries the Google Fusion Table and
creates a Column Chart from the resulting response.
• What is the view?
• What are the structures?
• What are the activities?
• What are the relations?
• Is it accessible?
picture pages then activity
Image credits: Mad Men’s “The Wheel” and Vincent Van Gogh’s “Starry Night”
• What is the view?
• What are the structures?
• What are the activities?
• What are the relations?
• Is it accessible?
Illustrator tip:
Built-in swatch libraries can help
choose colors for the fashionably-challenged.
Illustrator tip:
Built-in swatch libraries can help
choose colors for the fashionably-challenged.
• What is the view?
• What are the structures?
• What are the activities?
• What are the relations?
• Is it accessible?
Certificate
Authority
Server
Client
1. Client contacts server:
announces its TLS version and supported protocols.
2. The server responds with
its TLS version, supported protocols, and certificate
3. Client checks if the server’s
certificate was signed by
a CA. Checks server address
and expiration date.
4. The client creates a premaster
secret and encrypts it with the
server’s public key. It transmits
the encrypted secret.
5. The client generates the
master secret.
5. The server decrypts the
premaster secret and generates
the master secret.
6. The client generates the
session key.
6. The server generates the
session key.
Certificate
Authority
Server
Client
1. Client contacts server:
announces its TLS version and supported protocols.
2. The server responds with
its TLS version, supported protocols, and certificate
3. Client checks if the server’s
certificate was signed by
a CA. Checks server address
and expiration date.
4. The client creates a premaster
secret and encrypts it with the
server’s public key. It transmits
the encrypted secret.
• What is the view?
• What are the 5.structures?
The client generates the
master secret.
• What are the activities?
The client generates the
• What are the 6.relations?
session key.
• Is it accessible?
5. The server decrypts the
premaster secret and generates
the master secret.
6. The server generates the
session key.
tcp/ip
server
client
tcp/ip
fork
child
http port 80
• What is the view?
• What are the structures?
• What are the activities?
• What are the relations?
• Is it accessible?
• What is the view?
• What are the structures?
• What are the activities?
• What are the relations?
• Is it accessible?
Source: http://www.jot.fm/issues/issue_2007_08/article1/
• What is the view?
• What are the structures?
• What are the activities?
• What are the relations?
• Is it accessible?
• What is the view?
• What are the structures?
• What are the activities?
• What are the relations?
• Is it accessible?
Source: http://i.stack.imgur.com/R1I59.png
• What is the view?
• What are the structures?
• What are the activities?
• What are the relations?
• Is it accessible?
Source: https://thecustomizewindows.com/wp-content/uploads/2014/08/RESTful-API-for-WordPress-to-Enable-Public-HTTP-GET-Request-for-Posts.png
Source: https://docs.google.com/document/d/1_U3i7e8w6L9PIO5u1wSZxfA5FMQfJKEQQXcbqZEmp_k/edit?usp=sharing
“The assessment of software quality is a subjective!
process where the quality management team has to!
use their judgement to decide if an acceptable level!
of quality has been achieved.”!
Ian Sommerville, p 655.
For the Design Document:!
!
s1) Find a software quality definition that you like.!
!
s2) Quote it. Cite it.!
!
s3) Present an argument as to why your software!
achieves (or does not achieve) this software quality.
Source: http://www-public.it-sudparis.eu/~gibson/Teaching/CSC7302/ReadingMaterial/CavanoMcCall78.pdf
Safety
Understandability
Portability
Security
Testability
Usability
Reliability
Adaptability
Reusability
Resilience
Modularity
Efficiency
Robustness
Complexity
Learnability
Source: Software Engineering by Ian Sommerville (c) 2011
Safety
Understandability
Portability
Security
Testability
Usability
Reliability
Adaptability
Reusability
Resilience
Modularity
Efficiency
Robustness
Complexity
Learnability
Source: Software Engineering by Ian Sommerville (c) 2011