ro-1.1 research efforts in software engineering prof. steven a. demurjian computer science &...

26
RO-1.1 Research Efforts in Software Research Efforts in Software Engineering Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs, CT 06269-3155 [email protected] http://www.engr.uconn.edu/~steve http://www.engr.uconn.edu/cse (860) 486 - 4818

Upload: rylee-grose

Post on 14-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 2: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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)

Page 3: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 4: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 5: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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?

Page 6: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 7: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 8: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

RO-1.8

Reusable Component Reusable Component Framework(Demurjian)Framework(Demurjian) The DRE Tool - The DRE Tool -

Version 2.02Version 2.02

Page 9: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

RO-1.9

Reusable Component Reusable Component Framework(Demurjian)Framework(Demurjian) Reusability in Reusability in

Together CCTogether CC

Page 10: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 11: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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?

Page 12: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 13: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 14: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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?

Page 15: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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)

Page 16: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 17: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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)

Page 18: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 19: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 20: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 21: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 22: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 23: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 24: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 25: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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

Page 26: RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,

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