CS746 Software Architecture Organizational Meeting - PowerPoint PPT Presentation

About This Presentation
Title:

CS746 Software Architecture Organizational Meeting

Description:

Course Assignments and Project. Introduction to JGrok Algebraic Calculator ... Bowman: Linux as Case Study: Extracted Architecture. Presenter: Omar Zia ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 26
Provided by: jingw
Category:

less

Transcript and Presenter's Notes

Title: CS746 Software Architecture Organizational Meeting


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

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

3
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 (23 persons per team)

4
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
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
Conceptual Architecture of Linux
7
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
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
Concrete Architecture of Linux
10
Concrete Architecture ofFile Subsystem in Linux
11
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
Course Project
  • Five Options
  • Architecture Refactoring Future
  • Architecture Refactoring Historical
  • Architectural Repair
  • New Tools
  • New Landscapes
  • Project due Tuesday, Dec 07 2004

13
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/i
ndex.html
http//swag.uwaterloo.ca/nsynytskyy/grokdoc/index
.html
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)
  • dataid,name,salary _at_nameid,name
    salaryid,salary
  • Relation selection, projection
  • data1 Peter. 2 gt 50000
  • names data1, 2

15
JGrok Features Cont.
  • Programming constructs
  • if else
  • for, while
  • Arithmetic, comparison, logical operators
  • , -, , /,
  • lt, lt, , gt, gt, !
  • !, ,
  • Regular expression matching
  • , !
  • functions0 nsFrame.

16
JGrok Scripts (1)
  • jGrok
  • gtgt cat Garfield, Fluffy
  • gtgt mouse Mickey, Nancy
  • gtgt cheese Roquefort, Swiss
  • gtgt animals cat mouse
  • gtgt food mouse cheese
  • gtgt animalsWhichAreFood animals food
  • gtgt animalsWhichAreNotFood animals food
  • gtgt animalsWhichAreFood
  • Mickey
  • Nancy
  • gtgt animals food
  • Garfield
  • Fluffy
  • gtgt food
  • 4
  • gtgt mouse lt food
  • True
  • gtgt

gtgt chase cat X mouse gtgt chase Garfield
Mickey Garfield Nancy Fluffy Mickey Fluffy
Nancy gtgt gtgt eat chase mouse X cheese gtgt
eat Garfield Mickey Garfield Nancy Fluffy
Mickey Fluffy Nancy Mickey Roquefort Mickey
Swiss Nancy Roquefort Nancy Swiss
17
JGrok Scripts (2)
  • gtgt Mickey . eat
  • Roquefort
  • Swiss
  • gtgt eat . Mickey
  • Garfield
  • Fluffy
  • gtgt
  • gtgt eater dom eat
  • gtgt food rng eat
  • gtgt chasedBy inv chase
  • gtgt topOfFoodChain dom eat rng eat
  • gtgt bottomOfFoodChain rng eat dom eat
  • gtgt bothEatAndChase   eat chase
  • gtgt eatButNotChase eat chase
  • gtgt chaseButNotEat chase eat
  • gtgt secondOrderEat   eat  o  eat
  • gtgt anyOrderEat eat

Programming constructs if expression
statements else statements while
expression statements for variable in
expression statements
18
Extraction Pipelines
19
BFX-Based Pipeline
Source code
Step 1
Build
Hierarchical Decomposition
Object code
Step 2
BFX
Program facts
Step 3
Link
Step 4
Add contain
Step 5
System Models
LSEdit
20
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
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
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
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/n
    sFrameSetFrame.o
  • Impose contain on raw data (file-level graph)
  • jGrok QLDX/script/bfx/addcontain.ql
    mozilla.contain mozilla.raw.ta mozilla.con.ta

24
BFX-Based Pipeline Step 5
  • Create landscape views
  • Add schema
  • schema mozilla.con.ta mozilla.ls.ta
  • Edit views
  • lsedit mozilla.ls.ta

25
Volunteer Presenters
  • Bowman Linux as Case Study Extracted
    Architecture
  • Presenter Omar Zia
  • Garlan and Shaw Introduction to Software
    Architecture
  • Presenter Alan Grosskurth
Write a Comment
User Comments (0)
About PowerShow.com