Software Product and Process in Software Engineering
Software Product and Process in Software Engineering
MODULE 1 :
Software Product and Process
Course Specification
By
Staff Room: 324- 8. Dr. M.K. Jayanthi Kannan, M.E.,MS.,MBA., M.Phil., Ph.D.,
Office Hours : 8.30 AM -4 PM Professor and HOD ISE,
Department of Computer Science and Faculty of Engineering & Technology,
Engineering, JAIN Deemed To-Be University,
FET Block, Bengaluru.
Module 1: Software Product and Process
• Introduction –FAQs About Software Engineering,
• Definition Of Software Engineering,
• Difference Between Software Engineering And Computer Science,
• Difference Between Software Engineering And System Engineering,
• Software Process,
• Software Process Models
• The Waterfall Model,
• Incremental Process Models,
• Evolutionary Process Models
• Spiral Development, Prototyping,
• Component Based Software Engineering ,
• The Unified Process, Attributes Of Good Software,
• Key Challenges Facing By Software Engineering,
• Verification – Validation
• Computer Based System
• Business Process Engineering.
What is Engineering?
What is Software?
What is Software Engineering?
What is Software Process?
Different types of Process models.
Different models with strengths and
weaknesses.
Alige Software Development.
INTRODUCTION
17
Phase 2: Feasibility study
Once the BRS document is completed, a set of people like
Human Resource department, Finance department, Business
analyst, Architect and Project manager are sit together and
analyse if the project is do able or not. This decision is taken
based on the cost, time, resources and etc.
Phase 3: Design
In this phase system design specification is prepared
from the requirement document. Design is a blue
print of the application and it helps in specifying
hardware and requirements of the system and helps
in defining architecture of the system
Phase 5:Testing:
Once the software is ready and is deployed in the testing environment, test
engineers starts testing, if the functionality of an application is working according
to requirement or not.
During this phase test engineers may encounter some bugs/defects which need to
be sent to developers, the developers fix the bug and sent back to test engineers
for testing.
This process continuous until the software is bug free/stable/working according to
the requirement.
Phase 6: Installation/Deployment:
Phase 7: Maintenance:
When the customers starts using the software they may face some issues and
needs to be solved, to fix those issue, tested and handed over back to the
customer as soon as possible, which is done in the maintenance phase.
21
Attributes of good
software
• The software should deliver the required functionality
and performance to the user and should be
maintainable, dependable and usable.
What is the work Product?
• From the point of view of a software engineer, the work product is the
programs, documents, and content.
• From the user’s viewpoint, the work product is the resultant information
that somehow makes the user’s world better.
• The Product
– Is the engine that drives business decision making.
– Software serves as the basis for modern scientific investigation and
engineering problem solving.
– It is embedded in systems of all kinds: transportation, medical,
telecommunications, military, industrial processes, entertainment, office
products…
VERIFICATION AND VALIDATION
• Verification: "Are we building the product right”, The software should
conform to its specification.
• Validation: "Are we building the right product”., The software should do
what the user really requires.
V&V
• Verification refers to the set of tasks that ensure that
software correctly implements a specific function.
• Validation refers to a different set of tasks that ensure that
the software that has been built is traceable to customer
requirements. Boehm [Boe81] states this another way:
– Verification: "Are we building the product right?"
– Validation: "Are we building the right product?"
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
The V & V process
• Rather, it must be good enough for its intended use and the type of use will
determine the degree of confidence that is needed.
SOFTWARE LIFE CYCLE
• Often used as another name for the software
process.
• Originally coined to refer to the waterfall model of
the software process.
• The Waterfall model sometimes called the classic life cycle, suggests a systematic,
sequential approach to software development.
Incremental releases :
– Early releases may be paper or prototypes.
– Later releases become more complicated
– Models software until it is no longer used
– Not a silver bullet, but considered to be one of the best
approaches.
– Requires excellent management and risk assessment
skills.
Concurrent Development Model
• The concurrent development model, sometimes
called concurrent engineering, can be
represented schematical series of framework
activities, software engineering as a g actions and
tasks, and their associated states.
• The concurrent process model defines a series of
events that will trigger transitions from state to
state for each of the software engineering
activities, action, or tasks.
• The concurrent process model is applicable to all
types of software development and provides an
accurate picture of the current state of a project.
• Rather than confining software engineering
activities, actions, and tasks to a sequence of
events, it defines a network of activities.
• Each activity, action, or task on the network exists
simultaneously with other activities, actions, or
tasks.
• Events generated at one point in the process
network trigger transitions among the states.
Software Engineering- Computer Based Systems
The word system is possibly the most overused and abused term in the
technical lexicon. We speak of political systems and educational
systems, of avionics systems and manufacturing systems, of banking
systems and subway systems. Webster's Dictionary defines system in
the following way:
• A construction phase that refines and translates the design model into
implemented software components.
• A transition phase that transfers the software from the developer to the end-
user for beta testing and acceptance.
Requirements System
definition decommissioning
System System
design evolution
Sub-system System
development installation
System
integration
System design problems
• Requirements partitioning to hardware,
software and human components may involve a lot of
negotiation
other systems