SlideShare a Scribd company logo
1 of 54
Download to read offline
Software as a Product

     Paolo Ciancarini
Agenda
•  Software products
•  The software industry
•  Architectural and engineering issues
Why is software important?
•  Software is a key component in the
   modern industry, especially in the
   innovative, emerging technologies
•  In the next few slides we report the
   Gartner hype cycle for the emerging
   technologies from 2005 to 2010
Hype Cycle of emerging technologies
      (according to Gartner)
2005
Hype cycles
2006
2007
2008
2009
2010
Discuss
Identify in the Gartner diagrams the
technologies which are software-intensive
Software is an industrial product
The world sw industry increased its volume at 10% rates yearly
  during the ‘90, and at 3% in 2001, now is back at 10%

Several technological innovations are based on software
(eg. Cellular telephones, Mp3 devices and iTunes, etc.)

A cellular telephone includes 5+ MLOC (source Nokia)
Windows XP includes 40+ MLOC (Windows 95: 11 MLOC)

The developments costs of a software increases with the square of
  its dimension in LOC [Berra-Meo 2001]
The software industry
•  According to DataMonitor, the size of
   the worldwide software industry in 2008
   was US$ 303.8 billion, an increase of
   6.5% compared to 2007
•  Americas account for 42.6% of the
   global software market's value
•  In 2013, the global software market will
   have a value of US$ 457 billion, an
   increase of 50% since 2008
Software
•  Good: product invisible, intangible, easily
   duplicated, very expensive to build
•  Component of a computer system: can be
   widely (re)used (off the shelf) or
   commissioned by a specific user
•  Abstract machine based on an abstract
   architecture
•  Service invoked via a well defined interface
   and based on a communication infrastructure
Software components
•  COTS: “component off the shelf”
•  Component based software
   architectures
•  Building software by integration
•  Software component markets
  –  Enterprise Java Beans
  –  Microsoft .NET
Software: the product of a process

•  Many kinds of software products, many kinds of
   development processes
•  Study the process to improve the product

•  Examples of processes: waterfall, iterative, agile,
   extreme,…
•  Software development processes are software too
Many kinds of software
•    Middleware
•    Embedded
•    Open source
•    Web Services
•    Mobile (eg. applet)
•    Data mining (eg. Search engine)
•    Agents
•    Social software (eg. Web 2.0)
•    Software Ecosystems
•    …
Embedded software
•  Within only 30 years the amount of software in
   cars went from 0 to more than 10,000,000 lines
   of code
•  More than 2000 individual functions are realized
   or controlled by software in premium cars, today
•  50-70% of the development costs of the
   software/hardware systems are software costs
•  (M.Broy, “Challenges in Automotive Software Engineering”,
   ICSE2006, pp33-42,2006)
Embedded software
                    Code Size Evolution of High End TV Software
                                                                                                                                    100000
         100000
                                                                                                                                  64000
                                                                                                                          32000

         10000                                                                                                    12000

                                                                                                           4096
                                                                                                    3000
                                                                                             2048
          1000                                                                        1024
Kbytes




                                                                             512
                                                                    256

           100
                                                            64
                                                    32
                                            16
            10
                                     8
                              4
                       2
             1
             1978   1980   1982   1984   1986    1988    1990    1992     1994     1996   1998   2000   2002   2004   2006   2008    2009

                                                        Year of Market Introduction
Software as a service
Service: the immaterial equivalent of a good


•  Software is a service at heart, albeit an automated
   one, but it is sold much like a manufactured good.
   Customers have to pay large sums of money up
   front, bear much of the risk that a program may not
   work as promised, and cannot readily switch vendors.
                              The Economist, 2003
Service oriented architectures
•  SOA compose different
   services for complementary
   domains
•  They are often base on stacks
   of service layers
•  SOA services feature loose
   coupling that can be
   “orchestrated” according to
   some rules of “choreography”
Software ecosystems
•  A software ecosystem is a set of
   businesses functioning as a unit and
   interacting with a shared market for
   software and services, together with
   relationships supported by a common
   technological platform
•  Eg: Apple Application Store
Software architecture and
      engineering
Software architecture
•  The discipline of software architecture is centered on
   the idea of reducing the design complexity of
   software systems through abstraction and separation
   of concerns
•  The discipline has developed a number of design
   styles and patterns that help in designing or
   integrating software intensive systems
•  However, it is hard to find sw architects who agree on
   the right way to architect a software system
•  Wrong decisions in crafting the software architecture
   are a major cause of project cancellation
Software engineering
•  Software Engineering is a discipline studying the
   methods to produce software, the theories at
   their basis, and the tools effective to develop and
   measure the qualities of software systems
•  Software engineering deals with limited resources
•  It is a discipline strongly empirical, that is based
   on experience and past projects
  ( Coloro che non conoscono la storia, sono condannati a ripeterla )
Main problems
•    Methods to analyze and design a software product
•    Architectural and design patterns
•    Software development processes and their models
•    Software development tools and environments
•    Economic issues
•    Products and process standards
Producing software is difficult
•  Complexity derives from
  –  Very fast technical innovation
  –  Strong international competition
  –  Psychological issues
  –  Organizational issues
  –  Professionals not trained on sw design and
     development
•  Typical failures: bad project management, wrong
   requirements, mediocre design
•  Stakeholders with contrasting interests
•  New projects start with high risks, scarcely
   analyzed
Productivity is low

•  Analyzing 13.522 sw development
   projects in USA:
  –  66% out all projects fail (no useful result)
  –  82% out all projects need more time than
     initially planned
  –  48% out all projects produce products
     lacking some function required by the
     customers
  –  55 G$ wasted in one year         Standish Report 2003
Standish : 2004 vs 2009
Caper Jones on sw project failures

•  As to project cancellations, we cover a wider range than Standish
   Group because they show only IT projects. We include embedded,
   systems software, web applications, IT, etc. There are some gaps
   because have no data from the game industry. Our data resembles
   Standish for IT cancellations, but the embedded and systems worlds
   are a bit better than the IT world due to more effective quality controls
•  10 function points = 1.86% cancels
   100 function points = 3.21%
   1000 function points = 10.14%
   10000 function points = 31.27%
   100000 function points = 47.57%
•  The canceled projects are usually late and over budget when the plug
   is pulled. On average a canceled project is about 10% more expensive
   than a successful project of the same size and type
The software process
Stakeholders
Typical stakeholders in a sw process
  –  Designers
  –  Management
  –  Technicians
  –  Decisors
  –  Users
  –  Funding people
  –  …

Each stakeholder has a specific viewpoint on
  the product and its development process
Process
•  Development processes are created and
   adapted to different project situations
•  Both products and processes can be
   evaluated for their quality
•  Software needs several different layers of
   development process:
  –  Industrial lifecycle
  –  Design lifecycle (reqs, build, test)
  –  Module lifecycle
  –  Operational lifecycle (eg.: portal)
A history of software processes
The software process
•  Software process: set of roles,
   activities, and artifacts necessary to
   create a software product
•  Possible roles: designer, developer,
   tester, maintenance, ecc.
•  Possible artifacts: source code,
   executables, specifications, comments,
   test suite, etc.
Models for the software process

•  Waterfall model (planned, linear)
•  Spiral model (planned, iterative)
•  Agile model (unplanned, user driven)
4+2
views
SCM: sw configuration
management,
ALM: application
lifecycle management
Activities
•  Each organization differs in products it builds
   and the way it develops them; however, most
   development processes include:
   –  Specification
   –  Design
   –  Verification and validation
   –  Evolution
•  The development activities must be modeled
   to be managed and supported by automatic
   tools
Models: process diagram
Lifecycle differences in the world
•    Cusumano in 2003 analyzed 104 sw projects in four areas

                                   India   Japan   US      Europe   Total
     Practice / No. of Projects       24    27       31      22      104
     Architectural Specification    83.3% 70.4%    54.8%   72.7%    69.2%
     Functional Specification       95.8% 92.6%    74.2%   81.8%    85.6%
     Detailed Design               100.0% 85.2%    32.3%   68.2%    69.2%
     Code Generation                62.5% 40.7%    51.6%   54.5%    51.9%
     Design Review                 100.0% 100.0%   77.4%   77.3%    88.5%
     Code Review                    95.8% 74.1%    71.0%   81.8%    79.8%
     Subcycles                      79.2% 44.4%    54.8%   86.4%    64.4%
     Beta Testing                   66.7% 66.7%    77.4%   81.8%    73.1%
     Pair Testing                   54.2% 44.4%    35.5%   31.8%    41.3%
     Pair Programming               58.3% 22.2%    35.5%   27.2%    35.3%
     Daily Builds
             At the Start          16.7%   22.2%   35.5%   9.1%     22.1%
             In the Build          12.5%   25.9%   29.0%   27.3%    24.0%
              At the End           29.2%   37.0%   35.5%   40.9%    35.6%
     Regression Testing            91.7%   96.3%   71.0%   77.3%    83.7%
(2008)
Productivity differences
•  For the same 104 projects Cusumano got the
   following data:


                          India   Japan   US      Europe   Total
  No. of Projects           24      27      31      22       104
  LOC/programmer month     209     469     270     436       374
  Defects/KLOC (12 mon.   0.263   0.020   0.400   0.225     0.150
  after delivery)
Software standards
Standards
•  Many institutions define international
   product or process standards for the
   global software industry
•  Their goal is usually to improve the
   quality of software products and their
   development processes
Software standards
•    Standard IEEE: development methods
•    Standard OMG: UML and CORBA
•    Standard W3C: Web technologies
•    Standard OASIS: Business Process
IEEE Standards on Software
•    IEEE 828 - Standard for Glossary of Sw Eng Terminology
•    IEEE 830 - Practice for Sw Reqs Specifications
•    IEEE 1016 - Practice for Sw Design Descriptions
•    IEEE 1012 - Sw Verification and Validation
•    IEEE 1062 - Sw Acquisition
•    IEEE 1063 - Sw User Documentation
•    IEEE 1233 - Developing System Reqs Specifications
•    IEEE 12207 - Standard for Sw Life Cycle Processes
•    IEEE 1471 - Practice for Architectural Descriptions



                              www.computer.org/standards!
Summary
•  Software is a business, but it is not like other
   businesses
•  Software products are both the programs and
   their documentation, included process
   documentation
•  A software process is a set of roles and activities
   to develop a software product
•  Software engineers should use effective tools and
   methods based on principles scientifically and
   ethically correct
Self test questions
•  What categories of “software” you know”?
•  What are they differences?
•  What are the main problems in the
   production of software?
•  Where can I find a specific paper on a
   specific software architecture topic?
References
Textbook:
Taylor & Medvidović & Dashofy,
Software Architecture: Foundations, Theory, and Practice,
Wiley 2009

Additional textbooks:
Quian & Fu, Software Architecture and Design Illuminated,
Bartlett & Jones 2009
Reekie and McAdam A Software Architecture Primer, 2006
References

Additional textbook on software engineering:
Pressman, Software Engineering, McGraw Hill, 6th ed., 2005
	

Additional textbook on UML:
Arlow & Neustadt, UML2 and Unified Process, McGraw Hill,
2007
Journals

 (via Internet inside UniBo network):
IEEE Transactions on Software Engineering
ACM Trans. on Sw Engineering and Methodology
IEEE Software
IEEE Internet Computing
(online) Journal of Object Technology www.jot.fm



                                   scholar.google.com!
Reference web sites
Site of the textbook: www.softwarearchitecturebook.com

IASA (int. assoc. of sw architects): www.iasahome.org

Major web sites:
www.sei.cmu.edu/architecture/!
www.handbookofsoftwarearchitecture.com!
www.bredemeyer.com!


Blogs
blog.softwarearchitecture.com!
Questions?

More Related Content

What's hot

Analyze your software assets with Modisco par Frédéric Madiot
Analyze your software assets with Modisco par Frédéric MadiotAnalyze your software assets with Modisco par Frédéric Madiot
Analyze your software assets with Modisco par Frédéric MadiotEclipseDayParis
 
Grameen Solutions Product Engineering Featured Projects 2009 11 12
Grameen Solutions   Product Engineering Featured Projects 2009 11 12Grameen Solutions   Product Engineering Featured Projects 2009 11 12
Grameen Solutions Product Engineering Featured Projects 2009 11 12Grameen Solutions
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
Current Trends and Future Directions in Technology for DevOps (Innovate 2012)
Current Trends and Future Directions in Technology for DevOps (Innovate 2012)Current Trends and Future Directions in Technology for DevOps (Innovate 2012)
Current Trends and Future Directions in Technology for DevOps (Innovate 2012)Michael Elder
 
Corporate presentation
Corporate presentationCorporate presentation
Corporate presentationIBCmass
 
IBM Rational 8/16 Webinar Presentation
IBM Rational 8/16 Webinar PresentationIBM Rational 8/16 Webinar Presentation
IBM Rational 8/16 Webinar PresentationScott Althouse
 
Modernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructureModernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructurezslmarketing
 
Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile SoftwareCollaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile SoftwareIBM Software India
 
Mawea Profile Presentation Slides 2011
Mawea Profile Presentation Slides 2011Mawea Profile Presentation Slides 2011
Mawea Profile Presentation Slides 2011evebby526
 
Build and Connect Enterprise Mobile Applications from developerWorks Live!
Build and Connect Enterprise Mobile Applications from developerWorks Live! Build and Connect Enterprise Mobile Applications from developerWorks Live!
Build and Connect Enterprise Mobile Applications from developerWorks Live! Leigh Williamson
 
Discovering Computers: Chapter 15
Discovering Computers: Chapter 15Discovering Computers: Chapter 15
Discovering Computers: Chapter 15Anna Stirling
 
From Requirements Management to Release with Git for Android System
From Requirements Management to Release with Git for Android System From Requirements Management to Release with Git for Android System
From Requirements Management to Release with Git for Android System Intland Software GmbH
 
Mawea Profile Presentation Slides 2011 Hidden
Mawea Profile Presentation Slides 2011 HiddenMawea Profile Presentation Slides 2011 Hidden
Mawea Profile Presentation Slides 2011 Hiddenevebby526
 
Mobile Patterns with WebSphere Message Broker
Mobile Patterns with WebSphere Message BrokerMobile Patterns with WebSphere Message Broker
Mobile Patterns with WebSphere Message BrokerAnt Phillips
 
Ibm mobile strategy may2012 mark.cesario v1.0
Ibm mobile strategy may2012 mark.cesario v1.0Ibm mobile strategy may2012 mark.cesario v1.0
Ibm mobile strategy may2012 mark.cesario v1.0Mark Cesario
 
Discovering Computers: Chapter 13
Discovering Computers: Chapter 13Discovering Computers: Chapter 13
Discovering Computers: Chapter 13Anna Stirling
 
Software Measurement for Lean Application Management
Software Measurement for Lean Application ManagementSoftware Measurement for Lean Application Management
Software Measurement for Lean Application ManagementCAST
 
Eight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix themEight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix themJoseph KAsser
 

What's hot (20)

Analyze your software assets with Modisco par Frédéric Madiot
Analyze your software assets with Modisco par Frédéric MadiotAnalyze your software assets with Modisco par Frédéric Madiot
Analyze your software assets with Modisco par Frédéric Madiot
 
Ajs 2 a
Ajs 2 aAjs 2 a
Ajs 2 a
 
Grameen Solutions Product Engineering Featured Projects 2009 11 12
Grameen Solutions   Product Engineering Featured Projects 2009 11 12Grameen Solutions   Product Engineering Featured Projects 2009 11 12
Grameen Solutions Product Engineering Featured Projects 2009 11 12
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
MDA
MDAMDA
MDA
 
Current Trends and Future Directions in Technology for DevOps (Innovate 2012)
Current Trends and Future Directions in Technology for DevOps (Innovate 2012)Current Trends and Future Directions in Technology for DevOps (Innovate 2012)
Current Trends and Future Directions in Technology for DevOps (Innovate 2012)
 
Corporate presentation
Corporate presentationCorporate presentation
Corporate presentation
 
IBM Rational 8/16 Webinar Presentation
IBM Rational 8/16 Webinar PresentationIBM Rational 8/16 Webinar Presentation
IBM Rational 8/16 Webinar Presentation
 
Modernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructureModernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructure
 
Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile SoftwareCollaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software
 
Mawea Profile Presentation Slides 2011
Mawea Profile Presentation Slides 2011Mawea Profile Presentation Slides 2011
Mawea Profile Presentation Slides 2011
 
Build and Connect Enterprise Mobile Applications from developerWorks Live!
Build and Connect Enterprise Mobile Applications from developerWorks Live! Build and Connect Enterprise Mobile Applications from developerWorks Live!
Build and Connect Enterprise Mobile Applications from developerWorks Live!
 
Discovering Computers: Chapter 15
Discovering Computers: Chapter 15Discovering Computers: Chapter 15
Discovering Computers: Chapter 15
 
From Requirements Management to Release with Git for Android System
From Requirements Management to Release with Git for Android System From Requirements Management to Release with Git for Android System
From Requirements Management to Release with Git for Android System
 
Mawea Profile Presentation Slides 2011 Hidden
Mawea Profile Presentation Slides 2011 HiddenMawea Profile Presentation Slides 2011 Hidden
Mawea Profile Presentation Slides 2011 Hidden
 
Mobile Patterns with WebSphere Message Broker
Mobile Patterns with WebSphere Message BrokerMobile Patterns with WebSphere Message Broker
Mobile Patterns with WebSphere Message Broker
 
Ibm mobile strategy may2012 mark.cesario v1.0
Ibm mobile strategy may2012 mark.cesario v1.0Ibm mobile strategy may2012 mark.cesario v1.0
Ibm mobile strategy may2012 mark.cesario v1.0
 
Discovering Computers: Chapter 13
Discovering Computers: Chapter 13Discovering Computers: Chapter 13
Discovering Computers: Chapter 13
 
Software Measurement for Lean Application Management
Software Measurement for Lean Application ManagementSoftware Measurement for Lean Application Management
Software Measurement for Lean Application Management
 
Eight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix themEight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix them
 

Viewers also liked

5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria5 Trasporto Affidabile Teoria
5 Trasporto Affidabile TeoriaMajong DevJfu
 
Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Majong DevJfu
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d aziendaMajong DevJfu
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendMajong DevJfu
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Majong DevJfu
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Majong DevJfu
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11Majong DevJfu
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 ColorMajong DevJfu
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Majong DevJfu
 
Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Majong DevJfu
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaMajong DevJfu
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneMajong DevJfu
 

Viewers also liked (20)

26 standards
26 standards26 standards
26 standards
 
5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria
 
Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d azienda
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: Frontend
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 
E6 Concorre
E6 ConcorreE6 Concorre
E6 Concorre
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04
 
3 H2 N Parte3
3 H2 N Parte33 H2 N Parte3
3 H2 N Parte3
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color
 
8 Www2009 Parte1
8 Www2009 Parte18 Www2009 Parte1
8 Www2009 Parte1
 
9 Ftp Telnet Email
9 Ftp Telnet Email9 Ftp Telnet Email
9 Ftp Telnet Email
 
6 Dns Parte2
6 Dns Parte26 Dns Parte2
6 Dns Parte2
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05
 
esercizio sigda n 8
esercizio sigda n 8esercizio sigda n 8
esercizio sigda n 8
 
Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di Macchina
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazione
 

Similar to 1 - Architetture Software - Software as a product

Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday Walid Shaari
 
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...Kai Wähner
 
Real-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoTReal-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoTAll Things Open
 
How Criteo Scaled and Supported Massive Growth with MongoDB (2013)
How Criteo Scaled and Supported  Massive Growth with MongoDB (2013)How Criteo Scaled and Supported  Massive Growth with MongoDB (2013)
How Criteo Scaled and Supported Massive Growth with MongoDB (2013)Julien SIMON
 
Arranged advanced IT technology most demand in 2020
Arranged advanced IT technology most demand in 2020Arranged advanced IT technology most demand in 2020
Arranged advanced IT technology most demand in 2020Aegis Softtech
 
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDB
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDBBusiness Track: How Criteo Scaled and Supported Massive Growth with MongoDB
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDBMongoDB
 
Wizardry - Creating Magical Changes in the full lifecycle of Infrastructure #...
Wizardry - Creating Magical Changes in the full lifecycle of Infrastructure #...Wizardry - Creating Magical Changes in the full lifecycle of Infrastructure #...
Wizardry - Creating Magical Changes in the full lifecycle of Infrastructure #...Comit Projects Ltd
 
Why managing Requirements right is fundamental for your winning embedded prod...
Why managing Requirements right is fundamental for your winning embedded prod...Why managing Requirements right is fundamental for your winning embedded prod...
Why managing Requirements right is fundamental for your winning embedded prod...Visure Solutions
 
Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Tugdual Grall
 
Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Antti Koskela
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureHuxing Zhang
 
Design - Start Your API Journey Today
Design - Start Your API Journey TodayDesign - Start Your API Journey Today
Design - Start Your API Journey TodayLaurenWendler
 
Towards Network Society: Five Interconnected Webs
Towards Network Society: Five Interconnected WebsTowards Network Society: Five Interconnected Webs
Towards Network Society: Five Interconnected WebsVenkat Venkatraman
 

Similar to 1 - Architetture Software - Software as a product (20)

1
11
1
 
L01 Enterprise Application Architecture
L01 Enterprise Application ArchitectureL01 Enterprise Application Architecture
L01 Enterprise Application Architecture
 
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise SoftwareL01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
 
Project
ProjectProject
Project
 
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise ApplicationsHönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
 
Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday
 
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
 
Real-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoTReal-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoT
 
How Criteo Scaled and Supported Massive Growth with MongoDB (2013)
How Criteo Scaled and Supported  Massive Growth with MongoDB (2013)How Criteo Scaled and Supported  Massive Growth with MongoDB (2013)
How Criteo Scaled and Supported Massive Growth with MongoDB (2013)
 
Dii deck August 21
Dii deck August 21Dii deck August 21
Dii deck August 21
 
Arranged advanced IT technology most demand in 2020
Arranged advanced IT technology most demand in 2020Arranged advanced IT technology most demand in 2020
Arranged advanced IT technology most demand in 2020
 
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDB
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDBBusiness Track: How Criteo Scaled and Supported Massive Growth with MongoDB
Business Track: How Criteo Scaled and Supported Massive Growth with MongoDB
 
Wizardry - Creating Magical Changes in the full lifecycle of Infrastructure #...
Wizardry - Creating Magical Changes in the full lifecycle of Infrastructure #...Wizardry - Creating Magical Changes in the full lifecycle of Infrastructure #...
Wizardry - Creating Magical Changes in the full lifecycle of Infrastructure #...
 
Why managing Requirements right is fundamental for your winning embedded prod...
Why managing Requirements right is fundamental for your winning embedded prod...Why managing Requirements right is fundamental for your winning embedded prod...
Why managing Requirements right is fundamental for your winning embedded prod...
 
Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications
 
Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architecture
 
Design - Start Your API Journey Today
Design - Start Your API Journey TodayDesign - Start Your API Journey Today
Design - Start Your API Journey Today
 
Towards Network Society: Five Interconnected Webs
Towards Network Society: Five Interconnected WebsTowards Network Society: Five Interconnected Webs
Towards Network Society: Five Interconnected Webs
 
Venkatraman five webs
Venkatraman five websVenkatraman five webs
Venkatraman five webs
 

More from Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_linesMajong DevJfu
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobilityMajong DevJfu
 
21 security and_trust
21 security and_trust21 security and_trust
21 security and_trustMajong DevJfu
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniquesMajong DevJfu
 

More from Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
 
23 intro to_dsse
23 intro to_dsse23 intro to_dsse
23 intro to_dsse
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobility
 
21 security and_trust
21 security and_trust21 security and_trust
21 security and_trust
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniques
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
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
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
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.
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

1 - Architetture Software - Software as a product

  • 1. Software as a Product Paolo Ciancarini
  • 2. Agenda •  Software products •  The software industry •  Architectural and engineering issues
  • 3. Why is software important? •  Software is a key component in the modern industry, especially in the innovative, emerging technologies •  In the next few slides we report the Gartner hype cycle for the emerging technologies from 2005 to 2010
  • 4. Hype Cycle of emerging technologies (according to Gartner)
  • 10. 2010
  • 11. Discuss Identify in the Gartner diagrams the technologies which are software-intensive
  • 12. Software is an industrial product The world sw industry increased its volume at 10% rates yearly during the ‘90, and at 3% in 2001, now is back at 10% Several technological innovations are based on software (eg. Cellular telephones, Mp3 devices and iTunes, etc.) A cellular telephone includes 5+ MLOC (source Nokia) Windows XP includes 40+ MLOC (Windows 95: 11 MLOC) The developments costs of a software increases with the square of its dimension in LOC [Berra-Meo 2001]
  • 13. The software industry •  According to DataMonitor, the size of the worldwide software industry in 2008 was US$ 303.8 billion, an increase of 6.5% compared to 2007 •  Americas account for 42.6% of the global software market's value •  In 2013, the global software market will have a value of US$ 457 billion, an increase of 50% since 2008
  • 14. Software •  Good: product invisible, intangible, easily duplicated, very expensive to build •  Component of a computer system: can be widely (re)used (off the shelf) or commissioned by a specific user •  Abstract machine based on an abstract architecture •  Service invoked via a well defined interface and based on a communication infrastructure
  • 15. Software components •  COTS: “component off the shelf” •  Component based software architectures •  Building software by integration •  Software component markets –  Enterprise Java Beans –  Microsoft .NET
  • 16. Software: the product of a process •  Many kinds of software products, many kinds of development processes •  Study the process to improve the product •  Examples of processes: waterfall, iterative, agile, extreme,… •  Software development processes are software too
  • 17. Many kinds of software •  Middleware •  Embedded •  Open source •  Web Services •  Mobile (eg. applet) •  Data mining (eg. Search engine) •  Agents •  Social software (eg. Web 2.0) •  Software Ecosystems •  …
  • 18. Embedded software •  Within only 30 years the amount of software in cars went from 0 to more than 10,000,000 lines of code •  More than 2000 individual functions are realized or controlled by software in premium cars, today •  50-70% of the development costs of the software/hardware systems are software costs •  (M.Broy, “Challenges in Automotive Software Engineering”, ICSE2006, pp33-42,2006)
  • 19. Embedded software Code Size Evolution of High End TV Software 100000 100000 64000 32000 10000 12000 4096 3000 2048 1000 1024 Kbytes 512 256 100 64 32 16 10 8 4 2 1 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2009 Year of Market Introduction
  • 20. Software as a service Service: the immaterial equivalent of a good •  Software is a service at heart, albeit an automated one, but it is sold much like a manufactured good. Customers have to pay large sums of money up front, bear much of the risk that a program may not work as promised, and cannot readily switch vendors. The Economist, 2003
  • 21. Service oriented architectures •  SOA compose different services for complementary domains •  They are often base on stacks of service layers •  SOA services feature loose coupling that can be “orchestrated” according to some rules of “choreography”
  • 22. Software ecosystems •  A software ecosystem is a set of businesses functioning as a unit and interacting with a shared market for software and services, together with relationships supported by a common technological platform •  Eg: Apple Application Store
  • 24. Software architecture •  The discipline of software architecture is centered on the idea of reducing the design complexity of software systems through abstraction and separation of concerns •  The discipline has developed a number of design styles and patterns that help in designing or integrating software intensive systems •  However, it is hard to find sw architects who agree on the right way to architect a software system •  Wrong decisions in crafting the software architecture are a major cause of project cancellation
  • 25. Software engineering •  Software Engineering is a discipline studying the methods to produce software, the theories at their basis, and the tools effective to develop and measure the qualities of software systems •  Software engineering deals with limited resources •  It is a discipline strongly empirical, that is based on experience and past projects ( Coloro che non conoscono la storia, sono condannati a ripeterla )
  • 26. Main problems •  Methods to analyze and design a software product •  Architectural and design patterns •  Software development processes and their models •  Software development tools and environments •  Economic issues •  Products and process standards
  • 27. Producing software is difficult •  Complexity derives from –  Very fast technical innovation –  Strong international competition –  Psychological issues –  Organizational issues –  Professionals not trained on sw design and development •  Typical failures: bad project management, wrong requirements, mediocre design •  Stakeholders with contrasting interests •  New projects start with high risks, scarcely analyzed
  • 28. Productivity is low •  Analyzing 13.522 sw development projects in USA: –  66% out all projects fail (no useful result) –  82% out all projects need more time than initially planned –  48% out all projects produce products lacking some function required by the customers –  55 G$ wasted in one year Standish Report 2003
  • 29. Standish : 2004 vs 2009
  • 30. Caper Jones on sw project failures •  As to project cancellations, we cover a wider range than Standish Group because they show only IT projects. We include embedded, systems software, web applications, IT, etc. There are some gaps because have no data from the game industry. Our data resembles Standish for IT cancellations, but the embedded and systems worlds are a bit better than the IT world due to more effective quality controls •  10 function points = 1.86% cancels 100 function points = 3.21% 1000 function points = 10.14% 10000 function points = 31.27% 100000 function points = 47.57% •  The canceled projects are usually late and over budget when the plug is pulled. On average a canceled project is about 10% more expensive than a successful project of the same size and type
  • 32. Stakeholders Typical stakeholders in a sw process –  Designers –  Management –  Technicians –  Decisors –  Users –  Funding people –  … Each stakeholder has a specific viewpoint on the product and its development process
  • 33. Process •  Development processes are created and adapted to different project situations •  Both products and processes can be evaluated for their quality •  Software needs several different layers of development process: –  Industrial lifecycle –  Design lifecycle (reqs, build, test) –  Module lifecycle –  Operational lifecycle (eg.: portal)
  • 34. A history of software processes
  • 35. The software process •  Software process: set of roles, activities, and artifacts necessary to create a software product •  Possible roles: designer, developer, tester, maintenance, ecc. •  Possible artifacts: source code, executables, specifications, comments, test suite, etc.
  • 36. Models for the software process •  Waterfall model (planned, linear) •  Spiral model (planned, iterative) •  Agile model (unplanned, user driven)
  • 37. 4+2 views SCM: sw configuration management, ALM: application lifecycle management
  • 38. Activities •  Each organization differs in products it builds and the way it develops them; however, most development processes include: –  Specification –  Design –  Verification and validation –  Evolution •  The development activities must be modeled to be managed and supported by automatic tools
  • 40. Lifecycle differences in the world •  Cusumano in 2003 analyzed 104 sw projects in four areas India Japan US Europe Total Practice / No. of Projects 24 27 31 22 104 Architectural Specification 83.3% 70.4% 54.8% 72.7% 69.2% Functional Specification 95.8% 92.6% 74.2% 81.8% 85.6% Detailed Design 100.0% 85.2% 32.3% 68.2% 69.2% Code Generation 62.5% 40.7% 51.6% 54.5% 51.9% Design Review 100.0% 100.0% 77.4% 77.3% 88.5% Code Review 95.8% 74.1% 71.0% 81.8% 79.8% Subcycles 79.2% 44.4% 54.8% 86.4% 64.4% Beta Testing 66.7% 66.7% 77.4% 81.8% 73.1% Pair Testing 54.2% 44.4% 35.5% 31.8% 41.3% Pair Programming 58.3% 22.2% 35.5% 27.2% 35.3% Daily Builds At the Start 16.7% 22.2% 35.5% 9.1% 22.1% In the Build 12.5% 25.9% 29.0% 27.3% 24.0% At the End 29.2% 37.0% 35.5% 40.9% 35.6% Regression Testing 91.7% 96.3% 71.0% 77.3% 83.7%
  • 42. Productivity differences •  For the same 104 projects Cusumano got the following data: India Japan US Europe Total No. of Projects 24 27 31 22 104 LOC/programmer month 209 469 270 436 374 Defects/KLOC (12 mon. 0.263 0.020 0.400 0.225 0.150 after delivery)
  • 43.
  • 45. Standards •  Many institutions define international product or process standards for the global software industry •  Their goal is usually to improve the quality of software products and their development processes
  • 46. Software standards •  Standard IEEE: development methods •  Standard OMG: UML and CORBA •  Standard W3C: Web technologies •  Standard OASIS: Business Process
  • 47. IEEE Standards on Software •  IEEE 828 - Standard for Glossary of Sw Eng Terminology •  IEEE 830 - Practice for Sw Reqs Specifications •  IEEE 1016 - Practice for Sw Design Descriptions •  IEEE 1012 - Sw Verification and Validation •  IEEE 1062 - Sw Acquisition •  IEEE 1063 - Sw User Documentation •  IEEE 1233 - Developing System Reqs Specifications •  IEEE 12207 - Standard for Sw Life Cycle Processes •  IEEE 1471 - Practice for Architectural Descriptions www.computer.org/standards!
  • 48. Summary •  Software is a business, but it is not like other businesses •  Software products are both the programs and their documentation, included process documentation •  A software process is a set of roles and activities to develop a software product •  Software engineers should use effective tools and methods based on principles scientifically and ethically correct
  • 49. Self test questions •  What categories of “software” you know”? •  What are they differences? •  What are the main problems in the production of software? •  Where can I find a specific paper on a specific software architecture topic?
  • 50. References Textbook: Taylor & Medvidović & Dashofy, Software Architecture: Foundations, Theory, and Practice, Wiley 2009 Additional textbooks: Quian & Fu, Software Architecture and Design Illuminated, Bartlett & Jones 2009 Reekie and McAdam A Software Architecture Primer, 2006
  • 51. References Additional textbook on software engineering: Pressman, Software Engineering, McGraw Hill, 6th ed., 2005 Additional textbook on UML: Arlow & Neustadt, UML2 and Unified Process, McGraw Hill, 2007
  • 52. Journals (via Internet inside UniBo network): IEEE Transactions on Software Engineering ACM Trans. on Sw Engineering and Methodology IEEE Software IEEE Internet Computing (online) Journal of Object Technology www.jot.fm scholar.google.com!
  • 53. Reference web sites Site of the textbook: www.softwarearchitecturebook.com IASA (int. assoc. of sw architects): www.iasahome.org Major web sites: www.sei.cmu.edu/architecture/! www.handbookofsoftwarearchitecture.com! www.bredemeyer.com! Blogs blog.softwarearchitecture.com!