Software Products
Software Products
inženjering
Software products
• Course staff
• Darijo Raca and Amina Tanković
• Organization
• Activites
• Project
• Documentation and presentation: 40 + 10 points
• Literature
• Ian Sommerville, “Engineering Software Products: An Introduction to
Modern Software Engineering”, Pearson, 2019
Software
© Ian Sommerville 2018:
Products
Software products
Software
© Ian Sommerville 2018: 3
Products
Figure 1.1 Project-based software engineering
Software
© Ian Sommerville 2018: 4
Products
Project-based software engineering
Software
© Ian Sommerville 2018: 5
Products
Figure 1.2 Product software engineering
Software
© Ian Sommerville 2018: 6
Products
Product software engineering
• 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.
Software
© Ian Sommerville 2018: 7
Products
Table 1.1 Software product lines and platforms
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.
Software
© Ian Sommerville 2018: 8
Products
Software execution models
Software
© Ian Sommerville 2018: 9
Products
Figure 1.3 Software execution models
Software
© Ian Sommerville 2018: 10
Products
Comparable software development
Software
© Ian Sommerville 2018: 11
Products
The product vision
Software
© Ian Sommerville 2018: 12
Products
Moore’s vision template
Software
© Ian Sommerville 2018: 13
Products
Vision template example
Software
© Ian Sommerville 2018: 14
Products
Table 1.2 Information sources for developing a product vision
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.
Software
© Ian Sommerville 2018: 15
Products
Table 1.3 A vision statement for the iLearn system
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.
Software
© Ian Sommerville 2018: 16
Products
Software product management
• Product managers (PMs) take overall responsibility for the product and
are involved in planning, development and product marketing.
• Product
managers must look outward to customers and potential
customers rather than focus on the software being developed.
Software
© Ian Sommerville 2018: 17
Products
Figure 1.4 Product management concerns
Software
© Ian Sommerville 2018: 18
Products
Product management concerns
• Business needs PMs have to ensure that the software being developed
meets the business goals of the software development company.
Software
© Ian Sommerville 2018: 19
Products
Figure 1.5 Technical interactions of product managers
Software
© Ian Sommerville 2018: 20
Products
Technical interactions of product managers
Software
© Ian Sommerville 2018: 21
Products
Technical interactions of product managers
• 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.
Software
© Ian Sommerville 2018: 22
Products
Product prototyping
• 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.
Software
© Ian Sommerville 2018: 23
Products
Two-stage prototyping
Software
© Ian Sommerville 2018: 24
Products
Key points 1
• Softwareproducts 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.
•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.
Software
© Ian Sommerville 2018: 25
Products
Key points 2
Software
© Ian Sommerville 2018: 26
Products