CPSC 875 John D. McGregor Architecture evolution.

Slides:



Advertisements
Similar presentations
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
Advertisements

Component Models and Technologies Case Study: OSGI.
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
1 The Laws of Software Evolution Tori Bowman CSSE 375, Rose-Hulman September 25, 2007 *based on Don Bagert’s lesson.
Eclipse Architecture Dwight Deugo Nesa Matic
Software Evolution – part 2
Software Evolution Managing the processes of software system change
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Plug-in Development Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Spring Dynamic Modules. Startlocation: Documentation: /1.2.1/reference/html/
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
OSGi.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6/e.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CPSC 871 John D. McGregor MMS1 Maintenance & a new trend.
Software change  Managing the processes of software system change.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
OSGi & UPnP Technology 2009 Summer Ya-Lin Huang. 2 Outline What is OSGi Technology Introduction Alliance Specifications Key Benefits OSGi Framework Service.
Review: OSGi – a component framework for Java Bundle OSGi Framework Bundle Java Runtime Environment (JRE) Operating System (OS) Hardware “Dynamic Modules.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
 CS 5380 Software Engineering Chapter 9 Software Evolution.
OSGi Enablement for Tuscany Raymond Feng. Overview.
CPSC 875 John D. McGregor What do you do first?/ Architecture evolution.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Migrating Desktop The graphical framework for running grid applications Bartek Palak Poznan Supercomputing and Networking Center The.
OSGi Service Platform Open Service Gateway initiative.
Sameera Jayasoma 18 th July, 2009 Senior Software Engineer Introduction to OSGi The Dynamic Module System for Java.
Module 8: Software Evolution CSEB233 Fundamentals of Software Engineering Badariah Solemon 2010.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Figures – Chapter 9. Figure 9.1 A spiral model of development and evolution.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CPSC 875 John D. McGregor Architecture evolution.
Getting Started with the Open Services Gateway Initiative (OSGi) CNT 5517 Dr. Sumi Helal, Ph.D. Professor Computer & Information Science & Engineering.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Gradle and Eclipse RCP Ned Twigg
Surya Bahadur Kathayat Outline  Ramses  Installing Ramses  Ramses Perspective (Views and Editors)  Importing/Exporting Example.
Maven, Eclipse and OSGi working together Carlos Sanchez March 17, 2008.
Module 8: Software Evolution CSEB233 Fundamentals of Software Engineering Badariah Solemon 2010.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
ETICS All Hands meeting B ologna, October , 2006 WP4 Test and Metrics Plugin Framework (WP4) (WP4) Eva TAKACS.
Introduction to OSGi +ActorFrame Surya Bahadur Kathayat
CS223: Software Engineering Lecture 32: Software Maintenance.
CPSC 875 John D. McGregor C22 - Architecture evolution.
Part 1 Introduction to Software Engineering 1 copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY.
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
From “Hello World” to Real World : Building web apps with Spring OSGi Craig Walls The Spring Experience 2007 December 12, 2007.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Overview Software Maintenance and Evolution Definitions
Chapter 18 Maintaining Information Systems
Overall Architecture and Component Model
John D. McGregor C8 - Tactics
Architecture, Components, Configuration
Present by Andie Saizan, MCP
For University Use Only
1.1.1 Software Evolution.
Chapter 27 Software Change.
Chapter 8 Software Evolution.
Presentation transcript:

CPSC 875 John D. McGregor Architecture evolution

Implementation should be changing faster than the architecture But both will change because – Requirements change – Product goals change – New patterns are discovered

Types of Maintenance Adaptive – Add new features – Add support for new platforms Corrective – Fix bugs, misunderstood requirements Perfective – Performance tuning Preventive – Restructure code, “refactoring”, legacy wrapping, build interfaces

Lehman’s Laws 1.Continuing change — An E-type program that is used must be continually adapted else it becomes progressively less satisfactory. 2.Increasing complexity — As a program is evolved, its complexity increases unless work is done to maintain or reduce it. 3.Self regulation — The program evolution process is self-regulating with close to normal distribution of measures of product and process attributes.

Lehman’s Laws Invariant work rate — The average effective global activity rate on an evolving system is invariant over the product lifetime. 5.Conservation of familiarity — During the active life of an evolving program, the content of successive releases is statistically invariant. 6.Continuing growth — Functional content of a program must be continually increased to maintain user satisfaction over its lifetime.

Lehman’s Laws Declining quality — E-type programs will be perceived as of declining quality unless rigorously maintained and adapted to a changing operation environment. 8.Feedback system — E-type programming processes constitute multi-loop, multi-level feedback systems and must be treated as such to be successfully modified or improved.

Eclipse Launched in 2001 Eclipse Foundation 2004 Over 170 companies Almost 1000 committers Originally ran on Linux and Windows Now a dozen platforms

Plug-ins A plug-in is a jar with a manifest : : :

Extension points =

Add a menu item

Views and perspectives View – presents specific information in a manner that speaks to a stakeholder Perspective – an arrangement of views, editors that are related

Eclipse 3.0 Plug-ins were to be replaced by a new component model – OSGi bundles This was the new runtime architecture Chose Service Management Framework (SMF) as the framework implementation Provided a compatibility layer for existing plug-ins

OSGi bundles An OSGi bundle runs in a container It is possible to start, stop, and pause actions in the container without restarting the entire container Can have more than one version of a module running at the same time.

Bundle has Activator package com.javaworld.sample.helloworld; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class Activator implements BundleActivator { public void start(BundleContext context) throws Exception { System.out.println("Hello world"); } public void stop(BundleContext context) throws Exception { System.out.println("Goodbye World"); } }

Bundle has Manifest Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: HelloWorld Plug-in Bundle-SymbolicName: com.javaworld.sample.HelloWorld Bundle-Version: Bundle-Activator: com.javaworld.sample.helloworld.Activator Bundle-Vendor: JAVAWORLD Bundle-Localization: plugin Import-Package: org.osgi.framework;version="1.3.0"

OSGi container An OSGi container allows some classes in some bundles to be visible OSGi has its own class loader so no need to maintain a separate one

Bundle life cycle Supports lazy activation which can be either an advantage or disadvantage.

Rich Client Platform People were using Eclipse – which was intended to be an IDE builder as an application builder. To support the RCP modules had to be reconfigured. They were split to narrow the functionality that had to be loaded.

RCP an Platform after reconfigure

Dependencies

Feature.xml <feature id="org.eclipse.rcp" label="%featureName" version="3.7.0.qualifier" provider-name="%providerName" plugin="org.eclipse.rcp" image="eclipse_update_120.jpg"> %description %copyright %license <plugin id="org.eclipse.equinox.launcher" download-size="0" install-size="0" version="0.0.0" unpack="false"/> <plugin id="org.eclipse.equinox.launcher.gtk.linux.x86_64" os="linux" ws="gtk" arch="x86_64" download-size="0" install-size="0" version="0.0.0" fragment="true"/>

Features Features contain features Features contain bundles

P2 as a solution for updates

p2 P2 uses installation units Meta-data describes artifacts Artifacts are the building blocks Profiles allow user to pull from the repository the installed units at a point in time

Eclipse 4 4 was another major build Goals: – Simplified programming model – Attract new committers – Take advantage of new web technologies

Eclipse 4 Separation of model from generation of the view Eclipse 4.0 uses dependency injection to provide services to clients. Dependency injection in Eclipse 4.x is through the use of a custom framework that uses the the concept of a context that serves as a generic mechanism to locate services for consumers. The context exists between the application and the framework. Contexts are hierarchical. If a context has a request that cannot be satisfied, it will delegate the request to the parent context. The Eclipse context, called IEclipseContext, stores the available services and provides OSGi services lookup.

3.X -> 4.x StatusLineManager statusLine; statusLine.setMessage(msg);

Acyclic Design Principle No cycles in a design Not even indirect cycles

Stable Dependencies Principle If A depends on B the B should be more stable than A

Here’s what you are going to do Complete one mission thread for robotic surgery Assume that over the next 3 years the types of surgery done by robots will expand. Write a brief report that identifies the parts of your architecture that will have to change as new surgeries are added. Describe how it could be designed NOW to handle the change THEN.