SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
DITF LDI
Lietišķo datorsistēmu programmatūras
profesora grupa
e-Business Solutions
Basic Trends of Modern
Software Development
2
Hello Everyone!
3
• What is this all about?
• Who are these people?
• What will we learn?
• What is today's topic?
• What's next?
4
What is this all about?
5
What is this all about?
6
2 days
Lectures + demo
Covering everything you need to understand
basic trends of modern software development
7
Who are these people?
8
Vladimir Kotov
PhD student, Lecturer @ RTU
Java Developer @ Citadele
Teacher @ javaguru.lv
vladimir.kotov@gmail.com
Git: https://github.com/rk13
9
What is today's topic?
10
Software Engineering and Development
FAQ
11
Software Engineering FAQ
● What is software?
12
Software Engineering FAQ
● What is software?
Computer programs and associated artifacts
(e.g documentation).
Software products may be developed for a
particular customer or may be developed for a
general market.
13
Software Engineering FAQ
● What is software engineering?
14
Software Engineering FAQ
● What is software engineering?
An engineering discipline concerned
with all aspects of software production.
15
Software Engineering FAQ
● What is software engineering?
An engineering discipline concerned
with all aspects of software production.
Computer science is concerned with
theory and fundamentals; software
engineering is concerned with the
practicalities of developing and
delivering useful software.
16
Software Engineering FAQ
● What is a software process?
17
Software Engineering FAQ
● What is a software process?
A set of activities whose goal is the
development or evolution of software.
High-level activities of software specification,
development, validation and evolution are part
of all software processes.
18
Software Engineering FAQ
● What is a software process model?
A simplified representation of a software
process, presented from a specific perspective.
19
Software Engineering FAQ
Software process models
- The waterfall model
Plan-driven model. Separate and distinct phases of specification and
development.
- Incremental development
Specification, development and validation are interleaved. May be plan-driven or
agile.
- Reuse-oriented software engineering
The system is assembled from existing components.
In practice, most large systems are developed using a process that
incorporates elements from all of these models.
20
Software Engineering FAQ
● What are software engineering methods?
Structured approaches to software
development which include system models,
notations, rules, design advice and process
guidance.
21
Software Engineering FAQ
What is software architecture?
22
Software Engineering FAQ
What is software architecture?
● A software architecture is a description of how a software
system is organized.
● Architectural design decisions include decisions on the
type of application, the distribution of the system, the
architectural styles to be used.
● Shared understanding of a system design by the expert
developers on a project
● Decisions developers wish they could get right early on
● Decisions perceived as hard to change
23
http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-
architecture.html
24
Software Engineering FAQ
Enterprise Application
● Accounting software
● Business intelligence
● Business process management
● Content management system (CMS)
● Customer relationship management (CRM)
● Enterprise resource planning (ERP)
● ...
25
Software Engineering FAQ
Enterprise Application
● Lots of long living data, accessed concurently
● Multiple systems, dissonance in integration
technologies and data interpretation
● Business “illogic”
● Specific patterns
26
Trends of Software Engineering and
Software Development
27
Trends of Software Engineering
I. Increasing complexity of software
– business complexity
– domain complexity
– scale complexity
– artificial complexity
● Guided by requirements
● Results in periodic paradigm shift
● Followed by Moore's Law
–
28
Trends of Software Engineering
29
Trends of Software Engineering
I. Increasing complexity of software
Moore's law is the observation that over the history of
computing hardware, the number of transistors on integrated
circuits doubles approximately every two years
● capabilities of many digital electronic devices are strongly linked to
Moore's law: processing speed, memory capacity, sensors
● describes a driving force of technological and social change
● used in the semiconductor industry to guide long-term planning
30
Trends of Software Engineering
I. Increasing complexity of software
Complexity
Time
Fortran, Basic
Symbols, expression
Pascal, C
Structured programming
C++
Objects
Java
Virtual machines
Python, XML
31
Trends of Software Engineering
II. Raising the level of abstraction
– Abstract to reduce (hide) complexity
– From machine codes to high level languages
32
Trends of Software Engineering
II. Raising the level of abstraction
Machine code or machine language is a set of
instructions executed directly by a computer's
central processing unit (CPU).
33
Trends of Software Engineering
II. Raising the level of abstraction
● High-level language is a programming
language with strong abstraction from the
details of the computer.
May use natural language elements, making the process
of developing a program simpler and more
understandable.
34
Trends of Software Engineering
II. Raising the level of abstraction
● Executable Models (e.g. xUML) allow graphically specify a
system at the next higher level of abstraction.
● allows for true separation of concerns
● significantly increases ease of reuse and lowers the cost of
software development
● enables domains to be cross-platform and not tied to any specific
programming language, platform or technology
35
Trends of Software Engineering
II. Raising the level of abstraction
36
Trends of Software Engineering
III. Continuous improvement of development
process
- Automation and improvement of software
maintainability
- Iterative approach to software development is
becoming increasingly used as the standard
development technique
37
Trends of Software Engineering
III. Continuous improvement of development
process
- Shift to agile methods to focus on incremental
specification design and system
implementation, that involve the customer
directly in the development process
- Development of automated tests before a
program feature is created, adoption of
continious integration and continious delivery
processes
38
Trends of Software Engineering
IV. Ability to deal with changes in
requirements
– Businesses now operate in a global,
rapidly changing environment
– It is often practically impossible to derive a
complete set of stable software
requirements
39
Trends of Software Engineering
IV. Ability to deal with changes in
requirements
– Welcome changing requirements, even
late in development
– Customer collaboration over contract
negotiation
40
Trends of Software Engineering
IV. Ability to deal with changes in
requirement
– Deliver working software frequently, from a
couple of weeks to a couple of months,
with a preference to the shorter timescale
– Business people and developers must
work together daily throughout the project
41
Trends of Software Engineering
Manifesto Agile Software Development
We are uncovering better ways of developingsoftware by doing it and
helping others do it. Through this work we have come to value:
● Individuals and interactions over processes and tools
● Working software over comprehensive documentation
● Customer collaboration over contract negotiation
● Responding to change over following a plan
That is, while there is value in the items on the right, we value the
items on the left more
42
Software Engineering Trends
V. Reusing experience to address
recurring problems successfully
– Design process in most engineering disciplines is based
on reuse of existing systems or components
– Reuse is recognized as an important mechanism to
improve software quality and development productivity
– Advantages of software reuse are lower costs, faster
software development and lower risks. System
dependability is increased and specialists can be used
more effectively by concentrating their expertise on the
design of reusable components.
43
Software reuse
44
Software reuse
➢ The process of creating software systems from
existing software rather than building them from
scratch
➢ An important mechanism to improve software
quality and development productivity
45
Software reuse
Different published rates about reuse
➢up to 60% of design and code is reusable in business applications
➢up to 75% of functions are common to more than one application
➢up to 85% - theoretical reuse potential
46
• Reusability
– the property of a software asset, that indicates
its probability of reuse
– often understood as one of software quality and
development productivity factors
• Reusable asset (artefact)
– reusable software or software knowledge
– different software life cycle products
• Systematic software reuse
– based on the defined processes and rules
– without relying on individual initiative or luck 46
Software reuse
47
Benefits of reuse
– Gains in quality
error fixes accumulated from reuse
– Gains in reliability
reuse increases the chance of errors to be detected
– Gains in productivity
less design and code, less testing efforts
– Gains in performance
effort invested in optimizations
– Reduction of maintenance costs
fewer defects and maintenance costs with proven quality components
– Reduction of product time to market
– Support for rapid prototyping
47
Software reuse
48
Obstacles of reuse
Managerial and organizational obstacles
support of top-level management is needed
lack of management incentives
Economic obstacles
requires up-front investments
Conceptual and technical obstacles
difficulty of finding reusable software
non-reusability of legacy components
modification effects on the component
48
Software reuse
49
• Software reuse is multidisciplinary
– organizational aspects
managerial and technological infrastructure
centralized or distributed organizational
approaches
– economic aspects
proactive or reactive capital investments
metrics, reuse cost estimation techniques, return-
on-investment models
– technical aspects
49
Software reuse
50
• Reuse-in-the-large is a problem too hard to be
solved in general way.
– works best in families of related systems
– domain-dependent
• The final goal is to ingrain reuse into an
organization’s entire software production
process
50
Software reuse

Más contenido relacionado

La actualidad más candente

Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsAmr E. Mohamed
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software designTech_MX
 
Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019MuhammadTalha436
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
CSC426 - Software Engineering Lecture Note Cont'd
CSC426   - Software Engineering Lecture Note Cont'dCSC426   - Software Engineering Lecture Note Cont'd
CSC426 - Software Engineering Lecture Note Cont'dBro Shola Ajayi
 
Software Engineering- Observations about Testing
Software Engineering-  Observations about TestingSoftware Engineering-  Observations about Testing
Software Engineering- Observations about TestingTrinity Dwarka
 
Se lect1 btech
Se lect1 btechSe lect1 btech
Se lect1 btechIIITA
 
Software engineering
Software engineeringSoftware engineering
Software engineeringfaisalwajid
 
Planning the development process
Planning the development processPlanning the development process
Planning the development processSiva Priya
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notesAmmar Shafiq
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-softwareAlenaDion
 
Principles of Software Engineering @MyAssignmenthelp.com
Principles of Software Engineering @MyAssignmenthelp.comPrinciples of Software Engineering @MyAssignmenthelp.com
Principles of Software Engineering @MyAssignmenthelp.comMyAssignmenthelp.com
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringMajane Padua
 
Ch3-Software Engineering 9
Ch3-Software Engineering 9Ch3-Software Engineering 9
Ch3-Software Engineering 9Ian Sommerville
 

La actualidad más candente (20)

Unit1..
Unit1..Unit1..
Unit1..
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software design
 
Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
CSC426 - Software Engineering Lecture Note Cont'd
CSC426   - Software Engineering Lecture Note Cont'dCSC426   - Software Engineering Lecture Note Cont'd
CSC426 - Software Engineering Lecture Note Cont'd
 
Software Engineering- Observations about Testing
Software Engineering-  Observations about TestingSoftware Engineering-  Observations about Testing
Software Engineering- Observations about Testing
 
Se lect1 btech
Se lect1 btechSe lect1 btech
Se lect1 btech
 
Unit1
Unit1Unit1
Unit1
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
Ch01
Ch01Ch01
Ch01
 
Principles of Software Engineering @MyAssignmenthelp.com
Principles of Software Engineering @MyAssignmenthelp.comPrinciples of Software Engineering @MyAssignmenthelp.com
Principles of Software Engineering @MyAssignmenthelp.com
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Ch3-Software Engineering 9
Ch3-Software Engineering 9Ch3-Software Engineering 9
Ch3-Software Engineering 9
 
Unit 1
Unit 1Unit 1
Unit 1
 

Destacado

e-Business - Mobile development trends
e-Business - Mobile development trendse-Business - Mobile development trends
e-Business - Mobile development trendsVladimir Kotov
 
Android Internals and Toolchain
Android Internals and ToolchainAndroid Internals and Toolchain
Android Internals and ToolchainVladimir Kotov
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC RiversideMichael Kennedy
 

Destacado (7)

e-Business - Mobile development trends
e-Business - Mobile development trendse-Business - Mobile development trends
e-Business - Mobile development trends
 
LDP lecture 2
LDP lecture 2LDP lecture 2
LDP lecture 2
 
LDP lecture 5
LDP lecture 5LDP lecture 5
LDP lecture 5
 
LDP lecture 3
LDP lecture 3LDP lecture 3
LDP lecture 3
 
LDP lecture 1
LDP lecture 1LDP lecture 1
LDP lecture 1
 
Android Internals and Toolchain
Android Internals and ToolchainAndroid Internals and Toolchain
Android Internals and Toolchain
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 

Similar a e-Business - SE trends

SE chp1 update and learning management .pptx
SE chp1 update and learning management .pptxSE chp1 update and learning management .pptx
SE chp1 update and learning management .pptxssuserdee5bb1
 
Software engineering
Software engineeringSoftware engineering
Software engineeringnimmik4u
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SEAbhishekTripathi709328
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshsagarjsicg
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineeringinfinitetechnology20
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.pptHODCOMPUTER10
 

Similar a e-Business - SE trends (20)

SE chp1 update and learning management .pptx
SE chp1 update and learning management .pptxSE chp1 update and learning management .pptx
SE chp1 update and learning management .pptx
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
sw1.pdf
sw1.pdfsw1.pdf
sw1.pdf
 
Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Slides môn Công nghệ phần mềm Software Engineering
Slides môn Công nghệ phần mềm Software EngineeringSlides môn Công nghệ phần mềm Software Engineering
Slides môn Công nghệ phần mềm Software Engineering
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineering
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
SE
SESE
SE
 
ppt chapter 1.ppt
ppt chapter 1.pptppt chapter 1.ppt
ppt chapter 1.ppt
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.ppt
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Unit 1.ppt
Unit 1.pptUnit 1.ppt
Unit 1.ppt
 

Último

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 

Último (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 

e-Business - SE trends

  • 1. DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-Business Solutions Basic Trends of Modern Software Development
  • 3. 3 • What is this all about? • Who are these people? • What will we learn? • What is today's topic? • What's next?
  • 4. 4 What is this all about?
  • 5. 5 What is this all about?
  • 6. 6 2 days Lectures + demo Covering everything you need to understand basic trends of modern software development
  • 7. 7 Who are these people?
  • 8. 8 Vladimir Kotov PhD student, Lecturer @ RTU Java Developer @ Citadele Teacher @ javaguru.lv vladimir.kotov@gmail.com Git: https://github.com/rk13
  • 10. 10 Software Engineering and Development FAQ
  • 11. 11 Software Engineering FAQ ● What is software?
  • 12. 12 Software Engineering FAQ ● What is software? Computer programs and associated artifacts (e.g documentation). Software products may be developed for a particular customer or may be developed for a general market.
  • 13. 13 Software Engineering FAQ ● What is software engineering?
  • 14. 14 Software Engineering FAQ ● What is software engineering? An engineering discipline concerned with all aspects of software production.
  • 15. 15 Software Engineering FAQ ● What is software engineering? An engineering discipline concerned with all aspects of software production. Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.
  • 16. 16 Software Engineering FAQ ● What is a software process?
  • 17. 17 Software Engineering FAQ ● What is a software process? A set of activities whose goal is the development or evolution of software. High-level activities of software specification, development, validation and evolution are part of all software processes.
  • 18. 18 Software Engineering FAQ ● What is a software process model? A simplified representation of a software process, presented from a specific perspective.
  • 19. 19 Software Engineering FAQ Software process models - The waterfall model Plan-driven model. Separate and distinct phases of specification and development. - Incremental development Specification, development and validation are interleaved. May be plan-driven or agile. - Reuse-oriented software engineering The system is assembled from existing components. In practice, most large systems are developed using a process that incorporates elements from all of these models.
  • 20. 20 Software Engineering FAQ ● What are software engineering methods? Structured approaches to software development which include system models, notations, rules, design advice and process guidance.
  • 21. 21 Software Engineering FAQ What is software architecture?
  • 22. 22 Software Engineering FAQ What is software architecture? ● A software architecture is a description of how a software system is organized. ● Architectural design decisions include decisions on the type of application, the distribution of the system, the architectural styles to be used. ● Shared understanding of a system design by the expert developers on a project ● Decisions developers wish they could get right early on ● Decisions perceived as hard to change
  • 24. 24 Software Engineering FAQ Enterprise Application ● Accounting software ● Business intelligence ● Business process management ● Content management system (CMS) ● Customer relationship management (CRM) ● Enterprise resource planning (ERP) ● ...
  • 25. 25 Software Engineering FAQ Enterprise Application ● Lots of long living data, accessed concurently ● Multiple systems, dissonance in integration technologies and data interpretation ● Business “illogic” ● Specific patterns
  • 26. 26 Trends of Software Engineering and Software Development
  • 27. 27 Trends of Software Engineering I. Increasing complexity of software – business complexity – domain complexity – scale complexity – artificial complexity ● Guided by requirements ● Results in periodic paradigm shift ● Followed by Moore's Law –
  • 28. 28 Trends of Software Engineering
  • 29. 29 Trends of Software Engineering I. Increasing complexity of software Moore's law is the observation that over the history of computing hardware, the number of transistors on integrated circuits doubles approximately every two years ● capabilities of many digital electronic devices are strongly linked to Moore's law: processing speed, memory capacity, sensors ● describes a driving force of technological and social change ● used in the semiconductor industry to guide long-term planning
  • 30. 30 Trends of Software Engineering I. Increasing complexity of software Complexity Time Fortran, Basic Symbols, expression Pascal, C Structured programming C++ Objects Java Virtual machines Python, XML
  • 31. 31 Trends of Software Engineering II. Raising the level of abstraction – Abstract to reduce (hide) complexity – From machine codes to high level languages
  • 32. 32 Trends of Software Engineering II. Raising the level of abstraction Machine code or machine language is a set of instructions executed directly by a computer's central processing unit (CPU).
  • 33. 33 Trends of Software Engineering II. Raising the level of abstraction ● High-level language is a programming language with strong abstraction from the details of the computer. May use natural language elements, making the process of developing a program simpler and more understandable.
  • 34. 34 Trends of Software Engineering II. Raising the level of abstraction ● Executable Models (e.g. xUML) allow graphically specify a system at the next higher level of abstraction. ● allows for true separation of concerns ● significantly increases ease of reuse and lowers the cost of software development ● enables domains to be cross-platform and not tied to any specific programming language, platform or technology
  • 35. 35 Trends of Software Engineering II. Raising the level of abstraction
  • 36. 36 Trends of Software Engineering III. Continuous improvement of development process - Automation and improvement of software maintainability - Iterative approach to software development is becoming increasingly used as the standard development technique
  • 37. 37 Trends of Software Engineering III. Continuous improvement of development process - Shift to agile methods to focus on incremental specification design and system implementation, that involve the customer directly in the development process - Development of automated tests before a program feature is created, adoption of continious integration and continious delivery processes
  • 38. 38 Trends of Software Engineering IV. Ability to deal with changes in requirements – Businesses now operate in a global, rapidly changing environment – It is often practically impossible to derive a complete set of stable software requirements
  • 39. 39 Trends of Software Engineering IV. Ability to deal with changes in requirements – Welcome changing requirements, even late in development – Customer collaboration over contract negotiation
  • 40. 40 Trends of Software Engineering IV. Ability to deal with changes in requirement – Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale – Business people and developers must work together daily throughout the project
  • 41. 41 Trends of Software Engineering Manifesto Agile Software Development We are uncovering better ways of developingsoftware by doing it and helping others do it. Through this work we have come to value: ● Individuals and interactions over processes and tools ● Working software over comprehensive documentation ● Customer collaboration over contract negotiation ● Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more
  • 42. 42 Software Engineering Trends V. Reusing experience to address recurring problems successfully – Design process in most engineering disciplines is based on reuse of existing systems or components – Reuse is recognized as an important mechanism to improve software quality and development productivity – Advantages of software reuse are lower costs, faster software development and lower risks. System dependability is increased and specialists can be used more effectively by concentrating their expertise on the design of reusable components.
  • 44. 44 Software reuse ➢ The process of creating software systems from existing software rather than building them from scratch ➢ An important mechanism to improve software quality and development productivity
  • 45. 45 Software reuse Different published rates about reuse ➢up to 60% of design and code is reusable in business applications ➢up to 75% of functions are common to more than one application ➢up to 85% - theoretical reuse potential
  • 46. 46 • Reusability – the property of a software asset, that indicates its probability of reuse – often understood as one of software quality and development productivity factors • Reusable asset (artefact) – reusable software or software knowledge – different software life cycle products • Systematic software reuse – based on the defined processes and rules – without relying on individual initiative or luck 46 Software reuse
  • 47. 47 Benefits of reuse – Gains in quality error fixes accumulated from reuse – Gains in reliability reuse increases the chance of errors to be detected – Gains in productivity less design and code, less testing efforts – Gains in performance effort invested in optimizations – Reduction of maintenance costs fewer defects and maintenance costs with proven quality components – Reduction of product time to market – Support for rapid prototyping 47 Software reuse
  • 48. 48 Obstacles of reuse Managerial and organizational obstacles support of top-level management is needed lack of management incentives Economic obstacles requires up-front investments Conceptual and technical obstacles difficulty of finding reusable software non-reusability of legacy components modification effects on the component 48 Software reuse
  • 49. 49 • Software reuse is multidisciplinary – organizational aspects managerial and technological infrastructure centralized or distributed organizational approaches – economic aspects proactive or reactive capital investments metrics, reuse cost estimation techniques, return- on-investment models – technical aspects 49 Software reuse
  • 50. 50 • Reuse-in-the-large is a problem too hard to be solved in general way. – works best in families of related systems – domain-dependent • The final goal is to ingrain reuse into an organization’s entire software production process 50 Software reuse