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

Slides:



Advertisements
Similar presentations
Software Architecture Reconstruction By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri.
Advertisements

Executional Architecture
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
CSCE 121, Sec 200, 507, 508 Software Engineering Fall 2010 Prof. Jennifer L. Welch.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 13 Prof. Crista Lopes.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 2 Prof. Crista Lopes.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes.
Introduction and Overview “the grid” – a proposed distributed computing infrastructure for advanced science and engineering. Purpose: grid concept is motivated.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC308.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Logical Architecture and UML Package Diagrams
Introduction to Systems Analysis and Design
Course Instructor: Aisha Azeem
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
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)
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Software Architecture in Practice (3rd Ed) Introduction
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
1 Systems Analysis and Design in a Changing World, Fourth Edition.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
RUP Design RUP Artifacts and Deliverables
Software Requirements Engineering CSE 305 Lecture-2.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Chapter 8 Evaluating Alternatives for Requirements, Environment, and Implementation.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Lecture 7: Requirements Engineering
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSE 303 – Software Design and Architecture
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Computer Science 340 Software Design & Testing Software Architecture.
Advanced Software Engineering Lecture 4: Process & Project Metrics.
Distributed Database Management Systems. Reading Textbook: Ch. 1, Ch. 3 Textbook: Ch. 1, Ch. 3 For next class: Ch. 4 For next class: Ch. 4 FarkasCSCE.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
Basic Concepts and Definitions
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
Copyright © 2011 Wolters Kluwer Health | Lippincott Williams & Wilkins Chapter 1 Research: An Overview.
UCI Large-Scale Collection of Application Usage Data to Inform Software Development David M. Hilbert David F. Redmiles Information and Computer Science.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Cyberinfrastructure Overview of Demos Townsville, AU 28 – 31 March 2006 CREON/GLEON.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
CTMS Coordination Team CTMS Coordination Team: Model and Documentation Management John Koisch Paul Boyes
Introduction To software engineering
Software Architecture
Logical Architecture & UML Package Diagrams
Presentation transcript:

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

Objectives  Understanding of Software Architecture Recovery  what, why, how, who  Material in this lecture adapted from architecture-recovery-in-five-questions-presentation architecture-recovery-in-five-questions-presentation  Also good material in the textbook  Understanding of Grid Computing

Software Architecture Recovery  aka Architecture Reconstruction  What is it?  Quick answer: Your Homework 4  Why is it important?  How does it work?  Who does it?

What is it  [...] an archaeological activity where the analysts must unveil all the historical design decisions by looking at the existing implementation and documentation of the system. [Riva’00] .. the flavor of reverse engineering that concerns all activities for making existing software architectures explicit. [Krikhaar’97]  …techniques and processes used to uncover a system’s architecture from available information. [Jazayari’00]

What is it  Usually not focused on architectural styles  because they are recurring solutions that are easy to spot  Usually focused on recovering component and connector viewpoints [Logical] System Arch. [Logical] System Arch. Deployment Arch. Software Arch. Software Arch. Usability Arch. Usability Arch. “Real” System “Real” System your homework

Why it’s important  Documentation tends to become obsolete over time  Particularly in early stages of development  But to make changes and extend the system developers need a clear understanding of the system architecture  Or else  architectural drift & erosion  Hence, architectural recovery must be practiced often, even constantly  Read a contributor’s code and recover the architecture there. Does it match the system’s architecture?

Conceptual vs. As-is Architecture

One needs to enforce the system architecture constantly

How to do it  Bottom-up  Top-down  Hybrid

How to do it – bottom-up  Source code analysis  With or without tools  Software organization  Packages, namespaces, directories: Knowledge abstraction  Runtime behavior  With or without tools  Historical information  Commit history  Search, search, search!

How to do it – top-down  Start with existing high-level knowledge about system  Formulate hypothesis and verify them against source code

How to do it – hybrid  (all recovery efforts end up being hybrid)  Combine bottom-up & top-down

How to do it – overall

Who does it  Everyone should, at all levels, all the time  Helps avoid architectural drifts  High-paid consultants do it for large corporations that don’t practice the above  Researchers do it to help explain well-known systems whose architecture is in devs’ heads only

Case Study  Apache httpd, 100KLOC of C  60 students like you, 1 semester  Data:  Source code  Documentation (well written but lacking about internal architecture)  Results: overview, state diagrams, memory management… documentation  apachestudy.pdf apachestudy.pdf

Grid Computing

 “Combination of computer resources from multiple administrative domains for a common goal”  A grid  Coordinates resources nor subject to centralized control  Using standard, open protocols  To deliver non-trivial services with good QoS  Addition of computing resources subject to contracts  Often used for scientific tasks

Grid Computing Middleware  A layer of services on top of open protocols that provide coordination  Job allocation  Distribution / Parallelism  Collection of results  Data replication  …

Grid Computing Architecture  “Collective”: Coordinates resource usage  “Resource”: the shared unit  “Connectivity”: communication and authentication  “Fabric”: manages low-level resources

Grid Computing Examples  Open Science Grid (USA) Open Science Grid  ubmissionComparison ubmissionComparison  TeraGrid (USA) TeraGrid  National Grid Service (UK) National Grid Service  …

Summary  Software Architecture Recovery  Foundations for your Homework 4 and for the rest of your life  Grid Computing  Sharing computing and data resources for a common goal  Middleware