CMPE/SE 131 Software Engineering February 16 Class Meeting

Slides:



Advertisements
Similar presentations
1 Lecture 2: Processes, Requirements, and Use Cases.
Advertisements

Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
CS3773 Software Engineering Lecture 03 UML Use Cases.
CS 160: Software Engineering September 8 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Unit 211 Requirements Phase The objective of this section is to introduce software system requirements and to explain different ways of expressing these.
1 CS 425 Software Engineering Project Preparation Use Case Modeling [Based on Chapters 3 & 4, Arlow and Neustadt, “UML and the Unified Process,” Addison-Wesley,
Introduction to Software Engineering Dr. Basem Alkazemi
CS 235: User Interface Design August 27 Class Meeting Department of Computer Science San Jose State University Spring 2015 Instructor: Ron Mak
CS 235: User Interface Design August 27 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
RUP Requirements RUP Artifacts and Deliverables
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Use Cases 2 ENGR ♯10 Peter Andreae
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Rational Unified Process (Part 1) CS3300 Fall 2015.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Project Management.
CS 151: Object-Oriented Design September 3 Class Meeting Department of Computer Science San Jose State University Spring 2013 Instructor: Ron Mak
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 The requirements engineering process.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
 Development is organized in a series of short, fixed-length mini-projects called iterations  Iterations are also incremental  Successive enlargement.
Faculty of Computer & Information
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
CS 235: User Interface Design September 3 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
CS 160: Software Engineering September 3 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
CS 151: Object-Oriented Design August 29 Class Meeting Department of Computer Science San Jose State University Spring 2012 Instructor: Ron Mak
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
CS 160 and CMPE/SE 131 Software Engineering February 18 Class Meeting Department of Computer Science Department of Computer Engineering San José State.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
 System Requirement Specification and System Planning.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
Software Development.
CMPE 135: Object-Oriented Analysis and Design August 31 Class Meeting
Using Use Case Diagrams
CMPE 280 Web UI Design and Development August 29 Class Meeting
Use Case Modeling - II Lecture # 27.
Use Cases Discuss the what and how of use cases: Basics Benefits
User-centred system design process
Recall The Team Skills Analyzing the Problem (with 5 steps)
Use Case Model.
Requirements Elicitation and Elaboration
OO Domain Modeling With UML Class Diagrams and CRC Cards
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 3: The Requirements Workflow
SE-565 Software System Requirements IV. Use Cases
Concepts, Specifications, and Diagrams
Requirements Reference: Software Engineering, by Ian Sommerville, 6th edition, Chapters 5, 6, & 8.
SAD ::: Spring 2018 Sabbir Muhammad Saleh
CIS 375 Bruce R. Maxim UM-Dearborn
Requirements Engineering Processes
Using Use Case Diagrams
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
CMPE/SE 131 Software Engineering February 21 Class Meeting
CS 420/620 HCI Use Case Modeling Project Preparation
Use Case Modeling Part of the unified modeling language (U M L)
CS 425 Software Engineering
CS 425/625 Software Engineering
Use Case Analysis – continued
CMPE/SE 131 Software Engineering February 22 Class Meeting
Presentation transcript:

CMPE/SE 131 Software Engineering February 16 Class Meeting Department of Computer Engineering San José State University Spring 2017 Instructor: Ron Mak www.cs.sjsu.edu/~mak

Project Phases Requirements elicitation Design Implementation Testing Deployment Maintenance How do we accomplish these phases?

Ye Olde Waterfall Model Requirements Design Implementation Testing

The Waterfall Model, cont’d Make sure each phase is 100% complete and absolutely correct before proceeding to the next phase. Big Design Up Front (BDUF) Set requirements in stone before starting the design. Otherwise, you might waste design work on “incorrect” requirements. Spend extra time at the beginning to make sure that the requirements and design are absolutely correct. Source: Wikipedia article on “Waterfall Model”

The Waterfall Model, cont’d The waterfall model has been mostly discredited. It doesn’t work! But it’s still commonly practiced. Requirements Design Implementation Testing

The Agile Manifesto for Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Source: http://agilemanifesto.org/

Agile Software Development Iterative and incremental development. Each iteration is a “mini waterfall”: plan (with new requirements) refine design add new code unit and integration testing Iterations are short: weeks rather than months. Iterations are sometimes called “sprints”. We do sprints, not marathons! Requirements Design Implementation Testing

Agile Software Development The initial iteration produces a conceptual design and a prototype. Subsequent iterations refine the design and incrementally build the actual product. Each subsequent iteration may also include a prototype that is quickly produced (rapid prototyping).

Agile Software Development, cont’d The initial iteration’s prototype and iterative development are the foundation for Rapid Application Development (RAD) tools. Is Ruby on Rails RAD? Agile methodologies range from Extreme Programming (XP) to the Rational Unified Process (RUP).

Project Phases, cont’d

Project Phases, cont’d Development is a series of iterations. Each iteration is a “mini waterfall” consisting of design, code (implementation), and test. Extreme programmers say: design, test, code

Requirements Elicitation Requires communication between the developers and customers. Customer: users, clients, and stakeholders Client: who pays for your application Stakeholder: whoever else is interested in the success of your application (e.g., shareholders) Customers can validate the requirements. Creates a contract between the customer and the developers.

Requirements Elicitation, cont’d Result: a Functional Specification written non-technically so that the customers can read and understand it.

Bridging the Gap Customers Software developers Have a general idea of what the system should do. Have little experience with software development. Are experts in their domain. Software developers May have little knowledge of the application domain. Have experience with software technology. Are geeks with poor social skills.

Functional Requirements What the system (the application) shall be able to do or allow users to do. The application shall use GPS to determine the user’s location. The application must default to the option most frequently chosen by the users. The application must allow the user to choose between a text display or a graphics display. The user shall be able to make an online withdrawal or deposit.

Functional Requirements, cont’d Describe the interactions between the system and its environment independent of its implementation.

Nonfunctional Requirements Usability, reliability, performance, supportability, etc. The application must respond to user input within 5 seconds. The application shall run on the Windows, Mac, and Linux platforms. The new GUI must resemble the old GUI. Error messages shall be displayed in English and Spanish. Constraints that the system must meet.

Requirements are Strong Statements Use strong declarative statements with “shall” and “must”. The application shall use GPS to determine the user’s location. The application must respond to user input within 5 seconds.

Requirements Must Be… Complete Consistent Clear Correct Are all system features and constraints described by requirements? Consistent No two requirements can contradict each other. Clear Each requirement must be unambiguous. Correct No errors in the requirements.

Requirements Must Be, cont’d Realistic Can the system be implemented? Verifiable Can the system be tested? Traceable Can each requirement be traced to an application function or constraint? Can each application function or constraint be traced to a requirement?

Requirements Must Be, cont’d Understandable Requirements must be written in non-technical jargon-free language that is meaningful to both the application’s developers and the application’s customers.

How to Get Requirements Interview future users of your application. Observe how the users currently work. Can you improve how they currently do things? Can you make them more productive? Stated requirements The customer tells you want he or she wants. Implied requirements What do you think the customer wants?

How to Get Requirements, cont’d Customers don’t always know what they want. They will know more after you show them a prototype. They will change their minds. It’s an iterative process!

How to Get Requirements, cont’d If the developers force the customers to come up with the requirements too soon, they may make something up! Such requirements will most likely be wrong or incomplete and lead you astray.

Use Cases A use case describes a single task that your application must allow an actor to accomplish or a single goal that an actor must achieve. Actors are external agents that interact or communicate with the system. actors = role abstractions An actor can be a person or another system.

Use Cases, cont’d Uses cases are an important way for the developers of a software application and its customers to communicate: What functionality the application must have. What steps to achieve the functionality. An application’s use cases capture the bulk of the customer’s understanding of what the application is supposed to do.

Use Cases, cont’d A use case includes: A complete sequence of actions or events from the point of view of an actor. A primary sequence Alternate sequences (“exception paths”). A sequence is triggered by an actor. Focus on what the system must do, not how to do it. A use case treats the system as a “black box”.

Example: Bank ATM System Log in customer Display balance Shut down ATM Start up Log out Withdraw cash system boundary Operator Customer Bank use cases actor When you draw a use case diagram, do not include the red labels and arrows. interaction UML use case diagram

Example Use Case Description Name: Withdraw Cash Goal: Customer withdraws cash from ATM. Summary: A customer who has logged in can withdraw up to $500 cash in $20 bills. Actors: The customer and the bank

Example Use Case Description, cont’d Preconditions: The ATM has been started up. See use case “Start up ATM”. The customer has inserted a valid bank card. The customer has entered a correct PIN. Trigger: The customer selects the “Withdraw Cash” option.

Example Use Case Description, cont’d Primary sequence: The system prompts the customer for the amount. The customer chooses from a list of amounts or enters a amount. The customer confirms and submits the amount. (The ATM communicates with the bank to check the customer’s account.) The system dispenses the amount in $20 bills. (The bank deducts the amount from the customer’s balance.) The system displays the customer’s balance See use case “Display balance”. At most about 10 steps. Another use case.

Example Use Case Description, cont’d Alternate sequences: 3.1 The customer entered an amount that is not a multiple of $20. 3.1.1 The system displays a message to the customer . 3.1.2. The system prompts the customer for a new amount. 3.2 The customer’s bank balance is insufficient. 3.2.1 etc.

Example Use Case Description, cont’d Postconditions: The customer receives the desired amount of cash. The amount is deducted from the customer’s account. The customer sees the new account balance. OR: The customer receives no cash. The customer’s account is unchanged. What must be true after the use case is done.

Example Use Case Description, cont’d Nonfunctional requirements: The system responds to each customer input within 15 seconds. The system displays messages in either English or Spanish. Glossary customer = a person who wants to withdraw cash from the ATM. bank = a system that maintains customer accounts and balances. etc.

Use Case Description Guidelines Use case names should be verb-object. Each name should describe an achievable goal or doable task (e.g., “Withdraw Cash”). Keep use cases short, simple, and informal. Clients and users need to understand them. No GUI or implementation details.

The Functional Specification Product name Clear problem statement What is the problem? Objectives What is your application supposed to accomplish? Functional requirements Nonfunctional requirements Use cases Primary contents of a Functional Specification

Assignment #3: Functional Specification Each project team creates the first draft of the Functional Specification for its web application. Product name Problem statement Objectives 6 Functional requirements 4 Nonfunctional requirements Use case diagram with 6 use cases Use case descriptions of 3 of your use cases Later assignments will add a conceptual design and screen mockups.

Assignment #3, cont’d Each team turns in one Functional Specification. Microsoft Word document or PDF Canvas: Assignment #3 Due Friday, February 24 at 11:59 PM. Use case description form: http://www.cs.sjsu.edu/~mak/CMPE131/assignments/2/UseCaseForm.docx