尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare a Scribd company logo
© Ian Sommerville 2018:
Software products
© Ian Sommerville 2018:Software Products
• Software products are generic software systems that provide functionality
that is useful to a range of customers.
• Many different types of products are available from large-scale business
systems (e.g. MS Excel) through personal products (e.g. Evernote) to
simple mobile phone apps and games (e.g. Suduko).
• Software product engineering methods and techniques have evolved
from software engineering techniques that support the development of
one-off, custom software systems.
• Custom software systems are still important for large businesses,
government and public bodies. They are developed in dedicated software
projects.
Software products
3
© Ian Sommerville 2018:Software Products
Figure 1.1 Project-based software engineering
4
Problem
Requirements Software
CUSTOMER
CUSTOMER and
DEVELOPER
DEVELOPER
implemented-by
helps-withgenerates
Figure 1.1 Project-based software engineering
© Ian Sommerville 2018:Software Products
• The starting point for the software development is a set of ‘software
requirements’ that are owned by an external client and which set out
what they want a software system to do to support their business
processes.
• The software is developed by a software company (the contractor) who
design and implement a system that delivers functionality to meet the
requirements.
• The customer may change the requirements at any time in response to
business changes (they usually do). The contractor must change the
software to reflect these requirements changes.
• Custom software usually has a long-lifetime (10 years or more) and it
must be supported over that lifetime.
Project-based software engineering
5
© Ian Sommerville 2018:Software Products
Figure 1.2 Product software engineering
6
Opportunity
Product
features
Software
DEVELOPER
DEVELOPER DEVELOPER
implemented-by
realizesinspires
Figure 1.2 Product software engineering
© Ian Sommerville 2018:Software Products
• The starting point for product development is a business opportunity that
is identified by individuals or a company. They develop a software
product to take advantage of this opportunity and sell this to customers.
• The company who identified the opportunity design and implement a set
of software features that realize the opportunity and that will be useful to
customers.
• The software development company are responsible for deciding on the
development timescale, what features to include and when the product
should change.
• Rapid delivery of software products is essential to capture the market for
that type of product.
Product software engineering
7
© Ian Sommerville 2018:Software Products
Software product line

A set of software products that share a common core. Each member of the
product line includes customer-specific adaptations and additions. Software
product lines may be used to implement a custom system for a customer with
specific needs that can’t be met by a generic product.
Platform

A software (or software+hardware) product that includes functionality so that new
applications can be built on it. An example of a platform that you probably use is
Facebook. It provides an extensive set of product functionality but also provides
support for creating ‘Facebook apps’. These add new features that may be used
by a business or a Facebook interest group.
Table 1.1 Software product lines and platforms
8
© Ian Sommerville 2018:Software Products
• Stand-alone The software executes entirely on the customer’s
computers.
• Hybrid Part of the software’s functionality is implemented on the
customer’s computer but some features are implemented on the product
developer’s servers.
• Software service All of the product’s features are implemented on the
developer’s servers and the customer accesses these through a browser
or a mobile app.
Software execution models
9
© Ian Sommerville 2018:Software Products
Figure 1.3 Software execution models
10
User’s computer
Vendor’s servers
Product updates
User interface
Product functionality
User data
User’s computer
Additional functionality
User data backups
Product updates
User interface
Partial functionality
User data
User’s computer
Product functionality
User data
User interface
(browser or app)
Stand-alone execution Hybrid execution Software as a service
Figure 1.3 Software execution models
Vendor’s servers Vendor’s servers
© Ian Sommerville 2018:Software Products
• The key feature of product development is that there is no external
customer that generates requirements and pays for the software. This is
also true for other types of software development:
• Student projects Individuals or student groups develop software as part of their
course. Given an assignment, they decide what features to include in the
software.
• Research software Researchers develop software to help them answer
questions that are relevant to their research.
• Internal tool development Software developers may develop tools to support
their work - in essence, these are internal products that are not intended for
customer release.
Comparable software development
11
© Ian Sommerville 2018:Software Products
• The starting point for software product development is a ‘product vision’.
• Product visions are simple statements that define the essence of the
product to be developed.
• The product vision should answer three fundamental questions:
• What is the product to be developed?
• Who are the target customers and users?
• Why should customers buy this product?
The product vision
12
© Ian Sommerville 2018:Software Products
• FOR (target customer)
• WHO (statement of the need or opportunity)
• The (PRODUCT NAME) is a (product category)
• THAT (key benefit, compelling reason to buy)
• UNLIKE (primary competitive alternative)
• OUR PRODUCT (statement of primary differentiation)
Moore’s vision template
13
© Ian Sommerville 2018:Software Products
“FOR a mid-sized company's marketing and sales departments WHO
need basic CRM functionality, THE CRM-Innovator is a Web-based
service THAT provides sales tracking, lead generation, and sales
representative support features that improve customer relationships at
critical touch points. UNLIKE other services or package software products,
OUR product provides very capable services at a moderate cost.”
Vision template example
14
© Ian Sommerville 2018:Software Products
Domain experience

The product developers may work in a particular area (say marketing and sales) and
understand the software support that they need. They may be frustrated by the deficiencies
in the software they use and see opportunities for an improved system.
Product experience

Users of existing software (such as word processing software) may see simpler and better
ways of providing comparable functionality and propose a new system that implements this.
New products can take advantage of recent technological developments such as speech
interfaces.
Customer experience

The software developers may have extensive discussions with prospective customers of
the product to understand the problems that they face, constraints, such as interoperability,
that limit their flexibility to buy new software, and the critical attributes of the software that
they need.
Prototyping and playing around

Developers may have an idea for software but need to develop a better understanding of
that idea and what might be involved in developing it into a product. They may develop a
prototype system as an experiment and ‘play around’ with ideas and variations using that
prototype system as a platform.
Table 1.2 Information sources for developing a product vision
15
© Ian Sommerville 2018:Software Products
FOR teachers and educators WHO need a way to help students use web-based
learning resources and applications, THE iLearn system is an open learning
environment THAT allows the set of resources used by classes and students to
be easily configured for these students and classes by teachers themselves.
UNLIKE Virtual Learning Environments, such as Moodle, the focus of iLearn is
the learning process rather than the administration and management of materials,
assessments and coursework. OUR product enables teachers to create subject
and age-specific environments for their students using any web-based resources,
such as videos, simulations and written materials that are appropriate.
Schools and universities are the target customers for the iLearn system as it will
significantly improve the learning experience of students at relatively low cost. It
will collect and process learner analytics that will reduce the costs of progress
tracking and reporting.
Table 1.3 A vision statement for the iLearn system
16
© Ian Sommerville 2018:Software Products
• Software product management is a business activity that focuses on the
software products developed and sold by the business.
• Product managers (PMs) take overall responsibility for the product and
are involved in planning, development and product marketing.
• Product managers are the interface between the organization, its
customers and the software development team. They are involved at all
stages of a product’s lifetime from initial conception through to withdrawal
of the product from the market.
• Product managers must look outward to customers and potential
customers rather than focus on the software being developed.
Software product management
17
© Ian Sommerville 2018:Software Products
Figure 1.4 Product management concerns
18
Business needs
Technology
constraints
Customer
experience
Product
manager
Figure 1.4 Product management concerns
© Ian Sommerville 2018:Software Products
• Business needs PMs have to ensure that the software being developed
meets the business goals of the software development company.
• Technology constraints PMs must make developers aware of
technology issues that are important to customers.
• Customer experience PMs should be in regular contact with customers
and potential customers to understand what they are looking for in a
product, the types of users and their backgrounds and the ways that the
product may be used.
Product management concerns
19
© Ian Sommerville 2018:Software Products
Figure 1.5 Technical interactions of product managers
20
Product
manager
User interface
design
Product vision
management
Product
backlog
management
Acceptance
testing
User stories
and scenarios
Customer
testing
Figure 1.5 Technical interactions of product managers
© Ian Sommerville 2018:Software Products
• Product vision management
• The product manager may be responsible for helping with the development of the
product vision. The should always be responsible for managing the vision, which
involves assessing and evaluating proposed changes against the product vision.
They should ensure that there is no ‘vision drift’
• Product roadmap development
• A product roadmap is a plan for the development, release and marketing of the
software. The PM should lead roadmap development and should be the ultimate
authority in deciding if changes to the roadmap should be made.
• User story and scenario development
• User stories and scenarios are used to refine a product vision and identify
product features. Based on his or her knowledge of customers, the PM should
lead the development of stories and scenarios.
Technical interactions of product managers
21
© Ian Sommerville 2018:Software Products
• Product backlog creation and management
• The product backlog is a prioritized ‘to-do’ list of what has to be developed. PMs should be involved
in creating and refining the backlog and deciding on the priority of product features to be developed.
• Acceptance testing
• Acceptance testing is the process of verifying that a software release meets the goals set out in the
product roadmap and that the product is efficient and reliable. The PM should be involved in
developing tests of the product features that reflect how customers use the product.
• Customer testing
• Customer testing involves taking a release of a product to customers and getting feedback on the
product’s features, usability and business. PMs are involved in selecting customers to be involved in
the customer testing process and working with them during that process.
• User interface design
• Product managers should understand user limitations and act as surrogate users in their interactions
with the development team. They should evaluate user interface features as they are developed to
check that these features are not unnecessarily complex or force users to work in an unnatural way.
Technical interactions of product managers
22
© Ian Sommerville 2018:Software Products
• Product prototyping is the process of developing an early version of a product
to test your ideas and to convince yourself and company funders that your
product has real market potential.
• You may be able to write an inspiring product vision, but your potential users can only
really relate to your product when they see a working version of your software. They can
point out what they like and don’t like about it and make suggestions for new features.
• A prototype may be also used to help identify fundamental software components or
services and to test technology.
• Building a prototype should be the first thing that you do when developing a
software product. Your aim should be to have a working version of your
software that can be used to demonstrate its key features.
• You should always plan to throw-away the prototype after development and to
re-implement the software, taking account of issues such as security and
reliability.
Product prototyping
23
© Ian Sommerville 2018:Software Products
• Feasibility demonstration You create an executable system that
demonstrates the new ideas in your product. The aims at this stage are
to see if your ideas actually work and to show funders and/or company
management the original product features that are better than those in
competing products.
• Customer demonstration You take an existing prototype created to
demonstrate feasibility and extend this with your ideas for specific
customer features and how these can be realized. Before you develop
this type of prototype, you need to do some user studies and have a
clearer idea of your potential users and scenarios of use.
Two-stage prototyping
24
© Ian Sommerville 2018:Software Products
• Software products are software systems that include general functionality that is likely
to be useful to a wide range of customers.
• In product software engineering, the same company is responsible for deciding on the
features that should be part of the product and the implementation of these features.
• Software products may be delivered as stand-alone systems running on the
customer’s computers, hybrid systems or service-based systems. In hybrid systems,
some features are implemented locally and others are accessed over the Internet. All
product features are remotely accessed in service-based products.
• A product vision should succinctly describe what is to be developed, who are the
target customers for the product and why they should buy the product that you are
developing.
• Domain experience, product experience, customer experience and an experimental
software prototype may all contribute to the development of the product vision.
Key points 1
25
© Ian Sommerville 2018:Software Products
• Key responsibilities of product managers are product vision ownership,
product roadmap development, creating user stories and the product
backlog, customer and acceptance testing and user interface design.
• Product managers work at the interface between the business, the
software development team and the product customers. They facilitate
communications between these groups.
• You should always develop a product prototype to refine your own ideas
and to demonstrate the planned product features to potential customers
Key points 2
26

More Related Content

What's hot

Requirements engineering for agile methods
Requirements engineering for agile methodsRequirements engineering for agile methods
Requirements engineering for agile methods
Syed Zaid Irshad
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
swatisinghal
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
Muhammad Asim
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
Rajeev Sharan
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4
Siddharth Ayer
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
Zahoorali Khan
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
Charotar University Of Science And Technology,Gujrat
 
Exploring GOMs
Exploring GOMsExploring GOMs
Exploring GOMs
jbellWCT
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
NayyabMirTahir
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
Abdul Basit
 
#1 formal methods – introduction for software engineering
#1 formal methods – introduction for software engineering#1 formal methods – introduction for software engineering
#1 formal methods – introduction for software engineering
Sharif Omar Salem
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
Simran Kaur
 
Engineering Software Products: 8. Reliable programming
Engineering Software Products: 8. Reliable programmingEngineering Software Products: 8. Reliable programming
Engineering Software Products: 8. Reliable programming
software-engineering-book
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
Bala Ganesh
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
Hitesh Mohapatra
 
USER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTUSER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPT
vicci4041
 
Software evolution and maintenance basic concepts and preliminaries
Software evolution and maintenance   basic concepts and preliminariesSoftware evolution and maintenance   basic concepts and preliminaries
Software evolution and maintenance basic concepts and preliminaries
Moutasm Tamimi
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project management
jhudyne
 
Ch22-Software Engineering 9
Ch22-Software Engineering 9Ch22-Software Engineering 9
Ch22-Software Engineering 9
Ian Sommerville
 
Software quality
Software qualitySoftware quality
Software quality
Sara Mehmood
 

What's hot (20)

Requirements engineering for agile methods
Requirements engineering for agile methodsRequirements engineering for agile methods
Requirements engineering for agile methods
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Exploring GOMs
Exploring GOMsExploring GOMs
Exploring GOMs
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
 
#1 formal methods – introduction for software engineering
#1 formal methods – introduction for software engineering#1 formal methods – introduction for software engineering
#1 formal methods – introduction for software engineering
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Engineering Software Products: 8. Reliable programming
Engineering Software Products: 8. Reliable programmingEngineering Software Products: 8. Reliable programming
Engineering Software Products: 8. Reliable programming
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
USER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTUSER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPT
 
Software evolution and maintenance basic concepts and preliminaries
Software evolution and maintenance   basic concepts and preliminariesSoftware evolution and maintenance   basic concepts and preliminaries
Software evolution and maintenance basic concepts and preliminaries
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project management
 
Ch22-Software Engineering 9
Ch22-Software Engineering 9Ch22-Software Engineering 9
Ch22-Software Engineering 9
 
Software quality
Software qualitySoftware quality
Software quality
 

Similar to Engineering Software Products: 1. software products

How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...
christiemarie4
 
Application software
Application softwareApplication software
Application software
SHAHZEEN SYED
 
best-practices-to-develop-software-applications-for-startups- cuneiform.pdf
best-practices-to-develop-software-applications-for-startups- cuneiform.pdfbest-practices-to-develop-software-applications-for-startups- cuneiform.pdf
best-practices-to-develop-software-applications-for-startups- cuneiform.pdf
Cuneiform Consulting Pvt Ltd.
 
Extrasensory: Marketing Plan For A New Android App
Extrasensory: Marketing Plan For A New Android AppExtrasensory: Marketing Plan For A New Android App
Extrasensory: Marketing Plan For A New Android App
Sumiran Mittal
 
Software Industry
Software Industry Software Industry
Software Industry
polipellyyashaswi
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptx
Godwin Monserate
 
Custom Mobile App Development
Custom Mobile App DevelopmentCustom Mobile App Development
Custom Mobile App Development
AppsterHQ News
 
Mobile App Development V_S Software Development_ 7 Key Differences.pdf
Mobile App Development V_S Software Development_ 7 Key Differences.pdfMobile App Development V_S Software Development_ 7 Key Differences.pdf
Mobile App Development V_S Software Development_ 7 Key Differences.pdf
Polyxer Systems
 
Mobile App Development Vs Software Development 7 Key Differences
Mobile App Development Vs Software Development 7 Key DifferencesMobile App Development Vs Software Development 7 Key Differences
Mobile App Development Vs Software Development 7 Key Differences
Polyxer Systems
 
Choosing the Best Mobile App Development Company.pdf
Choosing the Best Mobile App Development Company.pdfChoosing the Best Mobile App Development Company.pdf
Choosing the Best Mobile App Development Company.pdf
Sapco IOT Pvt. Ltd
 
how to choose right mobile app development tools
how to choose right mobile app development toolshow to choose right mobile app development tools
how to choose right mobile app development tools
Cuneiform Consulting Pvt Ltd.
 
What are the Best Practices for Enterprise Software Applications?
What are the Best Practices for Enterprise Software Applications?What are the Best Practices for Enterprise Software Applications?
What are the Best Practices for Enterprise Software Applications?
BoTree Technologies
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1
Samura Daniel
 
Processus de Développement des Apps Mobiles
Processus de Développement des Apps MobilesProcessus de Développement des Apps Mobiles
Processus de Développement des Apps Mobiles
YounesAbderrahmane
 
Designing A Brand Market Analysis
Designing A Brand Market AnalysisDesigning A Brand Market Analysis
Designing A Brand Market Analysis
Olga Bautista
 
Software Product Management
Software Product ManagementSoftware Product Management
Software Product Management
Rajeev Misra
 
Software Product and Software Process
Software Product and Software ProcessSoftware Product and Software Process
Software Product and Software Process
ShouvikDhali
 
MVP Recipes for startups MVP Recipes for startups
MVP Recipes for startups MVP Recipes for startupsMVP Recipes for startups MVP Recipes for startups
MVP Recipes for startups MVP Recipes for startups
PallabHowlader
 
New Microsoft Word Document.docx
New Microsoft Word Document.docxNew Microsoft Word Document.docx
New Microsoft Word Document.docx
AbelAdisu
 
Best Practices for Mobility
Best Practices for Mobility Best Practices for Mobility
Best Practices for Mobility
RapidValue
 

Similar to Engineering Software Products: 1. software products (20)

How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...
 
Application software
Application softwareApplication software
Application software
 
best-practices-to-develop-software-applications-for-startups- cuneiform.pdf
best-practices-to-develop-software-applications-for-startups- cuneiform.pdfbest-practices-to-develop-software-applications-for-startups- cuneiform.pdf
best-practices-to-develop-software-applications-for-startups- cuneiform.pdf
 
Extrasensory: Marketing Plan For A New Android App
Extrasensory: Marketing Plan For A New Android AppExtrasensory: Marketing Plan For A New Android App
Extrasensory: Marketing Plan For A New Android App
 
Software Industry
Software Industry Software Industry
Software Industry
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptx
 
Custom Mobile App Development
Custom Mobile App DevelopmentCustom Mobile App Development
Custom Mobile App Development
 
Mobile App Development V_S Software Development_ 7 Key Differences.pdf
Mobile App Development V_S Software Development_ 7 Key Differences.pdfMobile App Development V_S Software Development_ 7 Key Differences.pdf
Mobile App Development V_S Software Development_ 7 Key Differences.pdf
 
Mobile App Development Vs Software Development 7 Key Differences
Mobile App Development Vs Software Development 7 Key DifferencesMobile App Development Vs Software Development 7 Key Differences
Mobile App Development Vs Software Development 7 Key Differences
 
Choosing the Best Mobile App Development Company.pdf
Choosing the Best Mobile App Development Company.pdfChoosing the Best Mobile App Development Company.pdf
Choosing the Best Mobile App Development Company.pdf
 
how to choose right mobile app development tools
how to choose right mobile app development toolshow to choose right mobile app development tools
how to choose right mobile app development tools
 
What are the Best Practices for Enterprise Software Applications?
What are the Best Practices for Enterprise Software Applications?What are the Best Practices for Enterprise Software Applications?
What are the Best Practices for Enterprise Software Applications?
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1
 
Processus de Développement des Apps Mobiles
Processus de Développement des Apps MobilesProcessus de Développement des Apps Mobiles
Processus de Développement des Apps Mobiles
 
Designing A Brand Market Analysis
Designing A Brand Market AnalysisDesigning A Brand Market Analysis
Designing A Brand Market Analysis
 
Software Product Management
Software Product ManagementSoftware Product Management
Software Product Management
 
Software Product and Software Process
Software Product and Software ProcessSoftware Product and Software Process
Software Product and Software Process
 
MVP Recipes for startups MVP Recipes for startups
MVP Recipes for startups MVP Recipes for startupsMVP Recipes for startups MVP Recipes for startups
MVP Recipes for startups MVP Recipes for startups
 
New Microsoft Word Document.docx
New Microsoft Word Document.docxNew Microsoft Word Document.docx
New Microsoft Word Document.docx
 
Best Practices for Mobility
Best Practices for Mobility Best Practices for Mobility
Best Practices for Mobility
 

More from software-engineering-book

Engineering Software Products: 7. security and privacy
Engineering Software Products: 7. security and privacyEngineering Software Products: 7. security and privacy
Engineering Software Products: 7. security and privacy
software-engineering-book
 
Engineering Software Products: 4. software architecture
Engineering Software Products: 4. software architectureEngineering Software Products: 4. software architecture
Engineering Software Products: 4. software architecture
software-engineering-book
 
Engineering Software Products: 3. features, scenarios and stories
Engineering Software Products: 3. features, scenarios and storiesEngineering Software Products: 3. features, scenarios and stories
Engineering Software Products: 3. features, scenarios and stories
software-engineering-book
 
Ch25 configuration management
Ch25 configuration managementCh25 configuration management
Ch25 configuration management
software-engineering-book
 
Ch24 quality management
Ch24 quality managementCh24 quality management
Ch24 quality management
software-engineering-book
 
Ch23 project planning
Ch23 project planningCh23 project planning
Ch23 project planning
software-engineering-book
 
Ch22 project management
Ch22 project managementCh22 project management
Ch22 project management
software-engineering-book
 
Ch21 real time software engineering
Ch21 real time software engineeringCh21 real time software engineering
Ch21 real time software engineering
software-engineering-book
 
Ch20 systems of systems
Ch20 systems of systemsCh20 systems of systems
Ch20 systems of systems
software-engineering-book
 
Ch19 systems engineering
Ch19 systems engineeringCh19 systems engineering
Ch19 systems engineering
software-engineering-book
 
Ch18 service oriented software engineering
Ch18 service oriented software engineeringCh18 service oriented software engineering
Ch18 service oriented software engineering
software-engineering-book
 
Ch17 distributed software engineering
Ch17 distributed software engineeringCh17 distributed software engineering
Ch17 distributed software engineering
software-engineering-book
 
Ch16 component based software engineering
Ch16 component based software engineeringCh16 component based software engineering
Ch16 component based software engineering
software-engineering-book
 
Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
software-engineering-book
 
Ch14 resilience engineering
Ch14 resilience engineeringCh14 resilience engineering
Ch14 resilience engineering
software-engineering-book
 
Ch13 security engineering
Ch13 security engineeringCh13 security engineering
Ch13 security engineering
software-engineering-book
 
Ch12 safety engineering
Ch12 safety engineeringCh12 safety engineering
Ch12 safety engineering
software-engineering-book
 
Ch11 reliability engineering
Ch11 reliability engineeringCh11 reliability engineering
Ch11 reliability engineering
software-engineering-book
 
Ch10 dependable systems
Ch10 dependable systemsCh10 dependable systems
Ch10 dependable systems
software-engineering-book
 
Ch9 evolution
Ch9 evolutionCh9 evolution

More from software-engineering-book (20)

Engineering Software Products: 7. security and privacy
Engineering Software Products: 7. security and privacyEngineering Software Products: 7. security and privacy
Engineering Software Products: 7. security and privacy
 
Engineering Software Products: 4. software architecture
Engineering Software Products: 4. software architectureEngineering Software Products: 4. software architecture
Engineering Software Products: 4. software architecture
 
Engineering Software Products: 3. features, scenarios and stories
Engineering Software Products: 3. features, scenarios and storiesEngineering Software Products: 3. features, scenarios and stories
Engineering Software Products: 3. features, scenarios and stories
 
Ch25 configuration management
Ch25 configuration managementCh25 configuration management
Ch25 configuration management
 
Ch24 quality management
Ch24 quality managementCh24 quality management
Ch24 quality management
 
Ch23 project planning
Ch23 project planningCh23 project planning
Ch23 project planning
 
Ch22 project management
Ch22 project managementCh22 project management
Ch22 project management
 
Ch21 real time software engineering
Ch21 real time software engineeringCh21 real time software engineering
Ch21 real time software engineering
 
Ch20 systems of systems
Ch20 systems of systemsCh20 systems of systems
Ch20 systems of systems
 
Ch19 systems engineering
Ch19 systems engineeringCh19 systems engineering
Ch19 systems engineering
 
Ch18 service oriented software engineering
Ch18 service oriented software engineeringCh18 service oriented software engineering
Ch18 service oriented software engineering
 
Ch17 distributed software engineering
Ch17 distributed software engineeringCh17 distributed software engineering
Ch17 distributed software engineering
 
Ch16 component based software engineering
Ch16 component based software engineeringCh16 component based software engineering
Ch16 component based software engineering
 
Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
 
Ch14 resilience engineering
Ch14 resilience engineeringCh14 resilience engineering
Ch14 resilience engineering
 
Ch13 security engineering
Ch13 security engineeringCh13 security engineering
Ch13 security engineering
 
Ch12 safety engineering
Ch12 safety engineeringCh12 safety engineering
Ch12 safety engineering
 
Ch11 reliability engineering
Ch11 reliability engineeringCh11 reliability engineering
Ch11 reliability engineering
 
Ch10 dependable systems
Ch10 dependable systemsCh10 dependable systems
Ch10 dependable systems
 
Ch9 evolution
Ch9 evolutionCh9 evolution
Ch9 evolution
 

Recently uploaded

APJC Introduction to ThousandEyes Webinar
APJC Introduction to ThousandEyes WebinarAPJC Introduction to ThousandEyes Webinar
APJC Introduction to ThousandEyes Webinar
ThousandEyes
 
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc
 
intra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_Enintra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_En
NTTDATA INTRAMART
 
Cyber Recovery Wargame
Cyber Recovery WargameCyber Recovery Wargame
Cyber Recovery Wargame
Databarracks
 
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDBScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
ScyllaDB Real-Time Event Processing with CDC
ScyllaDB Real-Time Event Processing with CDCScyllaDB Real-Time Event Processing with CDC
ScyllaDB Real-Time Event Processing with CDC
ScyllaDB
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
manji sharman06
 
CTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database MigrationCTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database Migration
ScyllaDB
 
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
dipikamodels1
 
So You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental DowntimeSo You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental Downtime
ScyllaDB
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
Larry Smarr
 
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
anilsa9823
 
Building a Semantic Layer of your Data Platform
Building a Semantic Layer of your Data PlatformBuilding a Semantic Layer of your Data Platform
Building a Semantic Layer of your Data Platform
Enterprise Knowledge
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
AlexanderRichford
 
Day 4 - Excel Automation and Data Manipulation
Day 4 - Excel Automation and Data ManipulationDay 4 - Excel Automation and Data Manipulation
Day 4 - Excel Automation and Data Manipulation
UiPathCommunity
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
Tobias Schneck
 
ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes New Product Features and Release Highlights: June 2024ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes
 
Discover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched ContentDiscover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched Content
ScyllaDB
 
Communications Mining Series - Zero to Hero - Session 2
Communications Mining Series - Zero to Hero - Session 2Communications Mining Series - Zero to Hero - Session 2
Communications Mining Series - Zero to Hero - Session 2
DianaGray10
 

Recently uploaded (20)

APJC Introduction to ThousandEyes Webinar
APJC Introduction to ThousandEyes WebinarAPJC Introduction to ThousandEyes Webinar
APJC Introduction to ThousandEyes Webinar
 
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
 
intra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_Enintra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_En
 
Cyber Recovery Wargame
Cyber Recovery WargameCyber Recovery Wargame
Cyber Recovery Wargame
 
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDBScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
ScyllaDB Real-Time Event Processing with CDC
ScyllaDB Real-Time Event Processing with CDCScyllaDB Real-Time Event Processing with CDC
ScyllaDB Real-Time Event Processing with CDC
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
 
CTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database MigrationCTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database Migration
 
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
 
So You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental DowntimeSo You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental Downtime
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
 
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
 
Building a Semantic Layer of your Data Platform
Building a Semantic Layer of your Data PlatformBuilding a Semantic Layer of your Data Platform
Building a Semantic Layer of your Data Platform
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
 
Day 4 - Excel Automation and Data Manipulation
Day 4 - Excel Automation and Data ManipulationDay 4 - Excel Automation and Data Manipulation
Day 4 - Excel Automation and Data Manipulation
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
 
ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes New Product Features and Release Highlights: June 2024ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes New Product Features and Release Highlights: June 2024
 
Discover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched ContentDiscover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched Content
 
Communications Mining Series - Zero to Hero - Session 2
Communications Mining Series - Zero to Hero - Session 2Communications Mining Series - Zero to Hero - Session 2
Communications Mining Series - Zero to Hero - Session 2
 

Engineering Software Products: 1. software products

  • 1. © Ian Sommerville 2018: Software products
  • 2. © Ian Sommerville 2018:Software Products • Software products are generic software systems that provide functionality that is useful to a range of customers. • Many different types of products are available from large-scale business systems (e.g. MS Excel) through personal products (e.g. Evernote) to simple mobile phone apps and games (e.g. Suduko). • Software product engineering methods and techniques have evolved from software engineering techniques that support the development of one-off, custom software systems. • Custom software systems are still important for large businesses, government and public bodies. They are developed in dedicated software projects. Software products 3
  • 3. © Ian Sommerville 2018:Software Products Figure 1.1 Project-based software engineering 4 Problem Requirements Software CUSTOMER CUSTOMER and DEVELOPER DEVELOPER implemented-by helps-withgenerates Figure 1.1 Project-based software engineering
  • 4. © Ian Sommerville 2018:Software Products • The starting point for the software development is a set of ‘software requirements’ that are owned by an external client and which set out what they want a software system to do to support their business processes. • The software is developed by a software company (the contractor) who design and implement a system that delivers functionality to meet the requirements. • The customer may change the requirements at any time in response to business changes (they usually do). The contractor must change the software to reflect these requirements changes. • Custom software usually has a long-lifetime (10 years or more) and it must be supported over that lifetime. Project-based software engineering 5
  • 5. © Ian Sommerville 2018:Software Products Figure 1.2 Product software engineering 6 Opportunity Product features Software DEVELOPER DEVELOPER DEVELOPER implemented-by realizesinspires Figure 1.2 Product software engineering
  • 6. © Ian Sommerville 2018:Software Products • The starting point for product development is a business opportunity that is identified by individuals or a company. They develop a software product to take advantage of this opportunity and sell this to customers. • The company who identified the opportunity design and implement a set of software features that realize the opportunity and that will be useful to customers. • The software development company are responsible for deciding on the development timescale, what features to include and when the product should change. • Rapid delivery of software products is essential to capture the market for that type of product. Product software engineering 7
  • 7. © Ian Sommerville 2018:Software Products Software product line
 A set of software products that share a common core. Each member of the product line includes customer-specific adaptations and additions. Software product lines may be used to implement a custom system for a customer with specific needs that can’t be met by a generic product. Platform
 A software (or software+hardware) product that includes functionality so that new applications can be built on it. An example of a platform that you probably use is Facebook. It provides an extensive set of product functionality but also provides support for creating ‘Facebook apps’. These add new features that may be used by a business or a Facebook interest group. Table 1.1 Software product lines and platforms 8
  • 8. © Ian Sommerville 2018:Software Products • Stand-alone The software executes entirely on the customer’s computers. • Hybrid Part of the software’s functionality is implemented on the customer’s computer but some features are implemented on the product developer’s servers. • Software service All of the product’s features are implemented on the developer’s servers and the customer accesses these through a browser or a mobile app. Software execution models 9
  • 9. © Ian Sommerville 2018:Software Products Figure 1.3 Software execution models 10 User’s computer Vendor’s servers Product updates User interface Product functionality User data User’s computer Additional functionality User data backups Product updates User interface Partial functionality User data User’s computer Product functionality User data User interface (browser or app) Stand-alone execution Hybrid execution Software as a service Figure 1.3 Software execution models Vendor’s servers Vendor’s servers
  • 10. © Ian Sommerville 2018:Software Products • The key feature of product development is that there is no external customer that generates requirements and pays for the software. This is also true for other types of software development: • Student projects Individuals or student groups develop software as part of their course. Given an assignment, they decide what features to include in the software. • Research software Researchers develop software to help them answer questions that are relevant to their research. • Internal tool development Software developers may develop tools to support their work - in essence, these are internal products that are not intended for customer release. Comparable software development 11
  • 11. © Ian Sommerville 2018:Software Products • The starting point for software product development is a ‘product vision’. • Product visions are simple statements that define the essence of the product to be developed. • The product vision should answer three fundamental questions: • What is the product to be developed? • Who are the target customers and users? • Why should customers buy this product? The product vision 12
  • 12. © Ian Sommerville 2018:Software Products • FOR (target customer) • WHO (statement of the need or opportunity) • The (PRODUCT NAME) is a (product category) • THAT (key benefit, compelling reason to buy) • UNLIKE (primary competitive alternative) • OUR PRODUCT (statement of primary differentiation) Moore’s vision template 13
  • 13. © Ian Sommerville 2018:Software Products “FOR a mid-sized company's marketing and sales departments WHO need basic CRM functionality, THE CRM-Innovator is a Web-based service THAT provides sales tracking, lead generation, and sales representative support features that improve customer relationships at critical touch points. UNLIKE other services or package software products, OUR product provides very capable services at a moderate cost.” Vision template example 14
  • 14. © Ian Sommerville 2018:Software Products Domain experience
 The product developers may work in a particular area (say marketing and sales) and understand the software support that they need. They may be frustrated by the deficiencies in the software they use and see opportunities for an improved system. Product experience
 Users of existing software (such as word processing software) may see simpler and better ways of providing comparable functionality and propose a new system that implements this. New products can take advantage of recent technological developments such as speech interfaces. Customer experience
 The software developers may have extensive discussions with prospective customers of the product to understand the problems that they face, constraints, such as interoperability, that limit their flexibility to buy new software, and the critical attributes of the software that they need. Prototyping and playing around
 Developers may have an idea for software but need to develop a better understanding of that idea and what might be involved in developing it into a product. They may develop a prototype system as an experiment and ‘play around’ with ideas and variations using that prototype system as a platform. Table 1.2 Information sources for developing a product vision 15
  • 15. © Ian Sommerville 2018:Software Products FOR teachers and educators WHO need a way to help students use web-based learning resources and applications, THE iLearn system is an open learning environment THAT allows the set of resources used by classes and students to be easily configured for these students and classes by teachers themselves. UNLIKE Virtual Learning Environments, such as Moodle, the focus of iLearn is the learning process rather than the administration and management of materials, assessments and coursework. OUR product enables teachers to create subject and age-specific environments for their students using any web-based resources, such as videos, simulations and written materials that are appropriate. Schools and universities are the target customers for the iLearn system as it will significantly improve the learning experience of students at relatively low cost. It will collect and process learner analytics that will reduce the costs of progress tracking and reporting. Table 1.3 A vision statement for the iLearn system 16
  • 16. © Ian Sommerville 2018:Software Products • Software product management is a business activity that focuses on the software products developed and sold by the business. • Product managers (PMs) take overall responsibility for the product and are involved in planning, development and product marketing. • Product managers are the interface between the organization, its customers and the software development team. They are involved at all stages of a product’s lifetime from initial conception through to withdrawal of the product from the market. • Product managers must look outward to customers and potential customers rather than focus on the software being developed. Software product management 17
  • 17. © Ian Sommerville 2018:Software Products Figure 1.4 Product management concerns 18 Business needs Technology constraints Customer experience Product manager Figure 1.4 Product management concerns
  • 18. © Ian Sommerville 2018:Software Products • Business needs PMs have to ensure that the software being developed meets the business goals of the software development company. • Technology constraints PMs must make developers aware of technology issues that are important to customers. • Customer experience PMs should be in regular contact with customers and potential customers to understand what they are looking for in a product, the types of users and their backgrounds and the ways that the product may be used. Product management concerns 19
  • 19. © Ian Sommerville 2018:Software Products Figure 1.5 Technical interactions of product managers 20 Product manager User interface design Product vision management Product backlog management Acceptance testing User stories and scenarios Customer testing Figure 1.5 Technical interactions of product managers
  • 20. © Ian Sommerville 2018:Software Products • Product vision management • The product manager may be responsible for helping with the development of the product vision. The should always be responsible for managing the vision, which involves assessing and evaluating proposed changes against the product vision. They should ensure that there is no ‘vision drift’ • Product roadmap development • A product roadmap is a plan for the development, release and marketing of the software. The PM should lead roadmap development and should be the ultimate authority in deciding if changes to the roadmap should be made. • User story and scenario development • User stories and scenarios are used to refine a product vision and identify product features. Based on his or her knowledge of customers, the PM should lead the development of stories and scenarios. Technical interactions of product managers 21
  • 21. © Ian Sommerville 2018:Software Products • Product backlog creation and management • The product backlog is a prioritized ‘to-do’ list of what has to be developed. PMs should be involved in creating and refining the backlog and deciding on the priority of product features to be developed. • Acceptance testing • Acceptance testing is the process of verifying that a software release meets the goals set out in the product roadmap and that the product is efficient and reliable. The PM should be involved in developing tests of the product features that reflect how customers use the product. • Customer testing • Customer testing involves taking a release of a product to customers and getting feedback on the product’s features, usability and business. PMs are involved in selecting customers to be involved in the customer testing process and working with them during that process. • User interface design • Product managers should understand user limitations and act as surrogate users in their interactions with the development team. They should evaluate user interface features as they are developed to check that these features are not unnecessarily complex or force users to work in an unnatural way. Technical interactions of product managers 22
  • 22. © Ian Sommerville 2018:Software Products • Product prototyping is the process of developing an early version of a product to test your ideas and to convince yourself and company funders that your product has real market potential. • You may be able to write an inspiring product vision, but your potential users can only really relate to your product when they see a working version of your software. They can point out what they like and don’t like about it and make suggestions for new features. • A prototype may be also used to help identify fundamental software components or services and to test technology. • Building a prototype should be the first thing that you do when developing a software product. Your aim should be to have a working version of your software that can be used to demonstrate its key features. • You should always plan to throw-away the prototype after development and to re-implement the software, taking account of issues such as security and reliability. Product prototyping 23
  • 23. © Ian Sommerville 2018:Software Products • Feasibility demonstration You create an executable system that demonstrates the new ideas in your product. The aims at this stage are to see if your ideas actually work and to show funders and/or company management the original product features that are better than those in competing products. • Customer demonstration You take an existing prototype created to demonstrate feasibility and extend this with your ideas for specific customer features and how these can be realized. Before you develop this type of prototype, you need to do some user studies and have a clearer idea of your potential users and scenarios of use. Two-stage prototyping 24
  • 24. © Ian Sommerville 2018:Software Products • Software products are software systems that include general functionality that is likely to be useful to a wide range of customers. • In product software engineering, the same company is responsible for deciding on the features that should be part of the product and the implementation of these features. • Software products may be delivered as stand-alone systems running on the customer’s computers, hybrid systems or service-based systems. In hybrid systems, some features are implemented locally and others are accessed over the Internet. All product features are remotely accessed in service-based products. • A product vision should succinctly describe what is to be developed, who are the target customers for the product and why they should buy the product that you are developing. • Domain experience, product experience, customer experience and an experimental software prototype may all contribute to the development of the product vision. Key points 1 25
  • 25. © Ian Sommerville 2018:Software Products • Key responsibilities of product managers are product vision ownership, product roadmap development, creating user stories and the product backlog, customer and acceptance testing and user interface design. • Product managers work at the interface between the business, the software development team and the product customers. They facilitate communications between these groups. • You should always develop a product prototype to refine your own ideas and to demonstrate the planned product features to potential customers Key points 2 26
  翻译: