SlideShare a Scribd company logo
SOFTWARE ENGINEERING
Course Code: 22CSE141
MODULE 1 :
Software Product and Process
By
Dr. M.K. Jayanthi Kannan, M.E.,MS.,MBA., M.Phil., Ph.D.,
Professor and HOD ISE,
Faculty of Engineering & Technology,
JAIN Deemed To-Be University,
Bengaluru.
Staff Room: 324- 8.
Office Hours : 8.30 AM -4 PM
Department of Computer Science and
Engineering,
FET Block,
Course Specification
Course: SOFTWARE ENGINEERING
Course Code: 22CSE141
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
• Software: Computer programs and associated documentation.
software products may be developed for a particular customer or
may be developed for a general market.
• Software engineering : Software engineering is an engineering
discipline which is concerned with all aspects of software
production.
• The definition in IEEE Standard
– The application of a systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software, that is, the
application of engineering to software.
• Software process: A set of activities whose goal is the development
or evolution of software.
What is Engineering?
 Engineering is the application of scientific and
practical knowledge in order to invent, design,
build, maintain and improve systems,
processes, etc.
What is Software?
 The software is collection of integrated programs
 The software consists of carefully—organized instructions and
code written by programmers in any of various special computer
languages
 Computer programs and associated documentation such as
requirements, design models and user manuals.
 Software engineering is an engineering discipline that is
concerned with all aspects of software production.
 According to IEEE's definition software engineering can be defined
as the application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of
software, and the study of these approaches; that is, the
application of engineering to software.
What is Software Process?
 A framework that describes the activities performed
at each stage of a software development project.
 A set of activities whose goal is the development or
evolution of software.
 Generic activities in all software processes are:
 Specification - what the system should do and its
development constraints
 Development - production of the software system
 Validation - checking that the software is what the
customer wants
 Evolution - changing the software in response to changing
demands.
Software Engineering –Key
Challenges
 Coping with legacy systems, coping with
increasing diversity and coping with
demands for delivery times.
 Legacy systems - old, valuable systems must
be maintained and updated.
 Heterogeneity - systems are distributed and
includes a mix of hardware and software
 Delivery - there is increasing pressure for
faster delivery of software.
Software Engineering Paradigms and
Processes
 In SE ‘Paradigm’ is heavily used:
 Discussions of superiority “Object-oriented
paradigm is the best ever …”
 Discussions of suitability “Object-oriented
paradigm is/isn’t suitable for x y z domain/tasks”
 The meaning of paradigm is overloaded and vague
What exactly do we mean by paradigm?
 Why and how a paradigm influences the process
and product of SE?
What is ‘paradigm’?
 Etymologically: “para-” (alongside) + “-deiknunai” (to
show)
 Greek: paradeigma = example
 Works of Plato and Aristotle: a third form of reasoning
 Induction, deduction, paradeigma (example)
 One of the constituents is more “knowable”
 Typical issues related to the category they define (e.g.
cheese paradigm)
 Not very favorite of philosophers until late 20th century
 Modern meaning coined by Foucault, and esp.
SE Paradigms
 Major paradigms in software
engineering/design:
 the procedural paradigm (emphasis on algorithm),
 the data-hiding paradigm (emphasis on data
organization),
 the data-abstraction paradigm (emphasis on types
and operations),
 and the object-oriented paradigm (emphasis on
commonality between types)
New approaches having potential to be regarded
as paradigms in the future:
 The component-based paradigm (emphasis on reuse
through integration),
 the aspect-oriented paradigm,
 and the agent-oriented paradigm (emphasis on goal
oriented ness)
The choice of paradigm effects the quality of the process and
the product. Some apparent readings of quality parameters
might be related inherently to paradigms.
Software Engineering process
Paradigms(SDLC)
 SDLC: SDLC is a step by step
procedure or systematic
approach to develop software
and it is followed within a
software organization.
 It consists of various phases
which describe how to design,
develop, enhance and
maintain particular software.
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.
These slides are designed to accompany Software Engineering:
A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides
copyright 2009 by Roger Pressman. 19
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?"
The V & V process
• Is a whole life-cycle process - V & V must be applied at each
stage in the software process.
• Has two principal objectives
• The discovery of defects in a system;
• The assessment of whether or not the system is useful and
useable in an operational situation
V& V goals
• Verification and validation should establish confidence that the software is
fit for purpose.
• This does NOT mean completely free of defects.
• 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.
• It is a oldest paradigm for software engineering.
• Most widely used though no longer state-of-art.
• Each step results in documentation.
• May be suited to for well-understood developments using familiar technology.
• Not suited to new, different systems because of specification uncertainty
• Difficulty in accommodating change after the process has started.
• Can accommodate iteration but indirectly.
• Working version not available till late in process.
• Often get blocking states.
THE INCREMENTAL PROCESS MODELS
• There are many situations in which initial software requirements are
reasonably well defined, but the overall scope of the development effort
precludes a purely linear process.
• In addition, there may be a compelling need to provide a limited set of
software functionality to users quickly and then refine and expand on that
functionality in later software releases.
• In such cases, a process model that is designed to produce the software
in increments is chosen.
The Incremental Model :
• Applies an iterative philosophy to the waterfall model.
• Divide functionality of system into increments and use a liner sequence of
development on each increment.
• First increment delivered is usually the core product, i.e. only basic
functionality.
• Reviews of each increment impact on design of later increments.
• Manages risk well.
• Extreme Programming (XP), and other Agile Methods, are incremental, but
they do not implement the waterfall model steps in the standard order.
The Rapid Application Development (RAD) Model
• Similar to waterfall but uses a very short development cycle (60to90
days to completion).
• Uses component-based construction and emphasizes reuse and
code generation.
• Use multiple teams on scalable projects.
• Requires heavy resource.
• Requires developers and customers who are heavily committed.
• Performance can be a problem.
• Difficult to use with new technology
EVOLUTIONARY MODELS
• Evolutionary models are iterative. They are characterized in a manner that enables
software engineers to develop increasingly more complete versions of the software.
• PROTOTYPING :
PROTOTYPING :
• Ideally mock-up serves as mechanism for identifying requirements.
• Users like the method, get a feeling for the actual system.
• Less ideally may be the basis for completed.
• Prototypes often ignore quality/performance/maintenance issues.
• May create pressure from users on deliver earlier.
• May use a less-than-ideal platform to deliver e.g Visual Basic – excellent for
prototyping, may not be as effective in actual operation.
• Specifying requirements is often very difficult.
• Users don’t know exactly what they want until they see it.
• Prototyping involves building a mock-up of the system and using to obtain for user
feedback.
• Closely related to what are now called “Agile Methods”
The Spiral Model
Development cycles through multiple (3-6) task regions (6stage version).
• Customer communication
• Planning
• Risk analysis
• Engineering
• Construction and release
• Customer evaluation
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 schematically as a series of framework activities, software
engineering 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.
SPECIALIZED PROCESS MODELS
• Component based development—the process to
apply when reuse is a development objective.
• Formal methods—emphasize the mathematical
specification of requirements.
• AOSD—provides a process and methodological
approach for defining, specifying, designing, and
constructing aspects
THE UNIFIED PROCESS (UP)
• A “use-case driven, architecture-centric, iterative and incremental” software
process closely aligned with the Unified Modeling Language (UML)
Unified Process Phases
• The inception phases of the up encompass both customer communication and
planning activities and emphasize the development and refinement of use-
cases as a primary model.
• An elaboration phase that encompasses the customer’s communication and
modeling activities focusing on the creation of analysis and design models
with an emphasis on class definitions and architectural representations.
• 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.
• A production phase in which on-going monitoring and support are conducted.
System engineering
• Systems engineering is the activity of specifying, designing, implementing,
validating, deploying and maintaining socio-technical systems.
• Systems engineers are not just concerned with software but also with
hardware and the system's interactions with users and its environment.
• They must think about the services that the system provides, the constraints
under which the system must be built and operated and the ways in which
the system is used to fulfill its purpose.
• System engineering is concerned with all aspects of computer-based
systems development, including hardware, software and process
engineering. Software engineering is part of this process.
• System engineering is an older discipline than software engineering.
• People have been specifying and assembling complex industrial systems
such as aircraft and chemical plants for more than a hundred years.
• However, as the percentage of software in systems has increased, software
engineering techniques such as use-case modeling and configuration
management are being used in the systems engineering process.
SYSTEM ENGINEERING PROCESS
System
integration
Sub-system
development
System
design
Requirements
definition
System
installation
System
evolution
System
decommissioning
System design problems
• Requirements partitioning to hardware,
software and human components may involve a lot of negotiation
• Difficult design problems are often assumed to be readily solved using
software
• Hardware platforms may be inappropriate for
software requirements so software must compensate for this
Sub-system development
• Typically parallel projects developing the
hardware, software and communications
• May involve some COTS (Commercial Off-the-Shelf) systems
procurement
• Lack of communication across implementation
teams
• Bureaucratic and slow mechanism for
proposing system changes means that the development schedule may be
extended because of the need for rework
• The process of putting hardware, software and
people together to make a system
• Should be tackled incrementally so that sub-systems are integrated one at
a time
• Interface problems between sub-systems are usually found at this stage
• May be problems with uncoordinated deliveries
of system components
System integration
• Environmental assumptions may be incorrect
• May be human resistance to the introduction of
a new system
• System may have to coexist with alternative
systems for some time
• May be physical installation problems (e.g.
cabling problems)
• Operator training has to be identified
System installation
• Will bring unforeseen requirements to light
• Users may use the system in a way which is
not anticipated by system designers
• May reveal problems in the interaction with
other systems
• Physical problems of incompatibility
• Data conversion problems
• Increased operator error rate because of inconsistent interfaces
System operation
System evolution
• Large systems have a long lifetime. They must evolve to meet changing
requirements
• Evolution is inherently costly
– Changes must be analysed from a technical and business perspective
– Sub-systems interact so unanticipated problems can arise
– There is rarely a rationale for original design decisions
– System structure is corrupted as changes are made to it
• Existing systems which must be maintained are sometimes called legacy
systems
System decommissioning
• Taking the system out of service after its useful lifetime
• May require removal of materials (e.g. dangerous chemicals) which pollute
the environment
– Should be planned for in the system design by encapsulation
• May require data to be restructured and converted to be used in some other
system
ATC System Engineering
computer-based systems
• Technical computer-based systems are systems that include
hardware and software components but not procedures and
processes.
• Examples of technical systems include televisions, mobile
phones and most personal computer software.
• Individuals and organizations use technical systems for some
purpose but knowledge of this purpose is not part of the
system.
• For example, the word processor
BUSINESS PROCESS ENGINEERING
• Business process engineering is a structured approach to improving a company’s
performance in areas such as cost, service, quality, and speed through changes in
(appropriately) processes.
• Organize around the outcome, not the specific task. One person owns a whole
process, performing or coordinating all steps.
• Those closest to the process should perform the process. Instead of farming out
different types of easily managed work, the people who need the quick outcomes
from simple tasks take ownership.
• Have the people who produce the information process it. This streamlines the
outcome of the information gathered into usable data.
• Centralize resources. Databases and other technology systems can consolidate
resources to cut down on redundancies and increase flexibility.
• Integrate corresponding activities, not merely their results. This keeps the content
cohesive, without the gaps and miscommunication that could cause delays.
• Control the decision points and where the work is done. Built-in controls enable
the employees who perform the work to self-manage, so managers can become
supportive rather than directive.
• Information should be collected once and at the source. You can erase data
redundancies when processes are connected in a central database
Common guiding principles for the stages are as follows:
• Step 0: Preparation and Coordination
• Step 1: Set the Vision
• Step 2: Assemble the Team
• Step 3: Determine the Processes
• Step 4: Redesign
PRODUCT ENGINEERING
• Product Engineering is the process of innovating, designing, developing, testing and
deploying a software product.
• The various phases of product engineering are:
– Product Ideation
– Product Architecture
– Product Design
– Product Testing
– Product Migration and Porting
– Technical Support
– Sustaining Engineering
– Professional Services
SUMMARY
Module 1: Software Product and Process
In Module 1 we discussed the following topics like,
 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.
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf

More Related Content

Similar to MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf

reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
BinyamBekele3
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Managementswatisinghal
 
Various Process of Software Engineering notes
Various Process of Software Engineering notesVarious Process of Software Engineering notes
Various Process of Software Engineering notes
Dr Anuranjan Misra
 
Unit 1.pdf
Unit 1.pdfUnit 1.pdf
Unit 1.pdf
dsffdfddv
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
Preeti Mishra
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
Preeti Mishra
 
System Analisis And Designing
System Analisis And  DesigningSystem Analisis And  Designing
System Analisis And Designing
Abdurrahman A.S.M
 
Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineeringMadhav Suratkar
 
SE chp1 update and learning management .pptx
SE chp1 update and learning management .pptxSE chp1 update and learning management .pptx
SE chp1 update and learning management .pptx
ssuserdee5bb1
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
saranive23
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
omgadekar25
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
tumainjoseph
 
Software engineer
Software engineerSoftware engineer
Software engineer
Social Development Club
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineering
infinitetechnology20
 
Software Engineering - Introdution.ppt
Software Engineering - Introdution.pptSoftware Engineering - Introdution.ppt
Software Engineering - Introdution.ppt
SasiR18
 
SE
SESE
Lecture1422914635
Lecture1422914635Lecture1422914635
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
Raj vardhan
 

Similar to MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf (20)

reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
 
Various Process of Software Engineering notes
Various Process of Software Engineering notesVarious Process of Software Engineering notes
Various Process of Software Engineering notes
 
Unit 1.pdf
Unit 1.pdfUnit 1.pdf
Unit 1.pdf
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
 
System Analisis And Designing
System Analisis And  DesigningSystem Analisis And  Designing
System Analisis And Designing
 
Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineering
 
SE chp1 update and learning management .pptx
SE chp1 update and learning management .pptxSE chp1 update and learning management .pptx
SE chp1 update and learning management .pptx
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Software engineer
Software engineerSoftware engineer
Software engineer
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineering
 
Software Engineering - Introdution.ppt
Software Engineering - Introdution.pptSoftware Engineering - Introdution.ppt
Software Engineering - Introdution.ppt
 
SE
SESE
SE
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 

More from Jayanthi Kannan MK

1 18CS54 _Software Engineering and Testing _Introduction to CO PO _Syllabus ...
1  18CS54 _Software Engineering and Testing _Introduction to CO PO _Syllabus ...1  18CS54 _Software Engineering and Testing _Introduction to CO PO _Syllabus ...
1 18CS54 _Software Engineering and Testing _Introduction to CO PO _Syllabus ...
Jayanthi Kannan MK
 
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
Jayanthi Kannan MK
 
Unit 2 Smart Objects _IOT by Dr.M.K.Jayanthi.pdf
Unit 2 Smart Objects _IOT  by Dr.M.K.Jayanthi.pdfUnit 2 Smart Objects _IOT  by Dr.M.K.Jayanthi.pdf
Unit 2 Smart Objects _IOT by Dr.M.K.Jayanthi.pdf
Jayanthi Kannan MK
 
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
Jayanthi Kannan MK
 
4 IOT 18ISDE712 MODULE 4 IoT Physical Devices and End Point-Aurdino Uno.pdf
4 IOT 18ISDE712  MODULE 4 IoT Physical Devices and End Point-Aurdino  Uno.pdf4 IOT 18ISDE712  MODULE 4 IoT Physical Devices and End Point-Aurdino  Uno.pdf
4 IOT 18ISDE712 MODULE 4 IoT Physical Devices and End Point-Aurdino Uno.pdf
Jayanthi Kannan MK
 
3 IOT Part 3 IP as the IoT Network Layer Access Technologies.pdf
3 IOT Part 3 IP as the IoT Network Layer Access Technologies.pdf3 IOT Part 3 IP as the IoT Network Layer Access Technologies.pdf
3 IOT Part 3 IP as the IoT Network Layer Access Technologies.pdf
Jayanthi Kannan MK
 
1 Unit 1 Introduction _IOT by Dr.M.K.Jayanthi Kannan (1).pdf
1 Unit 1  Introduction _IOT  by Dr.M.K.Jayanthi Kannan (1).pdf1 Unit 1  Introduction _IOT  by Dr.M.K.Jayanthi Kannan (1).pdf
1 Unit 1 Introduction _IOT by Dr.M.K.Jayanthi Kannan (1).pdf
Jayanthi Kannan MK
 
ARUDINO UNO and RasberryPi with Python
 ARUDINO UNO and RasberryPi with Python ARUDINO UNO and RasberryPi with Python
ARUDINO UNO and RasberryPi with Python
Jayanthi Kannan MK
 
IoT Arduino UNO, RaspberryPi with Python, RaspberryPi Programming using Pytho...
IoT Arduino UNO, RaspberryPi with Python, RaspberryPi Programming using Pytho...IoT Arduino UNO, RaspberryPi with Python, RaspberryPi Programming using Pytho...
IoT Arduino UNO, RaspberryPi with Python, RaspberryPi Programming using Pytho...
Jayanthi Kannan MK
 
Introduction to Internet of Things
 Introduction to Internet of Things Introduction to Internet of Things
Introduction to Internet of Things
Jayanthi Kannan MK
 
ADBMS Object and Object Relational Databases
ADBMS  Object  and Object Relational Databases ADBMS  Object  and Object Relational Databases
ADBMS Object and Object Relational Databases
Jayanthi Kannan MK
 

More from Jayanthi Kannan MK (11)

1 18CS54 _Software Engineering and Testing _Introduction to CO PO _Syllabus ...
1  18CS54 _Software Engineering and Testing _Introduction to CO PO _Syllabus ...1  18CS54 _Software Engineering and Testing _Introduction to CO PO _Syllabus ...
1 18CS54 _Software Engineering and Testing _Introduction to CO PO _Syllabus ...
 
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
 
Unit 2 Smart Objects _IOT by Dr.M.K.Jayanthi.pdf
Unit 2 Smart Objects _IOT  by Dr.M.K.Jayanthi.pdfUnit 2 Smart Objects _IOT  by Dr.M.K.Jayanthi.pdf
Unit 2 Smart Objects _IOT by Dr.M.K.Jayanthi.pdf
 
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
 
4 IOT 18ISDE712 MODULE 4 IoT Physical Devices and End Point-Aurdino Uno.pdf
4 IOT 18ISDE712  MODULE 4 IoT Physical Devices and End Point-Aurdino  Uno.pdf4 IOT 18ISDE712  MODULE 4 IoT Physical Devices and End Point-Aurdino  Uno.pdf
4 IOT 18ISDE712 MODULE 4 IoT Physical Devices and End Point-Aurdino Uno.pdf
 
3 IOT Part 3 IP as the IoT Network Layer Access Technologies.pdf
3 IOT Part 3 IP as the IoT Network Layer Access Technologies.pdf3 IOT Part 3 IP as the IoT Network Layer Access Technologies.pdf
3 IOT Part 3 IP as the IoT Network Layer Access Technologies.pdf
 
1 Unit 1 Introduction _IOT by Dr.M.K.Jayanthi Kannan (1).pdf
1 Unit 1  Introduction _IOT  by Dr.M.K.Jayanthi Kannan (1).pdf1 Unit 1  Introduction _IOT  by Dr.M.K.Jayanthi Kannan (1).pdf
1 Unit 1 Introduction _IOT by Dr.M.K.Jayanthi Kannan (1).pdf
 
ARUDINO UNO and RasberryPi with Python
 ARUDINO UNO and RasberryPi with Python ARUDINO UNO and RasberryPi with Python
ARUDINO UNO and RasberryPi with Python
 
IoT Arduino UNO, RaspberryPi with Python, RaspberryPi Programming using Pytho...
IoT Arduino UNO, RaspberryPi with Python, RaspberryPi Programming using Pytho...IoT Arduino UNO, RaspberryPi with Python, RaspberryPi Programming using Pytho...
IoT Arduino UNO, RaspberryPi with Python, RaspberryPi Programming using Pytho...
 
Introduction to Internet of Things
 Introduction to Internet of Things Introduction to Internet of Things
Introduction to Internet of Things
 
ADBMS Object and Object Relational Databases
ADBMS  Object  and Object Relational Databases ADBMS  Object  and Object Relational Databases
ADBMS Object and Object Relational Databases
 

Recently uploaded

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 

Recently uploaded (20)

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 

MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf

  • 1. SOFTWARE ENGINEERING Course Code: 22CSE141 MODULE 1 : Software Product and Process
  • 2. By Dr. M.K. Jayanthi Kannan, M.E.,MS.,MBA., M.Phil., Ph.D., Professor and HOD ISE, Faculty of Engineering & Technology, JAIN Deemed To-Be University, Bengaluru. Staff Room: 324- 8. Office Hours : 8.30 AM -4 PM Department of Computer Science and Engineering, FET Block, Course Specification Course: SOFTWARE ENGINEERING Course Code: 22CSE141
  • 3. 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.
  • 4.  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
  • 5. INTRODUCTION • Software: Computer programs and associated documentation. software products may be developed for a particular customer or may be developed for a general market. • Software engineering : Software engineering is an engineering discipline which is concerned with all aspects of software production. • The definition in IEEE Standard – The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software. • Software process: A set of activities whose goal is the development or evolution of software.
  • 6. What is Engineering?  Engineering is the application of scientific and practical knowledge in order to invent, design, build, maintain and improve systems, processes, etc.
  • 7. What is Software?  The software is collection of integrated programs  The software consists of carefully—organized instructions and code written by programmers in any of various special computer languages  Computer programs and associated documentation such as requirements, design models and user manuals.  Software engineering is an engineering discipline that is concerned with all aspects of software production.  According to IEEE's definition software engineering can be defined as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.
  • 8. What is Software Process?  A framework that describes the activities performed at each stage of a software development project.  A set of activities whose goal is the development or evolution of software.  Generic activities in all software processes are:  Specification - what the system should do and its development constraints  Development - production of the software system  Validation - checking that the software is what the customer wants  Evolution - changing the software in response to changing demands.
  • 9. Software Engineering –Key Challenges  Coping with legacy systems, coping with increasing diversity and coping with demands for delivery times.  Legacy systems - old, valuable systems must be maintained and updated.  Heterogeneity - systems are distributed and includes a mix of hardware and software  Delivery - there is increasing pressure for faster delivery of software.
  • 10. Software Engineering Paradigms and Processes  In SE ‘Paradigm’ is heavily used:  Discussions of superiority “Object-oriented paradigm is the best ever …”  Discussions of suitability “Object-oriented paradigm is/isn’t suitable for x y z domain/tasks”  The meaning of paradigm is overloaded and vague What exactly do we mean by paradigm?  Why and how a paradigm influences the process and product of SE?
  • 11. What is ‘paradigm’?  Etymologically: “para-” (alongside) + “-deiknunai” (to show)  Greek: paradeigma = example  Works of Plato and Aristotle: a third form of reasoning  Induction, deduction, paradeigma (example)  One of the constituents is more “knowable”  Typical issues related to the category they define (e.g. cheese paradigm)  Not very favorite of philosophers until late 20th century  Modern meaning coined by Foucault, and esp.
  • 12. SE Paradigms  Major paradigms in software engineering/design:  the procedural paradigm (emphasis on algorithm),  the data-hiding paradigm (emphasis on data organization),  the data-abstraction paradigm (emphasis on types and operations),  and the object-oriented paradigm (emphasis on commonality between types)
  • 13. New approaches having potential to be regarded as paradigms in the future:  The component-based paradigm (emphasis on reuse through integration),  the aspect-oriented paradigm,  and the agent-oriented paradigm (emphasis on goal oriented ness) The choice of paradigm effects the quality of the process and the product. Some apparent readings of quality parameters might be related inherently to paradigms.
  • 14. Software Engineering process Paradigms(SDLC)  SDLC: SDLC is a step by step procedure or systematic approach to develop software and it is followed within a software organization.  It consists of various phases which describe how to design, develop, enhance and maintain particular software.
  • 15. Attributes of good software • The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.
  • 16.
  • 17. 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…
  • 18. 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.
  • 19. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 19 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?"
  • 20. The V & V process • Is a whole life-cycle process - V & V must be applied at each stage in the software process. • Has two principal objectives • The discovery of defects in a system; • The assessment of whether or not the system is useful and useable in an operational situation
  • 21. V& V goals • Verification and validation should establish confidence that the software is fit for purpose. • This does NOT mean completely free of defects. • Rather, it must be good enough for its intended use and the type of use will determine the degree of confidence that is needed.
  • 22. SOFTWARE LIFE CYCLE • Often used as another name for the software process. • Originally coined to refer to the waterfall model of the software process.
  • 23.
  • 24.
  • 25. • The Waterfall model sometimes called the classic life cycle, suggests a systematic, sequential approach to software development. • It is a oldest paradigm for software engineering. • Most widely used though no longer state-of-art. • Each step results in documentation. • May be suited to for well-understood developments using familiar technology. • Not suited to new, different systems because of specification uncertainty • Difficulty in accommodating change after the process has started. • Can accommodate iteration but indirectly. • Working version not available till late in process. • Often get blocking states.
  • 27. • There are many situations in which initial software requirements are reasonably well defined, but the overall scope of the development effort precludes a purely linear process. • In addition, there may be a compelling need to provide a limited set of software functionality to users quickly and then refine and expand on that functionality in later software releases. • In such cases, a process model that is designed to produce the software in increments is chosen.
  • 28. The Incremental Model : • Applies an iterative philosophy to the waterfall model. • Divide functionality of system into increments and use a liner sequence of development on each increment. • First increment delivered is usually the core product, i.e. only basic functionality. • Reviews of each increment impact on design of later increments. • Manages risk well. • Extreme Programming (XP), and other Agile Methods, are incremental, but they do not implement the waterfall model steps in the standard order.
  • 29. The Rapid Application Development (RAD) Model
  • 30. • Similar to waterfall but uses a very short development cycle (60to90 days to completion). • Uses component-based construction and emphasizes reuse and code generation. • Use multiple teams on scalable projects. • Requires heavy resource. • Requires developers and customers who are heavily committed. • Performance can be a problem. • Difficult to use with new technology
  • 31. EVOLUTIONARY MODELS • Evolutionary models are iterative. They are characterized in a manner that enables software engineers to develop increasingly more complete versions of the software. • PROTOTYPING :
  • 32. PROTOTYPING : • Ideally mock-up serves as mechanism for identifying requirements. • Users like the method, get a feeling for the actual system. • Less ideally may be the basis for completed. • Prototypes often ignore quality/performance/maintenance issues. • May create pressure from users on deliver earlier. • May use a less-than-ideal platform to deliver e.g Visual Basic – excellent for prototyping, may not be as effective in actual operation. • Specifying requirements is often very difficult. • Users don’t know exactly what they want until they see it. • Prototyping involves building a mock-up of the system and using to obtain for user feedback. • Closely related to what are now called “Agile Methods”
  • 34. Development cycles through multiple (3-6) task regions (6stage version). • Customer communication • Planning • Risk analysis • Engineering • Construction and release • Customer evaluation 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
  • 35. Concurrent Development Model • The concurrent development model, sometimes called concurrent engineering, can be represented schematically as a series of framework activities, software engineering 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.
  • 36.
  • 37. SPECIALIZED PROCESS MODELS • Component based development—the process to apply when reuse is a development objective. • Formal methods—emphasize the mathematical specification of requirements. • AOSD—provides a process and methodological approach for defining, specifying, designing, and constructing aspects
  • 38.
  • 39. THE UNIFIED PROCESS (UP) • A “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) Unified Process Phases • The inception phases of the up encompass both customer communication and planning activities and emphasize the development and refinement of use- cases as a primary model. • An elaboration phase that encompasses the customer’s communication and modeling activities focusing on the creation of analysis and design models with an emphasis on class definitions and architectural representations. • 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. • A production phase in which on-going monitoring and support are conducted.
  • 40.
  • 41. System engineering • Systems engineering is the activity of specifying, designing, implementing, validating, deploying and maintaining socio-technical systems. • Systems engineers are not just concerned with software but also with hardware and the system's interactions with users and its environment. • They must think about the services that the system provides, the constraints under which the system must be built and operated and the ways in which the system is used to fulfill its purpose. • System engineering is concerned with all aspects of computer-based systems development, including hardware, software and process engineering. Software engineering is part of this process. • System engineering is an older discipline than software engineering. • People have been specifying and assembling complex industrial systems such as aircraft and chemical plants for more than a hundred years. • However, as the percentage of software in systems has increased, software engineering techniques such as use-case modeling and configuration management are being used in the systems engineering process.
  • 43. System design problems • Requirements partitioning to hardware, software and human components may involve a lot of negotiation • Difficult design problems are often assumed to be readily solved using software • Hardware platforms may be inappropriate for software requirements so software must compensate for this
  • 44. Sub-system development • Typically parallel projects developing the hardware, software and communications • May involve some COTS (Commercial Off-the-Shelf) systems procurement • Lack of communication across implementation teams • Bureaucratic and slow mechanism for proposing system changes means that the development schedule may be extended because of the need for rework
  • 45. • The process of putting hardware, software and people together to make a system • Should be tackled incrementally so that sub-systems are integrated one at a time • Interface problems between sub-systems are usually found at this stage • May be problems with uncoordinated deliveries of system components System integration
  • 46. • Environmental assumptions may be incorrect • May be human resistance to the introduction of a new system • System may have to coexist with alternative systems for some time • May be physical installation problems (e.g. cabling problems) • Operator training has to be identified System installation
  • 47. • Will bring unforeseen requirements to light • Users may use the system in a way which is not anticipated by system designers • May reveal problems in the interaction with other systems • Physical problems of incompatibility • Data conversion problems • Increased operator error rate because of inconsistent interfaces System operation
  • 48. System evolution • Large systems have a long lifetime. They must evolve to meet changing requirements • Evolution is inherently costly – Changes must be analysed from a technical and business perspective – Sub-systems interact so unanticipated problems can arise – There is rarely a rationale for original design decisions – System structure is corrupted as changes are made to it • Existing systems which must be maintained are sometimes called legacy systems
  • 49. System decommissioning • Taking the system out of service after its useful lifetime • May require removal of materials (e.g. dangerous chemicals) which pollute the environment – Should be planned for in the system design by encapsulation • May require data to be restructured and converted to be used in some other system
  • 51. computer-based systems • Technical computer-based systems are systems that include hardware and software components but not procedures and processes. • Examples of technical systems include televisions, mobile phones and most personal computer software. • Individuals and organizations use technical systems for some purpose but knowledge of this purpose is not part of the system. • For example, the word processor
  • 52. BUSINESS PROCESS ENGINEERING • Business process engineering is a structured approach to improving a company’s performance in areas such as cost, service, quality, and speed through changes in (appropriately) processes. • Organize around the outcome, not the specific task. One person owns a whole process, performing or coordinating all steps. • Those closest to the process should perform the process. Instead of farming out different types of easily managed work, the people who need the quick outcomes from simple tasks take ownership. • Have the people who produce the information process it. This streamlines the outcome of the information gathered into usable data. • Centralize resources. Databases and other technology systems can consolidate resources to cut down on redundancies and increase flexibility. • Integrate corresponding activities, not merely their results. This keeps the content cohesive, without the gaps and miscommunication that could cause delays. • Control the decision points and where the work is done. Built-in controls enable the employees who perform the work to self-manage, so managers can become supportive rather than directive. • Information should be collected once and at the source. You can erase data redundancies when processes are connected in a central database
  • 53. Common guiding principles for the stages are as follows: • Step 0: Preparation and Coordination • Step 1: Set the Vision • Step 2: Assemble the Team • Step 3: Determine the Processes • Step 4: Redesign
  • 54. PRODUCT ENGINEERING • Product Engineering is the process of innovating, designing, developing, testing and deploying a software product. • The various phases of product engineering are: – Product Ideation – Product Architecture – Product Design – Product Testing – Product Migration and Porting – Technical Support – Sustaining Engineering – Professional Services
  • 55. SUMMARY Module 1: Software Product and Process In Module 1 we discussed the following topics like,  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.