Sequence Diagram Generation & Validation MSE First Presentation Samer Saleh Advisor: Bill Hankley
Introduction Software modeling & modern software engineering. Software modeling & modern software engineering. Software modeling is not about drawing models only. Software modeling is not about drawing models only. M. Validation M. Quality S. Quality M. Validation M. Quality S. Quality Model Validation: Model Validation:
Introduction - Continue UML class diagram and sequence diagram are one of the essential models for starting the modeling process. UML class diagram and sequence diagram are one of the essential models for starting the modeling process. Class and sequence models are heavily correlated. Class and sequence models are heavily correlated. Usually this correlation. Usually this correlation.
Introduction- Continue Example1: Example1:
Example2:
Examples Conclusion Inconsistency between class and sequence diagrams are very common. Inconsistency between class and sequence diagrams are very common. Tools are needed to validate & suggest solutions if there are any. Tools are needed to validate & suggest solutions if there are any.
What is done so far…. A lot of research has been done to validate model. Yet not much implementation. A lot of research has been done to validate model. Yet not much implementation. Formalism of the UML diagrams. Formalism of the UML diagrams. Problem: Hard to understand. Difficult to implement by novice software engineers. Problem: Hard to understand. Difficult to implement by novice software engineers. Problem: Current tools doesn’t check for a lot of validation. Problem: Current tools doesn’t check for a lot of validation.
Project idea…. Create/Reload Class Model Create Sequence Model [Valid] Generate Sequence Model Validate [Not Valid] Generate Error Message. View
Project Goals 1. Create a user friendly tool to assist user to generate sequence diagram. 2. Insure reliable and consistent generated sequence diagram. 3. Satisfies the software process and life cycle. 4. Meeting IEEE standards for software documentation
Risks…. Difficulty of using the Java Swings and other java graphical libraries. Difficulty of using the Java Swings and other java graphical libraries. Difficulty of embedding the validation rules, generating meaningful error messages & suggesting solutions Difficulty of embedding the validation rules, generating meaningful error messages & suggesting solutions Time concern. Time concern.
Validation Rules Focused on messages Focused on messages Only Semantics or Structural. Only Semantics or Structural. No Syntax (Implicit). No Syntax (Implicit).
Rule #1: Direct/Indirect Association Message corresponds to direct or indirect ( transitive ) association. Message corresponds to direct or indirect ( transitive ) association. Example: Example:
Rule#2: Dependency Existence For indirect association; at least one path that covers all dependant classes. ?
Rule#3: Reference Existence For Indirect Association: For Indirect Association: 1. For all predecessor messages out of the sender object, there is at least one message where the return type is the receiver object. 2. For all predecessor messages in the sender object, there is at least one message where the parameter passed is type of the receiver object.
Rule#3: Example
GUI Prototype- Main Interface Class Model View Tool Panel Pseudo Code View
UI- Creating Class Model
UI – Class Information
UI- Creating Association
UI- Association Information
UI- Creating Sequence Model
UI- Creating Sequence
UI- Viewing the sequence
UI- Analyzer
Schedule Documentation Coding. Design. Testing. Presentation First Presentation April 15th 2nd Presentation June 20th
Schedule- Continue Documentation Coding. Design. Testing. Presentation Last Presentation July 21st
Cost Estimation Using COCOMO. Using COCOMO. SLOC = * 38 = SLOC = * 38 = Person Productivity (PM) = 11.4 person-month. Person Productivity (PM) = 11.4 person-month. Development Time (TDEV)= 6.3 months. Development Time (TDEV)= 6.3 months. Average Staffing = 11.4/6.3 = 1.8 people Average Staffing = 11.4/6.3 = 1.8 people
For more information….