CSC535 – Object Oriented Software Development Introduction.

Slides:



Advertisements
Similar presentations
CHAPTER 2 GC101 Program’s algorithm 1. COMMUNICATING WITH A COMPUTER  Programming languages bridge the gap between human thought processes and computer.
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
Software Engineering 2003 Jyrki Nummenmaa 1 A BASIC OO SOFTWARE DEVELOPMENT PROCESS Earlier, we saw a number of different software lifecycle models.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Modeling Notations.
Unified Modeling Language
1 UML – an overview What is UML? UML stands for Unified Modelling Language. ”The Unified Modelling Language is a visual language for specifying, constructing.
General information CSE 230 : Introduction to Software Engineering
Teamwork C.Eng 491 Fall 2009.
Chapter 16 Programming and Languages: Telling the Computer What to Do.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
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.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
CET203 SOFTWARE DEVELOPMENT Session 1B Modelling and the Theory of Inheritance.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Software Development Concepts ITEC Software Development Software Development refers to all that is involved between the conception of the desired.
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
T. Dawson, TASC 9/11/13 Use of a Technical Reference in NASA IV&V.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Programming Languages: History & Traditional Concepts CSC 2001.
CSC 142 B 1 CSC 142 Java objects: a first view [Reading: chapters 1 & 2]
21 August Agenda  Introductions  Logistics  Selecting a project  Working with a client.
Object-Oriented Analysis and Design An Introduction.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Chapter 9 Moving to Design
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Object-Oriented Analysis and Design Fall 2009.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Introduction to UML: Unified Modeling Language Ric Holt U Waterloo, March 2009 CS246.
1 UML Distilled 3e by Martin Fowler Chapter 1 Introduction to UML.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
1 Introduction to UML. 2 What is UML? UML is an acronym for Unified Modeling Language. Unified –Combines the best from existing object- oriented software.
Verification of behavioural elements of UML models using B Truong, Ninh-Thuan and Souquieres, Jeanine In Proceedings of the 2005 ACM Symposium on.
System Context and Domain Analysis Abbas Rasoolzadegan.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Course Introduction CEN 5016 Software Engineering Dr. David A. Workman School of EE and Computer Science January 9, 2007.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Session 3 How to Approach the UML Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.
How Are Computers Programmed? CPS120: Introduction to Computer Science Lecture 5.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Unified Modeling Language (UML)
Object Oriented Analysis & Design By Rashid Mahmood.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
Introduction to UML.
Object-Oriented Analysis and Design
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Unified Modeling Language
Software Documentation
Introduction to UML: Unified Modeling Language
Object Oriented Analysis and Design
Chapter 7 –Implementation Issues
Software Design Methodologies and Testing
Engineering Quality Software
Chapter 1 Introduction to Programming
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

CSC535 – Object Oriented Software Development Introduction

Ground Rules – Attendance Attendance is imperative –If you must miss a class, contact me ahead of time –If the miss is unplanned, contact me as soon as you can after the class –If you must miss multiple classes, your grade will suffer –As you probably know, some of my lecture material comes from the book, much does not Thus you need to attend lectures and read the book

Ground Rules – Participation Participation in class discussions enhances the learning experience –You all have software development (or general project development) experiences to share –Doing so will benefit everyone

Ground Rules – Activities You will be working in groups on a term-long project –Team work is one of the primary reasons the object-oriented software development process was created –I will give you time to meet as a team during class –Meeting outside of class is up to the team, you should all have access codes to the computer science lab for this purpose

Ground Rules – Exams/Homework As of now I am undecided whether we will have an in class exam and final or not –But I am leaning towards having one –More on this later Similar comments regarding individual homework assignments

The book UML Distilled, Third Edition –Martin Fowler –Publisher: Addison-Wesley –ISBN-10: –ISBN-13:

Chapter 1 Introduction

Programming Languages The hierarchy Architecture Independent Architecture Dependent High Level Language Statement Assembly Language Statement Machine Code Statement Assembly Language Statement Machine Code Statement … …

Programming Languages Translation Compiler Assembler Linker/Loader High Level Language Statement Assembly Language Statement Machine Code Statement Assembly Language Statement Machine Code Statement … …

Programming Languages Abstraction Highly Abstract Moderately Abstract Not Abstract High Level Language Statement Assembly Language Statement Machine Code Statement Assembly Language Statement Machine Code Statement … …

Programming Languages All three are implementation languages –They are used directly to create programs that will run on real computers –All of the languages convey information about what the architecture will do (what will happen within the AND, OR, and NOT gates) –None of the languages convey information about the design Although the design may be extracted from the code, but typically with great difficulty

Programming Languages What does this do? mov A, R1 subb A, R5 jnc eLT mov R2, #0x06 sjmp endLT eLT: mov R2, #0x07 endLT: nop if (R1 < R5) R2 = 6 else R2 = 7

Programming Languages Programming languages are good for writing code Programming languages are not good for designing software systems They do not convey an level of abstraction that is easily understood by humans

Unified Modeling Language UML is a design language, first and foremost –Although it can be used to generate code (more later) UML is a graphical notation for describing and designing software systems –Although it can be used for designing non- software systems

Unified Modeling Language UML is not synonymous with object- oriented design/programming –Although it’s introduction in 1997 was to encourage the use of object-oriented design approaches UML is not used for drawing flowcharts

Use of UML UML can be used in three different modes (or styles) –Sketch –Blueprint –Programming language UML can be used in two different directions –Forward – used to design a new system –Reverse – used to document an existing system

Sketch Mode Goal: to communicate “some” aspects of a design Forward engineering: capture the main concepts of the design for the purpose of converting to code Reverse engineering: convert detailed code to a higher level of abstraction for the purpose of understanding

Sketch Mode Informal – you don’t have to follow any strict rules Dynamic – designs will change Collaboration – facilitates multiple people contributing to the design Typical media – white board, sketch pads, lots of scratch paper Tools – no special tools required

Blueprint Mode Goal: to communicate a “complete” design to the programmers Forward engineering: code is written from the UML documents with no design alterations Reverse engineering: convert detailed code to a higher level of abstraction for the purpose of understanding

Blueprint Mode Formal – strict rules must be followed so that the programmers know exactly what the designers want done Semi-Dynamic – designs may change but change can be costly at this time Collaboration – ideally the programmers need not talk to the designers Typical media – printed documents Tools –Forward: drawing tools and meta-data repository –Reverse: compiler with UML generator in place of the assembly code generator

Programming Language Mode Goal: to generate executable code Forward engineering: the UML is the code Reverse engineering: not needed

Programming Language Mode Formal – strict rules must be followed so that code can be generated Static – the UML is the code, to change the code you change the UML Collaboration – only at the module (or package) level (same as conventional programming) Typical media – printed documents Tools – code generating UML tool (they exist but are not great)

UML Modes Sketch mode is the most common usage

UML Perspectives Software –Some UML artifacts (we’ll define these later) map directly to code Conceptual –Some UML artifacts map directly to deployment (placement of software rather than design of the software)

So, What is UML? A graphical design notation –The diagrams (graphical notation) themselves capture the “syntax” of the system being designed Meta-models –The concepts conveyed by the diagrams capture the “semantics” of the system being designed

UML Diagrams UML 2.0 contains thirteen (13) diagram types –Each has it’s “typical” usage and elements –There is no “strict” rules on when or how to use each diagram –There is no “strict” rules as to what elements each diagram will contain –Obviously, in programming language mode strict rules must be followed Basically, UML provides a set of design guidelines that will help you be successful in your design phase

UML Diagrams The diagrams are descriptive –They are used to convey ideas –You will hear “most people use them this way…” The diagrams are not prescriptive –They do not tell you how and what to do –You won’t hear “you have to use them this way…” (except in programming mode)

Class Structure

Project Based You will be the design team –3-5 members I will be –The customer –The technical advisor I will not be –A system designer –A programmer –An arbiter

Project Based Your team will –Manage itself –Produce a design (all aspects – more later) –Produce an implementation (code) –Produce system documentation –Perform design reviews –Perform product demonstrations –Use UML in a forward-engineered, sketch/blueprint mode (closer to blueprint than sketch)

Project Based Team management –Create the system design –Create the system documentation –Maintain a schedule –Maintain a repository (backup, librarian) –Write, test, debug code –etc. etc. etc.

Project Based Management –I will not tell you how to run your team –I will not tell you how to divide work amongst your team members But –All team members will be responsible for all aspects of the project –All team members must understand all aspects of the project

Startup Form teams Choose a team name and a logo Create document letter head –Presentation material (suggest PowerPoint or Keynote) –Documentation (suggest Word and Visio) Review the project specification

Deliverables You will be given deliverables and dates throughout the term First deliverable – due June 3, 2010 –Team name –Team logo –Team member names and addresses –A set of items (questions) that you believe require clarification from the customer before you can proceed with the design –Bibliography of resources used

Deliverables All “written” submissions should be on team letterhead –Source code and UML diagrams will be addressed as they are introduced into the list of deliverables

Evaluation Criteria Grading will be based on: –Following instructions. –Meeting deadlines. –Working as a team. –Quality of workmanship. How closely the design matches the code. How well the design documents are written. How well the code is written. –Usage of OO constructs. –Coding standards. –Comments. –Does the program meet the specification and work properly? –Quality of presentations.

Evaluation Criteria An actual grading scale based on the above items will be provided. For the time being, assume that they are all equally important and thus, equally weighted.