1 / 15

Introduction to Software Modeling

Introduction to Software Modeling. Dr Maouche Mourad. 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:

brandi
Download Presentation

Introduction to Software Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Software Modeling Dr Maouche Mourad

  2. 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.

  3. 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.

  4. 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 versusdetails. • Abstraction must always be for some purpose. • Many different abstractions of the same system are possible depending on their purposes.

  5. 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.

  6. 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

  7. Why Modeling? • 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.

  8. What to model? • Application 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

  9. 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).

  10. 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.

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

  12. 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….

  13. 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

  14. 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.

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

More Related