CS746 Software Architecture Organizational Meeting Instructor: Prof. Richard C. Holt TA: Jingwei Wu.

Slides:



Advertisements
Similar presentations
1 CS Tutorial 2 Architecture Document Tutorial.
Advertisements

1 CS 446 – Tutorial 6 Frid. Nov. 6 th, 2009 Implementation Tutorial.
Lecture 6: Software Design (Part I)
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Alternate Software Development Methodologies
Outline About author. The problem that discussed in the article.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Sept-Dec w1d21 Third-Generation Information Architecture CMPT 455/826 - Week 1, Day 2 (based on R. Evernden & E. Evernden)
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
CSE 111: Object Oriented Design. Design “To program is human but to design is divine” (WEH)
Unified Modeling (Part I) Overview of UML & Modeling
Marakas: Decision Support Systems, 2nd Edition © 2003, Prentice-Hall Chapter Chapter 1: Introduction to Decision Support Systems Decision Support.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
COMP4710 Senior Design Richard Chapman. Outline What is Senior Design? What is Senior Design? Course Structure Course Structure End of Cycle Binder End.
Guide To UNIX Using Linux Third Edition
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Software Architecture Group University of Waterloo CANADA Architecture Recovery Of Web Applications.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Design Description (SDD) Diagram Samples
The Re-engineering and Reuse of Software
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
This chapter is extracted from Sommerville’s slides. Text book chapter
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Software Engineering CS B Prof. George Heineman.
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
Object Oriented Analysis and Design Introduction.
Li Yi, APSEC ‘12 Constructing Feature Models Us­­ing a Cross-Join Merging Operator.
EECE 310 Software Engineering Lecture 0: Course Orientation.
An Introduction to Software Architecture
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
CS746: Software Architecture plg.uwaterloo.ca/~holt/cs/746/04f Tues 4pm-6pm, DC3314 Prof. Ric Holt, EIT3003 TA: Jingwei Wu.
Design Concepts By Deepika Chaudhary.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Enabling Reuse-Based Software Development of Large-Scale Systems IEEE Transactions on Software Engineering, Volume 31, Issue 6, June 2005 Richard W. Selby,
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Basic Concepts and Definitions
Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
 CONACT UC:  Magnific training   
Exploring Software Evolution Using Spectrographs Jingwei Wu, Richard C. Holt, Ahmed Hassan School of Computer Science University of Waterloo Waterloo ON.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Main issues: • What do we want to build • How do we write this down
Introduction to Design Patterns
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Part 3 Design What does design mean in different fields?
Logical architecture refinement
Implementing Language Extensions with Model Transformations
CS 425/625 Software Engineering Architectural Design
Program Analysis and Transformation
Software Design Lecture : 8
An Introduction to Software Architecture
ITEC 3220A Using and Designing Database Systems
4+1 View Model of Software Architecture
Introduction to Computer Programming
4+1 View Model of Software Architecture
Implementing Language Extensions with Model Transformations
Digital Designs – What does it take
ICS103 Programming in C 1: Overview of Computers And Programming
Presentation transcript:

CS746 Software Architecture Organizational Meeting Instructor: Prof. Richard C. Holt TA: Jingwei Wu

09/14/20042 Overview Course Assignments and Project Introduction to JGrok Algebraic Calculator BFX-based Architecture Extraction Pipeline Volunteers to present papers next week

09/14/20043 Course Assignments Case software system: Mozilla Three course assignments –Conceptual architecture (Documented) –Concrete architecture (Implemented) –Architecture refactoring Historical (Evolutionary evidence) Future (Forward engineering) Each assignment takes two weeks Team work (2~3 persons per team)

09/14/20044 Conceptual Architecture Read a wide variety of software documents –Release notes –Developer docs –Technical article –Research papers –Source code comments –Previous course reports on Mozilla Warning: The architecture of Mozilla has been fundamentally altered. You cannot simply “reuse” previous course material. The goal is to understand the software domain

09/14/20045 Conceptual Architecture Cont. Submit a technical report on the conceptual architecture of Mozilla. –Describe major components –Describe component interactions –Clarify architectural style and principles –Concentrate on goals and requirements Concurrency, evolvability, performance, etc. Submission date: Tuesday, Sept. 28, 2004.

09/14/20046 Conceptual Architecture of Linux

09/14/20047 Concrete Architecture Extraction –Mozilla implemented in C/C++ –We use BFX, a binary file extractor Abstraction –Construct containment hierarchy –Larger subsystems contain smaller subsystems View/Edit –We use LSEdit, a landscape view editor

09/14/20048 Concrete Architecture Cont. Submit a technical report on the concrete architecture of Mozilla. –Organization similar to Assignment I –Describe the architecture at the highest level of abstraction –Describe at least one of the top-level subsystems –Explain why the conceptual and the concrete disagree Submission date: Tuesday, Oct. 19, 2004

09/14/20049 Concrete Architecture of Linux

09/14/ Concrete Architecture of File Subsystem in Linux

09/14/ Architecture Refactoring Two options for this assignment –Historical architecture refactorings Document architectural changes in the past Understand how the architecture evolved over time Extract several versions (at least THREE ) –Future architecture refactorings Describe a desirable feature Identify an architectural problem Refactor the current architecture Focus on the most recent version Report Submission date: Tuesday, Nov. 09, 2004

09/14/ Course Project Five Options –Architecture Refactoring – Future –Architecture Refactoring – Historical –Architectural Repair –New Tools –New Landscapes Project due: Tuesday, Dec

09/14/ Introduction to JGrok A simple scripting language A relational algebraic calculator –Powerful in manipulating binary relations –Widely used in architecture transformation Online documentation

09/14/ JGrok Features Set operations –Union (+), intersection (^), subtraction (-), cross-product (X) Binary relation operations –Union (+), intersection (^), subtraction (-), composition (o, *), cat-composition (**), projection (.), domain (dom), range (rng), identity (id), inverse (inv), entity (ent), transitive closure (+), and reflective transitive closure (*) Graph pattern matching (like Prolog) data[id,name,salary] = salary[id,salary]; } Relation selection, projection data[&1 =~ “Peter.*” && &2 > 50000] names = data[&1, &2];

09/14/ JGrok Features Cont. Programming constructs –if else –for, while Arithmetic, comparison, logical operators –+, -, *, /, % – =, >, != –!, &&, || Regular expression matching –=~, !~ functions[&0 =~ “nsFrame.*”]

09/14/ JGrok Scripts (1) $ jGrok >> cat = {“Garfield”, “Fluffy”} >> mouse = {“Mickey”, “Nancy”} >> cheese = {“Roquefort”, “Swiss”} >> animals = cat + mouse >> food = mouse + cheese >> animalsWhichAreFood = animals ^ food >> animalsWhichAreNotFood = animals – food >> animalsWhichAreFood Mickey Nancy >> animals – food Garfield Fluffy >> #food 4 >> mouse <= food True >> >> chase = cat X mouse >> chase Garfield Mickey Garfield Nancy Fluffy Mickey Fluffy Nancy >> >> eat = chase + mouse X cheese >> eat Garfield Mickey Garfield Nancy Fluffy Mickey Fluffy Nancy Mickey Roquefort Mickey Swiss Nancy Roquefort Nancy Swiss

09/14/ JGrok Scripts (2) >> {“Mickey”}. eat Roquefort Swiss >> eat. {“Mickey”} Garfield Fluffy >> >> eater = dom eat >> food = rng eat >> chasedBy = inv chase >> topOfFoodChain = dom eat – rng eat >> bottomOfFoodChain = rng eat – dom eat >> bothEatAndChase = eat ^ chase >> eatButNotChase = eat – chase >> chaseButNotEat = chase – eat >> secondOrderEat = eat o eat >> anyOrderEat = eat + Programming constructs if expression { statements } else { statements } while expression { statements } for variable in expression { statements }

09/14/ BFX-Based Pipeline Extraction Pipelines Source codePrep. codeObject codeExecutable Und C/C++ Wrapper CPPX GCC Transformer CPPLD LDX Transformer Island Extractors Transformer Source Models System Models Transformer LDM Landscape Viewer Aerie BFX Transformer

09/14/ BFX-Based Pipeline Source code System Models Build BFX Link Object code Program facts Hierarchical Decomposition LSEdit Step 1 Step 2 Step 4 Step 3 Step 5 Add contain

09/14/ BFX-Based Pipeline: Step 1 Build the system –Download Mozilla ( Download Mozilla Download the latest development version via CVS –Build Mozilla Use default build scripts (make utilities) $ cd mozilla $ gmake –f client.mk build

09/14/ BFX-Based Pipeline: Step 2 Extract facts using BFX $ cd.. $ bfx `find mozilla -name “*.o”` -o mozilla.bfx.ta Extract facts from each object module and write all facts to an output file called “mozilla.bfx.ta”.

09/14/ BFX-Based Pipeline: Step 3 Link extracted facts (resolve references to external definitions) $ jGrok $QLDX/script/bfx/rawlink.ql mozilla.bfx.ta mozilla.raw.ta Extract facts from each object module and write all facts to an output file called “mozilla.raw.ta”.

09/14/ BFX-Based Pipeline: Step 4 Create a hierarchical subsystem decomposition –Create a contain file called “mozilla.contain” in RSF contain mozilla editor.ss contain mozilla layout.ss contain layout.ss html.ss contain html.ss mozilla/layout/html/document/src/nsFrameSetFrame.o –Impose contain on raw data (file-level graph) $ jGrok $QLDX/script/bfx/addcontain.ql mozilla.contain mozilla.raw.ta mozilla.con.ta

09/14/ BFX-Based Pipeline: Step 5 Create landscape views –Add schema $ schema mozilla.con.ta mozilla.ls.ta –Edit views $ lsedit mozilla.ls.ta

09/14/ Volunteer Presenters Bowman: Linux as Case Study: Extracted Architecture Presenter: Omar Zia Garlan and Shaw: Introduction to Software Architecture Presenter: Alan Grosskurth