Introduction to Programming and Software Development CMPCD1017 Session 2:Requirements Analysis and Specification.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Project Analysis Course ( ) Final Project Report Overview.
Session 2Introduction to Database Technology Data Types and Table Creation.
Introduction to Programming and Software Development CMPCD1017 Session 3:Requirements Analysis and Specification, Cont’d.
Lecture 9 Descriptors, Events & Event Tables INFO1409 Systems Analysis & Design Module HND Year /9.
Creating an interactive product Introduction and Success Criteria
Requirements and Design
Business Information Systems Research Project in Information Systems (IS4401) 2008 / 2009.
 Monday, 9/30/02, Slide #1 CS106 Introduction to CS1 Monday, 9/30/02  QUESTIONS (on HW02, etc.)??  Today: Libraries, program design  More on Functions!
Prototyping. CS351 - Software Engineering (AY2004)2 Scenario Customer: “We would like the word processor to check the spelling of what is typed in. We.
School of Computing Science CMT1000 Ed Currie © Middlesex University Lecture 4: 1 CMT1000: Introduction to Programming Ed Currie Lecture 5a: Input and.
 To be able to write larger programs ◦ By breaking them down into smaller parts and passing data between the parts.  To understand the concepts of Methods.
Chapter 1 Program Design
Copyright 2008 by Pearson Education Building Java Programs Chapter 3 Lecture 3-3: Interactive Programs w/ Scanner reading: self-check: #16-19.
Copyright 2008 by Pearson Education Building Java Programs Chapter 3 Lecture 3-3: Interactive Programs w/ Scanner reading: self-check: #16-19.
Software Life Cycle Model
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Use Cases Why use ‘em? How do they work? UC diagrams Using them later in the software development cycle.
S/W Project Management
Chapter 8: Systems analysis and design
Systems Life Cycle DESIGN STAGE
Advanced Topics in Requirement Engineering. Requirements Elicitation Elicit means to gather, acquire, extract, and obtain, etc. Requirements elicitation.
Systems Analysis and Design in a Changing World, 6th Edition
PRJ566 Project Planning and Management
Setting Up an on-line Store Tutorial Using SmartStore.biz This Tutorial assumes you have downloaded the software from This Tutorial.
Slide 10A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005.
1 CMPT 275 Software Engineering Requirements Gathering Activity Janice Regan,
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
Lecture 7: Requirements Engineering
CS2003 Usability Engineering Usability Evaluation Dr Steve Love.
1. Objectives At the end of this chapter you should be able to:  Discuss the use and features of a data model  Define the terms entity and attribute.
Requirements Validation CSCI 5801: Software Engineering.
UML-1 3. Capturing Requirements and Use Case Model.
Introduction to Software Development. Systems Life Cycle Analysis  Collect and examine data  Analyze current system and data flow Design  Plan your.
First Programs CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
User Interface Theory & Design Lecture 6a 1.  User interface is everything the end user comes into contact with while using the system  To the user,
1 CS Tutorial 5 Frid. Oct 23, 2009 Design Document Tutorial.
Systems Analysis and Design in a Changing World, 6th Edition
Software Engineering User Interface Design Slide 1 User Interface Design.
Class 3 Remote Instruction Computer Math EDU 556 Programming for Instruction Dr. Steve Broskoske This is an audio PowerCast. Make sure your volume is.
INFO1408 Database Design Concepts Week 16: Introduction to Database Management Systems Continued.
Software Engineering Project.  Why User involvement?  Requirements Gathering statistics.  Ways of Gathering user requirements.  One-on-One Interviews.
Classes. Student class We are tasked with creating a class for objects that store data about students. We first want to consider what is needed for the.
Requirements Validation
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Click to add text Systems Analysis, Prototyping and Iteration.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Evaluating Requirements
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA CSC141 Computer Science I 2/4/20161.
Observing the Current System Benefits Can see how the system actually works in practice Can ask people to explain what they are doing – to gain a clear.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2010 Stephen R. Schach
1 Flow of Control Chapter 5. 2 Objectives You will be able to: Use the Java "if" statement to control flow of control within your program.  Use the Java.
R005 Creating an interactive product Introduction and Success Criteria.
Building Java Programs Chapter 4 Lecture 4-1: Scanner ; cumulative algorithms reading: 3.3 – 3.4, 4.2.
SYSTEM ANALYSIS AND DESIGN LAB NARZU TARANNUM(NAT)
Getting Ready for the NOCTI test April 30, Study checklist #1 Analyze Programming Problems and Flowchart Solutions Study Checklist.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
 System Requirement Specification and System Planning.
Advanced Higher Computing Science
Building Java Programs
Systems Analysis and Design
Implementing Functions from a Detailed Design Quick Tips
User input We’ve seen how to use the standard output buffer
Implementing Functions from a Detailed Design Quick Tips
Risk Analysis & Success Driven Project Management
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Building Java Programs
Building Java Programs
Presentation transcript:

Introduction to Programming and Software Development CMPCD1017 Session 2:Requirements Analysis and Specification

2 Content Requirements Analysis and Specification  Functional Requirements Data  Non-functional Requirements Case Study  Requirements Analysis and Specification  A Design  The Code

3 Last Week You were introduced to the concept of the ‘Software Development Process’.  Specifically the ‘Waterfall’ model. This week and next, we will focus upon requirements analysis and the development of a requirements specification Analysis Design Code Test Requirements Software

4 Requirements Analysis Capturing the Requirements  In order to build software you must first know what it is required to do. The ‘iterative’ process models aim to do this interactively with the user, showing them a demo/mock-up of a system to aid in their understanding of what Information Technology (I.T.) can do for them and therefore decide what they think they need.  This is commonly referred to as a ‘soft systems’ scenario. Some ‘customers’ (clients) will know exactly what they require and will be able to describe what they want in detail. It will be your job, as an analyst to translate their textual description into a technical ‘requirements specification.  This is commonly referred to as a ‘hard systems’ scenario.  It is this scenario that we will centre on.

5 Requirements Analysis Capturing the Requirements  The most commonly used method for eliciting requirements from the customer is to conduct meetings or interviews. Initial questions should really aim to find out the nature of the problem. Detail about the current information system, whether it be paper based or not as well as the low level functioning and look and feel of a new system can then be dealt with in later meetings.  The aim is to gather ‘functional’ as well as ‘non-functional’ requirements so that a design for the new system can be devised.

6 Requirements Analysis Customer - “I would like a stock control system that is reliable and user-friendly’  Functional Requirements ‘stock control’  Non-functional Requirements ‘reliable’ ‘user-friendly’ At this point we need more detail.  Essentially, as an analyst, if you are not sure about something or you begin to make assumptions about the requirements then you should ask more questions. Unless otherwise stated, if a given requirements specification in this module has any ambiguities, then we would like you to ask a member of staff for more detail.

7 Requirements Analysis Analyst – ‘What are the different types of user for the stock control system?’ Customer – ‘A warehouse worker who logs the addition and removal of stock from the warehouse. A warehouse manager who enters ‘stock take’ figures in order to get a ‘stock’ report. A purchasing manager, who is allowed to query stock levels and add/remove types of stock and update their re-order levels.’

8 Requirements Analysis Function Requirements  Stock Control Warehouse Worker  Add stock  Remove stock Warehouse Manager  Add actual stock levels  Produce ‘stock’ report Purchasing manager  Add new type of stock  Remove a type of stock  Update re-order level

9 Requirements Analysis We can see that as we ask more questions, our understanding of the required system increases and our requirements specification will contain more and more detail. One important item that is missing so far is how ‘stock’ will be represented in the new system as the system will be ‘modelling’ a real-world warehouse and its workings:  Stock codes, descriptions, maximum possible quantities of a stock item, etc As an software analyst you should always remember that the ‘model’ requires ‘data’ in order for it to be processed into information, e.g. stock report, and the data needs to be described precisely if the information is to be precise (correct) Data InProcessing Information Out From the user/device /sub-system To the user/device /sub-system

10 An aside Data  Numbers Whole numbers – Integers  12 Fractions – Floating point   Alpha-numeric Characters  ‘T’ Strings of characters  ‘The quick brown fox..’ Stock Record  Stock code – 6 character alpha-numeric string  Stock description – 25 character alpha-numeric string  System stock level – Integer, max value 9999  Stock-take level – Integer, max value 9999  and so on…..

11 Requirements Analysis Non-Functional Requirements  ‘Reliability’ is a qualitative attribute of software that will be looked at in later modules. For the purposes of this:  ‘Does it have to be as reliable as a nuclear power station cooling system?’  ‘Will occasional system down-time be acceptable?’  ‘Will a paper-based back-up system suffice during system down-time?’  Here we will focus upon ‘user-friendly’ Analyst – ‘What do you mean by user-friendly?’ You should also be asking what the other users mean by ‘user-friendly’.

12 Requirements Analysis Non-functional Requirements  It is common for the customer to know what they want the system to do (hard system scenario), but not necessarily be as decisive over the non-functional requirements, especially the user interface (soft system scenario).  The non-functional requirements may need to developed using a ‘prototyping’ approach in order to give the customer and their other ‘users’ a chance to give feedback and aid them in deciding upon an appropriate interface (or other non-functional attribute) of the proposed software. In this case, a menu driven approach is probably the best starting point.  Whether it be graphical or text-based can be shown as prototypes.

13 Case Study As a software developer you have been asked to engineer a small program that asks for a users name, year of birth and the current year. It is then to output ‘Hello name, you are approximately x years old.’

14 Case Study The Functional Requirements  As a software developer you have been asked to engineer a small program that asks for a users name, year of birth and the current year. It is then to output ‘Hello name, you are approximately x years old.’  Green – Data Input – ‘asks for’ Name, Year of birth, Current year  Blue – Information Output String of text containing:  “Hello ”  Name  “, you are approximately “  X  “ years old”  Processing How do we calculate X

15 Case Study Functional Requirements  We don’t really need to ask the customer how ‘X’ is calculated as we can use our own common sense and derive X = current year minus year of birth  But this is an assumption and we should ask if this is what they meant.

16 Case Study Non-functional Requirements  For this case study, after asking the ‘customer’ about the user interface they have stated: Text-based Ask for data input politely The final output should be two clear lines down from where the data was input

17 Case Study Design  We now have a clear idea of what is required: 1. Get ‘Name’, ‘year of birth’ and ‘current year’ from user 2. Calculate X 3. Output age information Start Finish User Input Age ‘X’ Info Output Calculate X ‘Age’

18 Case Study – Filename “session2.java” import java.util.*; public class session2 { public static void main(String[] args) { // Set-up data input and declare variables String name; int year_of_birth, current_year, x; Scanner data_input = new Scanner(System.in); // Get user's name System.out.print("Please enter your name: "); name = new String(data_input.next()); // Get user's year of birth System.out.print("Please enter your year of birth (YYYY): "); year_of_birth = data_input.nextInt(); // Get current year System.out.print("Please enter the current year (YYYY): "); current_year = data_input.nextInt();

19 Case Study – Filename “session2.java” // Calculate age x = current_year - year_of_birth; // Output the age System.out.printf("Hello %s, your approximate age is %d%n%n”, name, x); System.out.print(“Type 'OK' and press Return to continue: "); // Wait for the return key to be pressed name = new String(data_input.next()); }