4/16/2004mse presentation ii1 estmd system -- a web-based est model database system yinghua dong
TRANSCRIPT
4/16/2004 MSE Presentation II 1
ESTMD System-- A Web-based EST Model Database
System
Yinghua Dong
4/16/2004 MSE Presentation II 2
Outline Project Review
Architecture Design
Formal Requirement Specification
Test Plan
Formal Technical Inspection
Project Status
References
Acknowledgments
4/16/2004 MSE Presentation II 3
Project Review
Objective
Build a web-based, user-friendly
Expressed Sequence Tags model
database (ESTMD) system to help
biologists search expression sequences
and related information to make further
decisions
4/16/2004 MSE Presentation II 4
Architecture Design-- Use Case Diagram
User GO Classification
Pathway
Download
Data Submission
Search by Keyword Contig View
Gene Ontology Tree View
Diagram: Use CaseProject: ESTMD SystemAuthor: Yinghua Dong
Login
Search in Detail
4/16/2004 MSE Presentation II 5
Architecture Design-- Main Object Model (1)
Diagram: Main Object Model (1)Project: ESTMD SystemAuthor: Yinghua Dong
LoginError<<Client Page>>
Login<<Client Page>>
DataBase
Web Interfaces
DataModule
CommonWork
printHtmlHeader() : voidprintHtmlFooter() : voidResults
Servlets
<<submit>>
<<build>>
4/16/2004 MSE Presentation II 6
Architecture Design-- Main Object Model (2)
Diagram: Main Object ModelProject: ESTMD SystemAuthor: Yinghua Dong
Downloads
LoginError
Login
<<text>> User name<<password>> Password<<submit>> Login<<reset>> Clear
j_security_check()onClickLogin()onClickClear()
<<Client Page>>
Search in Detail
Search by Keyword
Gene Ontology
GO Classification
Pathway
Data Submission
CommonWork
printHtmlHeader() : voidprintHtmlFooter() : void
Sdetail
Skeyword
goServlet
go_classServlet
pathwayServlet
submitServlet
DataBase
DataModule
myDM : DataModuledatabase1 : DatabasequeryDataSet1 : QueryDataSet
DataModule() : voidexecuteQuery() : voidgetDataModule() : DataModulesetQueryString() : voidjbInit() : void
4/16/2004 MSE Presentation II 7
Architecture Design-- Object Model of Search In
DetailDiagram: Sdetail Object ModelProject: ESTMD SystemAuthor: Yinghua Dong
ValidateSdetail
name : StringID : String
validateForm()
<<JavaScript>>
Search in Detail
onClickSubmit()onClickReset()
<<Client Page>>
DataBase
SdetailForm
<<drop_down box>> geneName<<text>> name<<drop_down box>> SeqID<<text>> ID<<drop_down box>> lab<<drop_down box>> organism<<checkbox>> geneSymbol<<checkbox>> fullname<<checkbox>> checkLab<<checkbox>> checkOrganism<<checkbox>> institute<<checkbox>> tissue<<checkbox>> fbID<<checkbox>> gbID<<checkbox>> accession<<checkbox>> cloneID<<checkbox>> rawSeq<<checkbox>> cleanedSeq<<checkbox>> vector<<checkbox>> uniSeq<<checkbox>> length<<checkbox>> evalue<<checkbox>> hitLen<<checkbox>> score<<checkbox>> identity<<submit>> Submit<<reset>> Reset
<<Form>>
SdetailResult
labName : Stringorganism : Stringinstitute : StringtissueType : StringuniseqID : StringuniseqLen : Stringuniseq : StringflybaseID : Stringsymbol : StringgeneName : StringgeneBankID : StringncbiLink : StringaccessionID : Stringevalue : StringhitLength : StringbitScore : Stringidentity : StringcloneID : StringrawSeq : StringrawLength : StringcleanedSeq : StringcleanedLen : Stringvector : String
<<Client Page>>
DataModule
CommonWork
Sdetail
geneName : Stringname : StringSeqID : StringID : Stringlab : Stringorganism : String
doGet()doPost()getQueryInputs()executeQuery()setQueryResults()
<<Server Page>>
<<submit>> <<build>>
4/16/2004 MSE Presentation II 8
Architecture Design-- Object Model of Search By
KeywordDiagram: Skeyword Object ModelProject: ESTMD SystemAuthor: Yinghua Dong
ValidateSkeyword
name : String
validateForm()
<<JavaScript>>
RawseqResult
cloneID : StringcloneSeq : String
<<Client Page>>
CleanedResult
cloneID : StringcleanedSeq : String
<<Client Page>>
UniseqResult
uniID : StringuniSeq : String
<<Client Page>>
Search by Keyword
onClickSubmit()onClickReset()
<<Client Page>>
ContigView<<Client Page>>
SkeywordForm
<<drop_down box>> search<<text>> name<<drop_down box>> lab<<drop_down box>> organism<<submit>> Submit<<reset>> Reset
<<Form>>
SkeywordlResult
uniseqID : StringuniseqLen : Stringsymbol : StringgeneName : StringcloneID : StringrawLength : StringcleanedLen : String
onClickRawLen()onClickCleanedLen()onClickUniseqLen()onClickContigview()
<<Client Page>><<link>>
CommonWork
Skeyword_cseq
cloneID : StringcloneSeq : String
executeQuery()setQueryResult()
<<Server Page>>
<<build>><<link>>
Skeyword_eseq
cloneID : StringcleanedSeq : String
executeQuery()setQueryResult()
<<Server Page>>
<<build>>
<<link>>
Skeyword_useq
uniSeqID : StringuniSeq : String
executeQuery()setQueryResult()
<<Server Page>>
<<build>>
<<link>>
Skeyword
search : Stringname : Stringlab : Stringorganism : String
doGet()doPost()getQueryInputs()executeQuery()setQueryResult()
<<Server Page>>
<<submit>>
<<build>>
DataBase
DataModule
4/16/2004 MSE Presentation II 9
Architecture Design-- Object Model of Gene
OntologyDiagram:Gene Ontology Object ModelProject: ESTMD SystemAuthor: Yinghua Dong
ValidateGO
name : StringID : Stringterm : StringseqFile : String
validateForm() : boolean
<<JavaScript>>
treeViewResult
go_name
<<Client Page>>
UniseqResult<<Client Page>>
Gene Ontology
onClickSubmit()onClickReset()
<<Client Page>>
treeViewServlet
inputdoc : Documentinputroot : ElementtFactory : TransformerFactoryxsltemplate : Template
init() : voiddoGet() : voiddoPost() : voidcopyvalue(Element e) : Elementfind(Element e, String goid, Vector allmtchele) : voidfindallmatch(String goid, Vector allmtchele) : Vectorbuildsubtree(Element e, Stack s, Element go) : voidwritesubtree(Stack s, Element go) : void
<<Server Page>>
<<build>>
DataBase
Skeyword_useq<<Server Page>>
<<build>>
GOForm
<<drop_down box>> geneName<<text>> name<<drop_down box>> seqID<<text>> ID<<text>> term<<file>> seqFile<<radio>> type<<radio>> sort<<submit>> Submit<<reset>> Reset
<<Form>>
goResult
uniseqID : StringuniseqLen : Stringsymbol : StringgeneName : StringcloneID : StringrawLength : StringcleanedLen : String
onClickTreelink()onClickUniseqID()
<<Client Page>>
<<link>>
<<link>>
DataModuleCommonWork
goServlet
geneName : Stringname : StringseqID : StringID : Stringterm : Stringtype : Stringsort : StringseqFile : String
doGet()doPost()getQueryInputs()executeQuery()setQueryResult()
<<Server Page>>
<<submit>> <<build>>
4/16/2004 MSE Presentation II 10
Architecture Design-- Object Model of GO
ClassificationDiagram: GO Classification Object ModelProject:ESTMD SystemAuthor: Yinghua Dong
Search in Keyword
ValidateGOclass
name : StringID : Stringterm : StringseqFile : String
validateForm()
<<JavaScript>>
goclass_seqResult
seqID : String
onClickSeqID()
<<Client Page>>
GO Classification
onClickSubmit()onClickReset()
<<Client Page>>
DataBase
goclass_seq
seqID : String
doGet()doPost()
<<Server Page>>
<<build>>
GOclassForm
<<textarea>> geneName<<file>> seqFile<<checkbox>> molecular<<checkbox>> biological<<checkbox>> celluar<<submit>> Submit<<reset>> Reset
<<Form>>
goclassResult
type : Stringsubtype : Stringseq_count : Stringpercent : String
onClickSeqcount()
<<Client Page>>
<<link>>
DataModuleCommonWork
goclassServlet
geneName : StringseqID : StringID : Stringterm : Stringtype : Stringsort : StringseqFile : String
doGet()doPost()getQueryInputs()executeQuery()setQueryResult()
<<Server Page>>
<<submit>> <<build>>
<<link>>
4/16/2004 MSE Presentation II 11
Architecture Design-- Object Model of Pathway
SearchDiagram: Pathway Object ModelProject: ESTMD SystemAuthor: Yinghua Dong
ValidatePathway
name : StringID : Stringterm : StringseqFile : String
validateForm()
<<JavaScript>>
pathway_nameResult
ecnumber : Stringname : String
<<Client Page>>
UniseqResult<<Client Page>>
Pathway
onClickSubmit()onClickReset()
<<Client Page>>
DataBase
pathway_name
ecnumber : Stringname : String
doGet()doPost()
<<Server Page>>
<<build>>
Skeyword_useq<<Server Page>>
<<build>>
PathwayForm
<<drop-down box>> geneName<<text>> name<<drop-down box>> seqID<<text>> ID<<drop-down>> ec<<text>> text_ec<<file>> seqFile<<radio>> sort<<radio>> scope<<submit>> Submit<<reset>> Reset
<<Form>>
DataModule
pathwayResult
pathwayName : Stringcategory : StringuniseqID : Stringcount : Stringecnumber : String
onClickUniseqID()onClickPathwayName()
<<Client Page>>
<<link>>
<<link>>
CommonWork
pathwayServlet
pathwayName : Stringcategory : Stringuniseq ID : Stringecnumber : Stringcount : Stringsort : StringseqFile : String
doGet()doPost()getQueryInputs()executeQuery()setQueryResult()
<<Server Page>>
<<submit>> <<build>>
4/16/2004 MSE Presentation II 12
Architecture Design-- Sequence Diagram of Gene
Ontology
: User : Gene Ontology : goServlet : DataModule : CommonWork
Diagram: Sequence Diagram of Gene Ontology
Project: ESTMD SystemAuthor: Yinghua Dong
onClickSubmit( )
validateForm()
doGet()
getQueryInputs( )
setQueryResults()
getDataModule()jbInit()
executeQuery()
setQueryString()
printHtmlHeader()
printHtmlFooter()
4/16/2004 MSE Presentation II 13
Architecture Design-- Sequence Diagram of GO Tree
View
: User : goResult : treeViewServlet
Diagram: Sequence Diagram of GO Tree View
Project: ESTMD SystemAuthor: Yinghua Dong
onClickTreelink()
doGet()
findallmatch( )
writesubtree()
find( )
buildsubtree( )
4/16/2004 MSE Presentation II 14
Formal Requirement Specification
-- Overview
Language: Alloy 1.1 -- a structural modeling language
based on first-order logic
Tool: ACA (Alloy Constraint Analyzer)
Purpose: explore abstract software designs,
simulate execution of operations,
and check user-specified properties of a model
Scopes: Gene Ontology Query and
Gene Ontology Tree Generation
References: Dr. John Hatcliff, CIS 771 Lectures
Alloy web site, http://sdg.lcs.mit.edu/alloy
4/16/2004 MSE Presentation II 15
FRS (cont’d)-- For Gene Ontology Query
The user who submits a form is the user who gets the form's query result. all f : Form | f.whoPut = f.query.whoGet
The link belongs to the result which its corresponding output item belongs to. all l : Link | l.linkedBy in l.linkBelongTo.includeOutputItem
The input item is written by the user who put the corresponding query form. all ii: InputItem | ii.belongToUser=ii.belongToForm.whoPut
4/16/2004 MSE Presentation II 16
FRS (cont’d)-- For Gene Ontology Query
Each sequence ID links to a sequence linkall oi: OutputItem |
oi /in SequenceID <-> oi.linkTo /in Sequence_link
Each GOID links to a tree link all oi: OutputItem |
oi /in GOID <-> oi.linkTo /in TreeView_link
Detail Document
4/16/2004 MSE Presentation II 17
FRS (cont’d)-- For Gene Ontology Tree
Generation No Item is its own ancestor.
no i: Item | i in i.+parents There is exactly one Root in each tree.
one i: Item | i /in Root Each item except Root is Root's descendant.
all i: Item - Root | Root in i.+parents Root has no parents or ancestor
all r: Root | no r.+parents Leaf has no children or descendant
all l: Leaf | no l.+children NonLeafItem must have at least one parent and at
least one child.all nl: nonLeafItem | some nl.parents && some nl.children
4/16/2004 MSE Presentation II 18
FRS (cont’d)-- For Gene Ontology Tree
Generation Operation – Add a new Item in the tree
op AddItem (l: Leaf'!) {// pre-conditionl !in Item
// post-conditionItem' = Item + lall p: l.parents' | p in Item
// frame-conditionRoot' = Rootall i: Item | i.parents' = i.parents
}
Detail Document
4/16/2004 MSE Presentation II 19
Test Plan
Test Phases: Unit testing, Integration testing, and System
testing
Test Items: Connection between server and database Each page
Test Features: Features to be tested: each function Features not to be tested: quality of the data
4/16/2004 MSE Presentation II 20
Test Plan (cont’d) Methodology:
Functional testing (Black box) method
Pass/Fail Criteria
The system will pass if the authentication works
correctly and if the results from the queries are
displayed within one minute.
Otherwise the test will fail and the code will be
revised.
Deliverables:
Test plan, Test case specification, and Test result
Detail Document
4/16/2004 MSE Presentation II 21
Formal Technical Inspection Purpose
To ensure consistency in the software development life cycle
and quality of the software requirements
Organization Developer: Yinghua Dong
Inspectors: Acharaporn Pattaravanichanon (Ann) and Zhigang Xie
Software Inspection Checklist
* Completeness * Consistency * Correctness
* Feasibility * Modifiablility * Traceability
* Understandability * Clarity * Functionality
* Reliability
Detail Document
4/16/2004 MSE Presentation II 22
Project Status
Finished:
Documentation: 1/2 of the whole project
Implementation: About 1/3
Future Work:
Implementation: 2/3 workload
Documentation: User Manual, Test Report, and
Evaluation
Final Presentation
4/16/2004 MSE Presentation II 23
References Modeling Web Application Architectures with UML, Jim Conallen,
http://www3.software.ibm.com/ibmdl/pub/software/rational/web/whitepapers/2003/webapps.pdf
Software Formal Inspections, Software Assurance Technology Center (SATC), 1997, http://satc.gsfc.nasa.gov/fi/fipage.html
Software Requirements, 2nd Edition, Karl Wiegers, Microsoft Press, 2003, http://www.processimpact.com/process_assets/requirements_review_checklist.doc
Software Engineering: A practitioner’s Approach, 5th Edition, Roger. S. Pressman,
Alloy web site, http://sdg.lcs.mit.edu/alloy
CIS771 lecture, Dr. Hatcliff
CIS 540, CIS 841 lecture, Dr. Gustafson
4/16/2004 MSE Presentation II 24
Acknowledgments
Committee:
Dr. Mitchell L. Neilsen
Dr. Gurdip Singh
Dr. Daniel Andresen
4/16/2004 MSE Presentation II 25
Suggestions and Comments
Thank You!