1 / 83

CS352 – Software Engineering II Lectures 2 & 3: Intro to SW Architecture

CS352 – Software Engineering II Lectures 2 & 3: Intro to SW Architecture. Mohammad El-Ramly, PhD http://www.acadox.com/join/VBEPDR. تذكرة. وهو معكم أينما كنتم والله بما تعملون بصير يعلم خائنة الأعين و ما تخفى الصدور. Schedule of Next 3 Weeks. Software Architecture REST Architecture

dwolford
Download Presentation

CS352 – Software Engineering II Lectures 2 & 3: Intro to SW Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS352 – Software Engineering IILectures 2 & 3: Intro to SW Architecture Mohammad El-Ramly, PhD http://www.acadox.com/join/VBEPDR

  2. تذكرة وهو معكم أينما كنتم والله بما تعملون بصير يعلم خائنة الأعين و ما تخفى الصدور

  3. Schedule of Next 3 Weeks • Software Architecture • REST Architecture • Cloud Computing • Change & Configuration Management • Agile SW Processes

  4. Lecture 2 Outline • SWD Definition and in SWEBOK • SW Architecture Styles • REST Web Services Architecture • SW Architect Job

  5. SW Design Defintion • Design is defined as both “the process of defining the architecture, components, interfaces, and other characteristics of a system or component” and “the result of that process”.

  6. Desirable Design • As a process, software design is • SE life cycle activity in which requirements are analyzed to produce a description of the SW’s internal structure as a basis for construction. • A software design (the result) describes • the softwarearchitecture— that is, how software is decomposed and organized into components—and the interfaces between those components, and • The details of the components that enable their construction.

  7. SWEBOK v3.0 Design Knowledge Area • SWD Fundamentals • Key Issues in SWD • SW Structure and Arch. • UI Design • SWD QA and Evaluation • SWD Notations • SWD Strategies and Methods • SWD Tools

  8. Design is a Wicked Problem • A wicked problem is one that could be clearly defined by solving it. (Rittel & Webber) • Tacoma bridge

  9. Tacoma Narrows Bridge, 1940 • Was damaged by harmonic side-2-side ripple. • Only when this happened, it was learnt how this force can affect the bridge.

  10. Design is about Decisions • Decisions on how system will be structured • Decisions on components responsibilities • Decisions on algorithms and data structures used. • Decision on organization of the database. • Decisions on how UI looks. • …….

  11. Design is about Decisions Fat Client Separate UI Layer Client-server Thin Client No Separate UI Layer Monolithic

  12. Design Stages • In ISO/IEC/IEEE Std. 12207, Software Life Cycle Processes, software design consists of two activities that fit between requirements analysis and construction: • Software architectural design (sometimes called high-level design): develops top-level structure and organization of the software and identifies the various components. • Software detailed design (low-level design): specifies each component in sufficient detail to facilitate its construction.

  13. Software Architecture • Architecture is the organizational structure of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems. (UML 1.3) • Get the key terms

  14. Software Architecture • Architecture is the organizational structure of a system. An architecture can be recursively decomposed into (1) parts that interact through (2) interfaces, (3) relationships that connect parts, and (4) constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems. (UML 1.3)

  15. Architecture • You are asked to design a house on this pieces of land …

  16. Architecture • You need to find your constraints W W W W

  17. Architecture • And you need to find your limitations W W W 12 m W 12 m

  18. Architecture • Then you may make your design decisions W W W 12 m W 12 m

  19. Architecture • This is only one possible architecture W W Kitchen W Room 2 WC Living Room W Room 1

  20. Example SW Architecture

  21. Lecture 2 Outline • SWD Definition and in SWEBOK • SW Architecture Styles • REST Web Services Architecture • SW Architect Job

  22. Architecture Styles • Architecture Style: is an abstraction of that defines the attributes and characteristics you see in an artifact (house, software, etc.) built in that style. • pipe and filter • event based • layered • repositories

  23. Lecture 2 Outline • SWD Definition and in SWEBOK • SW Architecture Styles • REST Web Services Architecture • SW Architect Job

  24. Web Services • “A Web service is a method of communication between two electronic devices over the a network. It is a software function provided at a network address over the Web with the service always on.” Wikipedia

  25. REST Architecture • REST is the architecture style of the WWW as it works today. • It consists of 5+1 design constraints. • Uses (but not mandatory) HTTP style of requests. • Increases simplicity, scalability and performance of your application.

  26. Quick Review of HTTP • HTTP is a request-response protocol.

  27. HTTP Request

  28. HTTP Response

  29. HTTP Request

  30. HTTP Request

  31. HTTP Methods

  32. HTTP Response

  33. HTTP Response

  34. HTTP Response

  35. HTTP Response

  36. HTTP Characteristics

  37. Pr1: Client-Server • A server component offers a set of services, listens for requests upon those services. • A client component sends a request for a service to the server via a connector. • The server either rejects or performs the request and sends a response back to the client.

  38. Pr1: Client-Server • Separation of concerns is the principle behind the client-server constraints. • System is disconnected. • Separating the user interface concerns from the data storage concerns, • improves the portability of the user interface across multiple platforms and • improves scalability by simplifying the server components.

More Related