Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "CS746 Software Architecture Organizational Meeting Instructor: Prof. Richard C. Holt TA: Jingwei Wu."— Presentation transcript:

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

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

3 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)

4 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

5 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.

6 09/14/20046 Conceptual Architecture of Linux

7 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

8 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

9 09/14/20049 Concrete Architecture of Linux

10 09/14/200410 Concrete Architecture of File Subsystem in Linux

11 09/14/200411 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

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

13 09/14/200413 Introduction to JGrok A simple scripting language A relational algebraic calculator –Powerful in manipulating binary relations –Widely used in architecture transformation Online documentation http://swag.uwaterloo.ca/~j25wu/projects/grokdoc/index.html http://swag.uwaterloo.ca/~nsynytskyy/grokdoc/index.html

14 09/14/200414 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] = { @name[id,name]; salary[id,salary]; } Relation selection, projection data[&1 =~ “Peter.*” && &2 > 50000] names = data[&1, &2];

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

16 09/14/200416 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

17 09/14/200417 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 }

18 09/14/200418 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

19 09/14/200419 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

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

21 09/14/200421 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”.

22 09/14/200422 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”.

23 09/14/200423 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

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

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


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

Similar presentations


Ads by Google