Presentation is loading. Please wait.

Presentation is loading. Please wait.

Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 0 COSC3311 – Software Design.

Similar presentations


Presentation on theme: "Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 0 COSC3311 – Software Design."— Presentation transcript:

1 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 0 COSC3311 – Software Design Section P Vassilios Tzerpos

2 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 1 Course Details  www.cs.yorku.ca/course/3311 www.cs.yorku.ca/course/3311  Slides and other resources: http://www.cs.yorku.ca/course/3311/sectionP/  Case studies: http://www.cs.yorku.ca/course/3311/sectionM/  Eiffel Help: www.cs.yorku.ca/eiffel  Office hours: WF 2:30 – 3:30  Read newsgroup  Lab hours next week:  Monday, January 123-4  Wednesday, January 143-4  Friday, January 163-4

3 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 2 Grading  Assignment 1: 7%  Assignment 2: 10%  Assignment 3: 13%  Test: 25%  Exam: 45%

4 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 3 Textbook  Bertrand Meyer: Object-Oriented Software Construction, 2 nd edition. Prentice Hall, 1997.  Suggested reading:  Pete Thomas, Ray Weedon, Object-Oriented Programming in Eiffel, second edition, Addison-Wesley, 1998.  Kent Beck, Test-driven development : by example. Addison-Wesley, Boston, 2003.  J.M. Jezequel and C. Mingins. Design patterns and contracts. Addison-Wesley, 2000.  Erich Gamma et al.: Design Patterns. Addison-Wesley, 1995.

5 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 4 Advice – Course strategy  Don’t fall behind: First two weeks especially!  Attend lectures: material is not all in textbook  Do the readings on time

6 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 5 Week 1 – Readings  January 5  Software Quality & Engineering -- The context for design; what is design; Eiffel programming; classes.  Readings Required: Chapter 7  Static Structure  Classes  Class POINT …  Readings Background: Chapters 1, 2  External Quality  Internal Quality – Modularity  Read about, install and use EiffelStudio

7 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 6 The goal: Software quality  REUSABILITY  EXTENDIBILITY  RELIABILITY (Correctness + Robustness)  PORTABILITY  EFFICIENCY  …  Correctness:  The ability of a software system to perform according to specification, in cases defined by the specification.  Robustness:  The ability of a software system to react in a reasonable manner to cases not covered by the specification. Robustness SPECIFICATION

8 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 7 Case Study 1– Bank example  Requirements & Use Cases  Design – How? Plan-driven: Identify the Classes Agile: Test Driven Development  EiffelStudio Clusters and Classes Tests and ETester Project Configuration/Ace files Debugger Documentation  Design Constructs BON Contracts Object equality: equal Genericity Agents and Tuples Design Patterns (Singleton)

9 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 8 Requirements – Bank example  Requirements  Open an account for a customer (savings or chequing)  Deposit  Withdraw  Display details of an account  Change LOC  Produce monthly statements  Print a list of customers  …  Ambiguities  What is the difference between savings and chequing?  Many others …

10 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 9 Case Study 1 – Bank example  How should we go from Requirements to Code?  Two basic approaches  Plan-driven (waterfall type models)  Agile (incremental approaches)

11 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 10 Requirements to Code?

12 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 11 The waterfall model of the lifecycle FEASIBILITY STUDY REQUIREMENTS ANALYSIS SPECIFICATION GLOBAL DESIGN DETAILED DESIGN IMPLEMENTATION DISTRIBUTION VALIDATION & VERIFICATION PROJECT PROGRESS

13 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 12 Problems with the waterfall  Late appearance of actual code.  Lack of support for requirements change — and more generally for extendibility and reusability.  Lack of support for the maintenance activity (70% of software costs?).  Division of labor hampering Total Quality Management.  Impedance mismatches.  Highly synchronous model.

14 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 13 Impedance mismatches As Management requested it.As the Project Leader defined it.As Systems designed it. As Programming developed it.As Operations installed it.What the user wanted. (Pre-1970 cartoon; origin unknown)

15 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 14 How to think about requirements?  Use Cases

16 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 15 Bank Requirements – Use Cases System boundary Use Case Actors

17 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 16 Bank Use Cases  Challenge question:  What would the Use Case diagram look like if the bank supplies ATMs in addition to tellers?

18 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 17 Use Case – Open Account  Actors: Customer (initiator), Teller  Overview: the customer applies for and is granted a new bank account with some initial approved line of credit. The teller logs on to the system, selects open account, and supplies the new account details. The system prints a copy of the contents of the new account with the date, which the teller hands to the customer.

19 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 18 Design of Bank – Identify Classes  TELLER  CUSTOMER  SAVINGS_ACCOUNT  CHEQUING_ACCOUNT  MAIN_MENU  BALANCE_INQUIRY  INTEREST_RATE ………  Where do we start?

20 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 19 Test Driven Development 1.Write a little Test  Test will not work initially (there is no code)  Might not even compile 2.Make the Test work quickly  Commit whatever sins are necessary in the process (e.g. duplication in the code) 3.Refactor  Eliminate the duplication created in merely getting the test to work

21 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 20 EiffelStudio – create a new project

22 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 21 Call the new project bank

23 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 22 Compile and Run print(“hello world!”)

24 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 23 Compile often!  Always start with a compiled system  New project wizard  Copy an existing system  A compiled system is needed for browsing  Compile often!

25 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 24 ETester – Create a tests cluster Click here

26 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 25 Create class ACCOUNT_TEST Click here

27 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 26 Clusters and Classes

28 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 27 Ace file – Directory Structure

29 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 28 Ace File – Ace.ace system "bank“ root root_class: make default precompiled ("C:\Eiffel53\precomp\spec\windows\base") assertion (check) assertion (require) … cluster root_cluster:"." all tests:".\tests" library base:"$ISE_EIFFEL\library\base" exclude "table_eiffel3"; "desc"; end … end http://www.cs.yorku.ca/eiffel/precompiled

30 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 29 Project Configuration (Ace file) Root Class All contracts ACCOUNT_TEST turned on Click here

31 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 30 Write Test test_create_account: BOOLEAN is local c: CUSTOMER do comment("test_create_account") create c.make("Archie Fox") Result := equal(c.name, "Archie Fox") end Error code: VTCT Error: type is based on unknown class. What to do: use an identifier that is the name of a class in the universe. Class: ACCOUNT_TEST Unknown class name: CUSTOMER

32 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 31 The Test specifies a Design

33 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 32 customer.e indexing description: "A bank customer“ class CUSTOMER create set_name feature -- Element change make (a_name: STRING) is -- Create a customer. Set `name' to `a_name'. require a_name_not_void: a_name /= Void do name := a_name ensure name_assigned: name = a_name end feature -- Access name: STRING -- of customer invariant name_not_void: name /= Void end

34 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 33 ETester GUI – Green bar

35 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 34 Test: A customer with a savings account test_create_customer_with_account: BOOLEAN is local a1,a2: SAVINGS_ACCOUNT c: CUSTOMER initial_deposit: REAL do initial_deposit := 500 create a1.make(initial_deposit) check a1.balance = initial_deposit end create c.make(a1, "Archie Fox") a2 := c.account Result := equal(c.name, "Archie Fox") and a2 = a1 and a2.balance = initial_deposit end

36 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 35 Red bar

37 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 36 Use debugger to find problem

38 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 37 EiffelStudio – BON tool

39 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 38 Client-Supplier relationship

40 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 39 Open Account Use case (revisited)  Actors: Customer (initiator), Teller  Overview: the customer applies for and is granted a new bank account with some initial approved line of credit. The teller logs on to the system, selects open account, and supplies the new account details. The system prints a copy of the contents of the new account with the date, which the teller hands to the customer.  We have not yet dealt with the LOC, system menu and the receipt. We leave this as an exercise.

41 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 40 Withdraw Use Case  Actors: Customer (initiator) and Teller  Overview: The customer provides the teller with an account number and a withdrawal amount. The teller selects `withdraw-request’ from the system menu, and enters the data. The System debits the account by the requested withdrawal amount, and prints a receipt with the date and the amount, which the teller gives to the customer.  Question: What happens if there is not enough money in the account to withdraw?

42 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 41 test_withdraw test_withdraw: BOOLEAN is local sa1, sa2: SAVINGS_ACCOUNT initial_deposit: REAL do comment("test_withdraw") initial_deposit := 500 create sa1.make(initial_deposit) create sa2.make(200) sa1.withdraw(300) Result := equal(sa1, sa2) end

43 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 42 Bank design (BON static diagram)

44 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 43 EiffelStudio feature tool – withdraw

45 Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 44 Run tests


Download ppt "Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/2015 11:05 PM 0 COSC3311 – Software Design."

Similar presentations


Ads by Google