NOTES FOR PREVIOUS RELEASES OF OSATE

You can download previous releases from the OSATE update site at http://aadl.sei.cmu.edu/aadlinfosite/OSATEUpdateSite.

 

OSATE Release 1.5.7

New features

  • End-to-end flow latency analysis now also produces a record of its computation as a CSV file in the reports folder.
  • Port connection consistency checking: checks whether both ports of a port connection instance have the same Source_Data_Size.
  • Resource budget analysis now rolls up thread period and execution times to compare against MIPS budgets.

Fixed bugs

  • Addressed exception in instance model generation when thread contains data subcomponent that is accessed by subprogram call via data access connection.
  • The grammar now allows multiple annex subclauses for the same component type. It checks that they are not for the same annex.
  • Fixed false report about type matching of port group connections.
  • Fixed problem with binpacker and model that has both bus access connections and data access connections.
  • Source_Data_Size is now allowed on ports. Before it was only via data component types.
  • Scheduling analyzer now provides message if nothing was to be analyzed.

OSATE Release 1.5.6

  • Fixed race conditions with AADL builder. Added toolbar buttons to explicitly invoke a rebuild and the dis/enable autobuild.
  • Weight analysis now interprets WeightLimit, GrossWeight, and NetWeight. The net weight sums of subcomponents and the component are compared to its gross weight (if specified) and against the weight limit.
  • Power Analysis now interprets both PowerBudget and PowerSupply properties on bus access connections and compares them against the PowerCapacity of the bus. Power contributors to the bus use PowerSupply, while power consumers use PowerBudget.
  • Graphical Editor improvements were made to make it more stable. Fixed problem with creating bus access connection from existing model.
  • Graphical editor now ensures that identifiers are legal & performs semantic checks. When double clicking on a subcomponent,the editor now tries to find the diagram for the component classifier of the subcomponent instead of creating a nested instance diagram.
  • Text editor has new commands in context menu to navigate to other parts of model.
  • OSATE now has a special mode in which classifiers can be moved between packages within once instance of the Object (Core) editor. It will update all references including those of the diagrams. You open one .aaxl file and the editor shows all packages and their content. It allows for drag/drop of classifiers within the editor without loosing references.
  • NOTE: Analysers use different marker types to report their results in the "Problem View" of Eclipse. You can get this view to sort the markers by marker type, thus, see all the markers of one analysis together. Use the "Group by" and "Type" feature of the Problem View from the menu on the top right of the Problem View.

OSATE Release 1.5.5

  • Changed how contributed property sets are incorporated into the workspace. Upon launch, OSATE will copy the contributed property sets into a project called Plugin_Resources. These property sets are marked as read only. Instead of shadowing a property set, users can remove the read only flag from a property set and modify it in place.
  • There is also a command on the context menu to revert a property set back to its contributed version. This project can be committed to a CVS repository. When checking out this project from CVS, be sure to delete the local copy first.
  • Support for creating instance models from within the text editor through the context menu
  • When double clicking on a marker in the problem view, OSATE now goes to the text editor by default. An OSATE preference setting can be used to change it to go to the Object Editor.
  • Flow latency analysis now examines some of the bus properties to calculate connection latency. This is attempted if a connection latency property does not exist.
  • Resolved problems with consistently loading predeclared property sets when some of them are shadowed.
  • Reduced memory footprint by eliminating situations where references into an AADL model are explicitly held to track current selection etc.
  • New feature: the Binpacker resource allocation tool can know also allocate processes (as partitions) to processors. An entry in OSATE Preferences controls whether the Binpacker will do the allocation at the thread or process level.
  • New analysis: We have added a NetWeight property to the SEI property set with a unit of "kg". An analysis plug-in under "architecture" will total up all NetWeight property values in an instance model.

OSATE Release 1.5.4

  • fixed a problem with component instances having flow specifications and subcomponents but no flow implementations (Bugs 745 and 768)
  • fixed a problem with instantiating models with end-to-end flows that was causing an exception (Bug 763)
  • fixed a problem with checking the consistency of end-to-end flows, i.e., that a connection's destination matches the next element in an end-to-end flow (Bug 766). The checker was reporting errors when connections or ports were inherited through extends.
  • Contained property association can now be used with end-to-end flows (Bug 767).
  • The model editor now closes when the project containing the open file is closed or the file itself is deleted (Bugs 747 and 765).
  • Made the actions 'Goto AADL Text', 'Goto AADL Diagram', and 'Goto AADL Model' consistent for all to save the file when switching to the respective editor (Bug 770).
  • It is no longer enforced that a processor type must contain a requires bus access (Bug 772)

OSATE Release 1.5.3

Return to top

This release corrects a problem in the OSATE builder that resulted in unnecessary and duplicate (re-)instantiation of instance models.

OSATE Release 1.5.2

Return to top

Fixed Bug 729 (ConcurrentModificationException during load of large project of .aaxl files) by ensuring that models are completely loaded before the builder runs. There was a race condition that occurred when importing large .aaxl files into the workspace. The builder would unparse the models before they were completely loaded, which resulted in incomplete text files, error markers on the model, and internal OSATE errors in the error log.

OSATE Release 1.5.1

Return to top

The most significant part of OSATE 1.5.1 is the inclusion of TOPCASED 1.0.0. It also feasures a simpler process for contributing plug-in property sets and packages.

Release 1.5.1 also includes fixes for bugs 682, 683, 684, 685, 687, 689, 693, 695, and 696. (For details on those bugs, go to https://bugzilla.sei.cmu.edu/bugzilla.

Note that OSATE 1.5.1 does include cvs support. In Eclipse 3.3, a new plugin project called org.eclipse.cvs was created. In Eclipse 3.2, the cvs plugins were in the project org.eclipse.platform. This difference is why OSATE 1.4.10 included cvs, but OSATE 1.5.0 did not.

OSATE Release 1.4.8

Return to top

Bug Fixes

  • Fixed Bug 676: End-to-end flow instances dropped connection instances if they involved port groups. The effect was that end-to-end latency analysis did not include the connection latency.
  • Fixed Bug 673: There was a problem with using the double quote character in string literals. The standard specifies that double quote characters can be represented using two double quote characters. Example: "not" "too" "bad". The problem was that the second double quote character encountered was being interpreted as the end of the literal. The interpreted literal would be "not" and an error would occur because the parser found a double quote character instead of a semi-colon. This has been fixed so that two double quote characters is a legal sequence in a string literal. Note that the internal representation of the string is the same as the text entered in the literal.
  • Fixed Bug 671: The reference to a server subprogram of a thread did not get resolved, if the thread was declared with a thread type only. Such a reference is only used in remote subprogram call bindings.
  • Fixed Bugs 661, 665, 666, 667: There was a problem when opening a project or importing model files. In these situations, the aaxl files were not being loaded into memory properly. This caused numerous side effects. When opening one of these incompletely loaded files, the editor would be empty. Also, unparsing these model files would lead to corrupt aadl source files.

Resource Budget Analysis

This plug-in now treats MIPS, cycletime, and execution time consistently. This problem only showed if budget analysis based on MIPS was compared against budget analysis bsaed on thread data.

Performance Impovement

Model Instantiation runs faster for very large models.

OSATE 1.4.6 RELEASE

Return to top

Documents that provide more details on the flow latency analysis and binpacker enhancements mentioned below will be available by the end of March 2007.

API Changes

  • added to new methods to ComponentImpl
    • getAllFlowImpl(FlowSpec fs, Mode m) to return the FlowImpl (if any) that implements fs in mode m of the component
    • getAllFlowImpl(FlowSpec fs) to return (as a java.util.Map) all the flow implementations that implement the flow specification in the component. The keys to the map are all the modes defined in the component. If the component is modeless, the single key is “null”. The Map goes from Mode to FlowImpl, describing the flow implementation relevant for each mode in the component
  • introduced AbstractInstanceOrDeclarativeModelReadOnlyAction and AbstractInstanceOrDeclarativeModelModifyAction that simplify writing analyses over instance models. Specifically, they implement doAaxlAction() to test whether the model is an instance or declarative model. Analysis is delegated to the methods analyzeDeclarativeModel() and analyzeInstanceModel(). As a result of this change, many of the OSATE analyses now better support modes
  • made instance model more aware of the current system operation mode, so that SystemInstance.setSystemOperationMode() is respected by commonly used methods such as ComponentInstance.getComponentInstance() or SystemInstance.getConnectionInstance()
  • renamed setSystemOperationMode() to setCurrentSystemOperationMode(); the old name has been @deprecated. The following methods are now sensitive to the current system operation mode, in that they will only return model elements that exist in that system operation mode:
    • SystemInstance.getConnectionInstance()
    • ModeTransitionInstance.getDstModeTransitionConnection()
    • FeatureInstance.getSrcPortConnection()
    • FeatureInstance.getDstPortConnection()
    • FeatureInstance.getSrcModeTransitionConnection()
    • FeatureInstance.getDstAccessConnection()
    • FeatureInstance.getOutgoingPortConnectionInstance()
    • FeatureInstance.getIncomingPortConnectionInstance()
    • ComponentInstance.getComponentInstance()
    • ComponentInstance.getAllComponentInstances()
    • ComponentInstance.getSrcAccessConnection()
    • ComponentInstance.getEndToEndFlowInstance()
    • ComponentInstance.findSubcomponentInstance()
    • ComponentInstance.findEndToEndFlowInstance()
    • ComponentInstance.findConnectionInstance()
    • ComponentInstance.findInstanceObject()
  • removed FeatureInstance.getModalOutgoingPortConnectionInstance() and FeatureInstance.getIncomingPortConnectionInstance() because they are now redundant
  • moved findConnectionInstance() from ComponentInstance to SystemInstance
  • added exists() method to ConnectionInstance, ComponentInstance, and EndToEndFlowInstance that returns whether the instance exists in the current system operation mode
  • removed ComponentInstance.getModeInstanceFor(Mode) because it was redundant with findModeInstance()

Improvements

  • Flow latency analysis
    • corrected problem with non-harmonic sampling threads
    • modified to take queuing latency on event and event data ports into account
    • added handling of delayed connections to periodic devices
  • Thread Binding & Scheduling (Binpacker)
    • improved interface to underlying Binpacker package to take into account communication between treads
    • can groups threads that communicate frequently together on the same processor to minimize bus traffic
    • offers three strategy options in a dialog box
  • Object model editor—added support for navigating to source and destination of flows
  • Aaxl files—added preference option to save AADL XML files with EMF reference format instead of Xpath reference format

Bug Fixes

Semantic checker now allows

  • delayed connections with periodic devices
  • a subcomponent type to be refined to one of its implementations, even if the type was declared in another package and made visible in the package with the implementation through system typename extends origpackage::typename
  • Parser now allows provides bus access for devices (Errata)
  • Enabled missrate checking on instance models
  • Corrected problem in Resource Budget Analysis when thread resource requirement based on execution time and period was compared to allocated resource budget
  • Fixed internal error when port groups have no port group type
  • Fixed internal error caused by Bind & Schedule Threads.
  • Fixed problem with mode-specific end-to-end flows in instance models
  • Added method SystemInstance.getInitialSystemOperationMode() to retreive the initial system operation mode. This is the system operation mode whose ModeInstances all refer to initial modes. Added method SystemOperationMode.isIntial() as well.
  • Fixed AADL Navigator to also show plug-in provided packages. Plug-in provided packages are not allowed to be shadowed, however, because it is too hard to deal with in the AADL builder.
  • Added getAllInModes()and isAllInModes() to ModeMember. These methods account for the fact that refinement can alter the modes in which a component/connection/flow is active.
  • Fixed bugs 446 and 476
  • Fixed the semantics of flow implementations. Parser no longer allows flow implementations to be refined or to have property associations. We do allow flow implementations to be redeclared in subcomponents. As a result, a new mode specific implementation can be described. Added additional semantic checks to ensure that the flow implementations still make sense when connections and subcomponents are refined to exist in new modes.