SlideShare uma empresa Scribd logo
1 de 48
Software Design Introduction to Software Engineering College of Computer Studies De La Salle University - Manila
[object Object],[object Object],[object Object],Software Design
Software Design ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
The Process of Design   ,[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Why Design? Maintain With design Without design Implement Test Design Implement Test Maintain
Benefits of Design ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Phases in the Design Process Ian Sommerville.  Software Engineering, 6 th  Edition.
Aspects of Design   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Typical Architectural Components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Architectural Design Component: Program Organization ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Design Approaches: Top-down Design ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],Design Approaches: Bottom-Up Design Object-Oriented Software Engineering (www.lloseng.com)
Top down vs Bottom up ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top-down and Bottom-up are  not  competing strategies Back
Architectural Design Component: Error Processing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Back
Design Principles ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Design Principle 1: Divide and Conquer   ,[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Ways of dividing a software system ,[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Design Principle 2: Increase Cohesion where possible ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Functional Cohesion  (Strong) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Layer Cohesion ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Example: Layer Cohesion Object-Oriented Software Engineering (www.lloseng.com)
Sequential Cohesion (Medium) ,[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Communicational Cohesion (Medium) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Procedural Cohesion (Weak) ,[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Temporal Cohesion (Weak) ,[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Utility Cohesion (Weak) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Design Principle 3: Reduce Coupling where possible ,[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Content Coupling (Must be avoided) ,[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Common Coupling (Must be avoided) ,[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Control Coupling (Must be avoided)  ,[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Example of Control Coupling public routineX(String command) { if (command.equals("drawCircle") { drawCircle(); } else { drawRectangle(); } }   Object-Oriented Software Engineering (www.lloseng.com)
Stamp Coupling (Tolerable) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Example of Stamp Coupling public class Emailer { public void sendEmail(Employee e, String text) {...} ... } public class Emailer { public void sendEmail(String name, String email, String text)  {...} ... } Using simple data types to avoid it: Object-Oriented Software Engineering (www.lloseng.com)
Example of Stamp Coupling public interface Addressee { public abstract String getName(); public abstract String getEmail(); }   public class Employee implements Addressee {…}   public class Emailer { public void sendEmail(Addressee e, String text) {...} ... } Using an interface to avoid it: Object-Oriented Software Engineering (www.lloseng.com)
Data or Normal Coupling (Preferable) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Routine Call Coupling ,[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Type Use Coupling   ,[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Inclusion or Import Coupling  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
External Coupling  ,[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Design Principle 4: Keep the level of Abstraction as high as possible   ,[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Abstraction and Classes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Design Principle 5: Increase Reusability where possible ,[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Design Principle 6: Reuse Existing Designs and Code where possible ,[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Design Principle 7: Design for Flexibility   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Design Principle 8: Anticipate Obsolescence   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Design Principle 9: Design for Portability   ,[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Design Principle 10: Design for Testability   ,[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)
Design Principle 11: Design Defensively ,[object Object],[object Object],[object Object],[object Object],Object-Oriented Software Engineering (www.lloseng.com)

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 
Introduction to Virtualization
Introduction to VirtualizationIntroduction to Virtualization
Introduction to Virtualization
 
Spm unit 3
Spm unit 3Spm unit 3
Spm unit 3
 
WORKFLOW OF THE PROCESS IN SPM
 WORKFLOW OF THE PROCESS IN SPM WORKFLOW OF THE PROCESS IN SPM
WORKFLOW OF THE PROCESS IN SPM
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Stepwise Project planning in software development
Stepwise Project planning in software developmentStepwise Project planning in software development
Stepwise Project planning in software development
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process Improvement
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC Architecture
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Student information chatbot final report
Student information chatbot  final report Student information chatbot  final report
Student information chatbot final report
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
The Art of Debugging.pptx
The Art of Debugging.pptxThe Art of Debugging.pptx
The Art of Debugging.pptx
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Pressman ch-25-risk-management
Pressman ch-25-risk-managementPressman ch-25-risk-management
Pressman ch-25-risk-management
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Axure Basic Concepts
Axure Basic ConceptsAxure Basic Concepts
Axure Basic Concepts
 

Destaque

Amoeba Operating System
Amoeba Operating SystemAmoeba Operating System
Amoeba Operating System
Burhan Abbasi
 
Top down reading activities
Top down reading activitiesTop down reading activities
Top down reading activities
Sumi Waan
 
Three Reading Models
Three Reading ModelsThree Reading Models
Three Reading Models
Antonette A.
 

Destaque (11)

Distributed operating system amoeba case study
Distributed operating system  amoeba case studyDistributed operating system  amoeba case study
Distributed operating system amoeba case study
 
Distributed Operating System_4
Distributed Operating System_4Distributed Operating System_4
Distributed Operating System_4
 
Amoeba
AmoebaAmoeba
Amoeba
 
Amoeba Operating System
Amoeba Operating SystemAmoeba Operating System
Amoeba Operating System
 
Amoeba
AmoebaAmoeba
Amoeba
 
Top down design
Top down designTop down design
Top down design
 
Top down reading activities
Top down reading activitiesTop down reading activities
Top down reading activities
 
Comparison of Amoeba, Mach & Chorus: DOS
Comparison of Amoeba, Mach & Chorus: DOSComparison of Amoeba, Mach & Chorus: DOS
Comparison of Amoeba, Mach & Chorus: DOS
 
Bottom up & top down tutorial 2
Bottom up & top down tutorial 2Bottom up & top down tutorial 2
Bottom up & top down tutorial 2
 
Top Down and Bottom Up Design Model
Top Down and Bottom Up Design ModelTop Down and Bottom Up Design Model
Top Down and Bottom Up Design Model
 
Three Reading Models
Three Reading ModelsThree Reading Models
Three Reading Models
 

Semelhante a 07 software design

Function oriented design
Function oriented designFunction oriented design
Function oriented design
Vidhun T
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
saurabhshertukde
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docx
mccormicknadine86
 

Semelhante a 07 software design (20)

Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
6&8-Design.ppt
6&8-Design.ppt6&8-Design.ppt
6&8-Design.ppt
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
06 fse design
06 fse design06 fse design
06 fse design
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
CHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docxCHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docx
 
Design final
Design finalDesign final
Design final
 
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
 
Managing Software as Knowledge (2005)
Managing Software as Knowledge (2005)Managing Software as Knowledge (2005)
Managing Software as Knowledge (2005)
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
Full Paper
Full PaperFull Paper
Full Paper
 
11.3.14&22.1.16
11.3.14&22.1.1611.3.14&22.1.16
11.3.14&22.1.16
 
Software Design
Software Design Software Design
Software Design
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docx
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
INTEGRATIVE PROGRAMMING ch1.pptx
INTEGRATIVE PROGRAMMING ch1.pptxINTEGRATIVE PROGRAMMING ch1.pptx
INTEGRATIVE PROGRAMMING ch1.pptx
 

Mais de kebsterz

08 class and sequence diagrams
08   class and sequence diagrams08   class and sequence diagrams
08 class and sequence diagrams
kebsterz
 
07 software design
07   software design07   software design
07 software design
kebsterz
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
kebsterz
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
kebsterz
 
Pokémon competitive battling an introduction
Pokémon competitive battling   an introductionPokémon competitive battling   an introduction
Pokémon competitive battling an introduction
kebsterz
 
Pokemon an introduction
Pokemon   an introductionPokemon   an introduction
Pokemon an introduction
kebsterz
 
Pokémon competitive battling an introduction
Pokémon competitive battling   an introductionPokémon competitive battling   an introduction
Pokémon competitive battling an introduction
kebsterz
 
Pokemon an introduction
Pokemon   an introductionPokemon   an introduction
Pokemon an introduction
kebsterz
 

Mais de kebsterz (10)

08 class and sequence diagrams
08   class and sequence diagrams08   class and sequence diagrams
08 class and sequence diagrams
 
07 software design
07   software design07   software design
07 software design
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
 
Pokémon competitive battling an introduction
Pokémon competitive battling   an introductionPokémon competitive battling   an introduction
Pokémon competitive battling an introduction
 
Pokemon an introduction
Pokemon   an introductionPokemon   an introduction
Pokemon an introduction
 
Pokémon competitive battling an introduction
Pokémon competitive battling   an introductionPokémon competitive battling   an introduction
Pokémon competitive battling an introduction
 
Pokemon an introduction
Pokemon   an introductionPokemon   an introduction
Pokemon an introduction
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

07 software design

  • 1. Software Design Introduction to Software Engineering College of Computer Studies De La Salle University - Manila
  • 2.
  • 3.
  • 4.
  • 5. Why Design? Maintain With design Without design Implement Test Design Implement Test Maintain
  • 6.
  • 7. Phases in the Design Process Ian Sommerville. Software Engineering, 6 th Edition.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Example: Layer Cohesion Object-Oriented Software Engineering (www.lloseng.com)
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. Example of Control Coupling public routineX(String command) { if (command.equals("drawCircle") { drawCircle(); } else { drawRectangle(); } } Object-Oriented Software Engineering (www.lloseng.com)
  • 32.
  • 33. Example of Stamp Coupling public class Emailer { public void sendEmail(Employee e, String text) {...} ... } public class Emailer { public void sendEmail(String name, String email, String text) {...} ... } Using simple data types to avoid it: Object-Oriented Software Engineering (www.lloseng.com)
  • 34. Example of Stamp Coupling public interface Addressee { public abstract String getName(); public abstract String getEmail(); }   public class Employee implements Addressee {…}   public class Emailer { public void sendEmail(Addressee e, String text) {...} ... } Using an interface to avoid it: Object-Oriented Software Engineering (www.lloseng.com)
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.

Notas do Editor

  1. Pfleeger, 2nd Ed p 159 -161
  2. Good & Bad (Sommervile, 5th Ed p 226 Rapid Development, p 143 Code Complete, p 35 )