CS628 - Object Oriented Analysis And Design. The Four Pillars of Successful Software Development -Avoid Classic Mistakes -Apply Development Fundamentals.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Lecture 5: Requirements Engineering
:: 1 :: What is a requirement? Standard Definition Something the product must do or a quality the product must have. More Ways to Characterize Something.
Introduction to Software Engineering Dr. Basem Alkazemi
Requirements and Design
Introduction to Software Engineering
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
SE 555 Software Requirements & Specification Requirements Management.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Software Requirements
Overview of Software Requirements
1 Software Requirements Specification Lecture 14.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Requirements Engineering
Data Structures and Programming.  John Edgar2.
The Software Development Life Cycle: An Overview
Chapter 4 Requirements Engineering
Requirements Engineering
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Typical Software Documents with an emphasis on writing proposals.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Requirements Engineering How do we keep straight what we are supposed to be building?
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Software Requirements Presented By Dr. Shazzad Hosain.
Chapter 4 – Requirements Engineering 1Chapter 4 Requirements engineering.
Software Requirements Lecture # 3. 2 Kinds of Software Requirements Functional requirements Non-functional requirements Domain requirements Inverse requirements.
IT Requirements Management Balancing Needs and Expectations.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Lecture 7: Requirements Engineering
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Requirements Engineering Overview Senior Design Don Evans.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
IS550: Software requirements engineering Dr. Azeddine Chikh 2. Functional and non-functional requirements.
Lecture 2 Developing Requirements
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
Chapter 4 Software Requirements
The Software Development Process
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
1 Quality Attributes of Requirements Documents Lecture # 25.
Software Engineering Lecture 6: Risk Analysis & Management.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Requirements / Specifications. 01/18/10CS-499G2 Requirements Determine what the customer needs (wants) the software to do  What are requirements?  An.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Requirements
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
 System Requirement Specification and System Planning.
Chapter 4 Requirements engineering 1 Chapter 4 – Requirements Engineering.
Software Testing.
Classifications of Software Requirements
Chapter 4 – Requirements Engineering
Presentation on Software Requirements Submitted by
Chapter 4 Requirements Engineering (1/3)
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
Requirements Analysis Scenes
Software Requirements
Requirements Reference: Software Engineering, by Ian Sommerville, 6th edition, Chapters 5, 6, & 8.
Requirements Analysis
Software Requirements Specification Document
SOFTWARE REQUIREMENT SPECIFICATION
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

CS628 - Object Oriented Analysis And Design

The Four Pillars of Successful Software Development -Avoid Classic Mistakes -Apply Development Fundamentals -Manage Risk to Avoid Catastrophic Mistakes -Apply Schedule-Oriented Practices

Requirements Clients do not present the requirements-analyst with concise, complete, and well organized list of requirements. It is the responsibility of the analyst to: - Ask questions involving all stakeholders -Write down the requirements -Organize the requirements

Software Requirements Relationship of Software Requirements to Other Project Processes

Software Requirements Project Planning Process serve as input to Reduces scope before base-lining

Software Requirements Project Planning Process serve as input to reduces scope before base-lining Project Tracking and Control Process status is tracked as part of

Software Requirements Project Planning Process serve as input to reduces scope before base-lining Project Tracking and Control Process status is tracked as part of Change Control Process request change in scope is used to change are the baseline for

Software Requirements Project Planning Process serve as input to reduces scope before base-lining Project Tracking and Control Process status is tracked as part of Change Control Process request change in scope is used to change are the baseline for System Testing Process are reference for verifies correct implementation of

Software Requirements Project Planning Process serve as input to reduces scope before base-lining Project Tracking and Control Process status is tracked as part of Change Control Process request change in scope is used to change are the baseline for System Testing Process are reference for verifies correct implementation of are the basis for User Documentation Process

Software Requirements Project Planning Process serve as input to reduces scope before base-lining Project Tracking and Control Process status is tracked as part of Change Control Process request change in scope is used to change are the baseline for System Testing Process are reference for verifies correct implementation of are the basis for Construction Process are the basis for work products are traced to User Documentation Process

Software Requirements Project Planning Process serve as input to reduces scope before base-lining Project Tracking and Control Process status is tracked as part of Change Control Process request change in scope is used to change are the baseline for System Testing Process are reference for verifies correct implementation of are the basis for Construction Process are the basis for work products are traced to User Documentation Process

Requirements Categorized 1.Business Requirements 2.Non-Functional Requirements 3.Functional Requirements 4.Business Rules 5.Data Definitions 6.Solution Ideas 7.Constraints 8.External Interface Requirements

1.Business Requirements Describe financial, marketplace, or other benefits that your client, or your client’s customer, can gain from the development of the new software system. “We are planning to increase our efficiency by 30% in the next year. The new order and tracking system is developed to reach and support this goal.” Example: Requirements Categorized (continued)

2.Non-Functional Requirements Statements that indicate how well a system performs some behavior or lets the user perform some function are quality attributes or non-functional requirements. Keywords to listen for are: -Fast - Easy -Intuitive -User-friendly -Robust - Reliable - Efficient An analyst has to work with the clients to define what clients mean by these ambiguous and subjective terms. Requirements Categorized (continued)

“The new management information system tool must be able to calculate the financial models fast.” Examples: “We need to be able to train new users quickly in using the new order and tracking system” Requirements Categorized (continued)

Non-Functional Requirements Product Requirements Delivery Requirements Organizational Requirements External Requirements Interoperability Requirements Standard Requirements Implementation Requirements Portability Requirements Usability Requirements Efficiency Requirements Reliability Requirements Privacy Req. Ethical Requirements Legislative Requirements Performance Req. Space Req. Safety Req.  Ian Sommerville 2000

Non-Functional Requirements: Requirements Categorized (continued) Usability The system should be easy to use by experienced controllers and should be organized in such a way that user errors are minimized. Un-verifiable Non-Functional Requirement Experienced controllers should be able to use all the system functions after a total of hours training. After this training, the average number of errors made by experienced users should not exceed two per day. Verifiable Non-Functional Requirement

3.Functional Requirements Describe the functions or services the software system must perform. They describe what the system must be able to do or provide in the context of an actor action. “The user must be able to add new parts to the inventory system.” Examples: “The user must be able to print out the total sales at the end of the day”. Requirements Categorized (continued)

4.Business Rules Are operating principles about a business process. “The weight of ‘Category 4’ packages in the warehouse tracking system cannot exceed 30 lbs.” Examples: “The date-of-birth must be earlier than or equal to the current (today’s) date.” Requirements Categorized (continued)

5.Data Definitions Every time a client is describing a data item or the format, allowed values, or default value for data items, they are presenting a data definition. “The Zip Code consists of five digits, followed by an optional hyphen and an optional four digits.” Examples: “The weight of packages in the new order and tracking system is stored as a number with a precision of three digits after the decimal point.” Requirements Categorized (continued)

6.Solution Ideas Clients describing a specific way to interact with the system to carry out some action or function. The client is suggestion a solution, not a requirement. “We would like the user to be able to use a barcode reader to help them quickly identify parts in the warehouse.” Example: Requirements Categorized (continued)

7.Constraints Conditions that limit the choices available to the designer or programmer developing the software system. “The standard database tool in our organization is Oracle. We require that Oracle is used for the new software system.” Example: Requirements Categorized (continued)

8.External Interface Requirement Describe the connections between the software system you are developing and other software systems or devices. “The software system must be able to read signals from.” Examples: “The new order and tracking system must be able to read information (files) from the existing marketing information system.” Requirements Categorized (continued)

Writing Requirements 1.Writing the right requirements 2.Writing the requirements right

Characteristics of Quality Requirements Specification: -Complete -Consistent -Modifiable -Traceable Writing Requirements (continued) Writing Requirements (continued)

Characteristics of Quality Requirements: -Correct -Feasible -Necessary -Prioritized -Unambiguous -Verifiable Writing Requirements (continued) Writing Requirements (continued)

Imperatives are those words and phrases that command that something must be provided. Examples: - Shall - Must - Is required to - Are applicable -Are to -Should -Will -Responsible for Writing Requirements (continued) Writing Requirements (continued)

Weak Phrases are clauses that are apt to cause uncertainty and leave room for multiple interpretations. Such phrases cause requirements to be ambiguous. Examples: - Adequate -Appropriate -Be able to - Be capable of -Easy to -Effective -Timely - As required - Normal -User friendly Look at these terms from the programmers perspective. Writing Requirements (continued) Writing Requirements (continued)

Example: “The product should be able to provide status messages at regular intervals not less than every 60 seconds” Incomplete:What are the status messages and how will they be displayed to the user? Ambiguous:What part of the product are we talking about? Is the interval between messages really supposed to be at least 60 seconds? So showing it every 10 years is okay? Writing Requirements (continued) Writing Requirements (continued)

Another Example: “Charge numbers should be validated on-line against the master corporate charge number list, if possible.” Feasible:What does “if possible” mean? Is it technically feasible? Is it really needed? Avoid imprecise words such as “should”. Writing Requirements (continued) Writing Requirements (continued)

Risk Management Risk involves future happenings Risk involves change, change of plans Risk involves choices Risk involves: -Uncertainty -Loss if risk happens [Peter Drucker, 1975] “While it is futile to eliminate risk, and questionable to try to minimize it, it is essential that the risk taken be the right risk.”

Risk Management (continued) Risk Management (continued)

Risk Identification -Product Size -Business Impact -Customer Related Risks -Process Definition -Development Environment -Technology to be Built -Staff Size and Experience -Time Needed to Develop System

Testing Verification Are we building the product right? Is the function implemented correctly? Validation Are we building the right product? Did the requested function get implemented?

Testing (continued) Testing (continued) Testing is a set of activities that -can be planned ahead -must be conducted systematically using test plans

Testing (continued) Testing (continued) Project Risks (waterfall process) Know risks Technical Risks Business Risks -product does not meet business requirements -loss of management support Predictable risks (from past exaperience) Unpredictable risks

Testing (continued) Testing (continued) Unit Testing -Number and type of parameters for functions -Boundary conditions: input/output of a module or class -Inconsistent data types -Are files opened and closed -End of file conditions -Overflow issues (integer maximum) -Boundary conditions with array processing

Testing (continued) Testing (continued) Integration Testing -Test modules put together -Incrementally integrated -All at once integrated Regression Testing -Test earlier integrated modules when a new module is introduced

Testing (continued) Testing (continued) System Testing -Test the system in a given environment. Example: on a PC with other applications. Stress Testing Performance Testing -In particular for real-time systems and embedded systems. -Resources, memory, network issues.