0% found this document useful (0 votes)
15 views26 pages

Software Products

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views26 pages

Software Products

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Telekomunikacijski softver

inženjering

Software products

© Ian Sommerville 2018:


Course Information

• Course staff
• Darijo Raca and Amina Tanković
• Organization
• Activites
• Project
• Documentation and presentation: 40 + 10 points

• Practical implementation and code: 40 + 10 points

• Literature
• Ian Sommerville, “Engineering Software Products: An Introduction to
Modern Software Engineering”, Pearson, 2019

Software
© Ian Sommerville 2018:
Products
Software products

• Softwareproducts 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).

• Softwareproduct 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
© Ian Sommerville 2018: 3
Products
Figure 1.1 Project-based software engineering

Software
© Ian Sommerville 2018: 4
Products
Project-based software engineering

• Thestarting 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.

• Thesoftware is developed by a software company (the contractor) who


design and implement a system that delivers functionality to meet the
requirements.

• Thecustomer 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.

Software
© Ian Sommerville 2018: 5
Products
Figure 1.2 Product software engineering

Software
© Ian Sommerville 2018: 6
Products
Product software engineering

• 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.

• Thesoftware 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.

Software
© Ian Sommerville 2018: 7
Products
Table 1.1 Software product lines and platforms

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.

Software
© Ian Sommerville 2018: 8
Products
Software execution models

• Stand-alone The software executes entirely on the customer’s


computers.

• HybridPart 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
© Ian Sommerville 2018: 9
Products
Figure 1.3 Software execution models

Software
© Ian Sommerville 2018: 10
Products
Comparable software development

• Thekey 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.

Software
© Ian Sommerville 2018: 11
Products
The product vision

• The starting point for software product development is a ‘product


vision’.

• Productvisions 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?

Software
© Ian Sommerville 2018: 12
Products
Moore’s vision template

• 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)

Software
© Ian Sommerville 2018: 13
Products
Vision template example

“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.”

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.

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.

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

• Softwareproduct 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.

• Productmanagers 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
© 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.

• 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.

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

• 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.

Software
© Ian Sommerville 2018: 21
Products
Technical interactions of product managers

• 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.

Software
© Ian Sommerville 2018: 22
Products
Product prototyping

• 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.
Software
© Ian Sommerville 2018: 23
Products
Two-stage prototyping

• Feasibilitydemonstration 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.

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.

• Softwareproducts 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.

Software
© Ian Sommerville 2018: 25
Products
Key points 2

• Keyresponsibilities 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.

• Productmanagers work at the interface between the business, the


software development team and the product customers. They facilitate
communications between these groups.

• Youshould always develop a product prototype to refine your own ideas


and to demonstrate the planned product features to potential customers

Software
© Ian Sommerville 2018: 26
Products

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy