l10 - CS 290C: Formal Models for Web Software Lecture 10:...

Info iconThis preview shows pages 1–6. Sign up to view the full content.

View Full Document Right Arrow Icon
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Web Application Modeling So far we have discussed various approaches for modeling, analyzing and verifying web applications We have seen two main approaches: Model driven development approaches where the application is specified or enhanced using a formal model For example: WebML, navigation state machines Reverse engineering approaches where a formal model is extracted fro the application For example: Extracting a state machine model for navigation by analyzing the links that are inserted in web pages
Background image of page 2
Model Driven Development Approach Model driven development approach enables Specification of the behavior of the application at a high level of abstraction, making it easier to develop applications. The actual implementation can be automatically or semi- automatically generated from the high level models Separation of concerns can be achieved by specifying different concerns about the application (such as the data model or the navigation constraints) using different specification mechanisms However, model driven development requires the developers to learn and use the modeling languages There is a concern about the mapping between the actual implementation and model (they have to maintained together)
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Reverse Engineering Approach Reverse engineering approaches does not require developers to learn a new specification language Since reverse engineering approaches extract a model directly from the code, there is no maintenance issues (when the application changes, we can extract a new model) However, reverse engineering is hard: Extracting sound models using static analysis can lead to very approximate models that do not contain much information or can be undecidable for more precise models Extracting models by observing runtime behavior is not sound and cannot be used to guarantee correctness
Background image of page 4
How About a Language Based Approach? Both model driven development and reverse engineering approaches can be considered software engineering approaches Another approach would be to use a programming language based approach Can we model the problems that appear in Web applications in programming language terms and possibly suggest solutions using programming language mechanisms (such as type checking)?
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 6
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 21

l10 - CS 290C: Formal Models for Web Software Lecture 10:...

This preview shows document pages 1 - 6. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online