CSC 480 Software Engineering PSP Project 2 August 27, 2004.

Slides:



Advertisements
Similar presentations
RP Designs Semi-Custom e-Commerce Package. Overview RP Designs semi- custom e-commerce package is a complete website solution. Visitors can browse a catalog.
Advertisements

COSC 1P03 Data Structures and Abstraction 2.1 Software Development The leadership instinct you are born with is the backbone. You develop the funny bone.
1 Object-oriented design Part 2: OO tools & UML. 2 CRC cards Design tool & method for discovering classes, responsibilities, & relationships Record on.
COMP 121 Week 7: Object-Oriented Design and Efficiency of Algorithms.
Ch 12: Object-Oriented Analysis
Problem Solving #1 ICS Outline Review of Key Topics Review of Key Topics Example Program Example Program –Problem 7.1 Problem Solving Tips Problem.
Introduction To System Analysis and Design
Designing Classes Chapter 3. 2 Chapter Contents Encapsulation Specifying Methods Java Interfaces Writing an Interface Implementing an Interface An Interface.
Slide 1 Chapter 7 Structural Modeling. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
Chapter 4: Database Management. Databases Before the Use of Computers Data kept in books, ledgers, card files, folders, and file cabinets Long response.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Entity-Relationship Design
Object-Oriented Design. From Analysis to Design Analysis Artifacts –Essential use cases What are the problem domain processes? –Conceptual Model What.
System Design Chapter 8. Objectives  Understand the verification and validation of the analysis models.  Understand the transition from analysis to.
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
CRC Cards C lass  R esponsibility  C ollaborator Copyright © 1999 Patrick McDermott UC Berkeley Extension Although not strictly part.
The Software Development Life Cycle: An Overview
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 2: Modelling.
Big Java Chapter 12. Software Process - Waterfall Analysis Design Implementation Testing Deployment Does not work well when rigidly applied! established.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 4th Edition Copyright © 2012 John Wiley & Sons, Inc. All rights.
Introduction To System Analysis and Design
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:
Assignements. CSC343: Intro. to Databases2 Exercise 1 Superkeys: Candidate keys: Primary key:
Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Chapter 12 – Object-Oriented Design.
Class Diagrams Identifying and representing Classes Object Web, Bapayya Choudhary Maganti.
Domain Modeling Part2: Domain Class Diagram Chapter 4 pp part 2 1.
1 A Student Guide to Object- Oriented Development Chapter 6 Identifying Functionality.
1 CSE 2337 Introduction to Data Management Textbook: Chapter 1.
Conceptual Model or Domain Models Chapter10 Applying UML and pattern.
Designing Classes Chapter 3. 2 Chapter Contents Encapsulation Specifying Methods Java Interfaces Writing an Interface Implementing an Interface An Interface.
CSC 480 Software Engineering PSP Project 3 September 6, 2002.
Structural Modeling Chapter 7. Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes in.
1 Structural Modeling Chapter 7. 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved COS240 O-O Languages AUBG,
1 Examining Execution Sequences Introducing Sequence Diagrams.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Copyright © 2013 by John Wiley & Sons. All rights reserved. Slides by Rick Giles OBJECT- ORIENTED DESIGN CHAPTER 12.
Verification & Validation. Batch processing In a batch processing system, documents such as sales orders are collected into batches of typically 50 documents.
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
ITEC324 Principle of CS III Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
1 Software Engineering Dr. K. T. Tsang Lecture 5 Class modeling
12 OBJECT-ORIENTED DESIGN CHAPTER
Information Access Mgt09/12/971 Entity-Relationship Design Information Level Design.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Haley Wixom, and David Tegarden Chapter 7: Structural Modeling.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
CSC 480 Software Engineering PSP Project 1 August 20, 2004.
25/2/16. Software Design (UML) ClassName attributes operations A class is a description of a set of objects that share the same attributes, Operations.
Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Chapter 12 – Object-Oriented Design.
Chapter 5: Structural Modeling
Chapter 12 – Object-Oriented Design
Component and Deployment Diagrams
DATA REQIREMENT ANALYSIS
Chapter 5: Structural Modeling
Ch 12-13: OOD and Recursion Yonglei Tao.
Class diagram Description
Advanced Java Programming
Object-Oriented Analysis
Chapter 11 Following the Trail; Examining Execution Sequences
CRC Modeling (class-relationship-collaborator)
INFS 6225 Object Oriented Systems Analysis & Design
Chapter 12 – Object-Oriented Design
ITEC324 Principle of CS III
Presentation transcript:

CSC 480 Software Engineering PSP Project 2 August 27, 2004

CSC Software Engineering2 8/27/2004 Topics PSP Project 1 – postmortem Estimating program size OOAD essentials PSP Project 2 – the problem

CSC Software Engineering3 8/27/2004 Project 1 Postmortem Sample data  Planned and actual times  Planned and actual LOC  Defects (actual and planned, optional)  LOC/minutes  Time in phases (percent) Comments

CSC Software Engineering4 8/27/2004 Size Estimation Need historical data  Good correlation between Estimated and actual times Actual LOC and actual time spent Function point method

CSC Software Engineering5 8/27/2004 Estimated v.s. Actual LOC 25 C++ programs

CSC Software Engineering6 8/27/2004 Estimated LOC v.s. Actual Hours 25 C++ programs

CSC Software Engineering7 8/27/2004 Sizes In LOC Per Method

CSC Software Engineering8 8/27/2004 Analysis & Design Roadmap Find the objects (classes of objects) Determine their responsibilities Determine collaborations Use UML diagrams and other diagrams to present your design

CSC Software Engineering9 8/27/2004 Printing Invoices – a sample application  An invoice describes the charges for a set of products in certain quantities. (We omit complexities such as dates, taxes, and invoice and customer numbers.)  The program simply prints the billing address, all line items, and the amount due.  Each line item contains the description and unit price of a product, the quantity ordered, and the total price.

CSC Software Engineering10 8/27/2004 A Sample Invoice INVOICE Sam’s Small Appliances 100 Main Street Anytown, CA DescriptionPrice Qty Total Toaster Hair dryer Car vacuum AMOUNT DUE: $154.78

CSC Software Engineering11 8/27/2004 Identify Objects Classes correspond to nouns in the problem description Invoice Address Item Product Description Price Quantity Total Amount Due Invoice Address Item Product Class candidates Classes elimination

CSC Software Engineering12 8/27/2004 Determine Responsibilities Responsibilities include two key items  The knowledge an object maintains, and  The actions an object can perform Assigning responsibilities to classes  Evenly distribute system intelligence  Keep behavior with related information  Keep info about one thing in one place

CSC Software Engineering13 8/27/2004 Class Or Attribute A class  has the potential to be used in multiple places in an application  usually has multiple attributes Example A Product object has two attributes Description Price

CSC Software Engineering14 8/27/2004 Class Diagram Invoice -billingAddress:Address -items:ArrayList +add(aProd:Product, qtty:int) +format():String +getAmountDue():double Class name Attributes Operations var:type -private +public ~package #protected

CSC Software Engineering15 8/27/2004 Class Stub Code public class Invoice { /** Adds a charge for a product to this aProd the product that the user quantity the quantity of the product */ public void add(Product aProd, int quantity) { } /** Formats the the formatted invoice */ public String format() { } }

CSC Software Engineering16 8/27/2004 Examine Relationships Important relationships  Inheritance – aka the is-a relationship  Congregation – aka the has-a relationship  Dependency – similar to uses Visibility Cardinality

CSC Software Engineering17 8/27/2004 The Invoice Classes Invoice Item Address Product

CSC Software Engineering18 8/27/2004 Collaborations Ways for an object to fulfill its responsibilities  Performing computation by itself  Collaborating with other objects A collaboration is the embodiment of the contract between a client and a server client contract server request

CSC Software Engineering19 8/27/2004 CRC Card Class-Responsibility-Collaboration Cards  Used to record collaborations Collaborations are associated with responsibilities Class: Item Format item Product Get total price Class: Product Get description Get price responsibilities collaborations

CSC Software Engineering20 8/27/2004 Unit Test Cases It’s critical to ensure an object can fulfill its responsibilities correctly before integration OOP requires frequent integration due to collaborations among objects Write a test case for each non-trivial public method with know input and expected output

CSC Software Engineering21 8/27/2004 Acceptance Test Functional walk-through Plan testing based on use cases Print invoice system

CSC Software Engineering22 8/27/2004 Project 2 – The Problem Two options to choose from:  A simple messaging system  A personal appointment book See the assignment doc file under course folder Due by next Friday, September 3