Sequence Diagram Generator Presentation
300 likes | 318 Vues
This presentation highlights the action items and updates for the Sequence Diagram Generator Project, including the Quality Assurance Plan, Formal Specification, Technical Inspectors, and GUI Prototype.
Sequence Diagram Generator Presentation
E N D
Presentation Transcript
Sequence Diagram Generator Presentation IIMSE Project / Fall, 2005 Samer AliSaleh Major Advisor: Bill Hankley
Presentation I Action Items • Quality Assurance Plan. • Area covered by formal specification . • Technical Inspectors. • Better GUI Prototype. • Used Technology
Action Item: Quality Assurance Plan • Quality assurance plan is created and can be found on the following link: http://www.cis.ksu.edu/~ssaleh/mseproject.htm
Action Item: Formal Specification Topic • The Analyzer Rules were selected for formalization using OCL. • More details about the specification in the following slides.
Action Item: Technical Inspectors • Judy Dizon (MSE) • Patrcik Gallagher (MSE) • Inspection will be done during phase 3 of the project. • Inspection List can be found on the following link: http://www.cis.ksu.edu/~ssaleh/mseproject.htm
Action Item: GUI Prototype • Problem: Only Visio GUI diagrams were provided as a prototype. No Executable GUI. • Solution: an executable prototype is built with some functionality of each given requirement. • Prototype demonstration will be given at the end, with an example.
Action Item: Used Technology • Writing Plug-in for Smart Development Environment (SDE) developed by Visual Paradigm
Smart Development Environment • Very powerful tool that has the needed functionality to fit any application • Can be extended and integrated through different IDEs. • Easier to write plug-in: Readable tutorial, and well organized API. • Functionality Vs. Development Time • Online Support
Writing Plug-in Challenges…. • Learning Curve: - Very brief tutorial. - Uncommented API. Click here • Limited Interaction: - No listeners nor Events handling or processing. • Bugs in the API - Bugs even in getters & setters • No way to debug or trace exceptions
Design Architecture -Package Model Dialogs Actions Handler Controller Diagram Elements Models UML Diagrams SDE Diagram Manager
Design Arch. – Class Model • Click Here to view the class diagram.
Design Arch.- Sequence Diagram (Create New Sequence Diagram)
Design Arch.- Sequence Diagram(Create New Life Line Element)
Formal Specification • Analyzer Part + Related Classes & Attributes. • 9 Classes and 13 associations • 3 major invariants. • Formal Specification is done using OCL and USE 2.3.0.
Formal Specification Sample 1 class IClass < IModelElement Attributes classID:String className:String Operations getAllFromEndAggregationsAndCompositionsToClasses():Set(IClass)=self.classFromAssociationEnd-> select (a|a.type=#AGGREGRATIONKIND_AGGREGATION or a.type=#AGGREGATIONKIND_COMPOSITED).toClass->asSet // This operation is used to generate the transitive aggregation set for a // given class For example if A aggregate to B and B Aggregate to C // then the operation for class A will generate the set {B,C} transitiveAggregation(s:Set(IClass)):Set(IClass)= if s-> includesAll (s.getAllFromEndAggregationsAndCompositionsToClasses())then s else transitiveAggregation(s-> union (s.getAllFromEndAggregationsAndCompositionsToClasses())->asSet) Endif end Return all the classes that the selected class has aggregation with If Selected class aggragation classes is Subset of Transitive_Set , return Transitive_Set Else Recursion(Transitive_Set U Aggregation_Classes)
Formal Specification Sample 2 //3--If Message corresponds to indirect Association and intermediate classes exist, then the sender // object / must have a reference to receiver object either by a pre outgoing message with a return // type of receiver or by an ingoing message with a parameter passes as receiver. context message:IMessageinv senderHasReferenceOfReceiverForIndirectASsociation: //Check if the message corresponds to indirect Association message.fromEnd.baseClass.classFromAssociationEnd->select (a|a.toClass->includes(message.toEnd.baseClass))->isEmpty And message.fromEnd.baseClass.allFromClassRelationship->select (r|r.relationToClass->includes(message.toEnd.baseClass))->isEmpty And message.fromEnd.baseClass.transitiveAggregation (message.fromEnd.baseClass.getAllFromEndAggregationsAndCompositionsToClasses())->includes (message.toEnd.baseClass) Implies // If Message corresponds to indirect association then check // if there is a pre message in which: message.sequenceDiagram.associatedMessages->exists (m| message.index<m.index and ( // 1.a pre message sender is the same as current message sender and // the return type of the message is the same as the class name (m.fromEnd = message.fromEnd and m.toEnd.baseClass.classOperations->select (op|op.name = message.name).returnType->asSet->includes(message.toEnd.name)) or //1.b pre messate receiver is the same as the current message sender and //the message has at least one parameter of type of current messate receiver. (m.toEnd = message.fromEnd and m.toEnd.baseClass.classOperations->exists (op|op.operationParameters.type->asSet->includes(message.toEnd.name)) )) ) Message Ends don’t have aggregation Message Ends don’t have association Message Ends have indirect relation Exists a message with a return type of receiver going from sender Exists a message going into sender with a parameter passed as type of receiver
Testing Plan • Functional Testing. • Test case for each functional requirement. • ~ 80 test cases. • Testing will be done as part of the assessment evaluation in phase 3 of the project.
Testing Plan • Each Test case consist of action to be taken, Pre condition & post condition that need to be satisfied. • Sample Test Case:
Project Plan & Cost Estimate • COCOMO Model was used to estimate LOC, and Time. • Unadjusted FP = 68 • Adjusted FP = 65.96 • Estimated SLOC = 2506 • Estimated Development Time = 5 months
So Far…… • Total time = 19,110 min. • Total Days = 90 days. • Hours/Day = 19,110 / 90 / 60 ≈ 4 hours/day • Remaining Days = 150 – 90 = 60 days with 4 hours / day productivity. • Deadline: December 7th, 2005. Only 30 days left. • Productivity should increase to 8 hours/day