May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.

Slides:



Advertisements
Similar presentations
Visual Scripting of XML
Advertisements

Software Development Life Cycle
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
1 SW Project Management (Planning & Tracking) Dr. Atef Z Ghalwash Faculty of Computers & Information Helwan University.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Programming Types of Testing.
1 Chapter 2: Product Development Process and Organization Introduction Importance of human resources: Most companies have similar technology resources.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
MotoHawk Training Model-Based Design of Embedded Systems.
© ABB AB, Corporate Research - 1 5/19/2015 abb Project Breakdown Structure Creation.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
System Design and Analysis
Lecture 13 Revision IMS Systems Analysis and Design.
Fundamentals of Information Systems, Second Edition
APPLICATION DEVELOPMENT BY SYED ADNAN ALI.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
By Ryan Mowry.  Graphical models of system  Entire system or just parts  Complex systems easier to understand  “Capture key requirements and demonstrate.
Your Interactive Guide to the Digital World Discovering Computers 2012.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Introduction 01_intro.ppt
FINAL DEMO Apollo Crew, group 3 T SW Development Project.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
May GlobalVetLink Testing Automation Dan Stewart - EE Joshua Carson - CPRE Jordan Hager - CPRE 1 st Advisor – Dr. Smith 2 nd Advisor – Dr. Manimaran.
Bogor-Java Environment for Eclipse MSE Presentation II Yong Peng.
An Introduction to Software Architecture
Software System Engineering: A tutorial
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Project Management Lecture # 7. What are we studying today? Chapter 24 - Project Scheduling  Effort distribution  Defining task set for the.
FotoGazmic Software (From left to right: Chad Zbinden, Josey Baker, Rob Mills, Myra Bergman, Tinate Dejtiranukul)
May05-36: Boone Cemetery Management Software Boone Cemetery Management Software May05-36 Greg Thede, Director, Boone Parks Department Dr. Kothari Joseph.
Project Scheduling 1. Why Are Projects Late? An unrealistic deadline established by someone outside the software development group Changing customer requirements.
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Chapter 7 Applying UML and Patterns Craig Larman
Mixed-Signal Option for the Teradyne Integra J750 Test System May08-12 Emily Evers Vincent Tai.
Finalizing Design Specifications
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Systems Development Life Cycle
High Performance Computing on an IBM Cell Processor Team May08-24: Kyle Byerly Matt Rohlf Bryan Venteicher Shannon McCormick Faculty Adviser: Team Website:
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Cross Language Clone Analysis Team 2 February 3, 2011.
Faculty Advisor – Dr. Suraj Kothari Client – Jon Mathews Team Members – Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due today, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Today: –Continue.
K-12 Teaching Application Support and Software Ongo-08 Client Dr. John Lamont Prof. Ralph Patterson Advisor Dr. Gregory Smith Team Members Sean Boyle Tony.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
T Project Review WellIT I2 Iteration
Cross Language Clone Analysis Team 2 February 3, 2011.
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
Faculty Advisor – Dr. Suraj Kothari Client – Jon Matthews Team Members – Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore White Box Testing Junit.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
T Project Review MalliPerhe Iteration 3 Implementation
R-Verify: Deep Checking of Embedded Code James Ezick † Donald Nguyen † Richard Lethin † Rick Pancoast* (†) Reservoir Labs (*) Lockheed Martin The Eleventh.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
T Project Review Muuntaja I1 Iteration
Team 8: SAE AADL Simulation and Modeling Tools. Members Chaz Beck Software Engineering Shaun Brockhoff Software Engineering Jason Lackore Software Engineering.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
The Software Development Cycle
High Performance Computing on an IBM Cell Processor --- Bioinformatics
IEEE Std 1074: Standard for Software Lifecycle
Introduction to Systems Analysis and Design
Chapter 1 Introduction(1.1)
Chapter 7 –Implementation Issues
The Software Development Cycle
Presentation transcript:

May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr. Suraj Kothari

May08-21 Model-Based Software Development IRP Presentation  Planning Requirements Specification Project Plan  Design Design Method Engineering Specification Detailed Design  Implementation Build Testing Results

May08-21 Model-Based Software Development Requirements Specification  Model Based Development Latest way to develop control software Visual model of software -> Automated code generation ○ Similar relationship between existing C Code -> binary equivalent Reduce number of bugs in software Map closely to requirements specification

May08-21 Model-Based Software Development

/* Outport: ' /Out1' incorporates: * Inport: ' /In1' * Inport: ' /In2' * Sum: ' /Subtract' */ may0821_Y.Out1 = may0821_U.In1 - may0821_U.In2; /* Outport: ' /Out2' incorporates: * Inport: ' /In1' * Inport: ' /In2' * Product: ' /Divide' */ may0821_Y.Out2 = may0821_U.In1 / may0821_U.In2; Requirements Specification

May08-21 Model-Based Software Development Requirements Specification  Problem / Need Must verify up to 750,000 lines of code  Concept Sketch / Mockup Eclipse plugin Reading c files... done Detecting Simulink blocks... done Inferring Block Relationships... done Verifying Block Correctness... done Generating Simulink File... done Done processing

May08-21 Model-Based Software Development Requirements Specification  System Description 1. Convert C code into a syntax tree 2. Use heuristics to identify Simulink blocks 3. Infer relationships and common variables 4. Verify block correctness 5. Generate new dot file

May08-21 Model-Based Software Development Requirements Specification  Operating Environment Java 5, Eclipse plugin  User Interface Description A menu option in Eclipse

May08-21 Model-Based Software Development Requirements Specification  Functional Requirements Input ○ Read the C files produced by Real-Time Workshop Output ○ Produce one or more valid dot files ○ Accurately reflect the execution flow of the source C code  Non-Functional Requirements ○ Usable on any system capable of running Eclipse and Eclipse plug-ins

May08-21 Model-Based Software Development Requirements Specification  Market/Literature survey Honeywell International - patent for an “Automatic computer code review tool” in ○ Never Issued  Deliverables 1. Requirements specification 2. Project plan 3. Engineering specification 4. Design documents 5. Final report 6. Source code 7. User's manual 8. Project poster 9. Website

May08-21 Model-Based Software Development Project Plan Task 1 - Create Simulink models and C code Task 2 - Identify logical Simulink blocks from C code Task 3 - Process blocks Task 4 - Develop syntax tree Task 5 - Output to Simulink model Task 6 - Verify generated model is functional equivalent Task 7 - UI Task 8 - Testing and debugging Total Kevin Korslund Daniel De Graaf Cory Kleinheksel Ben Miller Total Personnel Name  Work Breakdown Structure  Resource Requirements Estimated man hours for each task

May08-21 Model-Based Software Development Project Plan  Project Schedule

May08-21 Model-Based Software Development Project Plan  Risks Project has the potential to be an unsolvable problem ○ Model data is lost during compilation ○ Blocks not yet supported could pose the possibility of an NP-Complete problem

May08-21 Model-Based Software Development Design Methods  Brainstorming Creative design Innovative approach to solving research project  Agile Development Iterative design steps Frequent, thorough testing (Test early -> Test often)‏

May08-21 Model-Based Software Development Engineering Specification  Input / Output Specification  Hardware Specification – N/A

May08-21 Model-Based Software Development Engineering Specification  Software Specification Parse C Code ○ Eclipse C Development Tools ○ Abstract syntax tree Detect Simulink Blocks ○ Look for known patterns Infer Block Relationships ○ Link blocks by identifying common variables Verify Block Correctness ○ Verify no added functionality ○ Verify no removed functionality Output graph to dot File

May08-21 Model-Based Software Development Engineering Specification  User Interface Specification Eclipse plugin Right-click menu option

May08-21 Model-Based Software Development Engineering Specification  Test Specification Unit-Level Testing ○ JUnit component testing System-Level Testing ○ Large model extensibility and scalability testing User Testing ○ Test entire process

May08-21 Model-Based Software Development  Software Design Detailed Design Block relationships Overall class diagram

May08-21 Model-Based Software Development  Software Design (Cont.) Detailed Design Parser class diagram BlockMatcher class diagram

May08-21 Model-Based Software Development Build  Environment Setup SVN repository Java 5 Eclipse 3.3 Matlab / Simulink / Real-Time Workshop  Coding Package creation ○ Major components ○ Test Eclipse plugin creation  Segmentation, Mutation, and Matching

May08-21 Model-Based Software Development Test  Unit tests Use JUnit Run from within Eclipse  System tests Parser Matcher BlockConnector ModelSplitter / dotOutput  User tests

May08-21 Model-Based Software Development Test

May08-21 Model-Based Software Development Test  Results 100% of tests and models pass Created bug reports in Bugzilla

May08-21 Model-Based Software Development Test

May08-21 Model-Based Software Development Earned Value Analysis  Budgeted Cost of Work Scheduled (BCWS) = $4420  Actual Cost of Work Performed (ACWP) = $4500  Budgeted Cost of Work Performed (BCWP) = $4940  Cost Variance (BCWP-ACWP) = $440  Schedule Variance (BCWP-BCWS) = $520  Cost Performance Index (BCWP/ CWP) =  Schedule Performance Index (BCWP/BCWS) = 1.118

May08-21 Model-Based Software Development Conclusions  Prototype Observations Automatic Real-Time Workshop error detection is possible Amount of human verification can be greatly decreased Some human verification needed due to Real-Time Workshop optimizations Some blocks are functionally equivalent and others cannot be regenerated from code  Project Contribution to Research Area Significant advance in process verification Greatly reduce amount of manual verification  Future Work Prototype needs to be developed into a robust, commercial- grade solution Tighter Eclipse integration Improved user interface

May08-21 Model-Based Software Development Lessons Learned  A carefully designed architecture reduces programming effort  Version control is invaluable for concurrent development  Bug tracking provides statistics and reduces bug recurrence

May08-21 Model-Based Software Development Demo

May08-21 Model-Based Software Development

Demo

May08-21 Model-Based Software Development Demo

May08-21 Model-Based Software Development Questions / Answers

May08-21 Model-Based Software Development Summary