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
© Copyright 2024