Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due today, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Today: –Continue.

Slides:



Advertisements
Similar presentations
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Advertisements

CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Lecture # 2 : Process Models
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Winter 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 2 due today. Assignment 3 is a GUI – posted soon. Due the end of next week. Project work.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
CS 501: Software Engineering
12 C H A P T E R Systems Investigation and Analysis and Analysis.
Use Cases Chapter 4. After Scenarios Find all the use cases in the scenario that specifies all possible instances of how to report a fire –Ex: “Report.
Package design and the Iterative process model. What is a package? Classes are not sufficient to group code –Some classes collaborate, implying dependencies.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
S/W Project Management
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University User Interface Design.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
March 13, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #15 Tuesday, March 13, 2001.
Software Engineering CS B Prof. George Heineman.
1 Phases in Software Development Lecture Software Development Lifecycle Let us review the main steps –Problem Definition –Feasibility Study –Analysis.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Instructor: Peter Clarke
CEN th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Software Project Planning.
Software Engineering Management Lecture 1 The Software Process.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
Building Hotel reservation System !!! The Project Life Cycle refers to a logical sequence of activities to accomplish the project’s goals or objectives.
Software Engineering Chapter 7 Fall Capturing the Requirements as Use Cases Capturing the Requirements as Use Cases By using use cases analysts.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: An Aside: The Quickest Tour through the UML that you will ever get.
Chapter 7 Applying UML and Patterns Craig Larman
Systems Analysis and Design in a Changing World, 3rd Edition
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
1 CS Tutorial 5 Frid. Oct 23, 2009 Design Document Tutorial.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
The Software Development Process
Project Deliverables CEN Engineering of Software 2.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Today: –Being Agile! –Part of the RAD – Use Cases. –(If we have time) Review what we did last time and.
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.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Lecture Videos will no longer be posted. Assignment 3 is due Sunday, the 8 th, 7pm. Today: –System Design,
Introduction to Evaluation without Users. Where are you at with readings? Should have read –TCUID, Chapter 4 For Next Week –Two Papers on Heuristics from.
Chapter 13 Finalizing Design Specifications
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
1 Unified Modeling Language Michael K. Wildes University of California, Riverside – Extension Program Presentation 2.
5. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the activities of the requirements discipline  Describe the difference.
44222: Information Systems Development
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 6/6/2016 1/25 IT076IU Software Engineering Project Review 2.
Software Design and Development Development Methodoligies Computing Science.
1 Week 5 Software Engineering Fall Term 2015 Marymount University School of Business Administration Professor Suydam.
1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Fall Term 2015 Marymount University School of Business Administration.
Bernd Bruegge and Allen Dutoit Requirements Process The requirements process consists of two activities: Requirements Elicitation: Definition of the system.
Software Engineering Management
CMPE 280 Web UI Design and Development August 29 Class Meeting
Unified Modeling Language
About the Presentations
CISC/CMPE320 - Prof. McLeod
CISC/CMPE320 - Prof. McLeod
CISC/CMPE320 - Prof. McLeod
CISC/CMPE320 - Prof. McLeod
Chapter 13 Finalizing Design Specifications
CIS 4328 – Senior Project 2 And CEN Engineering of Software 2
Presentation transcript:

Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due today, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Today: –Continue “Getting started on Design”. –The importance of getting the Design right! –Non-Functional requirements. –More about the RAD.

Fall 2015CISC/CMPE320 - Prof. McLeod2 Rapid Development Code and test what you know, leave the rest “blank” for now. Demonstrate UI prototypes to the user as soon as possible. Team members have multiple roles, so there is no “idle” time. But still, you must make sure the design is correct and that have you have addressed all possible risks and are not missing anything.

Fall 2015CISC/CMPE320 - Prof. McLeod3 Where are the Errors Made?

Fall 2015CISC/CMPE320 - Prof. McLeod4 Design Errors Large programs consist of hundreds of thousands of lines of code. A good (almost superhuman!) coder will still introduce a few code logic errors per thousand of lines of code. And, of course, C++ can tolerate errors until code is actually executed. But if the design is flawed in the first place? It costs at least 4 times as much to fix a design error than it does to fix a code logic error. Design errors also increase the “maintenance burden”:

Fall 2015CISC/CMPE320 - Prof. McLeod5 Development Costs

Fall 2015CISC/CMPE320 - Prof. McLeod6 Development Times

Fall 2015CISC/CMPE320 - Prof. McLeod7 Summary of Observations Coding is not the biggest part of the construction process, neither in terms of cost nor time. Design errors will greatly inflate the time for completion, the cost of development and the time and cost of maintenance. So, we should be careful with the design process!

Fall 2015CISC/CMPE320 - Prof. McLeod8 Douglas Adams From book 5 of the “Hitch Hiker’s Guide to the Galaxy” trilogy: “The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.” - (A warning label that should be affixed to any device, regardless of size or purpose – for the attention of the designer, not necessarily the user…)

Starting the Design Process From last week: –Write an Executive Summary identifying your project. –Identify the actors. –Write and collect scenarios. –Abstract many scenarios into a few Use Cases. Fall 2015CISC/CMPE320 - Prof. McLeod9

Fall 2015CISC/CMPE320 - Prof. McLeod10 Next Refine the use cases: –Add detail. –Make sure they are complete. –Add error conditions and exceptional circumstances. Identify relationships between use cases: –Identify dependencies. –Factor out common functionality.

Use Case Diagram One of the simpler UML (“Unified Modeling Language”) diagrams. Next slide for an example from the FRIEND system: Fall 2015CISC/CMPE320 - Prof. McLeod11

Fall 2015CISC/CMPE320 - Prof. McLeod12 FieldOfficer Dispatcher ReportEmergency AllocateResources OpenIncident > ConnectionDown ViewMap >

Fall 2015CISC/CMPE320 - Prof. McLeod13 Last “First” Step Everyone agrees on the non-functional requirements: Not directly related to the functionality of the system. Things like: performance constraints, documentation, resources, security and quality.

Fall 2015CISC/CMPE320 - Prof. McLeod14 Non-Functional Requirements This part of the process is more qualitative, but just as important to the final design. It might help to consider several categories: –Usability –Reliability –Performance –Supportability –Implementation –Interface –Operation –Packaging –Legal

Fall 2015CISC/CMPE320 - Prof. McLeod15 Non-Functional Requirements, Cont. Usability –What is the ability level of user? –What interface standards are already familiar to the user? –What docs does he need? Paper, pdf, web, CD? –Will he use a help system or documentation is he an engineer…

Fall 2015CISC/CMPE320 - Prof. McLeod16 Non-Functional Requirements, Cont. Reliability –How reliable, available and robust? –Can it be restarted after a failure? –How much data can be lost? –How are exceptions handled? –Any safety requirements? –Any security requirements?

Fall 2015CISC/CMPE320 - Prof. McLeod17 Non-Functional Requirements, Cont. Performance –How responsive? –What user tasks are time critical? –How many concurrent users (now and in the future)? –How much data? –What is acceptable latency? Supportability –What extensions will be needed? –Who does the maintenance? –Ported to different environments?

Fall 2015CISC/CMPE320 - Prof. McLeod18 Non-Functional Requirements, Cont. Implementation –Constraints on the hardware platform? –Constraints imposed by maintenance requirements? –Constraints imposed by testing team? Interface –Required interface with existing system? –How is data imported/exported? –Existing standards already in use by client? Operation –Who will manage the system when it is operating?

Fall 2015CISC/CMPE320 - Prof. McLeod19 Non-Functional Requirements, Cont. Packaging –Who does the installation? –How many installations are anticipated? –How long can the installation take? Legal –How is it licensed? –What liability results from system failures? –Does the use of any components incur royalties or licensing fees?

Project Deliverable – the RAD: A functional description of what you are planning to build. Consider inputs and outputs and what you are trying to accomplish. A diagram might best describe these concepts. If you are building a game, what parameters are you going to adjust to ensure the playability of the game? A list of functional and non-functional requirements. A least one use case. You must have enough use cases that all of the necessary functionality is described. If you have several use cases, you will need a use case diagram to show how they relate. Fall 2015CISC/CMPE320 - Prof. McLeod20

Project Deliverable – the RAD, Cont.: Sketches or prototypes of the GUI interface (all windows) along with a description of how the user will navigate through the interface. A list of the roles assigned to each team member. A project plan, or time-line, for the remaining weeks you have to work on this project. A Glossary of terms used in your functional description. Write and edit the RAD in your Wiki! Create a TOC (consider putting the TOC on each page…) Fall 2015CISC/CMPE320 - Prof. McLeod21