RO-1.1
Research Efforts in Software Research Efforts in Software EngineeringEngineering
Prof. Steven A. DemurjianComputer Science & Engineering Department
The University of ConnecticutStorrs, CT [email protected]
http://www.engr.uconn.edu/~stevehttp://www.engr.uconn.edu/cse
(860) 486 - 4818
RO-1.2
Overview of PresentationOverview of Presentation
Reusable Component Framework (Demurjian) Reusable Component Framework (Demurjian) Data Consistency, Interoperability and Data Consistency, Interoperability and
Architectural Design (Demurjian/Shin)Architectural Design (Demurjian/Shin) Security Issues for Distributed Applications Security Issues for Distributed Applications
Comprised of Legacy/COTS (Demurjian) Comprised of Legacy/COTS (Demurjian) Architectural Specification/Deployment of Architectural Specification/Deployment of
Distributed Systems (Demurjian/Shvartsman) Distributed Systems (Demurjian/Shvartsman) Summary: Potential Interactions (All)Summary: Potential Interactions (All)
RO-1.3
Reusable Component Framework Reusable Component Framework (Demurjian)(Demurjian)
Popular OO Methodologies Omit/Ignore ReusePopular OO Methodologies Omit/Ignore Reuse Current Research Concentrates on Consumer Current Research Concentrates on Consumer
(Reuser) and Not Producer (Creator)(Reuser) and Not Producer (Creator) Two-Fold GoalTwo-Fold Goal
Elevate Reuse to Equal Partner Domain-and-Organization Specific Reuse
Capabilities of Evaluation TechniquesCapabilities of Evaluation Techniques Identify the Reusable Portions of Design/Code Estimate/Measure Reusability Automatically Support Refactoring Guidelines for Reuse
Improvement For Newly Created Designs and Legacy Code
Design Reuse Evaluation Tool: C++ and JavaDesign Reuse Evaluation Tool: C++ and Java
RO-1.4
Reusable Component Reusable Component Framework(Demurjian) Framework(Demurjian)
General/Specific CharacterizationGeneral/Specific Characterization Best Estimate on Potential Utility of ClassBest Estimate on Potential Utility of Class General Class (G)General Class (G)
Those Application Classes that Facilitate Domain-and-Organization Specific Reuse
Abstract Classes/Root Classes/Non-Leaf Classes in Inheritance Hierarchies
Specific Class (S)Specific Class (S) Only Applicable in Current Applications Unlikely to be Reused in Future Applications
PurposesPurposes Determine Classes with Highest Reuse
Potential for Organization’s Future Systems Quantify Dependencies that Hinder Reuse
RO-1.5
...
Reusable Component Reusable Component Framework(Demurjian)Framework(Demurjian) Demonstrating Demonstrating
Levels of GeneralityLevels of Generality
DairyItem DeliItem
Item
ProduceItem
NonPerishItem PerishItem
)(G0
)(G1 )(G1
)(G2)(G2
BigYProdItem DoleProdItem BigYDairyItem HoodDairyItem
Where can ItemWhere can Itembe Reused?be Reused? Where can Where can
NonPerishItem NonPerishItem and PerishItemand PerishItembe Reused?be Reused?
Where can ProduceItem and Where can ProduceItem and DairyItem be Reused?DairyItem be Reused?
Are DoleProdItem and HoodDairyItem Specific?Are DoleProdItem and HoodDairyItem Specific?
RO-1.6
Reusable Component Reusable Component Framework(Demurjian)Framework(Demurjian) Reusability in Reusability in
Supermarket DomainSupermarket Domain
Specific Applications for Big Y or Shaw’s or Stop/Shop (S)
Root classes for Items, ItemDB, etc., which are Most General.
Inventory ControlOther Components.
Classes Specific to Grocery Store Domain.
)(G0
)(G1
)(G2
Inventory Control Tool for Ordering Items from Suppliers
Cost Accounting Tool for Tracking Net and Gross Profit
RO-1.7
Reusable Component Reusable Component Framework(Demurjian)Framework(Demurjian) Reusability in Reusability in
Supermarket DomainSupermarket Domain
Specific Applications for Big Y or Shaw’s or Stop/Shop (S)
Root classes for Items, ItemDB, etc., which are Most General.
Inventory Control/Other Components.
Classes Specific to Grocery Store Domain.)(G0
)(G1)(G2
Classes forLargeSupermarket
Classes forSpecialtySupermarket
Classes for24 HourConvenience
RO-1.8
Reusable Component Reusable Component Framework(Demurjian)Framework(Demurjian) The DRE Tool - The DRE Tool -
Version 2.02Version 2.02
RO-1.9
Reusable Component Reusable Component Framework(Demurjian)Framework(Demurjian) Reusability in Reusability in
Together CCTogether CC
RO-1.10
Reusable Component Reusable Component Framework(Demurjian) Framework(Demurjian)
Status and ObjectivesStatus and Objectives Work Currently Funded by Electric Boat, Inc. (T. Rando, Work Currently Funded by Electric Boat, Inc. (T. Rando,
T. Daggett, and M. Price) and Jointly Conducted with T. Daggett, and M. Price) and Jointly Conducted with USNA (Dr. D. Needham)USNA (Dr. D. Needham)
Planned Research Over Next 12 Months Planned Research Over Next 12 Months Complete Prototypes (DRE /TCC) Genetic Algorithm for Refactoring/Assessment Formal Reuse Model XML/Reuse
Research - Through 2004Research - Through 2004 Focus on Comprehensive Reuse Framework Guided Reusability Assessment/GA Analysis Component Repository with Search Capabilities Leverage Domain/Organization Specificity UML, XML, and Java Components
See:See: http://www.engr.uconn.edu/~steve/DRE/dre.html
RO-1.11
Data Consistency, Interoperability and Data Consistency, Interoperability and Architectural Design (Demurjian/Shin)Architectural Design (Demurjian/Shin)
Legacy
Legacy
Legacy
COTS
COTS
COTS
Database
Database
NETWORK(LAN, WAN)
JavaClient
JavaClient
How do Systems and How do Systems and Applications Interact?Applications Interact?
What is the Role of XML, JDBC, What is the Role of XML, JDBC, ODBC, JINI, CORBA?ODBC, JINI, CORBA?
How are New Clients Added?How are New Clients Added? New Servers Added?New Servers Added?
What are Performance What are Performance Constraints? Constraints? What Platforms Must Interact?What Platforms Must Interact?
RO-1.12
Data Consistency, Interoperability and Data Consistency, Interoperability and Architectural Design (Demurjian/Shin)Architectural Design (Demurjian/Shin)
Reuse in a Distributed Computing EnvironmentReuse in a Distributed Computing Environment Reuse Legacy/COTS in Innovative Ways Not Cost Effective to Redesign/Reimplement
Wrappers for Cohesive/Seamless InteractionsWrappers for Cohesive/Seamless Interactions Apply to Languages (C, C++, Ada, etc.) and
Paradigms (OODBS, CORBA, RPC) Address Communication, Translation,
Security, Concurrency, Performance, Bandwidth, etc.
Communications Alternatives Dictated by DomainCommunications Alternatives Dictated by Domain Low-Level (Sockets) vs. Mid-Level (RCP,
RMI) vs. High-Level (CORBA, DCOM, …) Message/Database Translations via XML
RO-1.13
Data Consistency, Interoperability and Data Consistency, Interoperability and Architectural Design (Demurjian/Shin)Architectural Design (Demurjian/Shin)
Consistency in Distributed EnvironmentConsistency in Distributed Environment When is Data Sent from Client to Legacy
Server? Automatic (Regular) vs. User-Initiated? When Network Traffic is Low?
Distributed Computing Spans Broad Spectrum Database InteroperabilityDatabase Interoperability
Many Platforms (Oracle, Sybase, Infomix, …) Translation Between Different Databases Exploring XML Capabilities
Funding:Funding: Current: State of CT Insurance Department Previous: Mitre Corp, Eatontown NJ
RO-1.14
Role-Security in Distributed Environment Role-Security in Distributed Environment (Demurjian)(Demurjian)
Legacy
Legacy
Legacy
COTS
COTS
COTS
Database
Database
NETWORK(LAN, WAN)
JavaClient
JavaClient
How is Security Handled How is Security Handled for Individual Systems?for Individual Systems?
Security Issues for New Clients?Security Issues for New Clients?New Servers? Across Network?New Servers? Across Network?
What if Security Never AvailableWhat if Security Never Available for Legacy/COTS/Database?for Legacy/COTS/Database?
Can Software Agents be Can Software Agents be Utilized for Distributed Security?Utilized for Distributed Security?
Authentication Is the Client who S/he Says they are?Authorization Does the Client have Permission to do what S/he Wants?Privacy Is Anyone Intercepting Client/Server Communications?
RO-1.15
Role-Security in Distributed Environment Role-Security in Distributed Environment (Demurjian)(Demurjian)
Can we Provide Customized Control to APIs of Can we Provide Customized Control to APIs of Legacy, COTS, Databases? Legacy, COTS, Databases? API Typically Public to All No Explicit way to Prohibit Access Only Exactly What’s Needed and No More
Current Research/Prototyping of Constraint-Based Current Research/Prototyping of Constraint-Based Distributed Role-Security ModelDistributed Role-Security Model Integrated Prototype on NTs/Linux Using Java,
Oracle/Access, and JINI/VisiBroker Security Authorization/Management Tools Clients Limited in API Usage Based on Role Web Page Currently Under Development
Work Currently Funded by AFOSR(Previously Mitre)Work Currently Funded by AFOSR(Previously Mitre)
RO-1.16
Architectural Specification/Deployment of Architectural Specification/Deployment of Distributed Systems(Demurjian/Shvartsman)Distributed Systems(Demurjian/Shvartsman)
Architect/Deploy of Distributed SoftwareArchitect/Deploy of Distributed Software Formal Definition (textually in Z or graphically
in UML) of a Distributed Application (Re)Deploy (Existing) New Distributed
Application Distributing Standalone Legacy Application
II5 5 : An : An IntegratedIntegrated Five-Level Specification Five-Level Specification Framework for Distributed SystemsFramework for Distributed Systems Support for the Architectural Specification of
OO and Component Based Distributed Systems With a Uniform Notation and With Different
Levels of Abstraction
RO-1.17
SOFTWARE HARDWARE
Dependencies
Deployment
Performance: Efficient Use of Resourcesw.r.t. Throughput/Number of Messages
Integrated Framework for Design and Deployment
Architectural Specification/Deployment of Architectural Specification/Deployment of Distributed Distributed
Systems(Demurjian/Shvartsman)Systems(Demurjian/Shvartsman)
RO-1.18
The Five Levels of The Five Levels of II55
Interface (I1) - Types of Components, Nodes and Connectors
Implementation (I2) - Classes of Components, Nodes and Connectors
Integration (I3) - Dependencies Between Component and Node Classes
Instantiation (I4) - Instances of Each Class Definition
Installation (I5) - Deployment of Each Instance (Requirements and Complete Deployment)
Architectural Specification/Deployment of Architectural Specification/Deployment of Distributed Distributed
Systems(Demurjian/Shvartsman)Systems(Demurjian/Shvartsman)Abstraction
Detail
RO-1.19
Dependencies Between LevelsDependencies Between Levels
Component Types Node Types INTERFACE
IMPLEMENTATION
INTEGRATION
INSTANTIATION
INSTALLATION
Component Classes Node Classes
ImplementationDependencies
Inst. Components Inst. Nodes
Installation Req. (together,separated)
Installation Req. (fix location)
Complete Installation
System Instantiation
RO-1.20
A First Look at A First Look at the Interface Levelthe Interface Level
Component and Node Component and Node TypesTypes Are Specified As Are Specified As Well As Their Connections.Well As Their Connections.
PNODE
CITY
PUZZLE
SLIST
PATH
USER BASETCP/IP
TCP/IPTCP/IP
types
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
RO-1.21
A First Look at A First Look at the Inheritance Levelthe Inheritance Level
Two Types of Inheritance:Two Types of Inheritance: Implementation
Inheritance Interface
Refinement
WINDOW
DIALOGBOX
x_window
x_dialogbox
w_window
w_dialogbox
classes
types
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
RO-1.22
A First Look at the A First Look at the Implementation LevelImplementation Level
Implementation Constraints State the Class of Implementation Constraints State the Class of Node Where Each Implementation Class of Node Where Each Implementation Class of Component Should RunComponent Should Run
puzzle slist path
user
<<supports>> <<supports>> <<supports>>
stereotypesclasses
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
RO-1.23
A First Look at the A First Look at the Instantiation LevelInstantiation Level
Instantiation Identifies the Instance Components Instantiation Identifies the Instance Components and Computers of Each Class That Form Part of and Computers of Each Class That Form Part of the Actual Systemthe Actual System
pnode: PNODE
puzzle:PUZZLE
slist1:SLIST
city:CITY
slist2:SLIST
path:PATH
instances
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
user1:USER
user2:USER
base1:BASE
base2:BASE
RO-1.24
CompleteComplete Installation Installation
user1:USER
user2: USER
base2: BASEbase1: BASE
puzzle:PUZZLE
slist1:SLIST
slist2:SLIST
path:PATH
pnode: PNODE
city:CITY
RO-1.25
Architectural Specification/Deployment of Architectural Specification/Deployment of Distributed Systems(Demurjian/Shvartsman)Distributed Systems(Demurjian/Shvartsman) Benefits of Benefits of II55
Organize Design of New Systems and Documentation of Existing Systems
Firm Basis for Configuration Management UML Usage Exploits Large User Community
Other Aspects of FrameworkOther Aspects of Framework Binary Integer Programming Model Optimal Deployment Based on Communication Tested on Toy, Seek Real OO Applications Explored Genetic Algorithm for Deployment
Ph.D. Research of C. BastarricaPh.D. Research of C. Bastarrica http://www.dcc.uchile.cl/~cecilia/ http://www.dcc.uchile.cl/~cecilia/publicaciones.html
RO-1.26
Summary: Potential Interactions (All)Summary: Potential Interactions (All)
Funded InteractionsFunded Interactions Faculty Consulting (Year Round/Sabbaticals) Funded Research Contracts to UConn
Faculty Funding During Summer/Academic Year Graduate Student Research Assistantships
Cooperative Research Funding CollaborationsCollaborations
Faculty Presentations Industry Presentations (CSE Courses) Graduate/Undergraduate Semester Projects