CS 641 – Requirements Engineering

Slides:



Advertisements
Similar presentations
Chapter 4 Design Approaches and Methods
Advertisements

IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Use cases: deciding what you want.
NJIT Inception is not the Requirements Phase Chapter 4 Applying UML and Patterns Craig Larman.
Course Instructor: Aisha Azeem
Software Engineer Report What should contains the report?!
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Use Cases College of Alameda Copyright © 2007 Patrick McDermott.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Chapter 9 요구사항 모델링: 시나리오 기반 방법론 Requirements Modeling: Scenario-Based Methods 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 4: Developing Requirements.
Chapter 7 System models.
Functions, Procedures, and Abstraction Dr. José M. Reyes Álamo.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
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.
Systems Development Life Cycle
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Requirements Analysis
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1. USER & CUSTOMER 2.BASING DEVELOPMENT ON SOLID PRINCIPALS AND REUSABLE TECH.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
The Quality Gateway Chapter 11. The Quality Gateway.
Chapter 5 Trawling For Requirements. Determining What the Product Should Be without understanding the work that it is to become a part of Many projects.
A Method for Improving Code Reuse System Prasanthi.S.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Scope of Systems Requirements: Definition o f Requirements Not to define the full system Not to define the full system Describe or define the essential.
Certification of Reusable Software Artifacts
Pepper modifying Sommerville's Book slides
Chapter 33 Estimation for Software Projects
Investigating System Requirements
Welcome to M301 P2 Software Systems & their Development
IL Marking Get out your CPU / Memory answers Swap with someone else
Classifications of Software Requirements
Applying UML and Patterns
Chapter 5 – Design and Implementation
Systems Planning and Analysis
Evaluating Existing Systems
Modelling Concepts Based on Chapter 5 Bennett, McRobb and Farmer
Chapter 1- Introduction
CHAPTER ‘3’ Project Blastoff
CS 641 – Requirements Engineering
Evaluating Existing Systems
Software Engineering (CSI 321)
Marketing Research Introduction Overview.
Life Cycle Models PPT By :Dr. R. Mall.
Abstract descriptions of systems whose requirements are being analysed
Use Case Model Use case description.
Lecture 4: Activity Diagrams
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Unit 6: Application Development
Design and Implementation
Use Case Model Use case diagram – Part 2.
An Introduction to Software Architecture
Chapter 33 Estimation for Software Projects
CS310 Software Engineering Lecturer Dr.Doaa Sami
Requirements Document
Chapter 5 Architectural Design.
Chapter 26 Estimation for Software Projects.
Chapter 1: Software and Software Engineering
Presentation transcript:

CS 641 – Requirements Engineering Chapter 13. Reusing Requirements

Reusing Requirements In our everyday lives we all reuse knowledge. It is knowledge that we have gained by studying and practicing what we have already discovered for ourselves, or more often what others have already defined. Reusing Requirements reuse the knowledge that already exists and enhance it to suit our particular situation.

Reusing Requirements remember that engineers don't invent things when they can find something that can be reused." When specifying the requirements for a new product, you can often save a lot of effort if you start by asking, "Have these requirements or similar ones already been specified?"

What Is Reusing Requirements? When you take advantage of work that has already been done, your efficiency as a requirements gatherer increases significantly. Early in your requirements projects look for reusable requirements that have already been written, and incorporate these "free" requirements into your own project.

Reusing requirements making use of requirements written for other projects. They can come from a number of sources: a reuse library of specifications, other requirements specifications that are similar or in the same domain, or informally from other people's experience.

Reusing Requirements To determine whether you have any relevant reusable requirements, you need to know something about the work that you are investigating. When you run a project blastoff meeting, pay particular attention to the first seven sections of the requirements specification: The Purpose of the Project: Are there other projects in the organization that are compatible or that cover substantially the same domains or work areas? The Client, the Customer, and Other Stakeholders: Can you reuse an existing list of stakeholders, a stakeholder map, or a stakeholder analysis spreadsheet? Users of the Product: Do other products involve the same users and thus have similar usability requirements?

Reusing Requirements Constraints: Have your constraints already been specified for another project? Naming Conventions and Definitions: You can almost certainly make use of parts of someone else's glossary, rather than having to invent all of your own glossary. The Scope of the Work: Your project has a very good chance of being an adjacent system to other projects that are under way in your organization. Make use of the interfaces that have been established by other work context models.

At project blastoff time the subject matter of the context,/ Scope together with its adjacent systems and boundary data flows, should indicate the potential for reusing requirements from previous projects.

Sources of Reusable Requirements Once you know the Scope of your work, you can look for requirements specifications that deal with all or part of that context and use them as the source of potentially reusable requirements.

Sources of Reusable Requirements You can reuse requirements or knowledge from: colleagues' experiences, existing requirements specifications, and models.

Reusing Requirements One of the benefits of using a disciplined process for writing requirements specifications is that you naturally produce requirements that are more easily reusable by future projects.

Requirements Patterns Requirements patterns improve the accuracy and completeness of requirements specifications. You reduce the time needed to produce a specification because you reuse a functional grouping of requirements knowledge that has already been specified by other projects. To do so, look for patterns that may have some application in your project. Keep in mind that the pattern is usually an abstraction and you may have to do a little work to adapt it to your own needs.

Requirements Patterns Patterns imply a collection of requirements that make up some logical grouping of functions. For example, we can think of a requirements pattern for selling a book in a shop: Determine the price; compute the tax, if any; collect the money; wrap the book; thank the customer. If this is a successful pattern, then it pays you to use the pattern for any future bookselling activities, rather than reinvent how to sell a book. Typically we use requirements patterns that capture the processing policy for a business use case. If we use the business use case as a unit of work, As a consequence, we can treat it as a stand-alone mini-system.

A Business Event Pattern Example of a requirements pattern. This pattern is based on the response to a business event:

A Business Event Pattern Context of Event Response The context model is a summary of the subject matter covered by the pattern. You use the diagram to determine whether the details of the pattern might be relevant to the work you are doing. If the majority of these flows are compatible with the inputs and outputs of your event, then the pattern is probably usable in your project.

Processing for Event Response A large pattern can be partitioned into a number of sub-patterns. From this diagram, we can identify other potentially reusable group of requirements. Other ways of showing this pattern are to use a UML activity diagram, a sequence diagram, or a scenario.

Data for Event Response This class diagram shows the objects and associations between them that are part of the pattern Customer Wants to Buy a Product. whenever we need to specify requirements for a product we can potentially reuse some or all of this knowledge.

Summary If you reuse a requirement, you probably get the design and the code and objects for free. By reusing knowledge from earlier stages in the development cycle, you get the advantage of reusing the full product.

Quiz Briefly Describe the Sources of Reusable Requirements. List the advantages of using Requirements Patterns

The END…