0% found this document useful (0 votes)
91 views32 pages

Week 1a Introduction To OOAD

This document provides an overview of an Object Oriented Analysis and Design course taught by Dr. Rafia Mumtaz, including information about the instructor, course objectives and structure, topics to be covered including UML modeling, software design processes, and assessment details.

Uploaded by

Genghis Khan 69
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
91 views32 pages

Week 1a Introduction To OOAD

This document provides an overview of an Object Oriented Analysis and Design course taught by Dr. Rafia Mumtaz, including information about the instructor, course objectives and structure, topics to be covered including UML modeling, software design processes, and assessment details.

Uploaded by

Genghis Khan 69
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

OBJECT ORIENTED ANALYSIS &DESIGN

CS-812
MSIT-2K20

DR. RAFIA MUMTAZ


ABOUT ME
Collaborations
Dr. Rafia Mumtaz ▪ University of Leeds, UK
PhD – University of Surrey, UK, 2010 ▪ University of West of Scotland, UK
Postdoc – University of Surrey, UK, 2011 ▪ University of NorthUmbria, Newcastle, UK
Head of Information Technology, NUST-SEECS ▪ Queen Mary University of London, UK
Director Internet of Things Lab, NUST-SEECS ▪ University of Malaga, Spain
▪ University of Politecnico Di torino, Italy
▪ National Agriculture Research Council, Pakistan
Research Areas
Total Research Grants
• Remote Sensing & GIS
• Internet of Things ▪ 34.38 Million Rs. (HEC, DAAD, GCRF, ERASMUS+)
• Machine Learning & Data Analytic
Student Supervision
Publications PhD: 3 ongoing, MS: 5(5 ongoing) UG: 11(21 on
going)
• IF Journals: 15 | Book Chapters: 3
• N-IF Journals: 3 | Patents 1 (7 Filed)
Research Award
• Conference : 15 NUST-SEECS Best Researcher Award 2018
ABOUT THECOURSE
 CS‐ 812 Object Oriented Analysis & Design
 KG = Software Engineering
 Core course / Mandatory
 3 credit hours (No labs)

 Timings:
 3 lectures in a week
 Monday 5:00 PM – 5:50 PM
 Thursday 5:00 PM – 6:50 PM

 Consulting Hours:Tuesday 5:00 PM – 6:00 PM


 Venue:
 Class Room # 5
ABOUT THE COURSE

Thiscoursewillbe divided into threeparts:


 In the first part, students will be provided with the concepts and practices of object oriented
programming paradigm
 Students will be given a tour on UML modeling including: the creation of object models, UML
notation and the application of UML in OOAD process.

 In the second part, students will learn software design processes and principals, and will be
able to appreciate the importance of design patterns inSDLC

 In the third part, students know OO ‐ development lifecycle. They will also learn modern
methods of software engineering and design patterns for implementing a real world project.
The course will also discuss ArchitecturalPatternand some advanced topics
COURSE OBJECTIVES

 Familiarize with concepts and methods of software analysis and design


 Learn the use of design principles
 Learn how to perform OO analysis and OO design
 Learn Design patterns and apply them to a given problem
 Learn Architectural patterns and apply them to a given problem

5
LEARNING RESOURCES
Reading Material
Text Book: 1. The Object-Oriented Thought Process, Matt Weisfeld 5th Edition, Addison Wesley, 2019
2. Design Patterns: Elements of Reusable Object-Oriented Software by Ralph Johnson, John Vlissides,
Richard Helm, and Erich Gamma (GoF), 1994
3. Software Design: From Programming to Architecture by Eric J. Braude, 2003

Reference 1. Software Engineering: A Practitioner's Approach by R.S. Pressman, 8th ed., McGraw-Hill Book Co.,
Books: NY, 2014,
2. Software Engineering, by Ian Sommerville 10th ed. Addison-Wesley, 2016
3. Object-Oriented Software Engineering: Practical Software Development using UML and Java by
Timothy C. Lethbridge and Robert Laganière, 2004.

 Lecture Notes / Slides


Others
 Handouts
ASSESSMENT
 Assignments 10%
 Choose a real worldsystem
 Perform OOAD
 Deliver as Projectreport
 Project 10%
 Make groups(2‐3)
 Application development using OOAD
 C++/C#, Visual Studio .Net platform(preferred)
 Presentation/demonstration at the end of thecourse
 Midterm Exam 30%
 ESE 50%
WEEK 1

 Course overview, Introduction to Object oriented thinking and design


 Elements of Object Oriented Design / Object Oriented Programming
 Software Design Paradigm
LEARNING OBJECTIVES

 In this lecture you will learn


 To compare and contrast analysis and design
 To define object-oriented analysis and design (OOA/D)
 Three important things to develop a good sense of OO thought process
 Characteristics of OO paradigm
OBJECT‐ORIENTEDTHINKING

 Object‐oriented thinking involves:


 examining the problems or concepts at hand
 breaking them down into parts, and
 representing key concepts through objects in your software

 By using objects to represent things in your code, the code stays


organized, flexible, and reusable
OBJECT‐ORIENTEDTHINKING
Organized

• Objects keep code organized by putting related details and specific functions
in distinct, easy‐to‐find places

Flexible

• Objects keep code flexible, so details can be easily changed in a modular way
within the object, without affecting the rest of the code

Reusable

• Objects allow code to be reused, as they reduce the amount ofcode that needs
to be created, and keeps programs simple
OBJECT‐ORIENTEDTHINKING

 It is good practice to prepare for object‐oriented design by


accustoming yourself to thinking about the world around you in terms
of objects, and the attributes those objects might have

 What objects are around you? What kinds of details and behaviors they
have?
OBJECT‐ORIENTEDTHINKING

 Objects are self‐aware in software production,e.g.,

 a mobile phone “knows” itsspecifications

 Similarly, an object such as a chair would know its dimensions and


location.
OBJECT‐ORIENTEDTHINKING

 Three important things you can do to develop a good sense of the OO


thought process:
 Knowing the difference between the interface and implementation
 Thinking more abstractly
 Giving the user the minimal interface possible
OBJECT‐ORIENTEDTHINKING

Interface vs. Implementation


 Building a strong OO design is to understand the difference
between the interface and the implementation
 When designing a class,know:
 what the user needs to know?
 what the user does not need to know?
OBJECT‐ORIENTEDTHINKING

Interface vs. Implementation

 E.g., the interface between a driver and the car includes: steering wheel, gas pedal,
brake, and ignition switch; however all the implementations are hidden from thedriver

Change in implementation
OBJECT‐ORIENTEDTHINKING

Interface vs. Implementation


 Properly constructed classes are designed in two
parts—the interface and the implementation.

 Most important is to identify the users of the


class

 Services presented to an end user constitute the


interface
OBJECT‐ORIENTEDTHINKING

Thinking more abstractly

 In order to design reusable classes one must tend to have interfaces


that are more abstract thanconcrete

 Concrete interfaces tend to be very specific


 whereas abstract interfaces are moregeneral
OBJECT‐ORIENTEDTHINKING

Minimal interfaces

 When designing a class, the rule of thumb is to always provide the user with as little
knowledge of the inner workings of the class as possible
OBJECT‐ORIENTEDTHINKING

 Analysis emphasizes an investigation of the problem and


requirements, rather than a solution.
 For example, if a new computerized library information system is
desired, how will it be used?
Analysis
 "Analysis" is a broad term, best qualified, as in requirements
analysis (an investigation of the requirements) or object analysis
(an investigation of the domain objects)
OBJECT‐ORIENTEDTHINKING

 Procedure of identifying software engineering requirements


and developing software specifications in terms of a
software system’s object model, which comprises of
Object‐ interacting objects
Oriented
Analysis  Emphasis on finding and describing the objects or concepts in
the problem domain
 For example, in the case of the library information system, some
of the concepts include Book, Library, and Patron
OBJECT‐ORIENTEDTHINKING

 Requirements are organized around objects, which integrate


both data and functions.
OBJECT‐  They are modelled after real-world objects that the system
ORIENTED interacts with
ANALYSIS  In traditional analysis methodologies, the two aspects -
functions and data - are considered separately.
OBJECT‐ORIENTEDTHINKING

Object‐ IDENTIFYING OBJECTS

Oriented Organizing the objects by


Analysis ‐ creating object model diagram

Primary Defining the internals ofthe


tasks objects, or objectattributes

Defining the behavior ofthe


objects, i.e., object actions

Describing how the objects 23

interact
OBJECT‐ORIENTEDTHINKING

 Design emphasizes a conceptual solution that fulfills the


requirements, rather than its implementation
Design  For example, a description of a database schema and software
objects. Ultimately, designs can be implemented

24
OBJECT‐ORIENTED DESIGN

 Involves implementation of the conceptual model produced


Object during object‐oriented analysis
Oriented
 Emphasis on defining software objects and how they collaborate
Design to fulfill the requirements
 For example, in the library system, a Book software object may
have a title attribute and a getChapter method
 Finally, during implementation or object-oriented programming,
design objects are implemented, such as a Book class in Java

25
OBJECT‐ORIENTED DESIGN

 In OOD,
Object
 Concepts in the analysis model, which are
Oriented
technology−independent, are mapped onto implementing
Design classes
 Constraints are identified and interfaces are designed,
 Resulting in a model for the solution domain, i.e., a
detailed description of how the system is to be built on
concrete technologies

26
OBJECT‐ORIENTEDTHINKING

RESTRUCTURING THE CLASS


DATA (IF NECESSARY),
OOD
(Implementation Implementation of methods,
Details) i.e., internal data structures
and algorithms,

Implementation of control

Implementation
27 of associations
OBJECT ORIENTED PROGRAMMING (OOP)

• OOP is a programming paradigm based upon objects (having both


data and methods) that aims to incorporate the advantages of
modularity and reusability

• Objects, which are usually instances of classes, are used to


interact with one another to design applications and computer
programs
28
CHARACTERISTICS / ATTRIBUTES OFOO PARADIGM

Encapsulation and
Message Passing
Characteristics
Data hiding
/Attributes of
OO Paradigm
Inheritance Polymorphism

Relationships
• Generalization and Specialization
• Links and Association
• Aggregation or Composition
SUMMARY

 In this lecture we have covered


 Basic concepts of OO thinking
 Compared and contrast analysis and design
 Defined object-oriented analysis and design (OOA/D)
 Explored three areas that can get you started on the path to thinking in an OO way
 Difference between OOA and traditional approaches
 Characteristics of OO paradigm
READING MATERIAL

 Chapter 1: Craig Larman, Applying UML and Patterns: An Introduction to Object-


Oriented Analysis and Design, and the Unified Process. 2nd Edition.

 Chapter 2:The Object-Oriented Thought Process, 3rd Edition


REFERENCES

 The Object-Oriented Thought Process, 3rd Edition, 2nd Chapter, How to Think in Terms of Objects,
 https://www.tutorialspoint.com/object_oriented_analysis_design/ooad_object_oriented_paradigm.htm
 Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design,
and the Unified Process. 2nd Edition.
 https://www.scribd.com/document/402664349/3cef0bd88cf5c57529dba8223c1d8890-Object-
Oriented-Design-Course-Notes-pdf

You might also like