Introduction to Software Modeling

Slides:



Advertisements
Similar presentations
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
Advertisements

A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Use-case Modeling.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
The design process z Software engineering and the design process for interactive systems z Standards and guidelines as design rules z Usability engineering.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
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.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
1 Introduction to Software Engineering Lecture 1.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Modeling as a Design Technique Chapter 2 Part 1: Modeling Concepts Object-Oriented Modeling and Design Byung-Hyun Ha
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Introduction to Modeling Extracted from textbook: Object Oriented Modeling and Design with UML M. Blaha, J. Rumbaugh.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Design Concepts ch-8
Object Oriented Systems Design
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Fundamentals of Information Systems, Sixth Edition
Object-Oriented Analysis and Design
Object-Oriented Software Engineering Using UML, Patterns, and Java,
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Unified Modeling Language
SysML v2 Usability Working Session
The Systems Engineering Context
Software Engineering and Best Practices
HCI in the software process
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Lecture Software Process Definition and Management Chapter 3: Descriptive Process Models Dr. Jürgen Münch Fall
Introduction Artificial Intelligent.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4th edition, Prentice Hall, Hans Van Vliet, Software Engineering:
Chapter 20 Object-Oriented Analysis and Design
Use Cases CS/SWE 421 Introduction to Software Engineering Dan Fleck
Object oriented analysis and design
Appendix A Object-Oriented Analysis and Design
Software Construction Lecture 2
UML profiles.
Software Design Lecture : 15.
HCI in the software process
Copyright 2007 Oxford Consulting, Ltd
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Visual Modeling Using Rational Rose
HCI in the software process
Department of Computer Science Abdul Wali Khan University Mardan
Software Analysis.
Human Computer Interaction Lecture 14 HCI in Software Process
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Software Development Process Using UML Recap
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

Introduction to Software Modeling Dr Maouche Mourad

Software Modeling plays an important role in software engineering. What is a Model? Software Modeling plays an important role in software engineering. Current trends: MDSE (Model Driven SE). A model is an abstract, simplified or incomplete description/representation of a part of the real word: system under construction or system under study.

Modeling It is the process of creating models. Modeling is often practiced in all engineering disciplines. Modeling require a power of abstraction: Persons that cannot THINK ABSTRACTLY fail to learn modeling skills.

Abstraction Selective examination of certain aspects of a problem or system. Goal: Isolate those aspects that are important for some purpose and suppress those aspects that are not important: essential versus details. Abstraction must always be for some purpose. Many different abstractions of the same system are possible depending on their purposes.

Abstraction Abstractions are incomplete and inaccurate. Dont search for absolute truth but for the adequacy for the some purpose. A good model captures the crucial aspects of a problem and ignore the rest.

Why Modeling? Testing a physical entity before building it Engineers test scale models of airplane, cars in wind tunnels and water tanks to improve their dynamics Recent advances in computation permits the simulation of any physical structures without the need to build physical models. Communication with customers Products engineers/architects build models to show to customers. Prototypes/Mock ups: demonstration that imitate some of or all of the external behavior of a system

Why Modeling? Reduction of complexity: Visualization: Storyboards of movies, television shows, advertisements let writer see how their ideas flow. Ability to modify awkward transition, dangling ends,…… Reduction of complexity: The main reason for modeling is to deal with systems that are too complex to understand directly. The human mind cope with only a small amount if information at one time. Models reduce complexity by separating out a small number of important things to deal with at a time.

What to model? Application Model: Enterprises/Business/Domain Model: The most common reason to use modeling. Helps developers understanding and analyzing requirements Provides a basis for building the corresponding software Enterprises/Business/Domain Model: Describes an entire organization or some major aspect of it Enterprise models are not used for building software. Enterprise models are used to understand an enterprise, to detect its weaknesses and eventually reengineer it for improvement. Domain models allow to reconcile concepts across different applications belonging to the same domain. Product assessment

Modeling in SE MDSE based on the idea that SE life cycle phases produce and consume models. Models produced during a given phase will be consumed and used in next phases. Artifacts: requirement models, analysis models, design models, testing models, implementation model (code).

Modeling in SE It is useful to model a system from different but related viewpoints. Each viewpoint captures important aspects of the system. A combination of these viewpoints must capture a complete description of the system. Each model is intended to describe one aspect/viewpoint of a system but contains references to the other models.

Which viewpoints to model? Functional/process aspect. Structural/Data aspect Behavioral/Dynamic aspect Interaction/collaboration aspect

How to express Models? Need of modeling languages to express models. Modeling languages should be simple enough to be comprehensible and usable by modelers. Modeling languages should be expressive and abstract. Modeling language should have a simple but precise syntax and semantics. BPML, UML, EٌRD,DFD….

Typology of modeling languages Various criteria may be used to make a classification of modeling languages: Textual versus diagram based syntax. General purpose or Domain based modeling languages Informal/semi-formal/formal modeling languages

Operations on Models Model Analysis: properties verification Model Refinement: Add more details to models Achieving more concrete models close to programs. Model Transformation: Transform a model expressed in a source modeling language to a target modeling language.

Modeling Tools A set of specialized software tools. Models Edition Models Analysis Models Transformation Models Refinement