830 likes | 866 Views
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
E N D
CS352 – Software Engineering IILectures 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 • Cloud Computing • Change & Configuration Management • Agile SW Processes
Lecture 2 Outline • SWD Definition and in SWEBOK • SW Architecture Styles • REST Web Services Architecture • SW Architect Job
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”.
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.
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
Design is a Wicked Problem • A wicked problem is one that could be clearly defined by solving it. (Rittel & Webber) • Tacoma bridge
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.
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. • …….
Design is about Decisions Fat Client Separate UI Layer Client-server Thin Client No Separate UI Layer Monolithic
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.
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
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)
Architecture • You are asked to design a house on this pieces of land …
Architecture • You need to find your constraints W W W W
Architecture • And you need to find your limitations W W W 12 m W 12 m
Architecture • Then you may make your design decisions W W W 12 m W 12 m
Architecture • This is only one possible architecture W W Kitchen W Room 2 WC Living Room W Room 1
Lecture 2 Outline • SWD Definition and in SWEBOK • SW Architecture Styles • REST Web Services Architecture • SW Architect Job
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
Lecture 2 Outline • SWD Definition and in SWEBOK • SW Architecture Styles • REST Web Services Architecture • SW Architect Job
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
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.
Quick Review of HTTP • HTTP is a request-response protocol.
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.
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.