0% found this document useful (0 votes)
1 views

lec-2

The document discusses the distinctions between hardware and software, emphasizing the challenges of maintaining legacy software and the importance of systematic software engineering processes. It outlines the concept of a product vision in software development, detailing the characteristics of software products and the framework for software product lines. Additionally, it covers the generic activities involved in software engineering, including specification, development, validation, and the overall lifecycle of software projects.

Uploaded by

YASH PATEL
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)
1 views

lec-2

The document discusses the distinctions between hardware and software, emphasizing the challenges of maintaining legacy software and the importance of systematic software engineering processes. It outlines the concept of a product vision in software development, detailing the characteristics of software products and the framework for software product lines. Additionally, it covers the generic activities involved in software engineering, including specification, development, validation, and the overall lifecycle of software projects.

Uploaded by

YASH PATEL
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/ 58

Software as a Product

Hardware vs. Software


Failure (“Bathtub”) Curve for Hardware
Failure Rate

Infant Wear
mortality out

Time
Hardware vs. Software
Useful Life

Obsolescence
Legacy Software
• Software developed years ago, continually
modified to meet changes in business
requirements and computing platforms.

• Proliferation of such systems are difficult


when organizations find them costly to
maintain and risky to evolve.
Software is
1. Instructions (software programs) that when
executed provide desired features, functions
and performance,
2. Data structures that enable the programs to
adequately manipulate information, and
3. Descriptive information in both hard copy and
virtual forms that describe the operation and
use of the programs.
Software Engineering

The application of
systematic, disciplined,
quantifiable approach to the
development, operation,
and maintenance of
software.
Project-based Software Engineering
Needs Decides what
automation for he needs and
a specific changes
problems required

Business Company that


processes or develops the
functionality functionality
Product-based Software Engineering

Identify potential
utility in demand

Identify features Company that


required to develops the
realize the functionality
opportunity
The Product Vision
• 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?

11
The Product Vision
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)
13
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.”
14
Software as a Product
Characteristics of a Product
Enterprise Architecture
Product Management
Software Product Line
Creating a Software
Software Product Line
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.
SE is a Layered Technology
Automated and Semi - automated
support for process and methods

Technical tasks and basic principles


that are required for development

Framework that enables rational and


timely development of software

Organizational commitment to quality


Quality is the BASE
Process
• Collection of activities, actions and tasks
performed when some work product is created.

• How system engineering defines this:

Systems Engineering Process is a comprehensive,


iterative, and recursive problem-solving process,
applied sequentially top-down by integrated teams
Software Engineering - Process
• An adaptable approach that enables software
team to pick and choose appropriate set of
work actions and tasks with an intent to
deliver software in a timely manner and
sufficient quality to satisfy those who will use
it.
Process
• Simple Definition:
– Set of activities that leads to production of a
quality software
• Activities:
– Set of tasks to achieve broad objectives and is
applied to development methods depending on
application domain, size of project, complexity of
effort and degree of rigor with which software is
Process Model
• The hierarchy of technical work within a
software process is:
– Activities
• Actions
– Tasks
Process – to – Task
• A task focuses on small but well-defined
objectives that produce tangible outcomes

Factual vs Reality
Process Framework
Structured approach for defining the activities and tasks for the system
Activities in a Glance
Generic Process
Predictive Development

Adaptive Development

Planned, Systematic
Mission focused, feature based, iterative,
timeboxed, risk driven, and change tolerant

16 January 2025 33
Generic Process Activities
Generic Process Activities
• Communication
– Involves communication among the customer and
other stake holders; encompasses requirement
gathering
• Planning
– Establishes a plan for software engineering work;
addresses technical tasks, resources, work products
and work schedule
Generic Process Framework
• Modeling (Analyze, Design)
– Encompasses the creation of models to better
understand the requirements and the design
• Construction (Code, Test)
– Combines code generation and testing to uncover
errors
• Deployment
– Involves delivery of software to the customer for
evaluation and feedback
Overall Activities
Fundamental Activities
• Software Specification
• Software Development
• Software Validation
• Software Evolution
Umbrella Activities
• Software Project Tracking and Control
• Risk Management
• Software Quality Assurance
• Technical Reviews
• Measurement
• Software Configuration Management
• Reusability Management
• Work Product Preparation and Production
Flowchart of Software Development
Workflow in JIRA
Process Descriptions
• Products
• Roles
• Pre and Post Conditions
Roles
Life Cycle
• Linear
Iterative
Fast Functional Delivery
Understand the problem
Plan the Solution
Major Participants Scope

Project Objectives
Management
Authority

Assumptions and
Measurement
Restrictions
Carry out the Plan
Examine the Results
General Principles
• Provide value to customers
• Keep it simple
• Maintain a clear vision
• Software product is for consumers to use
• Be open to future
• Plan reusability before developing
• Place clear and complete thought before action
If Development Fails..
Height of …
Once many professors were called and asked
to sit in an airplane. After they sat. They were
informed that the plane is made by their
students.
… Confidence
All of them ran and got out of plane except
one. People asked him the reason. He said, “If
it’s made by my students it will not even start.”

You might also like