SlideShare a Scribd company logo
Chapter 1
Object-Oriented Analysis and Design
Disclaimer
• Slides come from a variety of sources:
– Craig Larman-developed slides; author of this classic textbook.
– Dr. Constantinos Constantinides, University of London
– Slides from the University of Pittsburg
– Slides from many of my existing slides on these same topics
– New slides from sources unknown…
2
Chapter 1
• Chapter one covers a host of many topics central to today’s
technologies.
• These skills are essential in today’s professional community.
• We will talk about (in some detail) iterative development,
evolutionary development, the Unified Process, agile
approaches, UML,
• Later on we will advance into more complex concepts that
address framework design and architectural analysis.
• Please note that the materials are meant to be foundational.
3
Thinking in Objects and UML - 1
• The Unified Modeling Language (UML) is a standard
diagramming notation; sometimes referred to as a blueprint.
• It is NOT OOA/OOD or a method
• Only a notation for capturing objects.
• UML is language-independent
• Analysis and design provide software “blueprints” captured in
UML.
• Blueprints serve as a tool for thought and as a form of
communication with others.
4
Thinking in Objects and UML – 2
• But it is far more essential to ‘think’ in terms of objects as
providing ‘services’ and accommodating ‘responsibilities.’
• Discuss: What is meant by ‘services?’ How indicated?
– How might you think these ‘services’ impact the design of classes?
– How might a client access these services?
• Discuss: What is meant by ‘responsibilities?’
– Encapsulation of data and services?
5
6
Thinking in Terms of Objects and UML - 3
• Object-Oriented Analysis (Overview)
– An investigation of the problem (rather than how a solution is defined)
– During OO analysis, there is an emphasis on finding and describing the
objects (or concepts) in the problem domain.
– For example, concepts in a Library Information System include Book,
and Library.
7
Thinking in Terms of Objects and UML - 4
• Object-Oriented Design
– Emphasizes a conceptual solution that fulfills the requirements.
– Need to define software objects and how they collaborate to fulfill the
requirements.
– For example, in the Library Information System, a Book software object
may have a title attribute and a getChapter method.
• Designs are implemented in a programming language.
– In the example, we will have a Book class in Java.
8
Thinking in Terms of Objects and UML – 5
From Design to Implementation
Book
title
print()
public class Book {
public void print();
private String title;
}
Book
(concept)
Analysis
investigation
of the problem
Design
logical solution
Construction
code
Domain concept Representation in
analysis of concepts
Representation in an
object-oriented
programming language.
Can you see the services / responsibilities in the Book class?
Thinking in Objects and UML-6
• Then too, there are sets of proven design solutions to problems
that are considered ‘best practices.’
– Certain ‘groupings’ of classes with specific responsibilities / interfaces.
– These provide specific solutions to specific problems.
– Called Design Patterns
• We will discuss (much later) these patterns and how to apply
them to develop solutions to problems.
9
Thinking in Objects and UML-7
• Of course, design, solutions to requirements, ‘assume’ a robust
requirements analysis has taken place.
• Use Cases are often used to capture stories of requriements.
• Use Cases are not specifically designed to be object-oriented,
but rather are meant to capture how an application will be used.
• While there are many methods for capturing requirements, we
will concentrate on Use Cases ahead.
10
11
Basic Terms: Iterative, Evolutionary, and Agile
1. Introduction
• Iterative because the entire project will be composed of min-
projects and will iterate the same activities again and again (but
on different part of the project) until completion.
• Evolutionary (or incremental) because the software grows by
increments (to be opposed to the traditional, and somewhat old-
fashioned, Waterfall model of software development).
• Agile because we will use a light approach to software
development rather than a very rigid one (which may be needed
for a safety-critical system for example)
• This kind of approach seems better at treating software
development as a problem solving activity; also the use of
objects makes it amenable.
12
Our Approach:
• We need a Requirements Analysis approach with OOA/OOD
need to be practiced in a framework of a development process.
• We will adopt an agile approach (light weight, flexible) in the
context of the Unified Process, which can be used as a sample
iterative development process.
• Within this process, the principles can be discussed.
• Please note that there are several other contexts that may be
used, such as Scrum, Feature-Driven Development, Lean
Development, Crystal Methods and others…
13
Why the Unified Process:
• The Unified Process is a popular iterative software development
process.
• Iterative and evolutionary development involves relatively early
programming and testing of a partial system, in repeated cycles.
• It typically also means that development starts before the exact
software requirements have been specified in detail; feedback is
used to clarify, correct and improve the evolving specification:
this is in complete contrast to what we usually mean by
engineering!
14
2. What is the Unified Process?
• The UP is very flexible and open and can include other practices
from other methods such as Extreme Programming (XP) or
Scrum for example.
– e.g. XP’s test-driven development, refactoring can fit within a UP
project; So can Scrum’s daily meeting.
– Being pragmatic in adapting a particular process to your needs is an
important skill : all projects are different.
We will be studying all of the topics found in Fig. 1.1
Topics and Skills
UML notation
Requirements
analysis
Principles and
guidelines
Patterns
Iterative
development with
an agile Unified
Process
OOA/D
The Rush to Code
• Critical ability to develop is to think in terms of objects and to
artfully assign responsibilities to software objects.
• Talk at great length in COP 3538 about encapsulation and
assigning methods to objects where the data is defined…
• One cannot design a solution if the requirements are not
understood.
• One cannot implement the design if the design is faulty.
• If I could only stop my students….
16
The Rush to Code
• Analysis: - investigate the problem and the requirements.
– What is needed? Required functions? Investigate domain objects.
– The Whats of a system.
– Do the right thing (analysis)
• Design:
– Conceptual solution that meets requirements.
– Not an implementation
– Describe a database schema and software objects.
– Avoid the CRUD activities and commonly understood functionality.
– The ‘Hows’ of the system
– Do the thing right (design)
17
What is Object-Oriented Analysis and Design
• OOA: we find and describe objects or concepts in the problem
domain
• OOD: we define how these software objects collaborate to meet
the requirements.
– Attributes and methods.
• OOP: Implementation: we implement the design objects in,
say, Java, C++, C#, etc.
18
Homework Assignment #1
• Using the model below, develop a two-three page discussion
outlining the four activities listed and present the major features of
each.
A short definition and example of a domain model, interaction
diagram, and class diagram is sufficient, but be prepared to discuss
each of these.
Also, have a general idea about use cases – what they are designed
to do and what they are not designed to do.
19
Define Use Cases Define Domain Model Define Interaction
Diagrams
Define Design Class
Diagrams

More Related Content

Similar to CEN6016-Chapter1.ppt

Object model
Object modelObject model
Object model
Fraboni Ec
 
Object model
Object modelObject model
Object model
Luis Goldster
 
Object model
Object modelObject model
Object model
James Wong
 
Object model
Object modelObject model
Object model
Tony Nguyen
 
Object model
Object modelObject model
Object model
Hoang Nguyen
 
01 introduction
01 introduction01 introduction
01 introduction
Baskarkncet
 
Object Oriented Analysis and Design Unit-1
Object Oriented Analysis and Design Unit-1Object Oriented Analysis and Design Unit-1
Object Oriented Analysis and Design Unit-1
SangeethaSubramaniam14
 
Unit 2
Unit 2Unit 2
Module3 - Object Oriented Analysis & Functional Model.pdf
Module3 - Object Oriented Analysis & Functional Model.pdfModule3 - Object Oriented Analysis & Functional Model.pdf
Module3 - Object Oriented Analysis & Functional Model.pdf
Gerard Alba
 
Assignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioAssignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audio
RickNZ
 
Object oriented analysis and design
Object oriented analysis and designObject oriented analysis and design
Object oriented analysis and design
naveed428
 
Unit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptxUnit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptx
Ravindranath67
 
oomd-unit-i-cgpa.ppt
oomd-unit-i-cgpa.pptoomd-unit-i-cgpa.ppt
oomd-unit-i-cgpa.ppt
Pavan992098
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
Manoj Reddy
 
OOSD_UNIT1 (1).pptx
OOSD_UNIT1 (1).pptxOOSD_UNIT1 (1).pptx
OOSD_UNIT1 (1).pptx
DebabrataPain1
 
Unit 4
Unit 4Unit 4
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and Answer
Gobinath Subramaniam
 
ooadunitiintroduction-150730050129-lva1-app6892.pptx
ooadunitiintroduction-150730050129-lva1-app6892.pptxooadunitiintroduction-150730050129-lva1-app6892.pptx
ooadunitiintroduction-150730050129-lva1-app6892.pptx
ubaidullah75790
 
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
sagarjsicg
 
Introduction
IntroductionIntroduction
Introduction
Preeti Mishra
 

Similar to CEN6016-Chapter1.ppt (20)

Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
01 introduction
01 introduction01 introduction
01 introduction
 
Object Oriented Analysis and Design Unit-1
Object Oriented Analysis and Design Unit-1Object Oriented Analysis and Design Unit-1
Object Oriented Analysis and Design Unit-1
 
Unit 2
Unit 2Unit 2
Unit 2
 
Module3 - Object Oriented Analysis & Functional Model.pdf
Module3 - Object Oriented Analysis & Functional Model.pdfModule3 - Object Oriented Analysis & Functional Model.pdf
Module3 - Object Oriented Analysis & Functional Model.pdf
 
Assignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioAssignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audio
 
Object oriented analysis and design
Object oriented analysis and designObject oriented analysis and design
Object oriented analysis and design
 
Unit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptxUnit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptx
 
oomd-unit-i-cgpa.ppt
oomd-unit-i-cgpa.pptoomd-unit-i-cgpa.ppt
oomd-unit-i-cgpa.ppt
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
 
OOSD_UNIT1 (1).pptx
OOSD_UNIT1 (1).pptxOOSD_UNIT1 (1).pptx
OOSD_UNIT1 (1).pptx
 
Unit 4
Unit 4Unit 4
Unit 4
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and Answer
 
ooadunitiintroduction-150730050129-lva1-app6892.pptx
ooadunitiintroduction-150730050129-lva1-app6892.pptxooadunitiintroduction-150730050129-lva1-app6892.pptx
ooadunitiintroduction-150730050129-lva1-app6892.pptx
 
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
 
Introduction
IntroductionIntroduction
Introduction
 

Recently uploaded

Constructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective CommunicationConstructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective Communication
Chevonnese Chevers Whyte, MBA, B.Sc.
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
GeorgeMilliken2
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
TechSoup
 
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdfIGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
Amin Marwan
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Temple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation resultsTemple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation results
Krassimira Luka
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
EduSkills OECD
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
Solutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptxSolutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptx
spdendr
 
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
สมใจ จันสุกสี
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
imrankhan141184
 
math operations ued in python and all used
math operations ued in python and all usedmath operations ued in python and all used
math operations ued in python and all used
ssuser13ffe4
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
heathfieldcps1
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
haiqairshad
 
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem studentsRHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
Himanshu Rai
 
Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
Jyoti Chand
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
Wahiba Chair Training & Consulting
 
B. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdfB. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdf
BoudhayanBhattachari
 

Recently uploaded (20)

Constructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective CommunicationConstructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective Communication
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
 
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdfIGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Temple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation resultsTemple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation results
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
Solutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptxSolutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptx
 
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
 
math operations ued in python and all used
math operations ued in python and all usedmath operations ued in python and all used
math operations ued in python and all used
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
 
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem studentsRHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
 
Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
 
B. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdfB. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdf
 

CEN6016-Chapter1.ppt

  • 2. Disclaimer • Slides come from a variety of sources: – Craig Larman-developed slides; author of this classic textbook. – Dr. Constantinos Constantinides, University of London – Slides from the University of Pittsburg – Slides from many of my existing slides on these same topics – New slides from sources unknown… 2
  • 3. Chapter 1 • Chapter one covers a host of many topics central to today’s technologies. • These skills are essential in today’s professional community. • We will talk about (in some detail) iterative development, evolutionary development, the Unified Process, agile approaches, UML, • Later on we will advance into more complex concepts that address framework design and architectural analysis. • Please note that the materials are meant to be foundational. 3
  • 4. Thinking in Objects and UML - 1 • The Unified Modeling Language (UML) is a standard diagramming notation; sometimes referred to as a blueprint. • It is NOT OOA/OOD or a method • Only a notation for capturing objects. • UML is language-independent • Analysis and design provide software “blueprints” captured in UML. • Blueprints serve as a tool for thought and as a form of communication with others. 4
  • 5. Thinking in Objects and UML – 2 • But it is far more essential to ‘think’ in terms of objects as providing ‘services’ and accommodating ‘responsibilities.’ • Discuss: What is meant by ‘services?’ How indicated? – How might you think these ‘services’ impact the design of classes? – How might a client access these services? • Discuss: What is meant by ‘responsibilities?’ – Encapsulation of data and services? 5
  • 6. 6 Thinking in Terms of Objects and UML - 3 • Object-Oriented Analysis (Overview) – An investigation of the problem (rather than how a solution is defined) – During OO analysis, there is an emphasis on finding and describing the objects (or concepts) in the problem domain. – For example, concepts in a Library Information System include Book, and Library.
  • 7. 7 Thinking in Terms of Objects and UML - 4 • Object-Oriented Design – Emphasizes a conceptual solution that fulfills the requirements. – Need to define software objects and how they collaborate to fulfill the requirements. – For example, in the Library Information System, a Book software object may have a title attribute and a getChapter method. • Designs are implemented in a programming language. – In the example, we will have a Book class in Java.
  • 8. 8 Thinking in Terms of Objects and UML – 5 From Design to Implementation Book title print() public class Book { public void print(); private String title; } Book (concept) Analysis investigation of the problem Design logical solution Construction code Domain concept Representation in analysis of concepts Representation in an object-oriented programming language. Can you see the services / responsibilities in the Book class?
  • 9. Thinking in Objects and UML-6 • Then too, there are sets of proven design solutions to problems that are considered ‘best practices.’ – Certain ‘groupings’ of classes with specific responsibilities / interfaces. – These provide specific solutions to specific problems. – Called Design Patterns • We will discuss (much later) these patterns and how to apply them to develop solutions to problems. 9
  • 10. Thinking in Objects and UML-7 • Of course, design, solutions to requirements, ‘assume’ a robust requirements analysis has taken place. • Use Cases are often used to capture stories of requriements. • Use Cases are not specifically designed to be object-oriented, but rather are meant to capture how an application will be used. • While there are many methods for capturing requirements, we will concentrate on Use Cases ahead. 10
  • 11. 11 Basic Terms: Iterative, Evolutionary, and Agile 1. Introduction • Iterative because the entire project will be composed of min- projects and will iterate the same activities again and again (but on different part of the project) until completion. • Evolutionary (or incremental) because the software grows by increments (to be opposed to the traditional, and somewhat old- fashioned, Waterfall model of software development). • Agile because we will use a light approach to software development rather than a very rigid one (which may be needed for a safety-critical system for example) • This kind of approach seems better at treating software development as a problem solving activity; also the use of objects makes it amenable.
  • 12. 12 Our Approach: • We need a Requirements Analysis approach with OOA/OOD need to be practiced in a framework of a development process. • We will adopt an agile approach (light weight, flexible) in the context of the Unified Process, which can be used as a sample iterative development process. • Within this process, the principles can be discussed. • Please note that there are several other contexts that may be used, such as Scrum, Feature-Driven Development, Lean Development, Crystal Methods and others…
  • 13. 13 Why the Unified Process: • The Unified Process is a popular iterative software development process. • Iterative and evolutionary development involves relatively early programming and testing of a partial system, in repeated cycles. • It typically also means that development starts before the exact software requirements have been specified in detail; feedback is used to clarify, correct and improve the evolving specification: this is in complete contrast to what we usually mean by engineering!
  • 14. 14 2. What is the Unified Process? • The UP is very flexible and open and can include other practices from other methods such as Extreme Programming (XP) or Scrum for example. – e.g. XP’s test-driven development, refactoring can fit within a UP project; So can Scrum’s daily meeting. – Being pragmatic in adapting a particular process to your needs is an important skill : all projects are different.
  • 15. We will be studying all of the topics found in Fig. 1.1 Topics and Skills UML notation Requirements analysis Principles and guidelines Patterns Iterative development with an agile Unified Process OOA/D
  • 16. The Rush to Code • Critical ability to develop is to think in terms of objects and to artfully assign responsibilities to software objects. • Talk at great length in COP 3538 about encapsulation and assigning methods to objects where the data is defined… • One cannot design a solution if the requirements are not understood. • One cannot implement the design if the design is faulty. • If I could only stop my students…. 16
  • 17. The Rush to Code • Analysis: - investigate the problem and the requirements. – What is needed? Required functions? Investigate domain objects. – The Whats of a system. – Do the right thing (analysis) • Design: – Conceptual solution that meets requirements. – Not an implementation – Describe a database schema and software objects. – Avoid the CRUD activities and commonly understood functionality. – The ‘Hows’ of the system – Do the thing right (design) 17
  • 18. What is Object-Oriented Analysis and Design • OOA: we find and describe objects or concepts in the problem domain • OOD: we define how these software objects collaborate to meet the requirements. – Attributes and methods. • OOP: Implementation: we implement the design objects in, say, Java, C++, C#, etc. 18
  • 19. Homework Assignment #1 • Using the model below, develop a two-three page discussion outlining the four activities listed and present the major features of each. A short definition and example of a domain model, interaction diagram, and class diagram is sufficient, but be prepared to discuss each of these. Also, have a general idea about use cases – what they are designed to do and what they are not designed to do. 19 Define Use Cases Define Domain Model Define Interaction Diagrams Define Design Class Diagrams