Slide 1What will we learn?The Agile PrinciplesThe Agile PrinciplesInceptionInceptionEvolutionary RequirementsFURPS+Requirements Organization: UP ArtifactsSlide 10The Use-Case Model ArtifactKey FeaturesKey FeaturesExample: ATM Session Use CaseExample: ATM Session Use CaseExample: ATM Session Use CaseActors and Use Case FormatsUse Case TemplateUse Case TemplateGuidelines (Fully Dressed)Example: ATM Withdrawal (Fully Dressed)Example: ATM WithdrawalExample: ATM WithdrawalExample: ATM WithdrawalExample: ATM WithdrawalExample: Data Entry SystemExample: Data Entry(Fully Dressed)Example: Data EntryExample: Data EntryExample: Data EntryTakeaways from Chapters 4-6Next …What is an Executive Summary (Brief)Object-Oriented Analysis and DesignCHAPTERS 4-6: INCEPTION, REQUIREMENTS, USE CASESSLIDES: BY DR. SEMPER1What will we learn?Inception – what is it?How to analyze requirements in iterative developmentThe FURPS+ model, and the UP Requirements artifactsHow to identify and write Use CasesHow to apply tests to identify suitable Use CasesHow to develop Use Cases in iterative development2The Agile PrinciplesOur highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.The Agile PrinciplesWorking software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.InceptionInception is the initial short step that is used to establish a common vision and basic scope for the projectMain questions that are often asked: What is the overall vision and business case for the project? Is it feasible? Buy or build? Rough cost estimate (order of magnitude) Go, no goWe do not define all of the requirements in Inception! Perhaps a couple of example requirements, use casesWe are not creating a project plan at this point5InceptionGoal: Envision the project scope, vision, and business case.Is there a basic agreement among the stakeholders on the vision, and is it worth investing in a serious investigation?Note investigation versus developmentInception is briefDecisions on feasibility and go no go may have already been madeThere may be some simple UML diagrams, and even some basic coding for proof-of-concept prototypes to answer key questionsSee text for list of UP artifacts that are at least initially created in this phase6Evolutionary RequirementsThis is where Waterfall and UP part ways …Requirements are capabilities and conditions to which the system – and more broadly, the project – must conform. Since UP does not require all requirements to be defined up front, it requires careful management of requirements“a systematic approach to finding, documenting, organizing, and tracking the changing requirements of the system”Key difference between Waterfall and UP: UP embraces requirements changesHow to find the requirements?Different methodologies do this in different ways; Requirements Workshops, Use Cases, etc.7FURPS+Functional – features, capabilities, securityUsability – human factors, documentationReliability – frequency of failure, recoverability, predictabilityPerformance – response times, throughput, accuracy, availability, resource usageSupportability – adaptability, maintainability, internationalization, configurabilityPlus …Implementation, Interfaces, Operations, Packaging, Legal, etc. Often used: functional (behavioral) versus non-functional (everything else)Quality Requirements: usability, reliability, performance, and supportability8Requirements Organization: UP ArtifactsUse-Case Model: The use cases will primarily capture the functional requirements, i.e. how the system behavesSupplementary Specification: Non-functional requirements (e.g. performance) and any functional features not captured by the Use-Case ModelGlossary: Noteworthy terms, but can include data dictionary (which may include any requirements on data rules, e.g.)Vision: May capture high-level requirementsBusiness Rules (Domain Rules): These usually transcend any one project, and so may be captured in one place for use by several projects. Think regulatory requirements.910This diagram shows the relationships between various artifacts in UP and the main disciplines we will consider in this course – Business Modeling, Requirements, and DesignOperation: enterItem(…)Post-conditions:- . . .Operation ContractsSaledate. . .SalesLineItemquantity1..*1. . .. . .Domain ModelUse-Case ModelDesign Model: RegisterenterItem(itemID, quantity): ProductCatalogspec = getProductSpec( itemID )addLineItem( spec, quantity ): Saleobjects, attributes, associationsRequire-mentsBusiness ModelingDesignSample UP Artifact Relationships: SystementerItem(id, quantity)Use Case TextSystem Sequence DiagramsmakeNewSale()system eventsCashierProcess Sale: Cashieruse case namessystem operationsUse Case DiagramVisionSupplementarySpecificationGlossaryscope, goals, actors, featuresterms, attributes, validationnon-functional reqs, quality attributesrequirementsProcess Sale1. Customer arrives ...2. Cashier makes new sale.3. ...The Use-Case Model Artifact… is part of the Requirements discipline in UP… is composed of the use case text documents… may include UML diagrams of the use cases, which provide context diagrams of the system… is essential to OOA/OOD, although OOA/OOD is not used to develop the Use-Case ModelUse cases are requirements – primarily functional (behavioral) Use cases provide an essential understanding of how the end
View Full Document