Object-Oriented System Analysis and Design Chapter III- Requirement Elicitation Collecting and organizing users requirement- WHAT- User needs.

Slides:



Advertisements
Similar presentations
Design Validation CSCI 5801: Software Engineering.
Advertisements

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Information System Engineering
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
Use-case Modeling.
Requirements Specification
Lecture 4 Class Responsibility Collaboration Cards
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Chapter 9 Using Data Flow Diagrams
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
Use Case Analysis – continued
Object-Oriented Development Process Part I: Requirement Gathering Warsun Najib Department of Electrical Engineering Gadjah Mada University.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 1- 1.
User Interface Design Chapter 11. Objectives  Understand several fundamental user interface (UI) design principles.  Understand the process of UI design.
The chapter will address the following questions:
Introduction To System Analysis and design
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
S/W Project Management
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Managing the development and purchase of information systems (Part 1)
Object-Oriented System Analysis and Design Chapter III- Requirement Elicitation Collecting and organizing users requirement- WHAT- User needs.
Advanced Topics in Requirement Engineering. Requirements Elicitation Elicit means to gather, acquire, extract, and obtain, etc. Requirements elicitation.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Introduction to Sequence Diagrams
2/6/01D-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Using PARTS to Illustrate Requirements Concepts.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Software Engineering Chapter 7 Fall Capturing the Requirements as Use Cases Capturing the Requirements as Use Cases By using use cases analysts.
Software Requirements Engineering: What, Why, Who, When, and How
Requirements Artifacts Precursor to A & D. Objectives: Requirements Overview  Understand the basic Requirements concepts and how they affect Analysis.
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
Approaching a Problem Where do we start? How do we proceed?
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
Lecture 7: Requirements Engineering
Systems Analysis and Design in a Changing World, 3rd Edition
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Requirements Validation CSCI 5801: Software Engineering.
1 Object-Oriented Modeling Using UML CS 3331 Section 2.4 Modeling Requirements with Use Cases.
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Requirements Overview.
Lecture 6: Structural Modeling
2131 Structured System Analysis and Design By Germaine Cheung Hong Kong Computer Institute Lecture 8 (Chapter 7) MODELING SYSTEM REQUIREMENTS WITH USE.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Requirements Collection By Dr. Gabriel. Requirements A requirement is any function, constraint, or property that the system must provide, meet, or satisfy.
Use Case Diagram The purpose is to communicate the system’s functionality and behaviour to the customer or end user. Mainly used for capturing user requirements.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
Use Case Driven Analysis Requirements Use Case Use Case Description System Sequence Diagram Chapter 5.
1 Modeling System Requirements with Use Cases. 2 Why Do We Need Use Cases? Primary challenge in a system design process –ability to elicit correct and.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Requirements Specification Document (SRS)
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
UML - Development Process 1 Software Development Process Using UML.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Chapter 4 – Requirements Engineering
Chapter 5: Structural Modeling
System Design Ashima Wadhwa.
Use Case Model Use case diagram.
UNIT II.
CRC Card Design A CRC Model is a collection of cards (usually standard index cards or larger) that are divided into three sections. 1. Class 2. Responsibility.
Engineering Quality Software
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Use Case Analysis – continued
Presentation transcript:

Object-Oriented System Analysis and Design Chapter III- Requirement Elicitation Collecting and organizing users requirement- WHAT- User needs

Requirement Elicitation using CRC 6/5/ Using Class Responsibility Collaboration (CRC cards) are a brainstorming tool used in the design of object-oriented software. are typically used when first determining which classes are needed and how they will interact. CRC are an index card on which one records the responsibilities and collaborators of classes, thus the name, which stands for Class-Responsibility-Collaboration.

Important tasks - CRC 6/5/ Finding Classes Recall definitions of a class and an object A Class represents a collection of similar objects. Objects are things of interest in the system being modelled. They can be a person, place, thing, or any other concept important to the system at hand. An object/class has responsibility to perform a task such as storing information or executing some process For example student class store information about student The Class name appears across the top of the CRC card.

cont… 6/5/ There are many ways to identify classes. One of the easiest to start with is noun extraction. Noun extraction identifies all of the Nouns in a problem statement and/or use-case scenario. The nouns extracted make excellent candidate classes

Cont… 6/5/ Other ways to identify classes are to look for items that interact with the system, or things that are part of the system. Ask if there is a customer of the system, and identify what the customer interacts with. Screens and reports represent interface classes, but for the sake of a CRC session, a single GUI class can represent these. If a class can’t be named with less than three words, then it’s probably not a class but a responsibility of another class.

Cont… 6/5/ Accordingly there are three types of classes at this stage Actor class Who interact with the system e.g. student Business class Are classes on which major business functionalities revolve around- represent the vocabulary of the system e.g. course, schedule, grade, etc Major UI classes Are reports and form used e.g grade reports, etc Remark: a class could be both an actor and a business class

Check list in finding classes 6/5/ Actors are potential classes Identify customers Follow the money How it is earned and what it is spent on Concepts and events used most frequently by the system Recurring nouns in the use case modeling Identify Major UI elements Additional Remarks identifying three to five main classes right away

Cont… Finding Responsibility A Responsibility is anything that the class knows or does. These responsibilities are things that the class has knowledge about itself, or things the class can do with the knowledge it has. For example, a person class might have knowledge (and responsibility) for its name, address, and phone number. In another example an automobile class might have knowledge of its size, its number of doors, or it might be able to do things like stop and go. The Responsibilities of a class appear along the left side of the CRC card. 6/5/2016 8

Cont… 9 How? Through verb extraction Verb extraction identifies all of the verbs in a problem statement and/or use-case scenario. These are usually good indicators of actions that must be performed by the classes of the system. Other techniques included asking what the class knows, and what information must be stored about the class to make it unique. Ask what the class does, and then flesh out how the class might do it.

Cont… 6/5/ Finding Collaborator A Collaborator is another class that is used to get information for, or perform actions for the class at hand. It often works with a particular class to complete a step (or steps) in a scenario. The Collaborators of a class appear along the right side of the CRC card. Class Name Responsibility Collaborators

Cont… 6/5/ Collaboration occurs when a class needs information that it doesn’t have. Classes know specific things about themselves. Very often to perform a task a class needs information that it doesn't have. Often it's necessary to get this information from another class, in the form of collaboration.

Cont… 6/5/ Collaboration can also occur if a class needs to modify information that it doesn’t have. One property of information that a class knows about itself is the ability to update the information. Often a class will want to update information that it doesn't have. When this happens, the class will often ask another class, in the form of a collaboration, to update the information for it.

Cont.. 6/5/ Generally for a collaboration to occur, one class is the initiator. In other words, there has to be a starting point for collaboration. Often times the initiating class is doing very little work beyond initialing the collaboration itself. However, be careful that a class doesn't just 'pass the buck', just to have it passed again. For example, if class A collaborates with class B, just to have class B passes the work to class C, consider eliminating the collaboration with class B.

Thus finally …. 6/5/ Item ItemID ItemName UnitPrice Quantity AddItem CheckReorder SalesClerk Invoice (UI) Sales Clerk > SellItem GenerateReport CheckAvailability Item Invoice (UI) Invoice > *see prototype*Item Sales Clerk Eg: CRC for User Interface Class Eg: CRC for Actor Class Eg: CRC for Business Class

Read and take notes about advantages of CRC modeling 6/5/ Reading assignment

Cont… 6/5/ Using Essential UI prototype User Interface is portion of software with which user directly interacts with the system. An essential UI prototype is a low fidelity model, or prototype of the UI for the actual system. It represents the general ideas behind the UI and not the exact detail. Represents the initial stage of the UI requirement in a technology independent manner, just like essential use case model.

Cont… 6/5/ is an iterative development technique in which users are actively involved in the mocking-up of the UI for a system. Essential UI prototype focus on the users and their usage of the system, not system features. It is represented by various rectangles enclosed in a bigger one. Grouping of smaller rectangles can be done by larger ones.

Cont… 6/5/ The various rectangles are used to represent the following components of the UI: Attributes/Data values Input Filed Display Only List Requestor Help Requestor Search Requestor Detail Requestor

Example student information UI-HTML 6/5/

Basic tasks 6/5/ Explore system usage Like what a “student transcript should look like” Model Major UI Large grained items potentially a screen, HTML page, report or a form Example: “class enrollment request” Model minor UI elements Example: input fields, menu items, lists, labels Examine the usability of your user interface in view of functionalities

Tools to be used 6/5/ For all essential modeling's the tool to be used is simple: Paper, whiteboard, sticky papers…. The purpose is to focus on the major issues (the actual task) rather than technology or implementation details.

Example of Invoice User Interface Prototyping 6/5/

Example UI- Using whiteboard 6/5/

Read and take notes on UI flow diagramming 6/5/ Reading assignment

Supplementary Specification We may not be in a position to capture all the requirements of the organization or the system Such uncaptured requirements need to be included and explained in the requirement document. The terminology used to entertain such exceptions is called supplementary specifications. Requirements not captured through use case, UI prototype and CRC Supplementary specification includes: Business Rules Non-Functional Requirements and Constraints Change case

Cont… Business Rules Any organization has its own internal policies and principles on how to run its business E.g.: if a student wants to add a new course and if it is the case that the student has reached the maximum semester load then the student will be required to drop some courses he already registered for. Thus the use case “Add Course” can extend to another use case called “Drop Course” based on evaluation of a business rule that declares the maximum credit hours the student is allowed to take in a semester. i.e.: If Current Load of student plus Credit hour of course to be added is greater than the Maximum semester Load (say 21) then include use case Drop Course

Cont.. Common ways of documenting business rule ID: BR002 Name: Allowed Maximum Semester Load Description: A regular/day student is not allowed to take more than 21 credit hours per semester. If the student is an extension/evening student, he/she can not take more than 12 credit hours per semester

Cont… Non-Functional Requirements Sometimes referred to as technical requirements of the system. The technical issues to be addressed here are more on Usability, Maintainability, Reliability, Modifiability, Efficiency, Portability (across operating systems) Testability, Understandability, User Interface and Human Factors, Documentation, Hardware Considerations, Performance Characteristics, Error Handling and Extreme Conditions, Quality Issues, Resources and Management Issues, etc E.g.: the system should work for 8 hours a day on all working days by dedicating a server for this purpose. UI of the system should be user friendly in terms of color combination and language usage.

Cont… Common ways of documenting Technical requirements Same as Business Rule

Cont… Constraints Constraints are other specifications that need to be documents for any systems development. This category includes the various restrictive conditions that exist in providing/delivering the system. The constraints might be economical, political, schedule, technical, or any that hinders the development team and the organization from meeting the objective of the systems development project. Some how similar with pseudo requirements

Cont… Change Cases No system lasts long without change. Internal need or external forces and a change in the real world and business customers demand force a system to change the way it behaves or the data it captures and processes. Such changes need to be anticipated before the development of a system. These anticipated changes need to be well documented and a mitigation scheme should be prepared. The development team and the users should work on this together and capture as many cases as possible. Lack in capturing probable changes would result in rejection of the system when the change happens.

Cont… Change cases would be documented as: Change Case: name or description of the anticipated change Likelihood: analysis and explanation when it might occur Impact: the impact the case would have on the overall system if not applied. See examples on reference materials like; Scott Ambler (2000)

Validating, organizing and documenting requirements 6/5/ Ensuring that your requirements are Correct, complete and consistent Trying to avoid unnecessary requirements- Gold plating The golden rule is: “Test early and often” How to validate? Through use case scenario testing, UI walkthrough and requirement review by all stakeholders Finally you are required to organize and document your requirements collected through traditional methods, Essential use case, CRC, UI prototype and supplementary specification in one document which will serve as an agreement document b/n the developers and users

Review questions 1. What is the difference between functional and non functional requirements 2. What are the techniques you use to identify system requirements? 3. What is user interface? Why do you develop UI prototype early in system development 4. What are the three elements of CRC 5. What are elements of use case diagram 6. How do you identify class, attribute, relationship and methods from the analysis document 6/5/

Example Company A has more than 1000 employees. Managing the personnel records become very difficult. They want a system that stores personal data. In addition, they want the system to retrieve single employee records. When employee leave the organization, they want to delete that employee record. They also hire new employee and want to be add that record to the system. 1. Develop the use case diagram 2. Develop sequence diagram, class diagram 3. Design also the user interface. 4. Try also to design the database 6/5/