Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 5150 1 CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.

Similar presentations


Presentation on theme: "CS 5150 1 CS 5150 Software Engineering Lecture 13 System Architecture and Design 1."— Presentation transcript:

1 CS 5150 1 CS 5150 Software Engineering Lecture 13 System Architecture and Design 1

2 CS 5150 2 Course Administration First presentations October 13 to 15 Report due Friday at 11:00 p.m. Survey due Friday at 11:00 p.m. Three presentations postponed to October 18 Report due Monday at 11:00 p.m. Survey due Monday at 11:00 p.m. Test 2 Solutions not collected in class will be at reception at 301 College Avenue

3 CS 5150 3 Design in the Modified Waterfall Model Requirements System design Testing Operation & maintenance Program design Implementation (coding) Acceptance & release Feasibility study

4 CS 5150 4 Design with Iterative Refinement Requirements Design Implementation Evaluation

5 CS 5150 5 System Architecture and Design The overall design of a system: Computers and networks (e.g., monolithic, distributed) Interfaces and protocols (e.g., http, ODBC) Databases (e.g., relational, distributed) Security (e.g., smart card authentication) Operations (e.g., backup, archiving, audit trails) Software environments (e.g., languages, source control tools)

6 CS 5150 6 UML: System and Subsystem Modeling Subsystem model A grouping of elements that specifies what a part of a system should do. Component (UML definition) "A distributable piece of implementation of a system, including software code (source, binary, or executable) but also including business documents, etc., in a human system." A component can be thought of as an implementation of a subsystem.

7 CS 5150 7 UML Diagrams and Specifications For every subsystem, there is a choice of diagrams Choose the diagrams that best model the system and are clearest to everybody. In UML every diagram must have supporting specification The diagrams shows the relationships among parts of the system, but much, much more detail is needed to specify a system explicitly. For example, to specify a Web plug-in, at the very least, the specification should include the version of the protocols to be supported at the interfaces, options (if any), and implementation restrictions.

8 CS 5150 8 UML Notation: Component & Node orderform.java A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces. Server A node is a physical element that exists at run time and represents a computational resource, e.g., a computer.

9 CS 5150 9 Components and Replaceability Components allow system to be assembled from binary replaceable elements A component is bits not concepts A component can be replaced by any other component(s) that conforms to the interfaces A component is part of a system A component provides the realization of a set of interfaces

10 CS 5150 10 Components and Classes Components may live on nodes. Classes represent logical abstractions. They may be grouped into packages. Classes have attributes and operations directly. Components have operations that are reachable only through interfaces.

11 CS 5150 11 Example: Simple Web System Web server Web browser Static pages from server All interaction requires communication with server

12 CS 5150 12 Deployment Diagram WebBrowser PersonalComp WebServer DeptServer components nodes

13 CS 5150 13 Component Diagram: Interfaces WebBrowserWebServer HTTP dependency interface realization

14 CS 5150 14 UML Notation: Application Programming Interface (API) API is an interface that is realized by one or more components. WebServer GetPost

15 CS 5150 15 Architectural Styles An architectural style is system architecture that recurs in many different applications. See: Mary Shaw and David Garlan, Software architecture: perspectives on an emerging discipline. Prentice Hall, 1996

16 CS 5150 16 Architectural Style: Pipe Example: A three-pass compiler Parser Lexical analysis Code generation Output from one subsystem is the input to the next.

17 CS 5150 17 Architectural Style: Client/Server Web example: Serving static pages Firefox client Apache server The control flows in the client and the server are independent. communication between client and server follows a protocol. In a peer-to-peer architecture, the same component acts as both a client and a server.

18 CS 5150 18 System Architecture Example: Extensibility in Web Browsers Web browsers provide a flexible user interface through an extensible architecture Protocols: HTTP, FTP, etc., proxies Data types: helper applications, plug-ins, etc. Executable code: Server-side code, e.g., servlets, CGI JavaScript at client, etc. Style sheets: CSS, etc.

19 CS 5150 19 Web User Interface: Application Server Web browser Server-side code can configure pages, access data, validate information, etc. All interaction requires communication with server Data Server

20 CS 5150 20 Architectural Style: Three Tier Architecture Web example: Serving dynamic pages Each of the tiers can be replaced by other components that implement the same interfaces Presentation tier Application tier Database tier

21 CS 5150 21 UML Notation: Component Diagram Apache Tomcat Browser HTTP ODBC MySQL These components might be located on a single node

22 CS 5150 22 Three tier architecture: Broadcast searching User interface service User Databases This is an example of a multicast protocol. The primary difficulty is to avoid troubles at one site degrading the entire system (e.g., every transaction cannot wait for a system to time out).

23 CS 5150 23 Web User Interface: JavaScript Data Server Web browser JavaScripts can validate information as typed Some interactions are local Server interaction constrained by web protocols Java Script html

24 CS 5150 24 UML Notation: Package A package is a general-purpose mechanism for organizing elements into groups. Note: Some authors draw packages with a different shaped box: JavaScript

25 CS 5150 25 Example: Web Browser HTTP JavaScript HTMLRender Each package represents a group of classes. WebBrowser

26 CS 5150 26 Web User Interface: Applet Any server Web server Web browser Any executable code can run on client Client can connect to any server Applets

27 CS 5150 27 Applet Interfaces WebBrowserWebServer HTTP XYZServer XYZInterface

28 CS 5150 28 Architectural Style: Repository Repository Input components Transactions Advantages: Flexible architecture for data-intensive systems. Disadvantages: Difficult to modify repository since all other components are coupled to it.

29 CS 5150 29 Architectural Style: Repository with Storage Access Layer Data Store Input components Transactions Advantages: Data Store subsystem can be changed without modifying any component except the Storage Access. Storage Access This is sometimes called a "glue" layer Repository

30 CS 5150 30 Systems Architecture for Distributed Data: Replication Replication Several copies of the data are held in different locations. Mirror: Complete data set is replicated Cache: Dynamic set of data is replicated (e.g., most recently used) With replicated data, the biggest problems are concurrency and consistency.


Download ppt "CS 5150 1 CS 5150 Software Engineering Lecture 13 System Architecture and Design 1."

Similar presentations


Ads by Google