CIS 764 Database Systems Engineering L4: Design process and artifacts (and reverse engineering) <no audio yet … to be added early in Sept. > Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering No new homework assignment today. Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering technology …. J2EE, dotNet, Ruby, … JDev, Eclipse, VisStudio, .. methodology … RUP (Rational Unified Process), MDD / MDA (model driven development / architecture) extreme programming / developent management … install tools, backups, product selection, training, process / people management, security policies, schedules, budget, … Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Note: Traditional DB design - -> data models: > ER diagrams (P. Chen) ………………………….conceptual , not OO > schema diagrams (Access, Visio, other tools) ... tables, not OO > UML (an emerging notation for data models) … UML, not OO !! read: www.agiledata.org/essays/umlDataModelingProfile.html Scott Ambler’s own profile for UML database models. Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering … notes: stereotype is “data model” storage map is “relational database” kinds of classes: entity lookup table index stored procedure association table view kinds of associations: “arrow” aggregation composition column tags: PK, FK, … Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering conceptual model … most abstract, language/platform independent (never a table model ) logical model …….. specific parameters, constraints physical model …. tables, concrete types Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering OO design process: … in practice, always iterative use case model (requirements) … what operations Process model (“swim lanes”) … coordination of ops GUI design: page designs, page flow, mock-up prototype, state models domain model use case assertions, class model Semantic constraints: invariants, operation assertions, state models physical data model (and OO to relational mapping) Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering UML tutorials: OMG (Object Modeling Group) http://www.uml.org/ Rational / Borland (old, but simple) http://dn.codegear.com/article/31863 Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Sample documents from Sundeep MSE: A User Community (based on Orkut.com) not a perfect example … several weak features. Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Manage Friends * Purpose: The purpose of this part of the application is to enable user to manage his friends list. *Input: The user will select his friends section and choose to manage friends with various options given. *Processing: The user selection will be validated and accordingly the action is being performed again the user’s account at the server. Friends list is then being processed at the server. *Output: The required action is being performed based on the selection of the action, between Add friend, Delete friend, Scrap friend. Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Process model: <did not have one !!!> That means any user can do any (legal) operation in any order. whereas, typical enterprise has coordination of operations: e.g. I cannot access KATS until I am appointed as faculty. Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering --Invariants-- Every photo in database should be associated to a single user. Owner is a member of the community. --Every photo in database should be associated to a single user. association photoasso between Photo[0..*] role userphoto SocialUser[1] role user end --Owner is a member of the community. context SocialUser inv CommOwnerIsMember: SocialUser.allinstances -> forAll(S | S.myCommunities.Owns->includes(S) implies S.myCommunities.member->includes(S)) Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering CreateCommunity(c_name : String, c_pic : String) : Boolean pre : Community.allInstances.c_name->excludes(c_name) post : Community.allInstances.c_name=Community.allInstances.c_name@pre->including(c_name) post : Community.allInstances.c_pic=Community.allInstances.c_pic@pre->including(c_pic) DeleteCommunity(c_id : Integer) pre : Community.allInstances.c_id->includes(c_id) post : Community.allInstances.c_id=Community.allInstances.c_id@pre->excluding(c_id) post : Community.allInstances.c_name=Community.allInstances.c_name@pre->excludes(c_name) post : Community.allInstances.c_pic=Community.allInstances.c_pic@pre->excludes(c_pic) Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Test Plan: derived from method assertions include plan for function and regression testing function: test both positive action and invalid inputs & states regression: JUnit , NUnit … repeat tests as system is changed Registering a Social User Login Adding a Friend Deleting a Friend Scrap a Friend Creating a Community Joining a Community Manage photos of user Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Now the reverse engineering process: Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Fall 2007 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering End Fall 2007 http://www.cis.ksu.edu