SlideShare uma empresa Scribd logo
1 de 63
Baixar para ler offline
DESIGN AND
IMPLEMENTATION
interleaved
OBJECTIVES AND CONTENTS
CONTENTS
1. Object-oriented design using the UML
2. Design patterns
3. Implementation Issues
4. Open source development
OBJECTIVES
⦿ To introduce object-oriented software
design using the UML
⦿ To describe the most important activities in
a general, object-oriented design process
⦿ To describe the different models that may
be used to document an object-oriented
design
⦿ To inform about the idea of design patterns
⦿ To introduce the key issues that have to be
considered when implementing software
2
Introduction
⦿ Software design and implementation is the stage at which an
executable software system is developed.
⦿ For some simple systems, it is just software engineering.
⦿ For large systems, it is only one of a set of processes involved in
software engineering.
⦿ Sometimes, there is a separate design stage and this design is
modeled and documented.
⦿ Sometimes the design is in the programmer’s head or roughly
sketched on a whiteboard or sheets of paper
4
concept reality
⦿ At this stage an executable software system is developed.
⦿ Software design and implementation activities are invariably
interleaved.
⌾ In software design you identify software components and their
relationships, based on a customer’s requirements.
⌾ In software implementation you realize the design as a program.
5
DESIGN IMPLEMENTATION
requirements executable
BUILD OR BUY
⦿ Buying commercial
off-the-shelf systems (COTS)
is a norm in today’s
environment. It can be
cheaper and faster to use
⦿ The main concern with COTS
is how to use the
configuration features of that
system to deliver the system
requirements.
6
OBJECT-ORIENTED
DESIGN USING THE
UML
1
Structured design methods propose that software design
should be tackled in a methodical way. Designing a
system involves following the steps of the method and refining
the design of a system at increasingly detailed
levels. In the 1990s, there were a number of competing
methods for object-oriented design. However, the
inventors of the most commonly used methods came together
and invented the UML, which unified the
notations used in the different methods.
8
⦿ Structured object-oriented design processes involve developing a number
of different system models.
⦿ They require a lot of effort for development and maintenance of these
models.
⦿ For large systems developed by different groups design models are an
important communication mechanism.
9
10
PROCESS STAGES
11
⦿ There are a variety of different object-oriented design processes that
depend on the organization choice.
Develop
design models
SYSTEM CONTEXT
AND INTERACTIONS
1.1
13
⦿ Understanding the relationships helps to
⌾ provide the required system functionalities.
⌾ structure the system to communicate with its
environment.
⦿ Understanding the context helps to establish the
boundaries of the system.
⦿ Context talks about the features.
⦿ Interactions defines the communication between a
system and its environment.
14
⦿ A system context model demonstrates the other
systems in the environment of the system being
developed.
⦿ An interaction model shows how the system interacts
with its environment as it is used.
15
⦿ The context model may be represented using associations.
⦿ You may therefore document the environment of the system
using a simple block diagram, showing the entities in the system
and their associations.
⦿ System context models and interaction models present
complementary views of the relationships between a system
and its environment.
16
⦿ In a block diagram associations simply
show that there are some relationships
between the entities involved in the
association.
17
18
⦿ The use case diagram
does not include too
much details.
19
ARCHITECTURAL
DESIGN
1.2
21
⦿ Interactions between the system and
its environment leads to design the
system architecture.
⦿ System architecture consists of
components.
⦿ Then may organize the components
using an architectural pattern.
⦿ However, this is not essential at this
stage.
Layer 1
Layer 2
Layer 3
22
ARCHITECTURAL DIAGRAMS
OBJECT CLASS
IDENTIFICATION
1.3
24
APPROACHES TO IDENTIFICATION
⦿ Use a grammatical analysis
⌾ Nouns make the objects and
properties
⌾ Verbs make the operations
⦿ Use tangible entities (things)
⌾ Pay attention to roles,
events, locations,
organizations, etc.
⦿ Use a scenario-based analysis
25
DESIGN MODELS
1.4
Design or system models show the objects and object classes
and relationships between these entities.
These models are the bridge between the system requirements
and the implementation of a system.
They have to be abstract so that unnecessary detail doesn’t
hide the relationships between them and the system
requirements.
However, they also have to include enough detail for
programmers to make implementation decisions.
27
Specific design decisions may be made as the system is
implemented, with problems resolved through informal
discussions.
An important step in the design process is to decide on the
design models that you need and the level of detail required in
these models.
The UML supports 13 different types of models but you rarely
use all of these.
28
WE NORMALLY DEVELOP TWO KINDS OF DESIGN MODEL
29
USEFUL DESIGN MODELS
⦿ Subsystem models
⌾ Show the logical groupings of objects into coherent subsystems.
⌾ Are represented using a form of class diagram.
⌾ Are structural models.
⦿ Sequence models
⌾ Show the sequence of object interactions.
⌾ Are represented using a UML sequence or a collaboration diagram
⌾ Are dynamic models.
⦿ State machine model
⌾ Objects change their state in response to events.
⌾ Are represented using state diagrams.
⌾ Are dynamic models
31
32
INTERFACE
SPECIFICATIONS
1.5
34
DESIGN PATTERNS
2
Design patterns were derived from ideas put forward by
Christopher Alexander (Alexander et al., 1977), who suggested that
there were certain common patterns of building design that were
inherently pleasing and effective.
The pattern is a description of the problem and the essence of its
solution.
The pattern is not a detailed specification.
you can think of it as a description of accumulated wisdom and
experience, a well-tried solution to a common problem.
You can explain your design by describing the patterns that you
have used.
36
37
38
IMPLEMENTATION
ISSUES
3
REUSE
3.1
41
42
ABSTRACTION
ARCHITECTURAL AND DESIGN PATTERNS
The abstraction level At this level, you don’t reuse
software directly but rather use knowledge of
successful abstractions in the design of your
software. Design patterns and architectural
patterns (covered in Chapter 6) are ways of
representing abstract knowledge for reuse.
43
OBJECT
PROGRAMMING LANGUAGE AND
LIBRARIES
The object level At this level, you directly reuse objects
from a library rather than writing the code yourself. To
implement this type of reuse, you have to find
appropriate libraries and discover if the objects and
methods offer the functionality that you need. For
example, if you need to process email messages in a
Java program, you may use objects and methods from
a JavaMail library.
44
COMPONENT
COMPONENT FRAMEWORKS
The component level Components are collections of objects
and object classes that operate together to provide related
functions and services. You often have to adapt and extend
the component by adding some code of your own. An
example of component-level reuse is where you build your
user interface using a framework. This is a set of general
object classes that implement event handling, display
management, etc. You add connections to the data to be
displayed and write code to define specific display details
such as screen layout and colors.
45
SYSTEM
APPLICATION SYSTEMS (COTS)
The system level At this level, you reuse entire application
systems. This function usually involves some kind of
configuration of these systems. This may be done by adding
and modifying code (if you are reusing a software product line)
or by using the system’s own configuration interface. Most
commercial systems are now built in this way where generic
application systems systems are adapted and reused.
Sometimes this approach may involve integrating several
application systems to create a new system.
CONFIGURATION
MANAGEMENT
3.2
47
48
VERSION MANAGEMENT
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. They
stop one developer from overwriting code that has been
submitted to the system by someone else.
49
SYSTEM INTEGRATION
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.
50
PROBLEM TRACKING
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.
51
RELEASE MANAGEMENT
Release management, where new versions of a
software system are released to customers.
Release management is concerned with
planning the functionality of new releases and
organizing the software for distribution.
HOST-TARGET
DEVELOPMENT
3.3
53
54
55
OPEN SOURCE
DEVELOPMENT
4
57
In 1983, Richard Stallman started the GNU project with the
goal of creating a free UNIX-like operating system.[7]
As part
of this work, he wrote the GNU General Public License (GPL).
By the early 1990s, there was almost enough available
software to create a full operating system. However, the
GNU kernel, called Hurd, failed to attract enough
development effort, leaving GNU incomplete.
In 1991, while studying computer science at University of
Helsinki, Linus Torvalds began a project that later became
the Linux kernel. He wrote the program specifically for the
hardware he was using and independent of an operating
system because he wanted to use the functions of his
new PC with an 80386 processor. Development was done
on MINIX using the GNU C Compiler.
58
59
Ways to earn money
from open source
development
1. Freemium and premium
planning
2. Sale support and docs
3. Donations
4. Everything i$ not money!
OPEN SOURCE
LICENSING
4.1
61
⦿ https:/
/refactoring.guru
⦿ https:/
/www.jenkins.io
⦿ https:/
/www.bugzilla.org
⦿ https:/
/www.taiga.io
⦿ https:/
/docs.docker.com
⦿ https:/
/docs.gitlab.com/ee/ci
⦿ https:/
/www.wikiwand.com/en/History_of_Linux
⦿ https:/
/www.atlassian.com/git/tutorials/compari
ng-workflows
62
REFERENCES AND SUGGESTED READINGS
⦿ Software engineering book by Sommerville
THANKS!
Any questions?
Kourosh Sajjadi
Mohammad Mostajeran
63

Mais conteúdo relacionado

Mais procurados

Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation TechniquesSanthi thi
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
Uml structural diagrams
Uml structural diagramsUml structural diagrams
Uml structural diagramsSwathy T
 
Planning the development process
Planning the development processPlanning the development process
Planning the development processSiva Priya
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)ShudipPal
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes arvind pandey
 
Dynamic and Static Modeling
Dynamic and Static ModelingDynamic and Static Modeling
Dynamic and Static ModelingSaurabh Kumar
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringMeghaj Mallick
 
Object oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle pptObject oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle pptKunal Kishor Nirala
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 

Mais procurados (20)

Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Uml structural diagrams
Uml structural diagramsUml structural diagrams
Uml structural diagrams
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Software process
Software processSoftware process
Software process
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes
 
Dynamic and Static Modeling
Dynamic and Static ModelingDynamic and Static Modeling
Dynamic and Static Modeling
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Design notation
Design notationDesign notation
Design notation
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software Engineering
 
Object oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle pptObject oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle ppt
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Ch25 configuration management
Ch25 configuration managementCh25 configuration management
Ch25 configuration management
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
software engineering
software engineeringsoftware engineering
software engineering
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 

Semelhante a Design and Implementation in Software Engineering

_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdfdo_2013
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdfdo_2013
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfdo_2013
 
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
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEWrizki adam kurniawan
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
 
Ch7-Software Engineering 9
Ch7-Software Engineering 9Ch7-Software Engineering 9
Ch7-Software Engineering 9Ian Sommerville
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 
Assignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioAssignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioRickNZ
 
Software Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdfSoftware Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdfMeagGhn
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software designMr. Swapnil G. Thaware
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 

Semelhante a Design and Implementation in Software Engineering (20)

_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdf
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
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)
 
UNIT 01 SMD.pptx
UNIT 01 SMD.pptxUNIT 01 SMD.pptx
UNIT 01 SMD.pptx
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Chapter1
Chapter1Chapter1
Chapter1
 
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
Ch7-Software Engineering 9
Ch7-Software Engineering 9Ch7-Software Engineering 9
Ch7-Software Engineering 9
 
Object oriented analysis and design unit- ii
Object oriented analysis and design unit- iiObject oriented analysis and design unit- ii
Object oriented analysis and design unit- ii
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Software design
Software designSoftware design
Software design
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Assignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioAssignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audio
 
06 fse design
06 fse design06 fse design
06 fse design
 
Software Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdfSoftware Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdf
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 

Último

Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 

Último (20)

Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 

Design and Implementation in Software Engineering

  • 2. OBJECTIVES AND CONTENTS CONTENTS 1. Object-oriented design using the UML 2. Design patterns 3. Implementation Issues 4. Open source development OBJECTIVES ⦿ To introduce object-oriented software design using the UML ⦿ To describe the most important activities in a general, object-oriented design process ⦿ To describe the different models that may be used to document an object-oriented design ⦿ To inform about the idea of design patterns ⦿ To introduce the key issues that have to be considered when implementing software 2
  • 4. ⦿ Software design and implementation is the stage at which an executable software system is developed. ⦿ For some simple systems, it is just software engineering. ⦿ For large systems, it is only one of a set of processes involved in software engineering. ⦿ Sometimes, there is a separate design stage and this design is modeled and documented. ⦿ Sometimes the design is in the programmer’s head or roughly sketched on a whiteboard or sheets of paper 4 concept reality
  • 5. ⦿ At this stage an executable software system is developed. ⦿ Software design and implementation activities are invariably interleaved. ⌾ In software design you identify software components and their relationships, based on a customer’s requirements. ⌾ In software implementation you realize the design as a program. 5 DESIGN IMPLEMENTATION requirements executable
  • 6. BUILD OR BUY ⦿ Buying commercial off-the-shelf systems (COTS) is a norm in today’s environment. It can be cheaper and faster to use ⦿ The main concern with COTS is how to use the configuration features of that system to deliver the system requirements. 6
  • 8. Structured design methods propose that software design should be tackled in a methodical way. Designing a system involves following the steps of the method and refining the design of a system at increasingly detailed levels. In the 1990s, there were a number of competing methods for object-oriented design. However, the inventors of the most commonly used methods came together and invented the UML, which unified the notations used in the different methods. 8
  • 9. ⦿ Structured object-oriented design processes involve developing a number of different system models. ⦿ They require a lot of effort for development and maintenance of these models. ⦿ For large systems developed by different groups design models are an important communication mechanism. 9
  • 10. 10
  • 11. PROCESS STAGES 11 ⦿ There are a variety of different object-oriented design processes that depend on the organization choice. Develop design models
  • 13. 13 ⦿ Understanding the relationships helps to ⌾ provide the required system functionalities. ⌾ structure the system to communicate with its environment. ⦿ Understanding the context helps to establish the boundaries of the system. ⦿ Context talks about the features. ⦿ Interactions defines the communication between a system and its environment.
  • 14. 14 ⦿ A system context model demonstrates the other systems in the environment of the system being developed. ⦿ An interaction model shows how the system interacts with its environment as it is used.
  • 15. 15 ⦿ The context model may be represented using associations. ⦿ You may therefore document the environment of the system using a simple block diagram, showing the entities in the system and their associations. ⦿ System context models and interaction models present complementary views of the relationships between a system and its environment.
  • 16. 16 ⦿ In a block diagram associations simply show that there are some relationships between the entities involved in the association.
  • 17. 17
  • 18. 18 ⦿ The use case diagram does not include too much details.
  • 19. 19
  • 21. 21 ⦿ Interactions between the system and its environment leads to design the system architecture. ⦿ System architecture consists of components. ⦿ Then may organize the components using an architectural pattern. ⦿ However, this is not essential at this stage. Layer 1 Layer 2 Layer 3
  • 24. 24
  • 25. APPROACHES TO IDENTIFICATION ⦿ Use a grammatical analysis ⌾ Nouns make the objects and properties ⌾ Verbs make the operations ⦿ Use tangible entities (things) ⌾ Pay attention to roles, events, locations, organizations, etc. ⦿ Use a scenario-based analysis 25
  • 27. Design or system models show the objects and object classes and relationships between these entities. These models are the bridge between the system requirements and the implementation of a system. They have to be abstract so that unnecessary detail doesn’t hide the relationships between them and the system requirements. However, they also have to include enough detail for programmers to make implementation decisions. 27
  • 28. Specific design decisions may be made as the system is implemented, with problems resolved through informal discussions. An important step in the design process is to decide on the design models that you need and the level of detail required in these models. The UML supports 13 different types of models but you rarely use all of these. 28
  • 29. WE NORMALLY DEVELOP TWO KINDS OF DESIGN MODEL 29
  • 30. USEFUL DESIGN MODELS ⦿ Subsystem models ⌾ Show the logical groupings of objects into coherent subsystems. ⌾ Are represented using a form of class diagram. ⌾ Are structural models. ⦿ Sequence models ⌾ Show the sequence of object interactions. ⌾ Are represented using a UML sequence or a collaboration diagram ⌾ Are dynamic models. ⦿ State machine model ⌾ Objects change their state in response to events. ⌾ Are represented using state diagrams. ⌾ Are dynamic models
  • 31. 31
  • 32. 32
  • 34. 34
  • 36. Design patterns were derived from ideas put forward by Christopher Alexander (Alexander et al., 1977), who suggested that there were certain common patterns of building design that were inherently pleasing and effective. The pattern is a description of the problem and the essence of its solution. The pattern is not a detailed specification. you can think of it as a description of accumulated wisdom and experience, a well-tried solution to a common problem. You can explain your design by describing the patterns that you have used. 36
  • 37. 37
  • 38. 38
  • 41. 41
  • 42. 42 ABSTRACTION ARCHITECTURAL AND DESIGN PATTERNS The abstraction level At this level, you don’t reuse software directly but rather use knowledge of successful abstractions in the design of your software. Design patterns and architectural patterns (covered in Chapter 6) are ways of representing abstract knowledge for reuse.
  • 43. 43 OBJECT PROGRAMMING LANGUAGE AND LIBRARIES The object level At this level, you directly reuse objects from a library rather than writing the code yourself. To implement this type of reuse, you have to find appropriate libraries and discover if the objects and methods offer the functionality that you need. For example, if you need to process email messages in a Java program, you may use objects and methods from a JavaMail library.
  • 44. 44 COMPONENT COMPONENT FRAMEWORKS The component level Components are collections of objects and object classes that operate together to provide related functions and services. You often have to adapt and extend the component by adding some code of your own. An example of component-level reuse is where you build your user interface using a framework. This is a set of general object classes that implement event handling, display management, etc. You add connections to the data to be displayed and write code to define specific display details such as screen layout and colors.
  • 45. 45 SYSTEM APPLICATION SYSTEMS (COTS) The system level At this level, you reuse entire application systems. This function usually involves some kind of configuration of these systems. This may be done by adding and modifying code (if you are reusing a software product line) or by using the system’s own configuration interface. Most commercial systems are now built in this way where generic application systems systems are adapted and reused. Sometimes this approach may involve integrating several application systems to create a new system.
  • 47. 47
  • 48. 48 VERSION MANAGEMENT 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. They stop one developer from overwriting code that has been submitted to the system by someone else.
  • 49. 49 SYSTEM INTEGRATION 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.
  • 50. 50 PROBLEM TRACKING 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.
  • 51. 51 RELEASE MANAGEMENT Release management, where new versions of a software system are released to customers. Release management is concerned with planning the functionality of new releases and organizing the software for distribution.
  • 53. 53
  • 54. 54
  • 55. 55
  • 57. 57 In 1983, Richard Stallman started the GNU project with the goal of creating a free UNIX-like operating system.[7] As part of this work, he wrote the GNU General Public License (GPL). By the early 1990s, there was almost enough available software to create a full operating system. However, the GNU kernel, called Hurd, failed to attract enough development effort, leaving GNU incomplete. In 1991, while studying computer science at University of Helsinki, Linus Torvalds began a project that later became the Linux kernel. He wrote the program specifically for the hardware he was using and independent of an operating system because he wanted to use the functions of his new PC with an 80386 processor. Development was done on MINIX using the GNU C Compiler.
  • 58. 58
  • 59. 59 Ways to earn money from open source development 1. Freemium and premium planning 2. Sale support and docs 3. Donations 4. Everything i$ not money!
  • 61. 61
  • 62. ⦿ https:/ /refactoring.guru ⦿ https:/ /www.jenkins.io ⦿ https:/ /www.bugzilla.org ⦿ https:/ /www.taiga.io ⦿ https:/ /docs.docker.com ⦿ https:/ /docs.gitlab.com/ee/ci ⦿ https:/ /www.wikiwand.com/en/History_of_Linux ⦿ https:/ /www.atlassian.com/git/tutorials/compari ng-workflows 62 REFERENCES AND SUGGESTED READINGS ⦿ Software engineering book by Sommerville