Visual Basic: An Object Oriented Approach

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Problem Solving and Algorithm Design
Software Development Life Cycle. Why Do We need Software Development Models Helps to make sure that we cover all bases during planning and implementation.
The LC-3 – Chapter 6 COMP 2620 Dr. James Money COMP
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
CS487 Software Engineering Omar Aldawud
Software Process Models
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp Presented by: Gleyner Garden EEL6883 Software Engineering II.
Chapter 6 Problem Solving and Algorithm Design. 6-2 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer.
Chapter 1 - An Introduction to Computers and Problem Solving
Chapter 2 - Problem Solving
Alternate Software Development Methodologies
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Essentials of Systems Analysis and Design Fourth Edition Joseph S. Valacich Joey F.
Objects First With Java A Practical Introduction Using BlueJ Designing object-oriented programs How to write code in a way that is easily understandable,
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Object-oriented Analysis and Design
J. Michael Moore Software Design CSCE 110 Influenced by material developed by James Tam & Jennifer Welch.
Department of Computer Science University of Maryland, College Park
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 5.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
School of Computing Science CMT1000 © Ed Currie Middlesex University 1 CMT1000: Introduction to Programming Ed Currie Lecture 1B: Problem Solving.
Project Management Session 7
Chapter 1 Program Design
System Analysis and Design
Management Responsibility Procedure Tutorial. Introduction to Management Responsibility In this presentation we will discuss how to write a procedure.
Configuration Management
Building Information Systems lesson 26 This lesson includes the following sections: The Systems Development Life Cycle Phase 1: Needs Analysis Phase.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
UNIT 21 Software Engineering.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Chapter 9 High-Level Programming Languages: C++. Chapter Goals Describe the expectations of high level languages Distinguish between functional design.
Introduction To System Analysis and design
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 2 The process Process, Methods, and Tools
CLEANROOM SOFTWARE ENGINEERING.
1 UNIT 20 Software Engineering Lecturer: Ghadah Aldehim.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
1 Designing the Architecture CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Week 3, Day 1, Monday, September 19, 2011.
Problem Solving and Algorithm Design. 2 Problem Solving Problem solving The act of finding a solution to a perplexing, distressing, vexing, or unsettled.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Copyright Prentice Hall, Inc. 1 Computers: Information Technology in Perspective, 11e Larry Long and Nancy Long Chapter 11 Developing Business Information.
I Power Higher Computing Software Development The Software Development Process.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
5 Systems Analysis and Design in a Changing World, Fifth Edition.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Prototyping Rapid software development to validate requirements.
© The McGraw-Hill Companies, Software Project Management 4th Edition Step Wise: An approach to planning software projects Chapter 2.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Software project management (intro)
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Chapter 7: Designing solutions to problems OCR Computing for A Level © Hodder Education 2009.
Game Design For Development
Methodologies and Algorithms
Software Prototyping.
Software Process Models
Software Prototyping Animating and demonstrating system requirements.
Software life cycle models
Presentation transcript:

Visual Basic: An Object Oriented Approach 1 – The Software Life-Cycle

Introduction to Software Software is… the combination of instructions and data a computer system uses to perform tasks complex in structure and detail difficult to construct can involve the development of many inter-related components Software development needs a plan!

Software Structure A software system involves information (data) processes (operations) an organisational structure (some way of relating the operations and the data they must work on) Large-scale structure

Objects Even in small software systems.. a lot of data many different types of operation very complex interactions between them Objects combine items of data with the operations that work on them including links to other objects

Visual Basic Objects Visual Basic can be used to create Object-Oriented Programs Facilities to create… New types of object Forms (user-interfaces – a specific type of object) Models of systems in which objects interact with each other Object Interactions

Developing Software Scale is important. Consider the differences between building… A small garden wall A house A multi-storey building The scale of a project should dictate the amount of analysis, planning and design work performed on it.

The Software Life-Cycle The software development process takes place over a number of phases… Find out what is required Design a suitable solution to the requirements Build a system to the design Test to make sure it works as designed Work with the system, changing it to meet changing requirements and repairing faults as they emerge Different software developers approach these phases in different ways.

Factors that affect the form of the software life-cycle… the size of the project the number of developers the size of the company that employs the developers the level of formality applied to development the developers’ expertise and experience the customers’ experience of software deployment

Waterfall life-cycle Features… Advance planning of whole process Fully planned allocation of resources Rework can affect one or all phases Very late emergence of any working software

Evolutionary Prototyping life-cycle Features… Suits small projects and small teams Early feedback to customer Unknown project completion date Customer can cause project to drag on (possibility of feature creep)

Object-Orientation in the life-cycle The decision to develop an object-oriented solution affects the whole process… Requirements Analysis: identify objects Design: describe objects in terms of their attributes and capabilities Implementation: create objects as designed Test objects in isolation and to ensure they interact properly Upgrade objects and introduce new object and interactions during software use phase.

Software Requirements Specification State what the software is to do Start with a clear description Decompose into individual requirements The software should maintain a list of names and contact telephone numbers. Add names and numbers to a list Remove entries from the list Retrieve a number given an name Generate a printout of the list on a printer

Requirements Specification II Add names and numbers to a list Remove entries from the list Retrieve a number given an name Generate a printout of the list on a printer Identify objects (nouns) in the requirements Convert plurals to singular Remove from the list… duplicates synonyms incidental nouns that refer to objects with no responsibilities vague or non-specific items (e.g. ‘details’, ‘information’) nouns that describe simple attributes (colour, height) objects that might be responsibilties e.g. PrintOut (vagueness of language has confused a noun with a verb) Name (attribute of Entry) Number (attribute of Entry) List Entry Printout (responsibility of List) Printer

Requirements Specification III Assign responsibilities to the objects in the remaining list Each object should be responsible for something action or operation (or it is probably not an object) In some cases, a responsibility may not be until you consider the requirements of similar things in other programs. E.g an Entry does not just appear on a screen or printout – it must be made responsible for this List Add entry, Remove entry, Find entry, PrintOut Entry Display, Print Printer PrintText

Algorithms An algorithm is the step-by-step description of an operation May involve repeating some steps May involve deciding whether to include some optional steps An algorithm is commonly devised by task-decomposition (top-down decomposition)… Take a task and break it into a two or more sub-tasks Break each sub-task down and repeat until each individual step is tractable …or sub-task synthesis (bottom-up composition)… Combine incremental operations that you know how to do to form bigger operations

Objects and Algorithms Objects have capabilities Either… we have designed them for a specific task (top-down decomposition) …or… they already exist and we will make use of their capabilities in a new task (bottom-up composition) Either way, we can implement an algorithm by creating collaborations between objects :List [for all entries in list]: print :Entry :print :Printer

Summary Software development is complex and needs careful planning – a life-cycle approach is often used Software is a combination of information (data) and operations (instructions) The way that these are combined is the structure of the software Objects are used to create smaller structures that can collaborate on a major task In object-oriented design, we need to… Identify the objects needed to do the task Appoint these objects with responsibilities Orchestrate the objects to collaborate on the overall task