SlideShare a Scribd company logo
1 of 38
1
CS281 - Software Engineering
Design
&
Implementation
Source: SE9 by Ian Sommerville
So far…
 Introduction to Software Engineering
 Software Processes
 Agile Software Development
 Requirements Engineering
 System Modeling
 Architectural Design
 Design and Implementation
 ……
 ……
2
Source: SE9 by Ian Sommerville
Agenda
1. Introduction
2. Object-oriented design using the UML
3. Implementation issues
4. Open source development
3
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
The Object-oriented Design (OOD) Process
 Structured OOD processes involve developing a number
of different system models  significant effort for
development and maintenance of these models  may
not be cost-effective for small systems but rather for
large systems developed by different groups, where
design models are used as an important communication
mechanism.
 There are a variety of different OOD processes that
depend on the organization using the process.
4
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Common activities in these processes include:
1. Defining the context and modes of use of the system
2. Designing the system architecture
3. Identifying the principal system objects
4. Developing design models
5. Specifying object interfaces
5
Chapter 7 Design and implementation
The Object-oriented Design (OOD) Process – Cont.
Source: SE9 by Ian Sommerville
1. System Context and Interactions
 Understanding the relationships between the software that is being
designed and its external environment is essential for deciding how
to provide the required system functionality and how to structure the
system to communicate with its environment.
 Understanding of the context also lets you establish the boundaries
of the system. Setting the system boundaries helps you deciding
what features are implemented in the system being designed and
what features are in other subsystems.
 A context model: is a structural model that demonstrates the other
systems in the environment of the system being developed.
 An interaction model: is a dynamic model that shows how the
system interacts with its environment as it is used.
6
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
2. Designing the System Architecture
Once the interactions between the system and its environment have
been understood, you use this information for designing the system
architecture. You identify the major components that make up the system
and their interactions, and then may organize the components using an
architectural pattern, such as a layered or client-server model.
7
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
3. Object Class Identification
 Identifying object classes is often a difficult part of OOD.
 There is no 'magic formula' for object identification. It relies on
the skill, experience and domain knowledge of system
designers. It is also an iterative process. You are unlikely to
get it right first time.
 Approaches To Identification:
 Use a grammatical approach based on a natural language
description of the system (used in Hood OOD method).
 Base the identification on tangible things in the application domain.
 Use a behavioural approach and identify objects based on what
participates in what behaviour.
 Use a scenario-based analysis. The objects, attributes and
methods in each scenario are identified.
8
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
4. Design Models
 Design models show the objects and object classes and
relationships between these entities. When using UML
you normally develop two kinds of design models:
I. Structural models describe the static structure of the
system in terms of object classes and relationships.
II. Dynamic models describe the dynamic structure of the
system and show the interactions between the system
objects.
 Examples Of Design Models:
Subsystem models, sequence models, state machine models, and
other models including use-case models, aggregation models,
generalisation models, …etc.
9
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Examples Of Design Models – Cont.
 Subsystem models; show logical groupings of objects
into coherent subsystems. In the UML, these are shown
using packages.
 Sequence models; show the sequence of object
interactions.
 State machine models; show how individual objects
change their state in response to events or service
requests and the state transitions triggered by these
requests. You don’t usually need a state diagram for all
of the objects in the system. Many of the objects in a
system are relatively simple and a state model adds
unnecessary detail to the design.
10
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
5. Interface Specification
 Object interfaces have to be specified so that the objects
and other components can be designed in parallel.
 The UML class diagrams can be used for interface
specification.
 Component interfaces must be defined precisely so that
other objects can use them. A UML interface stereotype
may be used to define interfaces.
11
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville 12
Source: SE9 by Ian Sommerville
System context for the weather station
13
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Weather station use cases
14
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Use case description—Report weather
System Weather station
Use case Report weather
Actors Weather information system, Weather station
Description The weather station sends a summary of the weather data that has been
collected from the instruments in the collection period to the weather
information system. The data sent are the maximum, minimum, and
average ground and air temperatures; the maximum, minimum, and
average air pressures; the maximum, minimum, and average wind speeds;
the total rainfall; and the wind direction as sampled at five-minute intervals.
Stimulus The weather information system establishes a satellite communication link
with the weather station and requests transmission of the data.
Response The summarized data is sent to the weather information system.
Comments Weather stations are usually asked to report once per hour but this
frequency may differ from one station to another and may be modified in
the future.
15
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
High-level Architecture Of The Weather Station
16
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Architectural Design
 The weather station is composed of independent
subsystems that communicate by broadcasting
messages on a common infrastructure.
17
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Weather station description
A weather station is a package of software controlled
instruments which collects data, performs some data
processing and transmits this data for further processing.
The instruments include air and ground thermometers, an
anemometer, a wind vane, a barometer and a rain gauge.
Data is collected periodically.
When a command is issued to transmit the weather data,
the weather station processes and summarises the collected
data. The summarised data is transmitted to the mapping
computer when a request is received.
18
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Weather station object classes
 Object class identification in the weather station system
may be based on the tangible hardware and data in the
system:
 Ground thermometer, Anemometer, Barometer
• Application domain objects that are ‘hardware’ objects
related to the instruments in the system.
 Weather station
• The basic interface of the weather station to its environment.
It therefore reflects the interactions identified in the use-case
model.
 Weather data
• Encapsulates the summarized data from the instruments.
19
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Weather station object classes
20
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Sequence diagram describing data collection
21
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Weather station state diagram
22
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Weather station interfaces
23
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Design and Implementation
 Object-oriented design using the UML
 Implementation issues
 Open source development
24
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Implementation Issues *
1. Reuse: When you are developing software, you should
make as much use as possible of existing code.
2. Configuration management: During the development
process, you have to keep track of the many different
versions of each software component in a configuration
management system.
3. Host-target development: Production software does
not usually execute on the same computer as the
software development environment. Rather, you
develop it on one computer (the host system) and
execute it on a separate computer (the target system).
25
Chapter 7 Design and implementation
* The focus here is not on programming, but on other implementation issues
Source: SE9 by Ian Sommerville
1. Reuse
 From the 1960s to the 1990s, most new software was
developed from scratch. The only significant reuse or
software was the reuse of functions and objects in
programming language libraries. Costs and schedule
pressure mean that this approach became increasingly
unviable, especially for commercial and Internet-based
systems.
 The reuse of existing software is an emerged approach
that is now generally used for business and scientific
software.
26
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Reuse levels
 The abstraction level
 At this level, you don’t reuse software directly but use knowledge
of successful abstractions in the design of your software.
 The object level
 At this level, you directly reuse objects from a library rather than
writing the code yourself.
 The component level
 Components are collections of objects and object classes that
you reuse in application systems.
 The system level
 At this level, you reuse entire application systems.
27
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Reuse costs
 The costs of the time spent in looking for software to
reuse and assessing whether or not it meets your needs.
 Where applicable, the costs of buying the reusable
software. For large off-the-shelf systems, these costs
can be very high.
 The costs of adapting and configuring the reusable
software components or systems to reflect the
requirements of the system that you are developing.
 The costs of integrating reusable software elements with
each other (if you are using software from different
sources) and with the new code that you have
developed.
28
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
2. Configuration Management
 Configuration management is the name given to the
general process of managing a changing software system.
 The aim of configuration management is to support the
system integration process so that all developers can
access the project code and documents in a controlled
way, find out what changes have been made, and compile
and link components to create a system.
By the way, did you hear about Microsoft Visual SourceSafe (or VSS)?
29
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Configuration Management Activities
 Version management, where support is provided to keep track
of the different versions of software components. Version
management systems include facilities to coordinate
development by several programmers.
 System integration, where support is provided to help
developers define what versions of components are used to
create each version of a system. This description is then used
to build a system automatically by compiling and linking the
required components.
 Problem tracking, where support is provided to allow users to
report bugs and other problems, and to allow all developers to
see who is working on these problems and when they are
fixed.
30
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
3. Host-target Development
 Most software is developed on one computer (the host),
but runs on a separate machine (the target). More
generally, we can talk about a development platform and
an execution platform.
 A platform is more than just hardware. It includes the
installed operating system plus other supporting software
such as a database management system or, for
development platforms, an interactive development
environment.
 Development platform usually has different installed
software than execution platform; these platforms may
have different architectures.
31
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Integrated Development Environment
 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. The language IDE
may be developed specially, or may be an instantiation
of a general-purpose IDE, with specific language-support
tools.
32
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Design and Implementation
 Object-oriented design using the UML
 More about Design patterns
 Implementation issues
 Open source development
33
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
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.
 Open source software extended this idea by using the
Internet to recruit a much larger population of volunteer
developers. Many of them are also users of the code.
34
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
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.
35
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
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.
36
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Open source licensing
 A fundamental principle of open-source development is
that source code should be freely available, this does not
mean that anyone can do as they wish with that code.
 Legally, the developer of the code (either a company or an
individual) still owns the code. They can place restrictions on
how it is used by including legally binding conditions in an open
source software license.
 Some open source developers believe that if an open source
component is used to develop a new system, then that system
should also be open source.
 Others are willing to allow their code to be used without this
restriction. The developed systems may be proprietary and sold
as closed source systems.
37
Chapter 7 Design and implementation
Source: SE9 by Ian Sommerville
Questions?
Chapter 1 Introduction 38

More Related Content

Similar to 07 - Design and Implementation.pptx

Architectural Design Software Engineering 7th Edition
Architectural Design Software Engineering 7th EditionArchitectural Design Software Engineering 7th Edition
Architectural Design Software Engineering 7th Editionchess188chess188
 
Architectural Design Software Engineering 7th Edition
Architectural Design Software Engineering 7th EditionArchitectural Design Software Engineering 7th Edition
Architectural Design Software Engineering 7th Editionchess188chess188
 
Software Engineering - Ch8
Software Engineering - Ch8Software Engineering - Ch8
Software Engineering - Ch8Siddharth Ayer
 
System Modelling
System ModellingSystem Modelling
System ModellingIanBriton
 
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)Dr Sukhpal Singh Gill
 
Application Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded SystemsApplication Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded Systemsijseajournal
 
From use case to software architecture
From use case to software architectureFrom use case to software architecture
From use case to software architectureAhmad karawash
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11Siddharth Ayer
 
Object Oriented Design Concept
Object Oriented Design ConceptObject Oriented Design Concept
Object Oriented Design ConceptSharath g
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptShashikanth
 
Scenario based methods
Scenario based methodsScenario based methods
Scenario based methodsJoshuaU1
 

Similar to 07 - Design and Implementation.pptx (20)

System Design
System DesignSystem Design
System Design
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Chapter1
Chapter1Chapter1
Chapter1
 
Ch11
Ch11Ch11
Ch11
 
Architectural Design Software Engineering 7th Edition
Architectural Design Software Engineering 7th EditionArchitectural Design Software Engineering 7th Edition
Architectural Design Software Engineering 7th Edition
 
Architectural Design Software Engineering 7th Edition
Architectural Design Software Engineering 7th EditionArchitectural Design Software Engineering 7th Edition
Architectural Design Software Engineering 7th Edition
 
Software Engineering - Ch8
Software Engineering - Ch8Software Engineering - Ch8
Software Engineering - Ch8
 
System Modelling
System ModellingSystem Modelling
System Modelling
 
Testing method pptx
Testing method pptxTesting method pptx
Testing method pptx
 
Notacion uml
Notacion umlNotacion uml
Notacion uml
 
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
 
Application Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded SystemsApplication Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded Systems
 
From use case to software architecture
From use case to software architectureFrom use case to software architecture
From use case to software architecture
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
ch07.ppt
ch07.pptch07.ppt
ch07.ppt
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
 
Object Oriented Design Concept
Object Oriented Design ConceptObject Oriented Design Concept
Object Oriented Design Concept
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.ppt
 
ch12 (1).ppt
ch12 (1).pptch12 (1).ppt
ch12 (1).ppt
 
Scenario based methods
Scenario based methodsScenario based methods
Scenario based methods
 

More from ssuser13a155

The AtekPC Project Management Office case study.docx
The AtekPC Project Management Office case study.docxThe AtekPC Project Management Office case study.docx
The AtekPC Project Management Office case study.docxssuser13a155
 
Equality Argument-1.docx
Equality Argument-1.docxEquality Argument-1.docx
Equality Argument-1.docxssuser13a155
 
software engineering.docx
software engineering.docxsoftware engineering.docx
software engineering.docxssuser13a155
 
Macdonald's casestudy.pdf
Macdonald's casestudy.pdfMacdonald's casestudy.pdf
Macdonald's casestudy.pdfssuser13a155
 

More from ssuser13a155 (6)

the success.pptx
the success.pptxthe success.pptx
the success.pptx
 
S C M.pptx
S C M.pptxS C M.pptx
S C M.pptx
 
The AtekPC Project Management Office case study.docx
The AtekPC Project Management Office case study.docxThe AtekPC Project Management Office case study.docx
The AtekPC Project Management Office case study.docx
 
Equality Argument-1.docx
Equality Argument-1.docxEquality Argument-1.docx
Equality Argument-1.docx
 
software engineering.docx
software engineering.docxsoftware engineering.docx
software engineering.docx
 
Macdonald's casestudy.pdf
Macdonald's casestudy.pdfMacdonald's casestudy.pdf
Macdonald's casestudy.pdf
 

Recently uploaded

Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...gajnagarg
 
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Nitya salvi
 
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...nirzagarg
 
NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...Amil baba
 
Essential UI/UX Design Principles: A Comprehensive Guide
Essential UI/UX Design Principles: A Comprehensive GuideEssential UI/UX Design Principles: A Comprehensive Guide
Essential UI/UX Design Principles: A Comprehensive GuideDesign Studio UI UX
 
Independent Escorts Goregaon WhatsApp +91-9930687706, Best Service
Independent Escorts Goregaon WhatsApp +91-9930687706, Best ServiceIndependent Escorts Goregaon WhatsApp +91-9930687706, Best Service
Independent Escorts Goregaon WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证eeanqy
 
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEKLANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEKMarekMitek1
 
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call GirlsDahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call GirlsPriya Reddy
 
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证wpkuukw
 
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...gajnagarg
 
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...nirzagarg
 
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdfJordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdfamanda2495
 
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789CristineGraceAcuyan
 
Branding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdfBranding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdfAlexandra Plesner
 
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...gajnagarg
 
Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...
Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...
Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...gargpaaro
 
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样yhavx
 

Recently uploaded (20)

Hackathon evaluation template_latest_uploadpdf
Hackathon evaluation template_latest_uploadpdfHackathon evaluation template_latest_uploadpdf
Hackathon evaluation template_latest_uploadpdf
 
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
 
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
 
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
 
NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
 
Essential UI/UX Design Principles: A Comprehensive Guide
Essential UI/UX Design Principles: A Comprehensive GuideEssential UI/UX Design Principles: A Comprehensive Guide
Essential UI/UX Design Principles: A Comprehensive Guide
 
Independent Escorts Goregaon WhatsApp +91-9930687706, Best Service
Independent Escorts Goregaon WhatsApp +91-9930687706, Best ServiceIndependent Escorts Goregaon WhatsApp +91-9930687706, Best Service
Independent Escorts Goregaon WhatsApp +91-9930687706, Best Service
 
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
 
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEKLANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
 
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call GirlsDahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
 
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
 
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In eluru [ 7014168258 ] Call Me For Genuine Models We ...
 
Abortion Pills in Oman (+918133066128) Cytotec clinic buy Oman Muscat
Abortion Pills in Oman (+918133066128) Cytotec clinic buy Oman MuscatAbortion Pills in Oman (+918133066128) Cytotec clinic buy Oman Muscat
Abortion Pills in Oman (+918133066128) Cytotec clinic buy Oman Muscat
 
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
 
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdfJordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
 
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
 
Branding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdfBranding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdf
 
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
 
Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...
Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...
Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...
 
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
 

07 - Design and Implementation.pptx

  • 1. 1 CS281 - Software Engineering Design & Implementation
  • 2. Source: SE9 by Ian Sommerville So far…  Introduction to Software Engineering  Software Processes  Agile Software Development  Requirements Engineering  System Modeling  Architectural Design  Design and Implementation  ……  …… 2
  • 3. Source: SE9 by Ian Sommerville Agenda 1. Introduction 2. Object-oriented design using the UML 3. Implementation issues 4. Open source development 3 Chapter 7 Design and implementation
  • 4. Source: SE9 by Ian Sommerville The Object-oriented Design (OOD) Process  Structured OOD processes involve developing a number of different system models  significant effort for development and maintenance of these models  may not be cost-effective for small systems but rather for large systems developed by different groups, where design models are used as an important communication mechanism.  There are a variety of different OOD processes that depend on the organization using the process. 4 Chapter 7 Design and implementation
  • 5. Source: SE9 by Ian Sommerville Common activities in these processes include: 1. Defining the context and modes of use of the system 2. Designing the system architecture 3. Identifying the principal system objects 4. Developing design models 5. Specifying object interfaces 5 Chapter 7 Design and implementation The Object-oriented Design (OOD) Process – Cont.
  • 6. Source: SE9 by Ian Sommerville 1. System Context and Interactions  Understanding the relationships between the software that is being designed and its external environment is essential for deciding how to provide the required system functionality and how to structure the system to communicate with its environment.  Understanding of the context also lets you establish the boundaries of the system. Setting the system boundaries helps you deciding what features are implemented in the system being designed and what features are in other subsystems.  A context model: is a structural model that demonstrates the other systems in the environment of the system being developed.  An interaction model: is a dynamic model that shows how the system interacts with its environment as it is used. 6 Chapter 7 Design and implementation
  • 7. Source: SE9 by Ian Sommerville 2. Designing the System Architecture Once the interactions between the system and its environment have been understood, you use this information for designing the system architecture. You identify the major components that make up the system and their interactions, and then may organize the components using an architectural pattern, such as a layered or client-server model. 7 Chapter 7 Design and implementation
  • 8. Source: SE9 by Ian Sommerville 3. Object Class Identification  Identifying object classes is often a difficult part of OOD.  There is no 'magic formula' for object identification. It relies on the skill, experience and domain knowledge of system designers. It is also an iterative process. You are unlikely to get it right first time.  Approaches To Identification:  Use a grammatical approach based on a natural language description of the system (used in Hood OOD method).  Base the identification on tangible things in the application domain.  Use a behavioural approach and identify objects based on what participates in what behaviour.  Use a scenario-based analysis. The objects, attributes and methods in each scenario are identified. 8 Chapter 7 Design and implementation
  • 9. Source: SE9 by Ian Sommerville 4. Design Models  Design models show the objects and object classes and relationships between these entities. When using UML you normally develop two kinds of design models: I. Structural models describe the static structure of the system in terms of object classes and relationships. II. Dynamic models describe the dynamic structure of the system and show the interactions between the system objects.  Examples Of Design Models: Subsystem models, sequence models, state machine models, and other models including use-case models, aggregation models, generalisation models, …etc. 9 Chapter 7 Design and implementation
  • 10. Source: SE9 by Ian Sommerville Examples Of Design Models – Cont.  Subsystem models; show logical groupings of objects into coherent subsystems. In the UML, these are shown using packages.  Sequence models; show the sequence of object interactions.  State machine models; show how individual objects change their state in response to events or service requests and the state transitions triggered by these requests. You don’t usually need a state diagram for all of the objects in the system. Many of the objects in a system are relatively simple and a state model adds unnecessary detail to the design. 10 Chapter 7 Design and implementation
  • 11. Source: SE9 by Ian Sommerville 5. Interface Specification  Object interfaces have to be specified so that the objects and other components can be designed in parallel.  The UML class diagrams can be used for interface specification.  Component interfaces must be defined precisely so that other objects can use them. A UML interface stereotype may be used to define interfaces. 11 Chapter 7 Design and implementation
  • 12. Source: SE9 by Ian Sommerville 12
  • 13. Source: SE9 by Ian Sommerville System context for the weather station 13 Chapter 7 Design and implementation
  • 14. Source: SE9 by Ian Sommerville Weather station use cases 14 Chapter 7 Design and implementation
  • 15. Source: SE9 by Ian Sommerville Use case description—Report weather System Weather station Use case Report weather Actors Weather information system, Weather station Description The weather station sends a summary of the weather data that has been collected from the instruments in the collection period to the weather information system. The data sent are the maximum, minimum, and average ground and air temperatures; the maximum, minimum, and average air pressures; the maximum, minimum, and average wind speeds; the total rainfall; and the wind direction as sampled at five-minute intervals. Stimulus The weather information system establishes a satellite communication link with the weather station and requests transmission of the data. Response The summarized data is sent to the weather information system. Comments Weather stations are usually asked to report once per hour but this frequency may differ from one station to another and may be modified in the future. 15 Chapter 7 Design and implementation
  • 16. Source: SE9 by Ian Sommerville High-level Architecture Of The Weather Station 16 Chapter 7 Design and implementation
  • 17. Source: SE9 by Ian Sommerville Architectural Design  The weather station is composed of independent subsystems that communicate by broadcasting messages on a common infrastructure. 17 Chapter 7 Design and implementation
  • 18. Source: SE9 by Ian Sommerville Weather station description A weather station is a package of software controlled instruments which collects data, performs some data processing and transmits this data for further processing. The instruments include air and ground thermometers, an anemometer, a wind vane, a barometer and a rain gauge. Data is collected periodically. When a command is issued to transmit the weather data, the weather station processes and summarises the collected data. The summarised data is transmitted to the mapping computer when a request is received. 18 Chapter 7 Design and implementation
  • 19. Source: SE9 by Ian Sommerville Weather station object classes  Object class identification in the weather station system may be based on the tangible hardware and data in the system:  Ground thermometer, Anemometer, Barometer • Application domain objects that are ‘hardware’ objects related to the instruments in the system.  Weather station • The basic interface of the weather station to its environment. It therefore reflects the interactions identified in the use-case model.  Weather data • Encapsulates the summarized data from the instruments. 19 Chapter 7 Design and implementation
  • 20. Source: SE9 by Ian Sommerville Weather station object classes 20 Chapter 7 Design and implementation
  • 21. Source: SE9 by Ian Sommerville Sequence diagram describing data collection 21 Chapter 7 Design and implementation
  • 22. Source: SE9 by Ian Sommerville Weather station state diagram 22 Chapter 7 Design and implementation
  • 23. Source: SE9 by Ian Sommerville Weather station interfaces 23 Chapter 7 Design and implementation
  • 24. Source: SE9 by Ian Sommerville Design and Implementation  Object-oriented design using the UML  Implementation issues  Open source development 24 Chapter 7 Design and implementation
  • 25. Source: SE9 by Ian Sommerville Implementation Issues * 1. Reuse: When you are developing software, you should make as much use as possible of existing code. 2. Configuration management: During the development process, you have to keep track of the many different versions of each software component in a configuration management system. 3. Host-target development: Production software does not usually execute on the same computer as the software development environment. Rather, you develop it on one computer (the host system) and execute it on a separate computer (the target system). 25 Chapter 7 Design and implementation * The focus here is not on programming, but on other implementation issues
  • 26. Source: SE9 by Ian Sommerville 1. Reuse  From the 1960s to the 1990s, most new software was developed from scratch. The only significant reuse or software was the reuse of functions and objects in programming language libraries. Costs and schedule pressure mean that this approach became increasingly unviable, especially for commercial and Internet-based systems.  The reuse of existing software is an emerged approach that is now generally used for business and scientific software. 26 Chapter 7 Design and implementation
  • 27. Source: SE9 by Ian Sommerville Reuse levels  The abstraction level  At this level, you don’t reuse software directly but use knowledge of successful abstractions in the design of your software.  The object level  At this level, you directly reuse objects from a library rather than writing the code yourself.  The component level  Components are collections of objects and object classes that you reuse in application systems.  The system level  At this level, you reuse entire application systems. 27 Chapter 7 Design and implementation
  • 28. Source: SE9 by Ian Sommerville Reuse costs  The costs of the time spent in looking for software to reuse and assessing whether or not it meets your needs.  Where applicable, the costs of buying the reusable software. For large off-the-shelf systems, these costs can be very high.  The costs of adapting and configuring the reusable software components or systems to reflect the requirements of the system that you are developing.  The costs of integrating reusable software elements with each other (if you are using software from different sources) and with the new code that you have developed. 28 Chapter 7 Design and implementation
  • 29. Source: SE9 by Ian Sommerville 2. Configuration Management  Configuration management is the name given to the general process of managing a changing software system.  The aim of configuration management is to support the system integration process so that all developers can access the project code and documents in a controlled way, find out what changes have been made, and compile and link components to create a system. By the way, did you hear about Microsoft Visual SourceSafe (or VSS)? 29 Chapter 7 Design and implementation
  • 30. Source: SE9 by Ian Sommerville Configuration Management Activities  Version management, where support is provided to keep track of the different versions of software components. Version management systems include facilities to coordinate development by several programmers.  System integration, where support is provided to help developers define what versions of components are used to create each version of a system. This description is then used to build a system automatically by compiling and linking the required components.  Problem tracking, where support is provided to allow users to report bugs and other problems, and to allow all developers to see who is working on these problems and when they are fixed. 30 Chapter 7 Design and implementation
  • 31. Source: SE9 by Ian Sommerville 3. Host-target Development  Most software is developed on one computer (the host), but runs on a separate machine (the target). More generally, we can talk about a development platform and an execution platform.  A platform is more than just hardware. It includes the installed operating system plus other supporting software such as a database management system or, for development platforms, an interactive development environment.  Development platform usually has different installed software than execution platform; these platforms may have different architectures. 31 Chapter 7 Design and implementation
  • 32. Source: SE9 by Ian Sommerville Integrated Development Environment  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. The language IDE may be developed specially, or may be an instantiation of a general-purpose IDE, with specific language-support tools. 32 Chapter 7 Design and implementation
  • 33. Source: SE9 by Ian Sommerville Design and Implementation  Object-oriented design using the UML  More about Design patterns  Implementation issues  Open source development 33 Chapter 7 Design and implementation
  • 34. Source: SE9 by Ian Sommerville 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.  Open source software extended this idea by using the Internet to recruit a much larger population of volunteer developers. Many of them are also users of the code. 34 Chapter 7 Design and implementation
  • 35. Source: SE9 by Ian Sommerville 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. 35 Chapter 7 Design and implementation
  • 36. Source: SE9 by Ian Sommerville 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. 36 Chapter 7 Design and implementation
  • 37. Source: SE9 by Ian Sommerville Open source licensing  A fundamental principle of open-source development is that source code should be freely available, this does not mean that anyone can do as they wish with that code.  Legally, the developer of the code (either a company or an individual) still owns the code. They can place restrictions on how it is used by including legally binding conditions in an open source software license.  Some open source developers believe that if an open source component is used to develop a new system, then that system should also be open source.  Others are willing to allow their code to be used without this restriction. The developed systems may be proprietary and sold as closed source systems. 37 Chapter 7 Design and implementation
  • 38. Source: SE9 by Ian Sommerville Questions? Chapter 1 Introduction 38