90 likes | 238 Views
SWEN 750 Software Modeling. Sessions. Basic concepts Case studies Research papers. What is a Model. Abstraction Reduced representation of a system Highlight important properties From a given viewpoint. What to Model. Requirement (user interface)
E N D
Sessions • Basic concepts • Case studies • Research papers
What is a Model • Abstraction • Reduced representation of a system • Highlight important properties • From a given viewpoint
What to Model • Requirement (user interface) • Software Structure, Architecture, Dependencies • Configurations (feature models) • Security features (threat models, attack models)
Modeling Languages and Tools • UML • Use case, Sequential, State, Activity, Class, Component, • OCL • pre-, post-conditions, class invariants • Z • Alloy • First-order logic, set theory • Formal reasoning, automatic analysis
Software Architecture • Components and the connectors (interactions) between them • Design vs. Architecture • Design explicitly addresses functional requirements • Architecture explicitly addresses functional and non-functional requirements such as: • reusability, maintainability, portability, interoperability, testability, efficiency, and fault-tolerance
Design Patterns • What are design patterns? • Templates to organize classes and objects • Language assumptions: OO (small talk, C++) • Many of the patterns related to GUI design • Goals of the design patterns? • Help OO design: decomposing the system into objects to exploit encapsulation, extensibilityand ease of modification, performance, reusability
Model-based Verification • Formal Verification techniques consist of three parts: • Models for systems • Models for property • A verification method
Model-based Testing • Automatic derivation of concrete • test cases from models of the system under testing • Derive all combination of tests associated with the requirements represented in the model to automate both the test design and test execution process