60-322 Object-Oriented Analysis and Design Jan 21, 2009.

Slides:



Advertisements
Similar presentations
Chapter 05: Evolutionary Requirements Definition : Requirements  “Requirements are capabilities and conditions to which the system, and more broadly.
Advertisements

IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Chapter 4: Inception is Not the Requirements Phase
Chapter 7 Other Requirements Good Fast Cheap Pick any two. 1CS John Cole.
Object-Oriented Analysis and Design
COMP 350: Object Oriented Analysis and Design Lecture 3 Case Studies, Inception & Use Cases References: Craig Larman Chapters 3-6.
Use-case Modeling.
CAP 252 Lecture Topic: Requirement Analysis Class Exercise: Use Cases.
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Requirements Specification
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
NJIT Use Case Model Operation Contracts Prepared By: Sumit Sharma.
Understanding Requirements
Dr. Kivanc DincerCS319 Week 1 - Sept.12,20051 Chapter 4 INCEPTION IS NOT THE REQUIREMENTS PHASE Objectives Define the inception step. Motivate the following.
Jan 8, Ron McFadyen1 Waterfall Spiral UP Case study UML Use Cases.
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
COMP 350: Object Oriented Analysis and Design Lecture 2
Object-Oriented Analysis and Design
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
The first step in getting what you want is to decide what you want.
TK2023 Object-Oriented Software Engineering CHAPTER 6 SYSTEM SEQUENCE DIAGRAMS.
Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative Development Part III Elaboration Iteration I – Basic1.
Object-Oriented Analysis and Design
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
UML - Development Process 1 Software Development Process Using UML (2)
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Investigating System Requirements
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
Software Engineering Chapter 7 Fall Capturing the Requirements as Use Cases Capturing the Requirements as Use Cases By using use cases analysts.
Object-Oriented Analysis and Design Jan 14, 2009.
Chapter 7 Applying UML and Patterns -Craig Larman
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 7 Applying UML and Patterns Craig Larman
Jan 7, A UP project organizes the work and iterations across four major phases: – Inception -- approximate vision, business case, scope, vague estimates.
 Development is organized in a series of short, fixed-length mini-projects called iterations  Iterations are also incremental  Successive enlargement.
Object-Oriented Analysis and Design Fall 2009.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Chapter 9 Applying UML and Patterns -Craig Larman
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
Goals and Scope of a Use Case
Inception Chapter 4 Applying UML and Patterns -Craig Larman.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
DOMAIN MODEL: ADDING ATTRIBUTES Identify attributes in a domain model. Distinguish between correct and incorrect attributes.
Chapter 5 Evolutionary Requirements. Introduction 5.1 Definition: Requirements 5.2 Evolutionary vs. Waterfall Requirements 5.3 What are Skillful Means.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Software Engineering 1 Object-oriented Analysis and Design Chap 24 Iteration 2 More Patterns.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Writing Use Cases: Requirements in Context.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 8: Iteration 1 - Basics.  We review here the requirements for first iteration of our case studies. They are a subset of the requirements as described.
Chapter 8. Iteration 1, Elaboration: book view differs from reality for pedagogical reasons not doing “risk-driven” up front uses many OOA/D skills should.
PART II INCEPTION Chapter 4 Inception is Not The Requirements Phase.
Object Oriented Analysis & Design By Rashid Mahmood.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
TK2023 Object-Oriented Software Engineering
Software Development.
Elaboration popo.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
COMP 350: Object Oriented Analysis and Design Lecture 2
Other System Requirements
Use cases Dr. X.
Presentation transcript:

Object-Oriented Analysis and Design Jan 21, 2009

Jan 21, In the UP, use case writing is encouraged in a requirements workshop. This Figure offers suggestions on the time and space for doing this work.Figure Ch6 Use Cases into Perspective

Jan 21, Ch6 Use Cases into Perspective

Jan 21, Ch6 Use Cases into Perspective

Jan 21, The Use-Case Model is started in inception, with perhaps only 10% of the architecturally significant use cases written in any detail. The majority are incrementally written over the iterations of the elaboration phase. By the end of elaboration, a large body of detailed use cases and other requirements (in the Supplementary Specification) are written, providing a realistic basis for estimation through to the end of the project. Ch 6. Use cases

Jan 21, How to Write Use Cases in Inception? – Not all use cases are written in their fully dressed format during the inception phase. – The earlier part of the workshop day is spent identifying goals and stakeholders, and speculating what is in and out of scope of the project. – An actor-goal-use case table is written and displayed with the computer projector. – A use case context diagram is started. – After a few hours, perhaps 20 use cases are identified by name, including Process Sale, Handle Returns, and so on. Ch 6. Use cases

Jan 21, How to Write Use Cases in Inception? – Most of the interesting, complex, or risky use cases are written in brief format, each averaging around two minutes to write. – The team starts to form a high-level picture of the system's functionality. – After this, 10% to 20% of the use cases that represent core complex functions, require building the core architecture, or that are especially risky in some dimension are rewritten in a fully dressed format. Ch 6. Use cases

Jan 21, How to Write Use Cases in Inception? – The team investigates a little deeper to better comprehend the magnitude, complexities, and hidden demons of the project through deep investigation of a small sample of influential use cases. – Perhaps this means two use cases: Process Sale and Handle Returns. Ch 6. Use cases

Jan 21, How to Write Use Cases in Elaboration? – This is a phase of multiple timeboxed iterations (for example, four iterations) in which risky, high-value, or architecturally significant parts of the system are incrementally built. – The "majority" of requirements identified and clarified. – The feedback from the concrete steps of programming influences and informs the team's understanding of the requirements, which are iteratively and adaptively refined. – Perhaps there is a two-day requirements workshop in each iteration- four workshops. Ch 6. Use cases

Jan 21, How to Write Use Cases in Elaboration? – However, not all use cases are investigated in each workshop. They are prioritized; early workshops focus on a subset of the most important use cases. – Each subsequent short workshop is a time to adapt and refine the vision of the core requirements, which will be unstable in early iterations, and stabilizing in later ones. – Thus, there is an iterative interplay between requirements discovery, and building parts of the software. Ch 6. Use cases

Jan 21, How to Write Use Cases in Elaboration? – During each requirements workshop, the user goals and use case list are refined. – More of the use cases are written, and rewritten, in their fully dressed format. – By the end of elaboration, "80-90%" of the use cases are written in detail. Note that elaboration involves programming parts of the system. At the end of this step, the NextGen team should not only have a better definition of the use cases, but some quality executable software. Ch 6. Use cases

Jan 21, How to Write Use Cases in Construction? – The construction phase is composed of timeboxed iterations (for example, 20 iterations of two weeks each) that focus on completing the system. – The risky and core unstable issues have settled down in elaboration. – There may still be some minor use case writing and perhaps requirements workshops, but much less so than in elaboration Ch 6. Use cases

Jan 21, Ch 6. Use cases in Inception for POS

Jan 21, Ch 6. Use cases Books The most popular use-case guide. – #reader-link #reader-link Patterns for Effective Use Cases – Development/dp/ Development/dp/ Requirements by Collaboration: Workshops for Defining Needs – Defining-Needs/dp/ Defining-Needs/dp/ Use Case Modeling – Technology/dp/

Jan 21, A Short Review… The UML provides use case diagram notation to illustrate the names of use cases and actors, and the relationships between them. Guideline – Draw a simple use case diagram in conjunction with an actor-goal list. The important use case work is to write text, not diagram or focus on use case relationships. Use cases are central to the UP and many other iterative methods. The UP encourages use-case driven development.

Jan 21, Chapter 6 Use cases a technical team starts building the production core of the system when only perhaps 10% of the requirements are detailed, and in fact, the team deliberately delays in continuing with deep requirements work until near the end of the first elaboration iteration. This is a key difference between iterative development and a waterfall process: Production-quality development of the core of a system starts quickly, long before all the requirements are known. near the end of the first iteration of elaboration, there is a second requirements workshop, during which perhaps 30% of the use cases are written in detail.

Jan 21, Besides use cases, what other UP requirement artifacts? Use cases are not the whole story! There are at least the following other requirement artifacts: Ch7 Other Requirements

Jan 21, Supplementary Specification – captures and identifies other kinds of requirements, such as reports, documentation, packaging, supportability, licensing, and so forth. Glossary – captures terms and definitions; it can also play the role of a data dictionary. Vision – summarizes the "vision" of the project - an executive summary. It serves to tersely communicate the big ideas. Business Rules (or Domain Rules) – capture long-living and spanning rules or policies, such as tax laws, that transcend one particular application. Ch7 Other Requirements

Jan 21, What to do with these other requirements? Should We Analyze These Thoroughly During Inception? No. – UP is an iterative and evolutionary process. Yes. – research shows that is useful to have a high-level "top ten" list of coarse-grained requirements near the start. It is also useful to spend non-trivial early time understanding the non-functional requirements (such as performance or reliability), as these have a significant impact on architectural choices. Ch7 Other Requirements

Jan 21, Look at this sample document containing one of other requirement artifacts for the case study of NextGen POS. Open the Word Doc.(NextGen Example-CH7SS.doc) Ch7 Other Requirements

Jan 21, What a nicely written document ! It seems complete, accurate, reliable,….. It seems that: – the real requirements are understood and well-defined, and can (early on) be used to reliably estimate and plan the project This is the illusion: – This illusion is more strong for non-software developers; programmers know from painful experience how unreliable it is. Ch7 Other Requirements

Jan 21, – Research shows it is a misunderstanding to believe that early detailed requirements are useful or reliable on software projects. In fact, quite the opposite, as almost 50% of early waterfall-specified features are never used in a system. Then why are we doing this? – quickly building software that passes the acceptance tests defined by the users, and that meets their true goals - which are often not discovered until users are evaluating or working with the software Ch7 Other Requirements

Jan 21, – Writing a Vision and Supplementary Specification is worthwhile as an exercise in clarifying a first approximation of what is wanted, the motivation for the product, and as a repository for the big ideas. – But they are not - nor is any requirements artifact - a reliable specification. – Only writing code, testing it, getting feedback, ongoing close collaboration with users and customers, and adapting, truly hit the mark. Ch7 Other Requirements

Jan 21, This is not a call to abandon analysis and thinking, and just rush to code, but a suggestion to treat written requirements – lightly, – start programming early, and continually, – Ideally-daily, – engage users and tests for feedback. Ch7 Other Requirements

Jan 21, The Supplementary Specification captures – other requirements, – information, and constraints not easily captured in the use cases or Glossary, – including system-wide "URPS+" (usability, reliability, performance, supportability, and more) quality attributes or requirements. – Where is F in FURPS+? A friendly reminder – Non-functional requirements specific to a use case can (and probably should) be first briefly written within the use case, in the Special Requirements section while you are thinking through the use case. – But, after that informal step, these should then be moved to the Supplementary Specification, to keep all non-functional requirements in one place, and not duplicated. Ch7 Supplementary Specification

Jan 21, Elements of the Supplementary Specification include: – FURPS+ requirements, ie, functionality, usability, reliability, performance, and supportability – reports – hardware and software constraints (operating and networking systems,..) – development constraints (for example, process or development tools) – other design and implementation constraints – internationalization concerns (units, languages) – documentation (user, installation, administration) and help – licensing and other legal concerns – packaging – standards (technical, safety, quality) – physical environment concerns (for example, heat or vibration) – operational concerns (for example, how do errors get handled, or how often should backups be done?) – application-specific domain rules – information in domains of interest (for example, what is the entire cycle of credit payment handling?) Ch7 Supplementary Specification

Jan 21, Some functions or features don't fit in a use case format. For example, sometimes, one needs to think of the functionality in terms of features, such as "add EJB Entity Bean 1.0 support." The UP certainly allows this feature-oriented approach to requirements, in which case the feature list goes in the Supplementary Specification. The UP encourages but does not require use cases for functionality; use cases are a great way to think about and pull together a related set of features in terms of typical scenarios of using a product. They don't always fit. Ch7 Supplementary Specification

Jan 21, Application-Specific Domain (Business) Rules – General, broad domain rules such as tax laws belong in the UP Business Rules artifact, as a central shared repository. – However, more narrow application-specific rules, such as how to calculate a line-item discount, can be recorded in the Supplementary Specification. Information in Domains of Interest – It is often valuable for a subject matter expert to write (or provide URIs to) some explanation of domains related to the new software system, to provide context and deeper insight for the development team. That document may contain pointers to important literature or experts, formulas, laws, or other references. Ch7 Supplementary Specification

Jan 21, Read the sample Vision document first. Vision is an executive summary that briefly describes the project, as a context for the major players to establish a common vision of the project. The Vision should not be long, nor should it attempt to describe firm requirements in detail. It should summarize some of the information in the Use-Case Model and Supplementary Specification. Ch7 Vision

Jan 21, This section summarizes the goals and problems at a high level often higher than specific use cases, It reveals important non-functional and quality goals that may belong to one use case or span many, such as: – We need fault-tolerant sales processing. – We need the ability to customize the business rules. Ch7 Vision-The “Key High-Level Goals and Problems of the Stakeholders “ Section

Jan 21, System features are high-level, terse statements summarizing system functions. More formally, in the UP, a system feature is "an externally observable service provided by the system which directly fulfills a stakeholder need“. Features vs. functionality of a system – An alternative, complementary way to express system functions is with features, or more specifically in this context, system features, which are Should features be in use cases? No. Ch7 Vision-The “Summary of System Features “ Section

Jan 21, Simply listing the use case names is not sufficient in the Vision to grasp the major features. Why? – Too detailed or low-level. People want a short summary of the big ideas. There could be 30 or 50 use cases. – The use case name can hide interesting major features stakeholders really want to know about. For example, suppose that the description of automated payment authorization functionality is embedded in the Process Sale use case. A reader of a list of use case names can't tell if the system will do payment authorization. – Some noteworthy features span or are orthogonal to the use cases. For example, during the first NextGen requirements workshop, someone might say "The system should be able to interact with existing third-party accounting, inventory, and tax calculation systems." Ch7 Vision-The “Summary of System Features “ Section

Jan 21, Functional system features are to be contrasted with various kinds of non-functional requirements and constraints, such as: – The system must run on Linux, – must have 24/7 availability, and – must have a touch-screen interface. – These are non-functional requirement. Features are behavioral functions a system can do. They should pass this linguistic test: The system does. – For example, the system does payment authorization. – The system does Linux ? – The system does 24/7 availability?, and – The system does a touch-screen interface.? Ch7 Vision-The “Summary of System Features “ Section

Jan 21, How to write a system feature list? Terse, for example, – Here is a features example at a high level, for a large multi-system project of which the POS is just one element: – The major features include: POS services Inventory management Web-based shopping … Ch7 Vision-The “Summary of System Features “ Section

Jan 21, The major features include: POS services: – sales capture – payment authorization –…–… Inventory management: – automatic reordering –…–… Ch7 Vision-The “Summary of System Features “ Section

Jan 21, How many features do you list? Guideline – A Vision with less than 10 features is desirable, – more can't be quickly grasped. If more, consider grouping and abstracting the features. Ch7 Vision-The “Summary of System Features “ Section

Jan 21, Recall that – Vision should summarize some of the information in the Use- Case Model and Supplementary Specification. In the Vision, system features briefly summarize functional requirements often detailed in the use cases. Likewise, the Vision can summarize other requirements (for example, reliability and usability) that are detailed in the Supplementary Specification. But be careful to avoid going down the path of repeating yourself. Ch 7 Vision

Jan 21, Guideline – For other requirements, avoid their duplication or near-duplication in both the Vision and Supplementary Specification (SS). – Rather, record them only in the SS. – In the Vision, direct the reader to the SS for the other requirements. (see the example file, NextGenCh7Vision.doc) Ch 7 Vision

Jan 21, Guideline: Should You Write the Vision or Use Cases First? – It isn't useful to be rigid about the order. While developers are collaborating to create different requirements artifacts, a synergy emerges in which working on one artifact influences and helps clarify another. Nevertheless, a suggested sequence is: Write a brief first draft of the Vision. Identify user goals and the supporting use cases by name. Write some use cases in detail, and start the Supplementary Specification. Refine the Vision, summarizing information from these. Ch 7 Vision