Presentation is loading. Please wait.

Presentation is loading. Please wait.

Www.ics.mq.edu.au/ppdp ITEC200 Week01 Introduction to Software Design.

Similar presentations


Presentation on theme: "Www.ics.mq.edu.au/ppdp ITEC200 Week01 Introduction to Software Design."— Presentation transcript:

1 www.ics.mq.edu.au/ppdp ITEC200 Week01 Introduction to Software Design

2 www.ics.mq.edu.au/ppdp Learning Objectives – Week01 Introduction to Software Design (Ch 1) Students can: Describe features of various software life cycle models Define the concepts of data abstraction, procedural abstraction, and information hiding and the relationships between them Interpret class diagrams, use cases and sequence diagrams as ways of representing systems and interactions Explain what is meant by abstract data types (ADTs) and how classes and interfaces are used to implement them

3 www.ics.mq.edu.au/ppdp Software Life Cycle Models - Waterfall Model

4 www.ics.mq.edu.au/ppdp Software Life Cycle Models - Unified Model

5 www.ics.mq.edu.au/ppdp Software Life Cycle Activities Certain activities are essential for any software development –Requirements specification –Architectural, component, and detailed designs –Implementation –Unit, integration, and acceptance tests –Installation and maintenance

6 www.ics.mq.edu.au/ppdp Aspects of Design Top-down approach: breaking a system into a set of smaller subsystems Object-oriented approach: identification of a set of objects and specification of their interactions UML diagrams are a design tool to illustrate the interactions between –Classes –Classes and external entities

7 www.ics.mq.edu.au/ppdp UML as a Design Tool

8 www.ics.mq.edu.au/ppdp Using Abstraction to Manage Complexity Abstraction: a representation of a physical entity or activity Procedural abstraction: distinguish what is to be achieved by a procedure from its implementation Data abstraction: specify the data objects for a problem and the operations to be performed on them without concern for their representation in memory Information hiding: Concealing the details of a class implementation from users of the class

9 www.ics.mq.edu.au/ppdp Abstract Data Types and Interfaces A major goal of software engineering is to write reusable code Abstract data type (ADT): The combination of data together with its methods A Java interface is a way to specify an ADT

10 www.ics.mq.edu.au/ppdp Using interfaces to specify ADTs Interface specifies ‘what’, implementing class specifies ‘how’ A Java interface is a contract between the interface designer and the programmer who codes a class that implements the interface Implementing class must provide definitions of all methods declared in the interface You cannot instantiate an interface You can declare a variable that has an interface type and use it to reference an actual object Preconditions and Postconditions important role in systematic design

11 www.ics.mq.edu.au/ppdp Requirements Analysis, Use Cases, and Sequence Diagrams First step in analysis is to study the problem of input and output requirements carefully to make sure they are understood and make sense Use case: list of the user actions and system responses for a particular sub-problem in the order that they are likely to occur Sequence diagram: shows all the objects involved in this use case across the horizontal axis, time is shown along the vertical axis

12 www.ics.mq.edu.au/ppdp Design of an Array-Based Phone Directory Case study deals with design, implementation, and testing of the software-based phone directory In UML class diagrams –+ sign next to a method or attribute means it is public –- sign next to a method or attribute means it is private Classes to design include: PDUserInterface PDApplication PhoneDirectory ArrayBasedPD DirectoryEntry

13 www.ics.mq.edu.au/ppdp Design of an Array-Based Phone Directory

14 www.ics.mq.edu.au/ppdp Design of an Array-Based Phone Directory (continued)

15 www.ics.mq.edu.au/ppdp Design of an Array-Based Phone Directory (continued)

16 www.ics.mq.edu.au/ppdp Design of an Array-Based Phone Directory (continued)

17 www.ics.mq.edu.au/ppdp Implementing and Testing the Array-Based Phone Directory

18 www.ics.mq.edu.au/ppdp Implementing and Testing the Array- Based Phone Directory (continued) Note that some code in this application is controversial –Combination of assignment with the evaluation of a condition –Break statement allows exiting of the while loop without storing an entry

19 www.ics.mq.edu.au/ppdp Implementing PDUserInterface PDUserInterface must contain a public method, processCommands We show two different classes that implement the PDUserInterface: –PDGUI Class (using JOptionPane dialog windows) –PDConsoleUI (uses terminal; System.in & System.out)

20 www.ics.mq.edu.au/ppdp Where to from here… Work through Chapter 1 of the Koffman & Wolfgang Text Conceptual Questions and Practical Exercises Submit all preliminary work Be prompt for your online class

21 www.ics.mq.edu.au/ppdp Acknowledgements These slides were based upon the Objects, Abstraction, Data Structures and Design using Java Version 5.0 Chapter 1 PowerPoint presentation by Elliot B. Koffman and Paul A. T. Wolfgang


Download ppt "Www.ics.mq.edu.au/ppdp ITEC200 Week01 Introduction to Software Design."

Similar presentations


Ads by Google