SlideShare a Scribd company logo
1 of 14
Chapter 7 – Design and Implementation
Lecture 2
1
Chapter 7 Design and implementation
Design patterns
 A design pattern is a way of reusing abstract knowledge
about a problem and its solution.
 A pattern is a description of the problem and the essence
of its solution.
 It should be sufficiently abstract to be reused in different
settings.
 Pattern descriptions usually make use of object-oriented
characteristics such as inheritance and polymorphism.
2
Chapter 7 Design and implementation
Pattern elements
 Name
 A meaningful pattern identifier.
 Problem description.
 Solution description.
 Not a concrete design but a template for a design solution that
can be instantiated in different ways.
 Consequences
 The results and trade-offs of applying the pattern.
3
Chapter 7 Design and implementation
The Observer pattern
 Name
 Observer.
 Description
 Separates the display of object state from the object itself.
 Problem description
 Used when multiple displays of state are needed.
 Solution description
 See slide with UML description.
 Consequences
 Optimisations to enhance display performance are impractical.
4
Chapter 7 Design and implementation
The Observer pattern (1)
Pattern
name
Observer
Description Separates the display of the state of an object from the object itself and
allows alternative displays to be provided. When the object state
changes, all displays are automatically notified and updated to reflect the
change.
Problem
description
In many situations, you have to provide multiple displays of state
information, such as a graphical display and a tabular display. Not all of
these may be known when the information is specified. All alternative
presentations should support interaction and, when the state is changed,
all displays must be updated.
This pattern may be used in all situations where more than one
display format for state information is required.
5
Chapter 7 Design and implementation
The Observer pattern (2)
Pattern name Observer
Solution
description
This involves two abstract objects, Subject and Observer, and two concrete
objects, Concrete Subject and Concrete Object, which inherit the attributes of the
related abstract objects. The abstract objects include general operations that are
applicable in all situations. The state to be displayed is maintained in Concrete
Subject, which inherits operations from Subject allowing it to add and remove
Observers (each observer corresponds to a display) and to issue a notification
when the state has changed.
Consequences The subject only knows the abstract Observer and does not know details of the
concrete class. Therefore there is minimal coupling between these objects.
Because of this lack of knowledge, optimizations that enhance display
performance are impractical. Changes to the subject may cause a set of linked
updates to observers to be generated, some of which may not be necessary.
6
Chapter 7 Design and implementation
Multiple displays using the Observer pattern
7
Chapter 7 Design and implementation
A UML model of the Observer pattern
8
Chapter 7 Design and implementation
Development platform tools
 An integrated compiler and syntax-directed editing
system that allows you to create, edit and compile code.
 A language debugging system.
 Graphical editing tools, such as tools to edit UML
models.
 Testing tools, such as Junit that can automatically run a
set of tests on a new version of a program.
 Project support tools that help you organize the code for
different development projects.
9
Chapter 7 Design and implementation
Integrated development environments (IDEs)
 Software development tools are often grouped to create
an integrated development environment (IDE).
 An IDE is a set of software tools that supports different
aspects of software development, within some common
framework and user interface.
 IDEs are created to support development in a specific
programming language such as Java.
10
Chapter 7 Design and implementation
Open source development
 Open source development is an approach to software
development in which the source code of a software
system is published and volunteers are invited to
participate in the development process
 Its roots are in the Free Software Foundation
(www.fsf.org), which advocates that source code should
not be proprietary but rather should always be available
for users to examine and modify as they wish.
11
Chapter 7 Design and implementation
Open source systems
 The best-known open source product is, of course, the
Linux operating system which is widely used as a server
system and, increasingly, as a desktop environment.
 Other important open source products are Java, the
Apache web server and the mySQL database
management system.
12
Chapter 7 Design and implementation
Open source issues
 Should the product that is being developed make use of
open source components?
 Should an open source approach be used for the
software’s development?
13
Chapter 7 Design and implementation
Open source business
 More and more product companies are using an open
source approach to development.
 Their business model is not reliant on selling a software
product but on selling support for that product.
 They believe that involving the open source community
will allow software to be developed more cheaply, more
quickly and will create a community of users for the
software.
14
Chapter 7 Design and implementation

More Related Content

Similar to Testing method pptx

Similar to Testing method pptx (20)

Sample SRS format
Sample SRS formatSample SRS format
Sample SRS format
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3
 
Notepad tutorial
Notepad tutorialNotepad tutorial
Notepad tutorial
 
Design Pattern in Software Engineering
Design Pattern in Software Engineering Design Pattern in Software Engineering
Design Pattern in Software Engineering
 
[PBO] Pertemuan 12 - Pemrograman Android
[PBO] Pertemuan 12 - Pemrograman Android[PBO] Pertemuan 12 - Pemrograman Android
[PBO] Pertemuan 12 - Pemrograman Android
 
Innovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesInnovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best Practices
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven Design
 
Chapter1
Chapter1Chapter1
Chapter1
 
Se chapter 1,2,3 2 mark qa
Se chapter 1,2,3   2 mark  qaSe chapter 1,2,3   2 mark  qa
Se chapter 1,2,3 2 mark qa
 
Ch14
Ch14Ch14
Ch14
 
Ch 10
Ch 10Ch 10
Ch 10
 
Gof design pattern
Gof design patternGof design pattern
Gof design pattern
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
Unit 3
Unit 3Unit 3
Unit 3
 
Building Enterprise Application with J2EE
Building Enterprise Application with J2EEBuilding Enterprise Application with J2EE
Building Enterprise Application with J2EE
 
Software Reuse.ppt
Software Reuse.pptSoftware Reuse.ppt
Software Reuse.ppt
 
Design pattern
Design patternDesign pattern
Design pattern
 
Software enginneering
Software enginneeringSoftware enginneering
Software enginneering
 
Design patterns
Design patternsDesign patterns
Design patterns
 

More from 02LabiqaIslam

lecture 30 @@@@@@.pptx
lecture 30 @@@@@@.pptxlecture 30 @@@@@@.pptx
lecture 30 @@@@@@.pptx02LabiqaIslam
 
lecture10 virtual reality and augmented reality.ppt
lecture10 virtual reality and augmented reality.pptlecture10 virtual reality and augmented reality.ppt
lecture10 virtual reality and augmented reality.ppt02LabiqaIslam
 
garbage collection in c ++.ppt
garbage collection in c ++.pptgarbage collection in c ++.ppt
garbage collection in c ++.ppt02LabiqaIslam
 
Lecture02-OOP-Review.ppt
Lecture02-OOP-Review.pptLecture02-OOP-Review.ppt
Lecture02-OOP-Review.ppt02LabiqaIslam
 
Chapter 3 software engineering.pptx
Chapter 3 software engineering.pptxChapter 3 software engineering.pptx
Chapter 3 software engineering.pptx02LabiqaIslam
 

More from 02LabiqaIslam (7)

lecture 30 @@@@@@.pptx
lecture 30 @@@@@@.pptxlecture 30 @@@@@@.pptx
lecture 30 @@@@@@.pptx
 
lecture10 virtual reality and augmented reality.ppt
lecture10 virtual reality and augmented reality.pptlecture10 virtual reality and augmented reality.ppt
lecture10 virtual reality and augmented reality.ppt
 
2 funda.ppt
2 funda.ppt2 funda.ppt
2 funda.ppt
 
garbage collection in c ++.ppt
garbage collection in c ++.pptgarbage collection in c ++.ppt
garbage collection in c ++.ppt
 
Lecture02-OOP-Review.ppt
Lecture02-OOP-Review.pptLecture02-OOP-Review.ppt
Lecture02-OOP-Review.ppt
 
Chapter 3 software engineering.pptx
Chapter 3 software engineering.pptxChapter 3 software engineering.pptx
Chapter 3 software engineering.pptx
 
labiqa'd.pptx
labiqa'd.pptxlabiqa'd.pptx
labiqa'd.pptx
 

Recently uploaded

chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 

Recently uploaded (20)

chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 

Testing method pptx

  • 1. Chapter 7 – Design and Implementation Lecture 2 1 Chapter 7 Design and implementation
  • 2. Design patterns  A design pattern is a way of reusing abstract knowledge about a problem and its solution.  A pattern is a description of the problem and the essence of its solution.  It should be sufficiently abstract to be reused in different settings.  Pattern descriptions usually make use of object-oriented characteristics such as inheritance and polymorphism. 2 Chapter 7 Design and implementation
  • 3. Pattern elements  Name  A meaningful pattern identifier.  Problem description.  Solution description.  Not a concrete design but a template for a design solution that can be instantiated in different ways.  Consequences  The results and trade-offs of applying the pattern. 3 Chapter 7 Design and implementation
  • 4. The Observer pattern  Name  Observer.  Description  Separates the display of object state from the object itself.  Problem description  Used when multiple displays of state are needed.  Solution description  See slide with UML description.  Consequences  Optimisations to enhance display performance are impractical. 4 Chapter 7 Design and implementation
  • 5. The Observer pattern (1) Pattern name Observer Description Separates the display of the state of an object from the object itself and allows alternative displays to be provided. When the object state changes, all displays are automatically notified and updated to reflect the change. Problem description In many situations, you have to provide multiple displays of state information, such as a graphical display and a tabular display. Not all of these may be known when the information is specified. All alternative presentations should support interaction and, when the state is changed, all displays must be updated. This pattern may be used in all situations where more than one display format for state information is required. 5 Chapter 7 Design and implementation
  • 6. The Observer pattern (2) Pattern name Observer Solution description This involves two abstract objects, Subject and Observer, and two concrete objects, Concrete Subject and Concrete Object, which inherit the attributes of the related abstract objects. The abstract objects include general operations that are applicable in all situations. The state to be displayed is maintained in Concrete Subject, which inherits operations from Subject allowing it to add and remove Observers (each observer corresponds to a display) and to issue a notification when the state has changed. Consequences The subject only knows the abstract Observer and does not know details of the concrete class. Therefore there is minimal coupling between these objects. Because of this lack of knowledge, optimizations that enhance display performance are impractical. Changes to the subject may cause a set of linked updates to observers to be generated, some of which may not be necessary. 6 Chapter 7 Design and implementation
  • 7. Multiple displays using the Observer pattern 7 Chapter 7 Design and implementation
  • 8. A UML model of the Observer pattern 8 Chapter 7 Design and implementation
  • 9. Development platform tools  An integrated compiler and syntax-directed editing system that allows you to create, edit and compile code.  A language debugging system.  Graphical editing tools, such as tools to edit UML models.  Testing tools, such as Junit that can automatically run a set of tests on a new version of a program.  Project support tools that help you organize the code for different development projects. 9 Chapter 7 Design and implementation
  • 10. Integrated development environments (IDEs)  Software development tools are often grouped to create an integrated development environment (IDE).  An IDE is a set of software tools that supports different aspects of software development, within some common framework and user interface.  IDEs are created to support development in a specific programming language such as Java. 10 Chapter 7 Design and implementation
  • 11. Open source development  Open source development is an approach to software development in which the source code of a software system is published and volunteers are invited to participate in the development process  Its roots are in the Free Software Foundation (www.fsf.org), which advocates that source code should not be proprietary but rather should always be available for users to examine and modify as they wish. 11 Chapter 7 Design and implementation
  • 12. Open source systems  The best-known open source product is, of course, the Linux operating system which is widely used as a server system and, increasingly, as a desktop environment.  Other important open source products are Java, the Apache web server and the mySQL database management system. 12 Chapter 7 Design and implementation
  • 13. Open source issues  Should the product that is being developed make use of open source components?  Should an open source approach be used for the software’s development? 13 Chapter 7 Design and implementation
  • 14. Open source business  More and more product companies are using an open source approach to development.  Their business model is not reliant on selling a software product but on selling support for that product.  They believe that involving the open source community will allow software to be developed more cheaply, more quickly and will create a community of users for the software. 14 Chapter 7 Design and implementation