Transitioning From Software Requirements Models to Design Models

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Chapter 7 – Object-Oriented Design
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Gerhard Dueck -- CS3013Capturing Requirements as Use Cases 1 Capturing the Requirements as use Cases  Requirements Description  We need to describe –The.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
Software Engineering COMP 201
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Itntroduction to UML, page 1 Introduction to UML.
UML Sequence Diagrams Eileen Kraemer CSE 335 Michigan State University.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
SE 555 Software Requirements & Specification Requirements Analysis.
Object Oriented Analysis and Design Using the UML
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
UML - Development Process 1 Software Development Process Using UML (2)
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Copyright by Dr. Clarence Lau, IVE(TY)
Business Requirements Using Unified Modeling Language Eric H. Castain, SVP Internet Services Group, Architecture Wells Fargo March 2005.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Chapter 1: Introduction to Systems Analysis and Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Systems Analysis and Design in a Changing World, 3rd Edition
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
UML-1 3. Capturing Requirements and Use Case Model.
2 Object-Oriented Analysis and Design and the Unified Process Objectives  Explain the purpose and objectives of object- oriented design  Develop design.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
UML-1 8. Capturing Requirements and Use Case Model.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Business Analysis with For PG MDI, Gurgaon Kamna Malik, Ph.D.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Introduction to OOAD and the UML
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Prof. Hany H. Ammar, CSEE, WVU, and
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
UML - Development Process 1 Software Development Process Using UML.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Transitioning From Software Requirements Models to Design Models
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Lec 6: Practical Database Design Methodology and Use of UML Diagrams
UML: Unified modeling language
Software Development Process Using UML Recap
Presentation transcript:

Transitioning From Software Requirements Models to Design Models PI: Jon Whittle Qss Group Inc. NASA POC: Michael Lowry Ames Research Center

Software Modeling UNIFIED MODELING LANGUAGE A software model is a blueprint for software: essential for project team communication and to ensure architectural soundness NASA missions generally follow rigorous software processes that increasingly rely on software modeling, e.g., Mission Data System (JPL), Space Shuttle (United Space Alliance) Currently, however, software models serve merely as documentation that becomes obsolete when crunch time hits Our research goal: develop algorithms and tools that allow software models to be kept in sync with each other

Overview ??? Validate Requirements Requirements Use cases (scenarios) Requirements Reduce “transformational errors” ??? Focus on scenario-based requirements Translate automatically to state machine designs and on to code UML context Application CTAS (Center Tracon Automation System) State machines Design Code generators (Rational Rose) C++/Java/… Code

What is a Scenario? Scenario = trace of an individual execution of a (software) artifact UML Sequence Diagram shows the global interactions between classes/components describe concrete interactions  good for early development and communication part of popular software development methodologies (e.g., use-case based) But local view needed for design/implementation/validation

State Machine Synthesis B C s1 p/q s/t r/ s1 p q r s1 s t

State Machine Synthesis B C s1 p q r s t A B C a s1 s t b s1 p q s1 a/ b/ s/t p/q r/

State Machine Synthesis B C c p q r c/ s1 a/ b/ s/t p/q p/q r/ r/

State of Play July 03 Dec 02 Synthesis algorithm prototype in Java Proof-of-concept case study: CTAS weather forecast update system 10 pages of natural language requirements Modeled as UML scenarios Synthesized state machines Generated C++ code using RoseRT Inserted & tested in CTAS Work reported at ICSE, May 2003 Synthesis algorithm re-implemented as COM C++ object/ plug-in to Rational Rose CTAS case study positives: It worked! CTAS team to use tool on trajectory subsystem CTAS case study negatives: Precise and complete requirements Question: can we use tool to flesh out/validate requirements? Methodology Interaction patterns Question: can we better support design process?

Work Underway More precise scenario language Add scenario relationships to UML scenarios S1 OR S2, S1 AND S2, S1 preempts S2, S1 suspends S2, temporal relationships Extend to UML2 sequence diagram notation Alternatives, interleaving, coregions etc. A methodology for generalizing/refining scenarios A catalogue of patterns for implementing scenarios as state machines

Scenario Relationships B C s1 p q r s t S1 S2 preempts S1 S2 A B C s1 a s/t p/q b a/ c r/ d b/c Hierarchical state machine d/

Methodology I For requirements validation, it is easy to write down nominal scenarios, but eliciting less obvious scenarios is more difficult We developed a methodology for refining/generalizing scenarios Generalize/ Refine Scenarios Develop Scenarios Apply Synthesis Algorithm Refine State Machines Use state machines as desired, e.g., validation, code generation

Methodology II Write down nominal scenarios Generalize/Refine nominal scenarios Should a message sent to an instance of class be sent to all instances of that class? Does a message really depend on all messages that have gone before or just some of them? Is the message order crucial? Can a message fail – what is the handler? Is additional synchronization information needed? Apply synthesis. Validate and iterate

Methodology III Applied to trajectory uplink/downlink scenarios from CTAS “Customer” independently developed conflict detection scenarios. We specified relationships between conflict detection scenarios and generalized/refined scenarios using our methodology We derived state machines by hand. Synthesis algorithm needs to be enhanced to enable automatic synthesis.

Interaction Patterns User may want more control over the synthesis algorithm to introduce design choices to integrate with existing code to capture information more abstractly Interaction patterns are a good way to do this Developing a catalogue of interaction patterns with collaborators from Carleton University (Francis Bordeleau, Toby McClean) Research challenges: Need a precise way to represent patterns Need to integrate patterns with synthesis

Interaction Pattern Specification (Dae-Kyoo Kim) context jUpdate inv: self.messageSort = asynchcall

Pattern Realization

Patterns: So far Developed a precise specification for an object synchronization pattern Will implement a way of representing patterns in Rational Rose and of instantiating those patterns Integrate patterns with synthesis to generate architectures & structured state machines from patterns + scenarios

Summary Proof-of-concept of state machine synthesis from scenarios – CTAS case study CTAS team wants to use the synthesis algorithm to validate trajectory generation Extending synthesis algorithm towards requirements validation Scenario relationships Methodology for generalizing/refining scenarios Interaction patterns to control synthesis Initial ideas tested on conflict detection scenarios