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

Slides:



Advertisements
Similar presentations
ITEC200 Week04 Lists and the Collection Interface.
Advertisements

Lecture # 2 : Process Models
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Cmp Sci 187: Introduction to Software Design Following Chapter 1 of text (Koffmann and Wolfgang)
1 The Software Challenge People may come and go, but software may remain A software product is often expected to be used for an extended period of time.
CSC 480 Software Engineering
Software Design. The Software Challenge In industry, a software product is expected to be used for an extended period of time by someone who did not write.
MCS 231: Concepts of Data Structure Class Hour: Section 1: MW 2:15PM - 3:30PM. Hyland 2306.
System Modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers. Different.
ITEC200 – Week 12 Graphs. 2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study.
ITEC200 – Week08 Trees. 2 Chapter Objectives Students can: Describe the Tree abstract data type and use tree terminology such as.
ITEC200 – Week03 Inheritance and Class Hierarchies.
ITEC200 – Week07 Recursion. 2 Learning Objectives – Week07 Recursion (Ch 07) Students can: Design recursive algorithms to solve.
ITEC200 Week02 Program Correctness and Efficiency.
ITEC200 Week06 Queues. 2 Learning Objectives – Week06 Queues (Ch6) Students can Manage data using the queue Abstract Data Type.
ITEC200 Week05 Stacks. 2 Learning Objectives – Week05 Stacks (Chapter05) Students can Use the methods provided in the public interface.
Introduction To System Analysis and Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Sets and Maps ITEC200 – Week Chapter Objectives To understand the Java Map and Set interfaces and how to use them To learn.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Software Development Software Life Cycle UML Diagrams.
CS 425/625 Software Engineering System Models
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Fall 2007CS 2251 Software Engineering Intro. Fall 2007CS 2252 Topics Software challenge Life-cycle models Design Issues Documentation Abstraction.
Chapter 1 Principles of Programming and Software Engineering.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Spring 2009CS 225 Introduction to Software Design Chapter 1.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Introduction To System Analysis and design
1 Introduction Chapter 1. 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding the organization.
Lesson 7 Guide for Software Design Description (SDD)
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Introduction Ellen Walker CPSC 201 Data Structures Hiram College.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Case Study: Designing A Telephone Directory Program Ellen Walker CPSC 201 Data Structures Hiram College Includes figures from Objects, Abstraction & Data.
Component-Based Software Engineering Using Interfaces Paul Krause.
Unified Modeling Language, Version 2.0
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Introduction To System Analysis and Design
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Data Structure Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2010.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
About the Presentations
Abstract descriptions of systems whose requirements are being analysed
CSE 1020:Programming by Delegation
Slides by Steve Armstrong LeTourneau University Longview, TX
Software Development Process Using UML Recap
Presentation transcript:

ITEC200 Week01 Introduction to Software Design

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

Software Life Cycle Models - Waterfall Model

Software Life Cycle Models - Unified Model

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

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

UML as a Design Tool

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

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

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

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

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

Design of an Array-Based Phone Directory

Design of an Array-Based Phone Directory (continued)

Design of an Array-Based Phone Directory (continued)

Design of an Array-Based Phone Directory (continued)

Implementing and Testing the Array-Based Phone Directory

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

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)

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

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