Toronto CSC 408F - CSC 408F Lecture Notes

Unformatted text preview:

CSC 408F/CSC2105F Lecture NotesThese lecture notes are provided for the personal use ofstudents taking CSC 408H/CSC 2105H in the Fall term2004/2005 at the University of Toronto.Copying for purposes other than this use and all forms ofdistribution are expressly prohibited.cDavid B. Wortman, 1999,2000,2001,2002,2003,2004cKersti Wain-Bantin, 2001cYijun Yu, 20040Phase A. Requirements AnalysisPick 4 to 5 partners to form a project teamDescribe the people in the team, allocation of tasksPick one editor (VIM or Eclipse) to study, document the discussions why andhow you choose the editorDiscover why we shall use Web Services to bridge hetergeneous editorsDescribe the architecture of the OmniEditor projectPlan the project as an iterative process and proposes a test plan1Deliverables after Phase A by Oct. 7Documentsa– 30% marks: Requirements specification of the OmniEditor– 20%: Understanding of legacy editor: identify reusable components– 20%: Test plan of the project– 10%: Project plan of the OmniEditor– 10%: Risk analysis of the project– 10%: Team organization of the projectProject team– Who are the team members and Who is the team leader– Skills and Preferences– Tasks and allocations– Team meeting schedulesaNo lower or upper bounds to the document length2Requirements for requirements specificationsReference to John Mylopoulos’s CSC340S course:http://www.cs.toronto.edu/jm/340S/A list of functional (behavioral) requirements– Goal of the requirement– Inputs, Outputs– Preconditions on Input, Postconditions on Output, ExceptionsA list of non-functional (quality) requirements– Softgoal of the quality attribute– Metric of the attribute– Satisfaction criteria3Goal-oriented requirements engineering (GORE)Goal: the desired state, often described in terms of predicateGORE: identify logical dependency relationships between requirements (goal).Abstraction/Refinements: asking Why and HowCompleteness (obstacle analysis): asking What-if?Contributions and Correlations: asking How much?Domain analysis: asking who, what and where?Use natural languages, Req. Spec. do not include project requirements, designsand quality assurance plans.To edit the goal dependencies, try this tool for Windows:http://www.cs.toronto.edu/yijun/OpenOME.htmlAn example requirements goal model, seehttp://www.cs.toronto.edu/yijun/slides/yu04re.ppt4 2004 John MylopoulosIntentions and Agents -- 5Conceptual Modeling CSC2507AND/OR Goal GraphsAND/OR Goal GraphsI Goals can be AND- or OR-decomposed to build AND/ORgraphs.I A simple procedure exists for AND/OR graphs fordetermining whether a root node of an AND/OR goal graphis solved/fulfilled, given that some other nodes of the graphhave been found to be solved/fulfilled, or unsolvable/unfulfillable. 2004 John MylopoulosIntentions and Agents -- 6Conceptual Modeling CSC2507SchedulemeetingCollectconstraintsCollecttimetablesCollect other constraintsShare timetablesSystemcollectsPersoncollectsBy emailBy all meansFrom allFromInitiatoronlyManuallyAutomaticallyInteractivelyGeneratescheduleAND decompositionOR decomposition 2004 John MylopoulosIntentions and Agents -- 9Conceptual Modeling CSC2507Programmability++++Allow Change of ColoursAllow Change ofStateAllow Change ofLanguageErrorAvoidanceInformationSharingEase ofLearningUserTailorabilityUsabilityUser-DefinedWriting ToolModularityUseComponentsUserFlexibilityAllow Change ofSettings+++ 2004 John MylopoulosIntentions and Agents -- 10Conceptual Modeling CSC2507Goal RelationshipsGoal RelationshipsI To arrive at a more qualitative framework for modelinggoals, we also need to extend the set of relationshipsbetween goals beyond AND- and OR-relationships: + -- one goal contributes positively towards thefulfillment of another goal; - -- one goal contributes negatively towards thefulfillment of another goal; ++ (--) -- one goal subsumes/negates another, I.e., ifthe first goal is fulfilled, the second is fulfilled/denied;I With these enhancements, we can build goal modelswhich could be useful for strategic business analysis orrequirements analysis (as opposed to planning).Front [shop]S:1.000,D:0.000Informing[shop]S:1.000,D:0.000ANDManaging[shop]S:1.000,D:0.000ANDShopping[shop]S:1.000,D:0.000ANDReporting [shop]S:1.000,D:0.000Reporting[stock]S:1.000,D:0.000ANDReporting[account]S:1.000,D:0.000ANDReporting[product]S:1.000,D:0.000ANDTransaction[account]S:1.000,D:0.000ANDTransaction[product]S:1.000,D:0.000ANDTransaction[stock]S:1.000,D:0.000ANDCustomization[language]S:1.000,D:0.000ANDInfooctagon[font]S:1.000,D:0.000ANDPageLayout[gui]S:1.000,D:0.000ANDSearching [shop]S:1.000,D:0.000Navigating[stock]S:1.000,D:0.000ANDSearching[stock]S:1.000,D:0.000ANDANDANDANDANDManaging [product]S:1.000,D:0.000Managing [account]S:1.000,D:0.000Managing [stock]S:1.000,D:0.000Preparing[cart,product]S:1.000,D:0.000Selecting[item,cart]S:1.000,D:0.000ANDAdding[item,cart]S:1.000,D:0.000ANDTransaction[cart]S:1.000,D:0.000ANDANDANDANDGetting [account]S:1.000,D:0.000Customizing [English]S:1.000,D:0.000Usability[language]S:1.000,D:0.000Make1.000000+CheckingOut[cart,product,account,stock]S:1.000,D:0.000Clearing[cart]S:1.000,D:0.000ANDUpdating[account,product]S:1.000,D:0.000ANDUpdating[product,stock]S:1.000,D:0.000ANDLogin/Logout[account]S:1.000,D:0.000ANDANDANDANDANDANDANDANDPasswordProtection[account]S:1.000,D:0.000ANDSSL[protocol]S:1.000,D:0.000ANDSessionCookie[transaction]S:1.000,D:0.000ORDatabaseTable[transaction]S:1.000,D:0.000ORORORANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDORUsability[font]S:1.000,D:0.000Make1.000000+Usability[layout]S:1.000,D:0.000Make1.000000+Confidentiality[system]S:1.000,D:0.000Make1.000000+Responsiveness[transaction]S:1.000,D:0.000Make1.000000+Integrity[data]S:1.000,D:0.000Make1.000000+Info.flow Security[system]S:1.000,D:0.000Make1.000000+Security[system]S:1.000,D:0.000Usability[ui]S:1.000,D:0.000ANDANDANDUsability[gui]S:1.000,D:0.000ANDANDANDExample of requirements specificationsA functional requirement– Goal: query [stock price]– Inputs: stock quote [string]– Outputs: stock price [float]– Precondition: stock quote is not empty– Postcondition: stock price0 if stock quote is foundstock price1 if stock quote is not foundAn alternative requirement– Inputs: stock name [string]– Precondition: stock name is not empty– Postcondition: stock price0 if stock name is found and uniquestock price1 if stock name is not


View Full Document

Toronto CSC 408F - CSC 408F Lecture Notes

Download CSC 408F Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view CSC 408F Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CSC 408F Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?