Horizon: CDR The Horizon Project Team September 29 th, 2006.

Slides:



Advertisements
Similar presentations
INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
Advertisements

Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
System Integration Verification and Validation
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Apache Struts Technology
1 Software Engineering Lecture 11 Software Testing.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 4 – Introducing Algorithms, Pseudocode and.
MCDST : Supporting Users and Troubleshooting a Microsoft Windows XP Operating System Chapter 14: Troubleshooting Remote Connections.
Chapter 12: ADO.NET and ASP.NET Programming with Microsoft Visual Basic.NET, Second Edition.
IBM WebSphere survey Kristian Bisgaard Lassen. University of AarhusIBM WebSphere survey2 Tools  WebSphere Application Server Portal Studio Business Integration.
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
Chapter 3: System design. System design Creating system components Three primary components – designing data structure and content – create software –
Academic Advisor: Prof. Ronen Brafman Team Members: Ran Isenberg Mirit Markovich Noa Aharon Alon Furman.
Useful Tools for Testing
Guide To UNIX Using Linux Third Edition
Using Microsoft SharePoint to Develop Workflow and Business Process Automation Ted Perrotte National Practice Manager, Quilogy, Microsoft Office SharePoint.
CH07: Writing the Programs Does not teach you how to program, but point out some software engineering practices that you should should keep in mind as.
Bret Juliano. Introduction What Documentation is Required? – To use a program – To believe a program – To modify a program The Flow-Chart Curse Self-Documenting.
A First Program Using C#
The Design Discipline.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
Module 1: Introduction to C# Module 2: Variables and Data Types
Programming with Microsoft Visual Basic 2012 Chapter 12: Web Applications.
Spreadsheet-Based Decision Support Systems Chapter 22:
Developing Workflows with SharePoint Designer David Coe Application Development Consultant Microsoft Corporation.
Capacity analysis of complex materials handling systems.
An Introduction to Software Architecture
MAPLDDesign Integrity Concepts You Mean We’re Still Working On It? Sustaining a Design.
Winrunner Usage - Best Practices S.A.Christopher.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Exploring an Open Source Automation Framework Implementation.
CSE 219 Computer Science III Program Design Principles.
Systems Analysis and Design in a Changing World, 3rd Edition
Visual Basic Programming
WGISS /09/2015 DATA PRESERVATION – CNES APPROACH B. Chausserie-Laprée.
SIMO SIMulation and Optimization ”New generation forest planning system” Antti Mäkinen & Jussi Rasinmäki Dept. of Forest Resource Management.
Health eDecisions Use Case 2: CDS Guidance Service Strawman of Core Concepts Use Case 2 1.
Chapter 3 Part II Describing Syntax and Semantics.
Project Deliverables CEN Engineering of Software 2.
Systems Development Life Cycle
Chapter 3 System Performance and Models Introduction A system is the part of the real world under study. Composed of a set of entities interacting.
SIMO Python/XML Simulator Current situation 28/10/2005 SIMO Seminar Antti Mäkinen Dept. of Forest Resource Management / University of Helsinki.
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Session 1 Module 1: Introduction to Data Integrity
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Setting Up Oracle Cash Management. Objectives After completing this lesson, you should be able to do the following: Describe Oracle General Ledger setup.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
How to develop a VoIP softphone in C# by using OZEKI VoIP SIP SDK This presentation demonstrates the first steps concerning to how to develop a fully-functional.
SOFTWARE TESTING TRAINING TOOLS SUPPORT FOR SOFTWARE TESTING Chapter 6 immaculateres 1.
Architecture Review 10/11/2004
Building Enterprise Applications Using Visual Studio®
Overview Modern chip designs have multiple IP components with different process, voltage, temperature sensitivities Optimizing mix to different customer.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Useful Tools for Testing
Learning to Program D is for Digital.
Use Case Model.
PRG 410 Education for Service-- snaptutorial.com
Unit# 9: Computer Program Development
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
TransCAD Vehicle Routing 2018/11/29.
Analysis models and design models
An Introduction to Software Architecture
MECH 3550 : Simulation & Visualization
SPL – PS1 Introduction to C++.
Presentation transcript:

Horizon: CDR The Horizon Project Team September 29 th, 2006

2 Horizon CDR: Agenda Horizon Overview Framework Overview –Horizon Purpose and Use –Domain Model Open Issues from PDR –Aeolis-Subsystems - Testing –Constraint Checking STL Map –Dependencies –Schedule Validation –Value Function –GUI interface Final Delivery –Documentation User Guide Code Comments –Unit Testing cppunit testing _ASSERTE CSC “Expert” Future Modifications for Horizon Improvement –Scheduler Improvement Options Dependency/Constraint Optimization - “Fail Fast” –Robust/Release Code –“Optimize” code for speed Open Source Tools Development in Visual Studio Express using STL, (no Windows MFC) GNU General Public License and GNU Lesser General Public License –xmlParser –mySQL++ –Doxygen

Horizon Project Overview

4 Design Iteration and Requirements Feedback A-Spec Segment Specs and Interface Documents Utility Analysis Models and Equations Final Specs for Sell-off Vetted Desig n? Horizon

5 Glossary Environment - The entity in which systems reside, and to whose physical rules they are subject System - A stateful entity that performs tasks Subsystem - A component representing an aspect of the system, possibly dependent on other subsystems State - A collection of variable values that record the properties of a system at a specific point in time Variable - A varying quantity that completely or partially defines the state of a subsystem Constraint – An externally imposed restriction on the legal values of a variable Schedule - A time-ordered sequence of events Event - A scheduled performance of a Task during a time interval Task - An action to be performed at a target, whose interaction with the Geometry Model provides limitations and suggestions for scheduling Target - A named object with a position that may vary Scheduler - An actor that creates valid schedules for a system Schedule Evaluator - An actor that assigns values to schedules

6 Version Control Using Subversion –Single Computer at Cal Poly is Subversion Server IP : –Tortoise Subversion Client Connect via pinhole and port 3690 Username and Password Protected Uses SSH for transfer security

Horizon Framework Overview

8 Domain Model

9 Namespaces horizon – main programhorizon horizon::eval - value functionhorizon::eval horizon::geom – Environment, Position, Propagator, Sunhorizon::geom horizon::sub – all Subsystemshorizon::sub horizon::sub::dep – subsystem dependancieshorizon::sub::dep horizon::ui – User Interfacehorizon::ui horizon::util – Matrix, Quaternion, ODE, etc…horizon::util horizon::util::umath – utility math operationshorizon::util::umath std – Standard Namespacestd

10 Class List horizon::Constraint horizon::Event horizon::Schedule horizon::Scheduler horizon::State horizon::StateVar horizon::Subsystem horizon::System horizon::Target horizon::Task horizon::eval::ScheduleEvaluator horizon::eval::QuantitativeSchedul eEvaluatorhorizon::eval::QuantitativeSchedul eEvaluator horizon::geom::Environment horizon::geom::Position horizon::geom::Propagator horizon::geom::Sun horizon::sub::ADCS horizon::sub::EOSensor horizon::sub::SSDR horizon::ui::TextUI horizon::ui::UI horizon::util::eoms horizon::util::Matrix horizon::util::matrixIndex horizon::util::ode horizon::util::odeResult horizon::util::Quat

11 Documentation Doxygen –Open source tool for creating documentation from source code comments –Structured Format –Example: list horizon::Scheduler::schedule (System & system, const list & tasks, const State * initialState, double startTime, double endTime, double stepLength )Generates valid schedules for the systemsScheduleSystem TaskState Parameters: –system the system for which to generate schedules tasks the tasks to schedule initialState the initialState of the system startTime the earliest time at which tasks can be scheduled to start endTime the latest time at which tasks can be scheduled to end stepLength the amount of time between each possible task start time Returns: –a list of dynamically allocated schedules Definition at line 13 of file Scheduler.cpp.13Scheduler.cpp References horizon::System::canPerform(), END_TIME_KEY, horizon::System::getPosition(), horizon::System::getSimulationStartJD(), START_TIME_KEY, and TASK_START_TIME_KEY.horizon::System::canPerform()END_TIME_KEY horizon::System::getPosition()horizon::System::getSimulationStartJD() START_TIME_KEYTASK_START_TIME_KEY

Constraints

13 Constraint Summary A constraint is an externally applied restriction on the state of the system

14 The Constraint Class The Constraint class is the base class off of which each constraint is derived as its own class. For example, a constraint on power would have its own class derived from Constraint Each constraint keeps a list of subsystems that must be run in order to generate the state data to be checked Each constraint overrides the virtual function Constraint::Pass(State), which contains a conditional statement that checks whether the state data in question is acceptable

15 The Subsystem List This list must include the subsystems that are directly related to the relevant state data and all prior subsystems that they are dependent on. The two examples below show subsystem lists for a constraint on state data written by subsystem A Sub A Sub B Sub C Sub A Sub BSub C Subsystem List {B} (Note: Dependencies travel in the direction of the arrow. On the right, A is dependent on both B and C) Subsystem List {B, C}

16 The Pass Method The state data generated by running the subsystems in the subsystem list is then evaluated by Constraint::Pass(State) Pass is passed the current state of the system and then checks the constraint if state variable acceptable return true else return false

Dependencies

18 Dependency Summary Subsystems are often dependent on other subsystems for necessary information. Since neither subsystem should be explicitly aware of the other, this information must be obtained through a third party interface called a dependency.

19 The Dependency Class The Dependency class allows subsystems to access dependency functions that obtain and modify information from another subsystem The class keeps a list of all dependency names and maps these names to the appropriate dependency functions, which are declared in the Dependency header file and defined in the Dependency source file.

20 Dependency Names Each dependency has a name based on the relationship between the two subsystems “DependentSub_InfoType_SourceSub” With this naming scheme a dependent subsystem can quarry the Dependency class for all dependencies of a certain type without knowing what the other subsystems are or how many there are The static method that returns the list of dependency names is: Dependency::searchDependent(“DependentSub”, “InfoType”)

21 Dependency Map Each dependency name is mapped to its corresponding dependency function. For example, “DependentSub_InfoType_SourceSub” could be the key for the function DependentInfoSource(State) A dependency is called with the static method Dependency::depFunc(“DepName”, State). It uses the name as a key to the appropriate function and then passes it the state. It returns a list of type list >, a flexible container for values that is also used by the State class

22 Schedule Validation Test results are available so testing is Underway

23 Test Output

24 Value Function Currently set as the number of Events in a Schedule –The final delivery will contain a list of recommended approaches State Variable Value Resource Conservation Etc…

25 GUI interface Derek is working the GUI from the CEC end –Xml input files are well suited for GUIs –A list of input parameters to the Simulation Framework need to be made –Any other input parameters need to be identified –Some hard coded values need to be moved to input fields

26 Documentation User Guide –Under development –“Step-by-step.doc” A guide to building a simulation model with constraints and dependencies Code Comments

27 Unit Testing cppunit testing –Not implemented _ASSERTE –Used to test obvious necessary conditions during debug CSC “Expert” –We need someone!

28 Future Modifications for Horizon Improvement Scheduler Improvement Options Dependency/Constraint Optimization - “Fail Fast” Robust/Release Code “Optimize” code for speed

29 Open Source Tools Development in Visual Studio Express using STL, (no Windows MFC) GNU General Public License and GNU Lesser General Public License –xmlParser –mySQL++ –Doxygen

30 Issues from Derek’s Visit Feedback from schedule via subsystem.canPerform as to why the subsystem failed/performed Documentation (doxygen) linked to flow chart of main framework function calls/logic add variable schedule list size for Greedy Alg option - DONE add time scale windowing DOCUMENTATION – IN PROCESS (5%) Run time studies – WE CAN NOW START –target deck size and time step size Profile run time – WE CAN NOW START Outline of Users Guide (10%) –How to set up a system (20%) Validation plan –Subsystems –Framework - Bogus model vs. full model Validation cases on flow chart of main framework function calls/logic