Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University Version 1.0 IWPC 2004 - page 1 Pittsburgh, PA 15213-3890 Architectural.

Slides:



Advertisements
Similar presentations
Software Architecture Reconstruction By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri.
Advertisements

ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Database Systems: Design, Implementation, and Management Tenth Edition
Chapter 2 – Software Processes
By Philippe Kruchten Rational Software
Sponsored by the U.S. Department of Defense © 2005 by Carnegie Mellon University 1 Pittsburgh, PA Dennis Smith, David Carney and Ed Morris DEAS.
Chapter 7 Testing Class Hierarchies. SWE 415 Chapter 7 2 Reading Assignment  John McGregor and David A. Sykes, A Practical Guide to Testing Object-Oriented.
Basic Concepts in Component-Based Software Engineering
OASIS Reference Model for Service Oriented Architecture 1.0
2008/03/25 Unified Modeling Lanauage 1 Introduction to Unified Modeling Language (UML) – Part One Ku-Yaw Chang Assistant Professor.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 28 Slide 1 Process Improvement.
The Architecture Design Process
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Pittsburgh, PA Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense.
© Copyright Eliyahu Brutman Programming Techniques Course.
PPA 502 – Program Evaluation Lecture 5b – Collecting Data from Agency Records.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Introduction To System Analysis and design
2005/05/25 Unified Modeling Lanauage 1 Introduction to Unified Modeling Language (UML) – Part One Ku-Yaw Chang Assistant Professor.
Lesson 7 Guide for Software Design Description (SDD)
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Database Systems: Design, Implementation, and Management Ninth Edition
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
1 Quality Center 10.0 NOTE: Uninstall the current version of QC before downloading QC All QC 10.0 documents can be located on the BI Shared Services.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 25 Slide 1 Process Improvement l Understanding, Modelling and Improving the Software Process.
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
Software Design Deriving a solution which satisfies software requirements.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
1 Chapter 1 Introduction to Databases Transparencies.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Modern Systems Analysis and Design Third Edition Chapter 2 Succeeding as a Systems Analyst 2.1.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
GROUP MEMBERS AYAZ JAVED BITF06A002 SADAF SARFARAZ BITF06A003 SAMIN ATIQA BITF06A028 BILAL KHALID BITF06A042.
Design Concepts ch-8
Database Systems: Design, Implementation, and Management Tenth Edition
Chapter 25 Process Improvement.
Chapter (12) – Old Version
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Unified Modeling Language
Distribution and components
Datamining : Refers to extracting or mining knowledge from large amounts of data Applications : Market Analysis Fraud Detection Customer Retention Production.
Design Tips.
Analysis models and design models
CHAPTER 2 - Database Requirements and ER Modeling
Practical Database Design and Tuning Objectives
Presentation transcript:

Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University Version 1.0 IWPC page 1 Pittsburgh, PA Architectural Views through Collapsing Strategies Liam O’Brien Christoph Stoermer Chris Verhoef

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 2 Motivation - 1 Initial Position 1.Software Architectures are often hard to understand 2.Architecture documentation may not reflect the current state of the implemented system 3.Stakeholders may not be able to find a particular architectural view in the documentation 4.Often the architecture experts are not available for interview 5.There is often a need to use the documentation and possibly the underlying components

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 3 Architecture Reconstruction Architecture Reconstruction is the process by which architectural views of an implemented system are obtained from existing artifacts. In order to generate views of the architecture during the reconstruction process it is necessary to build abstractions of the system and one of the mechanism used for this is collapsing

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 4 Collapsing Collapsing is a mechanism to aggregate detailed source information into higher levels of abstraction. For example, many systems use naming conventions to express what in fact are architectural aspects. A good collapsing strategy is to combine source elements, such as functions, that satisfy a particular naming convention to recover the intended architectural aspects Collapsing is achieved by: clustering of related parts [Lakhotia 97], lattice partitioning [van Deursen and Riva 02], aggregation into containment-hierarchies [Finnegan, et al. 97]

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 5 Collapsing – Example - 1 Schema SourceDestination writefunctionvariable readfunctionvariable Rigi Tuples SourceDestination write fct1var1 readfct2 var1 readfct3var1 fct2fct3fct1 var1

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 6 Collapsing – Example - 2 Pattern-Collapsed – collapse entities of particular type such as function A motivation for this particular case could be the aggregation of all functions that share coherent functionality, for example all functions of a user interface component. fct1fct2fct3 var1 fct-pc

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 7 Collapsing – Example - 3 Write-Collapsed – collapse on a relation type such as write A motivation for this particular case could be the segmentation of variables and functions to form a cohesive block in a reengineering environment fct1 fct-wc fct2fct3 var1

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 8 Collapsing – Example - 4 Function-Collapsed – collapse all descendants of an entity type such as function We name collapsing of entities and relations multi-collapsing when there is no unique assignment to a container possible. The term multi-collapses refers to those entities. var1fct2var1fct3 fct2-fcfct3-fc var1fct1 fct1-fc Note: no relation between containers

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 9 Collapsing – Example - 5 Function-Collapsed – collapse all descendants of an entity type such as function Add a relation between an entity and each instance of the multi-collapsed item Explosion of relations with large amounts of data - cluttered graphs var1fct2var1fct3 fct2-fcfct3-fc var1fct1 fct1-fc Note: relations between containers

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 10 Collapsing – Example - 6 Read-Collapsed – collapse on a relation type in this case read Relation between fct1 and var1 in each container cannot be resolved – it is unclear to which container the relation should go We could have introduced two relations from fct1 to both containers but this does not scale well for large amounts of data and reduces the understanding of the resulting graph. var1fct2var1fct3 fct2-fcfct3-fc var1fct1

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 11 Multi-collapses - 1 Collapsing strives to assign entities uniquely in top-down hierarchies, such as a module hierarchy consisting of a system, sub-systems, layers, modules, etc. In order to generate architectural views using collapsing there is a need to deal with entities that may be assigned to more than one higher-level abstraction. Into the views that we generate we have introduced multi-collapses, entities such as functions and variables, that are not uniquely assignable to a particular architectural element, such as a layer. Multi-collapses have advantages, for example, the visualization of a system from a data perspective, where all elements that access or define a variable are collapsed into the corresponding data container. In this case, a function that accesses several variables will be collapsed into several data containers.

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 12 Multi-collapses - 2 Multi-collapses are either the result of applying incorrect collapsing strategies or an excellent starting point for software analysis to gain better understanding of the existing software. Based on this assertion we implemented collapsing and visualization support for multi-collapses. The principles of multi-collapses are widely applicable and can be implemented in many reconstruction tool environments.

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 13 Characteristics of Multi-collapses We identified three characteristics of multi-collapses: 1.Multiple occurrence of entities 2.Disappearance of relations between containers 3.Uncertainties with respect to ownership and responsibilities Situations where multi-collapses may be useful: Generating views from a data perspective – multi-collapsing functions into data containers Generating call-graph views – collapsing files or data into a function container

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 14 Collapsing and Multi-collapses The collapsing strategy illuminates an aspect of the system, such as write-relations or read-relations. It is therefore essential to develop a concept about views and their interpretation for a particular system before performing collapsing operations. The development of the schema is intertwined with the development of a collapsing strategy to achieve the goals of the reconstruction.

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 15 Case Study – STA - 1 We consciously detected multi-collapses as a useful mechanism was during a case study for the Satellite Tracking Agency (STA). The STA supports efforts to develop, acquire, and deploy satellite- tracking systems. In this case, the STA wanted to better understand the architecture of one of its legacy systems, the Satellite Tracking System (STS), to be able to port the system to a new environment. The STS consists of about 500KLOC, which is a mixture of C, C++, and Fortran that currently runs in a Silicon Graphics environment.

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 16 Case Study – STA - 2 The STS is a classified system and access to the system and any information about it is tightly controlled. As a result the reconstruction of the real system was performed by the developers/maintainers of the STA. Model Sub-model Shared Utilities

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 17 Case Study – STA - 3 Based on information needs and interviews with the developers/maintainers we identified the following architectural viewtypes to be generated:

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 18 Case Study – STA Schema model file function variable directory includes callsaccesses usedBy setssetBy contains constainsDir constainsFile consistOf message

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 19 Case Study – STA - 4 – Model view

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 20 Case Study – STA - 5 – Module subgraph

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 21 Conclusions Depending on the collapsing strategy chosen during the abstraction process to generate architecture views there may be a need for multi-collapses. Multi-collapses can be very useful in understanding a system or particular aspects of the system as they allow the information relevant to a container to be included within the container rather than having that information outside of the scope of the container. Multi-collapses also -reduce the clutter within architectural views -assist the understanding of the system by allowing better hierarchical views of the system to be generated

© 2004 by Carnegie Mellon University Version 1.0 IWPC page 22 Future Work We would like to: Carry out other case studies to further investigate collapsing strategies that involve multi-collapses and their impact on generating and analyzing architectural views Investigate how the presence of multi-collapses affects the complexity of a container and the difficulty in understanding a container -Are there metrics, such as the number of multi- collapses within a container, that would give a guide to the complexity of a container? Investigate how the presence and number of multi- collapses relate to quality attributes, for example how the presence of multi-collapses affect the modifiability of a container or the system overall.