300 likes | 309 Views
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.
E N D
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