INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 2 Prof. Crista Lopes.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 3
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 13 Review Questions
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Architecture Lecture 2
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 9 Prof. Crista Lopes.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Object-Oriented Analysis and Design
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 13 Prof. Crista Lopes.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 11 Prof. Crista Lopes.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 3 Prof. Crista Lopes.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes.
Component and Deployment Diagrams
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
APPLICATION DEVELOPMENT BY SYED ADNAN ALI.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Siemens’ 4 View Model (props to My-An Nguyen for giving me her 344 notes on which this lecture is based)
What is an Architecture?. An Example? Invoice OrderDelivery Customer.
1 Autonomic Computing An Introduction Guenter Kickinger.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
An Introduction to Software Architecture
Introduction to Interactive Media The Interactive Media Development Process.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Architecting Web Services Unit – II – PART - III.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 3, Slide 1 February 20, 2004 Lecture 3: Introduction to Software Analysis and.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Object-Oriented Analysis and Design Fall 2009.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
TAL7011 – Lecture 4 UML for Architecture Modeling.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
System Context and Domain Analysis Abbas Rasoolzadegan.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
SWT - Diagrammatics Lecture 4/4 - Diagramming in OO Software Development - partB 4-May-2000.
1 CMPT 275 High Level Design Phase Modularization.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Basic Concepts and Definitions
CS223: Software Engineering Lecture 13: Software Architecture.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
TRIUMF HLA Development High Level Applications Perform tasks of accelerator and beam control at control- room level, directly interfacing with operators.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Software Architecture Lecture 3
Software Architecture
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Software Architecture Lecture 3
Software Architecture Lecture 2
Requirements – Scenarios and Use Cases
Service-centric Software Engineering
Software Architecture Lecture 3
What is an Architecture?
Software Architecture Lecture 3
An Introduction to Software Architecture
Software Architecture Lecture 3
What is an Architecture?
Software Architecture Lecture 3
Presentation transcript:

INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 2 Prof. Crista Lopes

Objectives  Present the course – take 2  Introduction Recap of Architecture

INF 123 in Context  Formerly ICS 123, same title and purpose  Taught it 3 years in a row, ICS students  Focus on applied architectures and protocols  Renumbered INF 123 for Informatics program  Prof. Taylor took over, Software Architecture book  Course materials largely drawn from book  Focus on general concepts  Now  Back to me  ???

INF 123, S10: The Final Deal  Focus on applied architectures and protocols  Link to general concepts that you already know  Projects: OpenSimulator framework  3D application server, MMO Virtual Worlds  C# (.NET or mono)  ~500,000 LOC  1,000s of users    “Diva”  Watery Break: World BuilderWorld Builder

Recap on Architecture

Definition: Architecture  “Set of principal design decisions”  “Design decision” implies design options  Not all design decisions are architectural in nature “principal” depends on Goals Perspectives  Design decisions may change over time  Architecture may change over time  Two fundamental points  Every system has an architecture  Every system has at least one architect

Definition: Component  “Architectural element that (1) encapsulates a subset of the system’s functionality and/or data; (2) restricts access to that subset via an interface, and (3) has explicitly defined dependencies on its operational context.”  E.g. database, Web server, jar/dll files with specific functionality, …

Definition: Connector  “Architectural element tasked with effecting and regulating interactions among components.”  Most common: DB connectors  Perhaps the less understood and most powerful concept for engineering extensible systems, especially when coupled with the concept of plugin

Definition: Configuration  “Set of concrete associations between components and connectors”

Definition: Architectural Style  “Named collection of [architectural] design decisions”  i.e. Architecture with a name

Definition: Architectural Model  “An artifact that represents most or all of the architecture.”  Notation: “Language or means of capturing that representation”  E.g. UML, PowerPoint bullets, sketches, etc.

Where is “Software”?  Read the definitions again. Is it there?  These are general concepts in artifact creation, too general to draw meaning between creative activities  Buildings (architecture)  Cars (design)  Furniture (design)  Medical instruments (engineering)  Music (composition)  Computers (engineering)  Institutions (design)  …  Software (design/architecture/engineering) Software Architecture ≠ Buildings Architecture ≠ Car Design …

“Architecture” in software systems  Software architecture  System architecture  Deployment architecture  Testing architecture  Usability architecture  …  These are all different aspects of the same system  All creative activities, all different  Must qualify the word “architecture”

Web Usability Architecture

Web Deployment Architecture

Web System Architecture

Apache HTTPD Software Architecture

“Architecture” in software systems  Software architecture: set of principal design decisions regarding the software itself  System architecture: set of principal design decisions regarding the system’s concepts and operation  Deployment architecture: set of principal design decisions regarding the mapping between software and hardware  Testing architecture: set of principal design decisions regarding the testing procedures and tools  Usability architecture: set of principal design decisions regarding the user experience

Overview: OpenSimulator

Usability Architecture: The VW operators perspective Simulator (OpenSim.exe) Simulator (OpenSim.exe) Configuration (OpenSim.ini) Configuration (OpenSim.ini) ROBUST Services (OpenSim.Server.exe) ROBUST Services (OpenSim.Server.exe) Configuration (OpenSim.Server.ini) Configuration (OpenSim.Server.ini) Client (Hippo, etc.) Client (Hippo, etc.) Client (Hippo, etc.) Client (Hippo, etc.) … DB …

Deployment Architecture(s) Simulator DB Standalone Simulator DB ROBUST Services ROBUST Services Grid Simulator DB Serverless Grid Simulator

System Architecture Asset Service Asset Service Authentication Service Authentication Service Avatar Service Avatar Service Voice Service Voice Service Gatekeeper Service Gatekeeper Service Grid Service Grid Service Grid User Service Grid User Service Inventory Service Inventory Service Login Service Login Service Presence Service Presence Service User Accounts Service User Accounts Service User Agents Service User Agents Service Physics Engine Script Engine Scene Management Client Protocol Stack Client Protocol Stack Client Protocol Stacks Client Protocol Stacks Module Loader Module Loader HTTP Handlers HTTP Handlers …… Service Infrastructure Simulator C# HTTP Server C# HTTP Server LibOMV ODE log4net Mono Addins Mono Addins MySql SQLite Open JPEG Open JPEG … External Dependencies DB Service Connectors

System Architecture  Previous picture is incomplete  Important parts missing:  Protocol descriptions Login protocol Teleport protocol Instant Messaging Protocol …  Security Permissions Authorization …  Extensibility features

Software Architecture Framework Framework. Servers Framework. Servers. HttpServer Framework. Servers. HttpServer Region. Framework Region. Framework Region. Framework. Scenes Region. Framework. Scenes Region.Framework.Interfaces Region. CoreModules Region. CoreModules Region. Physics. Manager Region. Physics. Manager Region. Physics. ODE Region. Physics. ODE … Services.Interfaces S S S S S S …

Main Points  Many architectures, not just one!  Main focus of this course:  Well-known software system architectures  Secondary focus:  “Good” software architectures

“Design” and “Implementation” and “Documentation”  The objective is to create machine-executable source code and an explanation for it  Where do you start? Option a) Think hard and long, document, then write the code Option b) Write the code, make it work, code is documentation Option c) Think, write, think, write, think, write, … Option d) Write, think, write, think, write, think, …  In all cases, there will be architectures

Where is “Software”?  Read the definitions again. Is it there?  These are general concepts in artifact creation, too general to draw meaning between creative activities  Buildings (architects)  Cars (designers)  Furniture (designers)  Medical instruments (engineers)  Music (composers)  Computers (engineers)  Institutions (leaders)  …  Software (lead architects/designers/engineers)

Software Lead Architects/Designers/Engineers  “jack of all trades”  Maintainer of system’s conceptual integrity  Part of team  Set of people with complementary skills  Committed to common Purpose Performance goals Approach  Hold each other accountable  Life is long series of locally suboptimal decisions made partly in the dark  Sometimes painful

Skill Set  Long software development expertise  Domain expertise  Communicator  Strategist  Leader  Technologist  Cost estimator  Cheerleader  Politician  Salesperson

Skill Set (from the book)  What architects are usually not in a project  Developers – though they may prototype their ideas (they are developers! – very experienced ones)  World-class software programmers (they need to be the best around)  Managers – except in small organization