1 Model-based Software Engineering 師大資工鄭永斌. 2 History While dealing with complex entity, other engineering has learned not to learn it by building it.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Advertisements

ES Seminar1 Communicating Transaction Processes P.S. Thiagarajan National University of Singapore Joint Work with: Abhik Roychoudhury; ……
LIFE CYCLE MODELS FORMAL TRANSFORMATION
UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
SD3049 Formal Methods Module Leader Dr Aaron Kans Module website
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
1 UML – an overview What is UML? UML stands for Unified Modelling Language. ”The Unified Modelling Language is a visual language for specifying, constructing.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Modeling State-Dependent Objects Using Colored Petri Nets
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 SWE Introduction to Software Engineering Lecture 11 - Requirements Engineering Processes.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
The Software Development Life Cycle: An Overview
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Compositional IS Development Framework Application Domain Application Domain Pre-existing components, legacy systems Extended for CD (ontologies) OAD Methods.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 21. Review ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Functional Modeling – Use case Diagram Description.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirements Engineering Requirements Elicitation Process Lecture-8.
METACASE. WHAT THIS PRESENTATION IS ABOUT  What’s META MODELING?  What’s METACASE?  METAEDIT+ 5.1 EVALUTION PROGRAM  Diagram and its kinds.
Object-Oriented Analysis and Design An Introduction.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
WSMX Execution Semantics Executable Software Specification Eyal Oren DERI
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Dynamic software reconfiguration using control supervisors Ugo Buy 13 June 2005.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Model Checking and Model-Based Design Bruce H. Krogh Carnegie Mellon University.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
BY OKAY ASLAN CMPE 516 FAULT TOLERANT COMPUTING A Formal Object-Oriented Analysis for Software Reliability: Design for Verification.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Modeling as a Design Technique Chapter 2 Part 1: Modeling Concepts Object-Oriented Modeling and Design Byung-Hyun Ha
Formal Methods.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & 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.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Formal Methods. What Are Formal Methods Formal methods refers to a variety of mathematical modeling techniques that are applicable to computer system.
Unified Modeling Language. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems,
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
Requirement Specification SRS document is a contract between the development team and the customer How do we communicate the Requirements to others? Firm.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
UML Diagrams By Daniel Damaris Novarianto S..
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
UML Diagrams Jung Woo.
Software Processes.
Object Oriented Analysis and Design
Requirements Engineering Processes
Uml diagrams In ooad.
Presentation transcript:

1 Model-based Software Engineering 師大資工鄭永斌

2 History While dealing with complex entity, other engineering has learned not to learn it by building it. While dealing with complex entity, other engineering has learned not to learn it by building it. They approach the complexity cautiously They approach the complexity cautiously Building prototypes and models are two major approaches for tackling with something we do not understand much Building prototypes and models are two major approaches for tackling with something we do not understand much

3 Prerequisite (1) In other engineering fields In other engineering fields In aircraft manufacturing, engineering build model to test air dynamics in a wind tunnelIn aircraft manufacturing, engineering build model to test air dynamics in a wind tunnel NASA's cryogenic wind tunnel simulates flight conditions for scale models--a critical tool in designing airplanes.

4 Prerequisite (2) In E.E., they always simulate their design In E.E., they always simulate their design first before manufacturing first before manufacturing VHDL

5 Prerequisite (3) Software tools/environment for simulation and verification of hardware design

6 How about software?

7 Software Engineering Methodology

8 Modeling Technology UML (Unified Modeling Language) UML (Unified Modeling Language)

9 State Chart in UML To describe the behaviors of a single object or composite behaviors of objects based on state/event model executable

10 Types of models As in different engineering discipline, there are different kinds of models As in different engineering discipline, there are different kinds of models In software development, actually you have use some non-standard models without noticing it. In software development, actually you have use some non-standard models without noticing it. Flow chartFlow chart Data flow graphData flow graph Architecture modelsArchitecture models

11 Model classification based on rigidity Model that is not rigidModel that is not rigid Some UML models like class diagram Some UML models like class diagram ERD models ERD models Model that is executableModel that is executable State chart in UML, can be applied to tools such as simulation State chart in UML, can be applied to tools such as simulation Model that is rigidModel that is rigid Can be applied to tools such as verification Can be applied to tools such as verification

12 Model classification based on application domain Object-Oriented models (UML) Object-Oriented models (UML) Concurrency models (finite-state like) Concurrency models (finite-state like) CCS, CSP (Communicating Sequential Process)CCS, CSP (Communicating Sequential Process) Petri NetPetri Net Data models Data models ERD (entity relationship diagram)ERD (entity relationship diagram)

13 Modeling process Actually, modeling process is a design and analysis process Actually, modeling process is a design and analysis process Through the process, you will understand, research, and consider your problem carefully. Therefore, avoid fatal error in your problem Through the process, you will understand, research, and consider your problem carefully. Therefore, avoid fatal error in your problem

14 Modeling process Modeling process is not omniscient Modeling process is not omniscient A possible scenario is thatA possible scenario is that You build models You build models You use tools to verify, validate the models and prove your design is correct You use tools to verify, validate the models and prove your design is correct You have programmers follow your model to implement the system You have programmers follow your model to implement the system Your system still crash! Your system still crash!

15 However, the scenario is no different in some disciple You build models You build models You use tools to verify, validate the models and prove your design is correct You use tools to verify, validate the models and prove your design is correct You have your design manufactured You have your design manufactured Your products do not work Your products do not work

16 Modeling process However, modeling process enforces you to think, research, and understand your problem However, modeling process enforces you to think, research, and understand your problem Although your programmers may still build a poor quality code according to your design Although your programmers may still build a poor quality code according to your design At least, your architecture, design maintained in good shape. At least, your architecture, design maintained in good shape. 也就是說你還保持著你的概念的完整性 也就是說你還保持著你的概念的完整性

17 What can you do to a model? Check consistency or Proofs Check consistency or Proofs Translate it into templates, allow programmers to add codes Translate it into templates, allow programmers to add codes Check functional correctness – Check functional correctness – Simulation – if the type of model is executableSimulation – if the type of model is executable Verification – if the type of model is based on some formalismVerification – if the type of model is based on some formalism Use it as document (Software Visualization) Use it as document (Software Visualization) Use it as a communicating tools Use it as a communicating tools

18 Check consistency and Proofs The major risk of design and analysis is omit specification The major risk of design and analysis is omit specification There are other tools to prove a model ’ s correctness – manual help is needed, semi-automatically There are other tools to prove a model ’ s correctness – manual help is needed, semi-automatically

19 Translate a model into templates for coding These tools are practical and really used in practice These tools are practical and really used in practice RationaleRationale ArgoUMLArgoUML JBuilder XJBuilder X

20 Check functional correctness Consider the EE process again. Consider the EE process again. A model is mostly useful if it can help discover your design flaws in early stageA model is mostly useful if it can help discover your design flaws in early stage Software engineering community always want that !! And want it hard!!! Software engineering community always want that !! And want it hard!!! They want some models which can be validated or verified They want some models which can be validated or verified

21 The basics Testing – execution on product or program (implementation) to detect faults (optimistic) Testing – execution on product or program (implementation) to detect faults (optimistic) Simulation – execution on artifacts (models) which is simpler representation of the original complexity (optimistic) Simulation – execution on artifacts (models) which is simpler representation of the original complexity (optimistic) Verification – explore all the state space of models which is a simpler representation of original complexity (pessmistic) Verification – explore all the state space of models which is a simpler representation of original complexity (pessmistic)

22 Optimistic v.s. Pessimistic Optimistic Optimistic

23 Models So, we want models can be So, we want models can be Simulated!Simulated! Verified !Verified ! They can provide more clues of how our design is wrong They can provide more clues of how our design is wrong By the way, what is design? By the way, what is design?

24 The foundation behind model simulation and verification X   Y deadlock exist  deadlock exists Preorder(implements)  (X > -1) => (Y>-1)