SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
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
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
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
Questions
•  What is “software architecture”?
•  What is a “service oriented architecture”?
•  What are the main problems in software
   architecting?
•  What is an architecture-centered software
   process?
•  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?

Weitere ähnliche Inhalte

Was ist angesagt?

[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionHenry Muccini
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_kIBM
 
Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Developmenttyrantbrian
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software ArchitectureLars-Erik Kindblad
 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributesFrank Gielen
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)Amin Bandeali
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design Arslan Anwar
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Software architecture also needs agile
Software architecture also needs agileSoftware architecture also needs agile
Software architecture also needs agileBoyan Mihaylov
 
RSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value FeaturesRSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value FeaturesRoger Snook
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_linesMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
Model-Driven Development, the end of the test profession?
Model-Driven Development, the end of the test profession?Model-Driven Development, the end of the test profession?
Model-Driven Development, the end of the test profession?Johan den Haan
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsGanesh Samarthyam
 

Was ist angesagt? (20)

[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k
 
Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Development
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributes
 
Unit2
Unit2Unit2
Unit2
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Software architecture also needs agile
Software architecture also needs agileSoftware architecture also needs agile
Software architecture also needs agile
 
RSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value FeaturesRSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value Features
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
Model-Driven Development, the end of the test profession?
Model-Driven Development, the end of the test profession?Model-Driven Development, the end of the test profession?
Model-Driven Development, the end of the test profession?
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
 
L02 Architecture
L02 ArchitectureL02 Architecture
L02 Architecture
 

Andere mochten auch

21 security and_trust
21 security and_trust21 security and_trust
21 security and_trustMajong DevJfu
 
19 designing for_nf_ps
19 designing for_nf_ps19 designing for_nf_ps
19 designing for_nf_psMajong DevJfu
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniquesMajong DevJfu
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sandMajong DevJfu
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobilityMajong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 
23 intro to_dsse
23 intro to_dsse23 intro to_dsse
23 intro to_dsseMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 

Andere mochten auch (16)

21 security and_trust
21 security and_trust21 security and_trust
21 security and_trust
 
19 designing for_nf_ps
19 designing for_nf_ps19 designing for_nf_ps
19 designing for_nf_ps
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniques
 
2
22
2
 
6
66
6
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobility
 
5
55
5
 
Uml2
Uml2Uml2
Uml2
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
23 intro to_dsse
23 intro to_dsse23 intro to_dsse
23 intro to_dsse
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
26 standards
26 standards26 standards
26 standards
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 

Ähnlich wie 1

Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...GaytriMate
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
Software Engineering in 6 hours of knowledge gate
Software Engineering in 6 hours of knowledge gateSoftware Engineering in 6 hours of knowledge gate
Software Engineering in 6 hours of knowledge gateabhinav23479
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdfssuser2d043c
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03YousefYassin5
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdfJayanthi Kannan MK
 
Unit 1.pdf
Unit 1.pdfUnit 1.pdf
Unit 1.pdfdsffdfddv
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyMohamed Shahpoup
 
1 introduction
1 introduction1 introduction
1 introductionAyesha Bhatti
 
1 introduction (1)
1 introduction (1)1 introduction (1)
1 introduction (1)Ayesha Bhatti
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentZahid Hussain
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxomgadekar25
 

Ähnlich wie 1 (20)

Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
Software Engineering in 6 hours of knowledge gate
Software Engineering in 6 hours of knowledge gateSoftware Engineering in 6 hours of knowledge gate
Software Engineering in 6 hours of knowledge gate
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
 
Unit 1.pdf
Unit 1.pdfUnit 1.pdf
Unit 1.pdf
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT Academy
 
SE
SESE
SE
 
1 introduction
1 introduction1 introduction
1 introduction
 
1 introduction (1)
1 introduction (1)1 introduction (1)
1 introduction (1)
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
 
lect1.pdf
lect1.pdflect1.pdf
lect1.pdf
 

Mehr von Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong 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
 
18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2Majong DevJfu
 
17 applied architectures
17 applied architectures17 applied architectures
17 applied architecturesMajong DevJfu
 
16 implementation techniques
16 implementation techniques16 implementation techniques
16 implementation techniquesMajong DevJfu
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architecturesMajong DevJfu
 

Mehr von Majong DevJfu (7)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
3
33
3
 
18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2
 
17 applied architectures
17 applied architectures17 applied architectures
17 applied architectures
 
16 implementation techniques
16 implementation techniques16 implementation techniques
16 implementation techniques
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architectures
 

KĂźrzlich hochgeladen

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

KĂźrzlich hochgeladen (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

1

  • 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)
  • 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
  • 31. 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
  • 32. 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)
  • 33. A history of software processes
  • 34. 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.
  • 35. Models for the software process •  Waterfall model (planned, linear) •  Spiral model (planned, iterative) •  Agile model (unplanned, user driven)
  • 36. 4+2 views SCM: sw configuration management, ALM: application lifecycle management
  • 37. 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
  • 39. 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%
  • 41. 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)
  • 42.
  • 44. 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
  • 45. Software standards •  Standard IEEE: development methods •  Standard OMG: UML and CORBA •  Standard W3C: Web technologies •  Standard OASIS: Business Process
  • 46. 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!
  • 47. 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
  • 48. Questions •  What is “software architecture”? •  What is a “service oriented architecture”? •  What are the main problems in software architecting? •  What is an architecture-centered software process? •  Where can I find a specific paper on a specific software architecture topic?
  • 49. 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
  • 50. 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
  • 51. 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!
  • 52. 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!