SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Software Engineering
SWETA KUMARI BARNWAL 1
PROCESS IMPROVEMENT & SERVICE ORIENTED SOFTWARE ENGINEERING
Topics Covered:
Process Improvement: Process and product quality, Process Classification, Process
Measurement, Process Analysis and Modeling, Process Change, The CMMI Process
Improvement Framework.
Service Oriented Software Engineering: Services as reusable components, Service
Engineering, Software Development with Services.
SOFTWARE PROCESS IMPROVEMENT
Many software companies usually face issues in their software development projects and its
delivery. The issues can vary from lack of documentation, lack of following the process, lack
of process governance, lack of the integration and collaboration between the teams, lack of
requirements traceability, lack of technology management, …etc.
SPI is a methodology defined as a sequence of tasks, tools, and techniques to plan and
implement improvement activities to achieve specific goals such as increasing development
speed, achieving higher product quality or reducing costs.
Process & Product Quality
Process quality and product quality are closely related and process improvement
benefits arise because the quality of the product depends on its development process.
A good process is usually required to produce a good product.
For manufactured goods, process is the principal quality determinant.
Improvement
Planning
Improvement
Evaluation
Improvement
Implementation
Current Situation
Evaluation
Software Engineering
SWETA KUMARI BARNWAL 2
For design-based activity, other factors are also involved especially the capabilities of
the designers.
Software Process Model:
A software process model is an abstraction of the actual process, which is being described.
It can also be defined as a simplified representation of a software process. Each model
represents a process from a specific perspective. Basic software process models on which
different type of software process models can be implemented:
1. A workflow Model:
It is the sequential series of tasks and decisions that make up a business process.
2. The Waterfall Model:
It is a sequential design process in which progress is seen as flowing steadily
downwards. Phases in waterfall model:
• (i) Requirements Specification
• (ii) Software Design
• (iii) Implementation
• (iv) Testing
3. Dataflow Model:
It is diagrammatic representation of the flow and exchange of information within
a system.
4. Evolutionary Development Model:
Following activities are considered in this method:
• (i) Specification
Product
Quality
Development
Technology
People Quality
Process Quality
Cost Time
& Schedule
Software Engineering
SWETA KUMARI BARNWAL 3
• (ii) Development
• (iii) Validation
5. Role / Action Model:
Roles of the people involved in the software process and the activities.
PROCESS CLASSIFICATION
• Informal: No detailed process model. Development team chose their own way of
working.
• Managed: Defined process model which drives the development process.
• Methodical: Processes supported by some development method such as the RUP.
• Supported: Processes supported by automated CASE tools.
PROCESS MEASUREMENT
Wherever possible, quantitative process data should be collected
◦ However, where organisations do not have clearly defined process standards
this is very difficult as you don’t know what to measure. A process may have
to be defined before any measurement is possible.
Process measurements should be used to assess process improvements
◦ But this does not mean that measurements should drive the improvements. The
improvement driver should be the organizational objectives.
Classes Of Process Measurement
Time taken for process activities to be completed
◦ E.g. Calendar time or effort to complete an activity or process.
Resources required for processes or activities
◦ E.g. Total effort in person-days.
Number of occurrences of a particular event
◦ E.g. Number of defects discovered.
PROCESS ANALYSIS AND MODELLING
A software process model is an abstraction of the actual process, which is being described.
It can also be defined as a simplified representation of a software process. Each model
represents a process from a specific perspective.
◦ Process analysis: The study of existing processes to understand the
relationships between parts of the process and to compare them with other
processes.
Software Engineering
SWETA KUMARI BARNWAL 4
◦ Process modelling: The documentation of a process which records the tasks,
the roles and the entities used. Process models may be presented from
different perspectives.
THE CMMI PROCESS IMPROVEMENT FRAMEWORK
CMM Model (Capability Maturity Model): CMM was developed by the Software
Engineering Institute (SEI) at Carnegie Mellon University in 1987.
• It is not a software process model. It is a framework that is used to analyze the
approach and techniques followed by any organization to develop software
products.
• It also provides guidelines to further enhance the maturity of the process used to
develop those software products.
• It is based on profound feedback and development practices adopted by the most
successful organizations worldwide.
• This model describes a strategy for software process improvement that should be
followed by moving through 5 different levels.
• Each level of maturity shows a process capability level. All the levels except
level-1 are further described by Key Process Areas (KPA’s).
Capability Maturity Model Integration (CMMI) is a successor of CMM and is a more
evolved model that incorporates best components of individual disciplines of CMM like
Software CMM, Systems Engineering CMM, People CMM, etc. Since CMM is a reference
model of matured practices in a specific discipline, so it becomes difficult to integrate these
disciplines as per the requirements. This is why CMMI is used as it allows the integration of
multiple disciplines as and when needed.
Objectives of CMMI:
1. Fulfilling customer needs and expectations.
2. Value creation for investors/stockholders.
3. Market growth is increased.
4. Improved quality of products and services.
5. Enhanced reputation in Industry.
CMMI Representation – Staged and Continuous :
A representation allows an organization to pursue a different set of improvement
objectives. There are two representations for CMMI:
• Staged Representation :
• uses a pre-defined set of process areas to define improvement path.
• provides a sequence of improvements, where each part in the
sequence serves as a foundation for the next.
• an improved path is defined by maturity level.
• maturity level describes the maturity of processes in organization.
• Staged CMMI representation allows comparison between different
organizations for multiple maturity levels.
• Continuous Representation:
• allows selection of specific process areas.
• uses capability levels that measures improvement of an individual
process area.
Software Engineering
SWETA KUMARI BARNWAL 5
• Continuous CMMI representation allows comparison between
different organizations on a process-area-by-process-area basis.
• allows organizations to select processes which require more
improvement.
• In this representation, order of improvement of various processes can
be selected which allows the organizations to meet their objectives
and eliminate risks.
CMMI Model – Maturity Levels:
In CMMI with staged representation, there are five maturity levels described as follows:
1. Maturity level 1: Initial
• processes are poorly managed or controlled.
• unpredictable outcomes of processes involved.
• ad hoc and chaotic approach used.
• No KPAs (Key Process Areas) defined.
• Lowest quality and highest risk.
2. Maturity level 2: Managed
• requirements are managed.
• processes are planned and controlled.
• projects are managed and implemented according to their
documented plans.
• This risk involved is lower than Initial level, but still exists.
• Quality is better than Initial level.
3. Maturity level 3: Defined
• processes are well characterized and described using standards,
proper procedures, and methods, tools, etc.
• Medium quality and medium risk involved.
• Focus is process standardization.
4. Maturity level 4: Quantitatively managed
• quantitative objectives for process performance and quality are set.
• quantitative objectives are based on customer requirements,
organization needs, etc.
• process performance measures are analyzed quantitatively.
• higher quality of processes is achieved.
• lower risk
5. Maturity level 5: Optimizing
• continuous improvement in processes and their performance.
• improvement has to be both incremental and innovative.
• highest quality of processes.
• lowest risk in processes and their performance.
CMMI Model – Capability Levels
A capability level includes relevant specific and generic practices for a specific process
area that can improve the organization’s processes associated with that process area. For
CMMI models with continuous representation, there are six capability levels as described
below :
1. Capability level 0: Incomplete
• incomplete process – partially or not performed.
• one or more specific goals of process area are not met.
• No generic goals are specified for this level.
• this capability level is same as maturity level 1.
2. Capability level 1: Performed
Software Engineering
SWETA KUMARI BARNWAL 6
• process performance may not be stable.
• objectives of quality, cost and schedule may not be met.
• a capability level 1 process is expected to perform all specific and
generic practices for this level.
• only a start-step for process improvement.
3. Capability level 2: Managed
• process is planned, monitored and controlled.
• managing the process by ensuring that objectives are achieved.
• objectives are both model and other including cost, quality, schedule.
• actively managing processing with the help of metrics.
4. Capability level 3: Defined
• a defined process is managed and meets the organization’s set of
guidelines and standards.
• focus is process standardization.
5. Capability level 4: Quantitatively Managed
• process is controlled using statistical and quantitative techniques.
• process performance and quality is understood in statistical terms and
metrics.
• quantitative objectives for process quality and performance are
established.
6. Capability level 5: Optimizing
• focuses on continually improving process performance.
• performance is improved in both ways – incremental and innovation.
• emphasizes on studying the performance results across the
organization to ensure that common causes or issues are identified
and fixed.
SERVICE ORIENTED SOFTWARE ENGINEERING
A web service is an instance of a more general notion of a service: "an act or performance
offered by one party to another. Although the process may be tied to a physical product, the
performance is essentially intangible and does not normally result in ownership of any of the
factors of production."
The essence of a service, therefore, is that the provision of the service is independent of the
application using the service. Service providers can develop specialized services and offer
these to a range of service users from different organizations.
Services are reusable components that are independent (no requires interface) and
are loosely coupled. A web service is:
A loosely coupled, reusable software component that encapsulates discrete functionality,
which may be distributed and programmatically accessed. A web service is a service that is
accessed using standard Internet and XML-based protocols.
Services are platform and implementation-language independent.
Benefits of a service-oriented approach:
• Services can be offered by any service provider inside or outside of an
organization so organizations can create applications by integrating services from
a range of providers.
• The service provider makes information about the service public so that any
authorized user can use the service.
Software Engineering
SWETA KUMARI BARNWAL 7
• Applications can delay the binding of services until they are deployed or until
execution. This means that applications can be reactive and adapt their operation
to cope with changes to their execution environment.
• Opportunistic construction of new services is possible. A service provider may
recognize new services that can be created by linking existing services in
innovative ways.
• Service users can pay for services according to their use rather than their
provision. Instead of buying a rarely-used component, the application developers
can use an external service that will be paid for only when required.
• Applications can be made smaller, which is particularly important for mobile
devices with limited processing and memory capabilities. Computationally-
intensive processing can be offloaded to external services.
Services As Reusable Components
Reusable software components are designed to apply the power and benefit of reusable,
interchangeable parts from other industries to the field of software construction. Other
industries have long profited from reusable components. Reusable electronic components are
found on circuit boards. A typical part in your car can be replaced by a component made from
one of many different competing manufactures. Lucrative industries are built around parts
construction and supply in most competitive fields. The idea is that standard interfaces allow
for interchangeable, reusable components.
Reusable software components can be simple like familiar push buttons, text fields list boxes,
scrollbars, dialogs etc.
Reusable components add standardized interfaces and object introspection mechanisms to
widgets allowing builder tools to query components about their properties and behavior.
Software components need not be visible in a running application; they only need to be visible
when the application is constructed.
For example, the builder tool above shows a calculator component that is built from 16 button
components, a text field component, and a panel upon which the buttons and a text display are
placed. In addition, you can see five invisible components. These specific components hold
values or strings used by the calculator for intermediate calculations, operation codes, and
display strings, as well a boolean flag to determine when evaluation of a new expression is
started.
A programmer can move, query, or visually hook together components such as numeric value
holders, disk accessors, or network socket components with a mouse while operating a
builder tool. However, such components would do their work invisibly while the application
is running.
Software Engineering
SWETA KUMARI BARNWAL 8
Service-Oriented Architectures
Service-oriented software engineering is as significant as object-oriented software
engineering. Building applications based on services allows companies and other
organizations to cooperate and make use of each other's business functions. Service-based
applications may be constructed by linking services from various providers using either a
standard programming language or a specialized workflow language.
Service-oriented architecture (SOA) is a means of developing distributed systems where
the components are stand-alone services. Services may execute on different computers
from different service providers. Standard protocols have been developed to support service
communication and information exchange.
Software Engineering
SWETA KUMARI BARNWAL 9
Benefits of SOA:
• Services can be provided locally or outsourced to external providers
• Services are language-independent
• Investment in legacy systems can be preserved
• Inter-organizational computing is facilitated through simplified information
exchange
Key standards:
• SOAP (Simple Object Access Protocol): a message exchange standard that
supports service communication
• WSDL (Web Service Definition Language): allows a service interface and its
bindings to be defined
• WS-BPEL (Web Services Business Process Execution Language): a standard
for workflow languages used to define service composition
Existing approaches to software engineering have to evolve to reflect the service-oriented
approach to software development:
• Service engineering (software development for reuse): the development of
dependable, reusable services.
• Software development with services (software development with reuse): the
development of dependable software where services are the fundamental
components.
A service can be defined as:
A loosely-coupled, reusable software component that encapsulates discrete functionality
which may be distributed and programmatically accessed. A web service is a service that is
accessed using standard Internet and XML-based protocols
A critical distinction between a service and a component as defined in CBSE is that services
Software Engineering
SWETA KUMARI BARNWAL 10
are independent. Services do not have a 'requires' interface. Services rely on message-based
communication with messages expressed in XML.
The service interface is defined in a service description expressed in WSDL (Web Service
Description Language). The WSDL specification defines:
• What operations the service supports and the format of the messages that are sent
and received by the service. The 'what' part of a WSDL document, called an
interface, specifies what operations the service supports, and defines the format of
the messages that are sent and received by the service.
• How the service is accessed - that is, the binding maps the abstract interface onto
a concrete set of protocols. The 'how' part of a WSDL document, called a binding,
maps the abstract interface to a concrete set of protocols. The binding specifies the
technical details of how to communicate with a Web service.
• Where the service is located. This is usually expressed as a URI (Universal
Resource Identifier). The 'where' part of a WSDL document describes the location
of a specific Web service implementation (its endpoint).
RESTful Services
Current web services standards have been criticized as 'heavyweight' standards that are over-
general and inefficient. REST (REpresentational State Transfer) is an architectural style
based on transferring representations of resources from a server to a client. This
style underlies the web as a whole and is simpler than SOAP/WSDL for implementing web
services. RESTful services involve a lower overhead than so-called 'big web services' and are
used by many organizations implementing service-based systems.
The fundamental element in a RESTful architecture is a resource. Essentially, a resource
is simply a data element such as a catalog, a medical record, or a document. In general,
resources may have multiple representations i.e. they can exist in different formats.
Resource operations:
• Create - bring the resource into existence.
• Read - return a representation of the resource.
• Update - change the value of the resource.
• Delete - make the resource inaccessible.
The Web is an example of a system that has a RESTful architecture. Web pages are
resources, and the unique identifier of a web page is its URL.
• POST is used to create a resource. It has associated data that defines the resource.
• GET is used to read the value of a resource and return that to the requestor in the
specified representation, such as XHTML, that can be rendered in a web browser.
• PUT is used to update the value of a resource.
• DELETE is used to delete the resource.
Disadvantages of RESTful approach:
• When a service has a complex interface and is not a simple resource, it can
be difficult to design a set of RESTful services to represent this.
Software Engineering
SWETA KUMARI BARNWAL 11
• There are no standards for RESTful interface description so service users must
rely on informal documentation to understand the interface.
• When you use RESTful services, you have to implement your own
infrastructure for monitoring and managing the quality of service and
the service reliability.
Service Engineering
Service engineering is the process of developing services for reuse in service-oriented
applications. The service has to be designed as a reusable abstraction that can be used in
different systems. Generally useful functionality associated with that abstraction must be
designed and the service must be robust and reliable. The service must be documented so that
it can be discovered and understood by potential users.
Stages of service engineering include:
• Service candidate identification, where you identify possible services that might
be implemented and define the service requirements.It involves understanding an
organization's business processes to decide which reusable services could support
these processes. Three fundamental types of service:
o Utility services that implement general functionality used by
different business processes.
o Business services that are associated with a specific business
function e.g., in a university, student registration.
o Coordination services that support composite processes such as
ordering.
• Service design, where you design the logical service interface and its
implementation interfaces (SOAP and/or RESTful). Involves thinking about the
operations associated with the service and the messages exchanged. The number
of messages exchanged to complete a service request should normally be
minimized. Service state information may have to be included in messages.
Interface design stages:
o Logical interface design. Starts with the service requirements and
defines the operation names and parameters associated with the
service. Exceptions should also be defined.
o Message design (SOAP). For SOAP-based services, design the
structure and organization of the input and output messages.
Software Engineering
SWETA KUMARI BARNWAL 12
Notations such as the UML are a more abstract representation than
XML. The logical specification is converted to a WSDL description.
o Interface design (REST). Design how the required operations map
onto REST operations and what resources are required.
• Service implementation and deployment, where you implement and test the
service and make it available for use. Programming services using a standard
programming language or a workflow language. Services then have to be tested
by creating input messages and checking that the output messages produced are as
expected. Deployment involves publicizing the service and installing it on a web
server. Current servers provide support for service installation.
Service Composition
Existing services are composed and configured to create new composite services and
applications. The basis for service composition is often a workflow. Workflows are logical
sequences of activities that, together, model a coherent business process. For example,
provide a travel reservation services which allows flights, car hire and hotel bookings to be
coordinated.
Service construction by composition:
Formulate outline workflow
In this initial stage of service design, you use the requirements for the composite
service as a basis for creating an 'ideal' service design.
Discover services
During this stage of the process, you search service registries or catalogs to discover
what services exist, who provides these services and the details of the service
provision.
Select possible services
Your selection criteria will obviously include the functionality of the services offered.
They may also include the cost of the services and the quality of service
(responsiveness, availability, etc.) offered.
Refine workflow
This involves adding detail to the abstract description and perhaps adding or removing
workflow activities.
Create workflow program
During this stage, the abstract workflow design is transformed to an executable
program and the service interface is defined. You can use a conventional
programming language, such as Java or a workflow language, such as WS-BPEL.
Test completed service or application
The process of testing the completed, composite service is more complex than
component testing in situations where external services are used.

Más contenido relacionado

La actualidad más candente

Case tools(computer Aided software Engineering)
Case tools(computer Aided software Engineering)Case tools(computer Aided software Engineering)
Case tools(computer Aided software Engineering)Self-employed
 
Web Application Design
Web Application DesignWeb Application Design
Web Application DesignHemin Patel
 
Theory of automata and formal language lab manual
Theory of automata and formal language lab manualTheory of automata and formal language lab manual
Theory of automata and formal language lab manualNitesh Dubey
 
Software project estimation
Software project estimationSoftware project estimation
Software project estimationinayat khan
 
Software project management
Software project managementSoftware project management
Software project managementR A Akerkar
 
Graph coloring problem(DAA).pptx
Graph coloring problem(DAA).pptxGraph coloring problem(DAA).pptx
Graph coloring problem(DAA).pptxHome
 
Software Engineering Ethics
Software Engineering EthicsSoftware Engineering Ethics
Software Engineering EthicsKapil Rajpurohit
 
Business Analysis, Query Tools, Dm unit-3
Business Analysis, Query Tools, Dm unit-3Business Analysis, Query Tools, Dm unit-3
Business Analysis, Query Tools, Dm unit-3Dr. Sunil Kr. Pandey
 
Spiral model presentation
Spiral model presentationSpiral model presentation
Spiral model presentationSayedFarhan110
 
Software project management Software economics
Software project management Software economicsSoftware project management Software economics
Software project management Software economicsREHMAT ULLAH
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation TechniquesSanthi thi
 
Difference between snowflake schema and fact constellation
Difference between snowflake schema and fact constellationDifference between snowflake schema and fact constellation
Difference between snowflake schema and fact constellationAsim Saif
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle modelStephennancy
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsStephennancy
 

La actualidad más candente (20)

Staffing level estimation
Staffing level estimation Staffing level estimation
Staffing level estimation
 
Case tools(computer Aided software Engineering)
Case tools(computer Aided software Engineering)Case tools(computer Aided software Engineering)
Case tools(computer Aided software Engineering)
 
Web Application Design
Web Application DesignWeb Application Design
Web Application Design
 
Theory of automata and formal language lab manual
Theory of automata and formal language lab manualTheory of automata and formal language lab manual
Theory of automata and formal language lab manual
 
Software project estimation
Software project estimationSoftware project estimation
Software project estimation
 
Software project management
Software project managementSoftware project management
Software project management
 
Software Myths
Software MythsSoftware Myths
Software Myths
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Graph coloring problem(DAA).pptx
Graph coloring problem(DAA).pptxGraph coloring problem(DAA).pptx
Graph coloring problem(DAA).pptx
 
Hadoop Map Reduce
Hadoop Map ReduceHadoop Map Reduce
Hadoop Map Reduce
 
Software Engineering Ethics
Software Engineering EthicsSoftware Engineering Ethics
Software Engineering Ethics
 
Business Analysis, Query Tools, Dm unit-3
Business Analysis, Query Tools, Dm unit-3Business Analysis, Query Tools, Dm unit-3
Business Analysis, Query Tools, Dm unit-3
 
Spiral model presentation
Spiral model presentationSpiral model presentation
Spiral model presentation
 
Software project management Software economics
Software project management Software economicsSoftware project management Software economics
Software project management Software economics
 
Data mining notes
Data mining notesData mining notes
Data mining notes
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Difference between snowflake schema and fact constellation
Difference between snowflake schema and fact constellationDifference between snowflake schema and fact constellation
Difference between snowflake schema and fact constellation
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle model
 
Dbms schemas for decision support
Dbms schemas for decision supportDbms schemas for decision support
Dbms schemas for decision support
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
 

Similar a Process improvement & service oriented software engineering

Software process improvement.ppt
Software process improvement.pptSoftware process improvement.ppt
Software process improvement.pptImXaib
 
eUnit 2 software process model
eUnit 2  software process modeleUnit 2  software process model
eUnit 2 software process modelPreeti Mishra
 
Capability Maturity Model (CMM).pptx
Capability Maturity Model (CMM).pptxCapability Maturity Model (CMM).pptx
Capability Maturity Model (CMM).pptxPerumalPitchandi
 
SPM_presentation.pptx
SPM_presentation.pptxSPM_presentation.pptx
SPM_presentation.pptxAatifQuamre
 
Software development life cycle model
Software development life cycle modelSoftware development life cycle model
Software development life cycle modelنور شزننا
 
QAI - Cmmi Overview - Induction ppt
QAI - Cmmi Overview - Induction pptQAI - Cmmi Overview - Induction ppt
QAI - Cmmi Overview - Induction pptQAIites
 
A Simple Introduction To CMMI For Beginer
A Simple Introduction To CMMI For BeginerA Simple Introduction To CMMI For Beginer
A Simple Introduction To CMMI For BeginerManas Das
 
9.process improvement chapter 9
9.process improvement chapter 99.process improvement chapter 9
9.process improvement chapter 9Warui Maina
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)ShudipPal
 
Unit4 Software Engineering Institute (SEI)’s Capability Maturity Model (CMM) ...
Unit4 Software Engineering Institute (SEI)’sCapability Maturity Model (CMM)...Unit4 Software Engineering Institute (SEI)’sCapability Maturity Model (CMM)...
Unit4 Software Engineering Institute (SEI)’s Capability Maturity Model (CMM) ...Reetesh Gupta
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2Rupesh Vaishnav
 
IT QUALITY ASSURANCE AND INFORMATION AUDIT
IT QUALITY ASSURANCE AND INFORMATION AUDITIT QUALITY ASSURANCE AND INFORMATION AUDIT
IT QUALITY ASSURANCE AND INFORMATION AUDITMufaddal Nullwala
 
Capability Maturity Model Integration
Capability Maturity Model IntegrationCapability Maturity Model Integration
Capability Maturity Model IntegrationAAKASH S
 
Capability Maturity Model (CMM) in Software Engineering
Capability Maturity Model (CMM) in Software EngineeringCapability Maturity Model (CMM) in Software Engineering
Capability Maturity Model (CMM) in Software EngineeringFaizanAhmad340414
 
software process improvement
software process improvementsoftware process improvement
software process improvementMohammad Xaviar
 

Similar a Process improvement & service oriented software engineering (20)

Software process improvement.ppt
Software process improvement.pptSoftware process improvement.ppt
Software process improvement.ppt
 
eUnit 2 software process model
eUnit 2  software process modeleUnit 2  software process model
eUnit 2 software process model
 
Capability Maturity Model (CMM).pptx
Capability Maturity Model (CMM).pptxCapability Maturity Model (CMM).pptx
Capability Maturity Model (CMM).pptx
 
SPM_presentation.pptx
SPM_presentation.pptxSPM_presentation.pptx
SPM_presentation.pptx
 
Cmm
CmmCmm
Cmm
 
Software development life cycle model
Software development life cycle modelSoftware development life cycle model
Software development life cycle model
 
QAI - Cmmi Overview - Induction ppt
QAI - Cmmi Overview - Induction pptQAI - Cmmi Overview - Induction ppt
QAI - Cmmi Overview - Induction ppt
 
A Simple Introduction To CMMI For Beginer
A Simple Introduction To CMMI For BeginerA Simple Introduction To CMMI For Beginer
A Simple Introduction To CMMI For Beginer
 
9.process improvement chapter 9
9.process improvement chapter 99.process improvement chapter 9
9.process improvement chapter 9
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)
 
Ch28
Ch28Ch28
Ch28
 
Unit4 Software Engineering Institute (SEI)’s Capability Maturity Model (CMM) ...
Unit4 Software Engineering Institute (SEI)’sCapability Maturity Model (CMM)...Unit4 Software Engineering Institute (SEI)’sCapability Maturity Model (CMM)...
Unit4 Software Engineering Institute (SEI)’s Capability Maturity Model (CMM) ...
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
Introduction To Cmm1
Introduction To Cmm1Introduction To Cmm1
Introduction To Cmm1
 
IT QUALITY ASSURANCE AND INFORMATION AUDIT
IT QUALITY ASSURANCE AND INFORMATION AUDITIT QUALITY ASSURANCE AND INFORMATION AUDIT
IT QUALITY ASSURANCE AND INFORMATION AUDIT
 
Cmmi
CmmiCmmi
Cmmi
 
Capability Maturity Model Integration
Capability Maturity Model IntegrationCapability Maturity Model Integration
Capability Maturity Model Integration
 
CMMI an Overview
CMMI an OverviewCMMI an Overview
CMMI an Overview
 
Capability Maturity Model (CMM) in Software Engineering
Capability Maturity Model (CMM) in Software EngineeringCapability Maturity Model (CMM) in Software Engineering
Capability Maturity Model (CMM) in Software Engineering
 
software process improvement
software process improvementsoftware process improvement
software process improvement
 

Más de Sweta Kumari Barnwal

Computer Network-Data Link Layer-Module-2.pdf
Computer Network-Data Link Layer-Module-2.pdfComputer Network-Data Link Layer-Module-2.pdf
Computer Network-Data Link Layer-Module-2.pdfSweta Kumari Barnwal
 
Sensors in Different Applications Area.pdf
Sensors in Different Applications Area.pdfSensors in Different Applications Area.pdf
Sensors in Different Applications Area.pdfSweta Kumari Barnwal
 
Sensor technology module-3-interface electronic circuits
Sensor technology module-3-interface electronic circuitsSensor technology module-3-interface electronic circuits
Sensor technology module-3-interface electronic circuitsSweta Kumari Barnwal
 
Sensors fundamentals and characteristics, physical principle of sensing
Sensors fundamentals and characteristics, physical principle of sensingSensors fundamentals and characteristics, physical principle of sensing
Sensors fundamentals and characteristics, physical principle of sensingSweta Kumari Barnwal
 
Module 5-cloud computing-SECURITY IN THE CLOUD
Module 5-cloud computing-SECURITY IN THE CLOUDModule 5-cloud computing-SECURITY IN THE CLOUD
Module 5-cloud computing-SECURITY IN THE CLOUDSweta Kumari Barnwal
 

Más de Sweta Kumari Barnwal (20)

UNIT-1 Start Learning R.pdf
UNIT-1 Start Learning R.pdfUNIT-1 Start Learning R.pdf
UNIT-1 Start Learning R.pdf
 
MODULE-2-Cloud Computing.docx.pdf
MODULE-2-Cloud Computing.docx.pdfMODULE-2-Cloud Computing.docx.pdf
MODULE-2-Cloud Computing.docx.pdf
 
Number System.pdf
Number System.pdfNumber System.pdf
Number System.pdf
 
Cloud Computing_Module-1.pdf
Cloud Computing_Module-1.pdfCloud Computing_Module-1.pdf
Cloud Computing_Module-1.pdf
 
Computer Network-Data Link Layer-Module-2.pdf
Computer Network-Data Link Layer-Module-2.pdfComputer Network-Data Link Layer-Module-2.pdf
Computer Network-Data Link Layer-Module-2.pdf
 
Sensors in Different Applications Area.pdf
Sensors in Different Applications Area.pdfSensors in Different Applications Area.pdf
Sensors in Different Applications Area.pdf
 
Sensor technology module-3-interface electronic circuits
Sensor technology module-3-interface electronic circuitsSensor technology module-3-interface electronic circuits
Sensor technology module-3-interface electronic circuits
 
Sensors fundamentals and characteristics, physical principle of sensing
Sensors fundamentals and characteristics, physical principle of sensingSensors fundamentals and characteristics, physical principle of sensing
Sensors fundamentals and characteristics, physical principle of sensing
 
Logic gates
Logic gatesLogic gates
Logic gates
 
Basic computer system
Basic computer systemBasic computer system
Basic computer system
 
Features of windows
Features of windowsFeatures of windows
Features of windows
 
Operating system and services
Operating system and servicesOperating system and services
Operating system and services
 
Introduction to computers
Introduction to computersIntroduction to computers
Introduction to computers
 
Application Layer
Application LayerApplication Layer
Application Layer
 
Network Layer & Transport Layer
Network Layer & Transport LayerNetwork Layer & Transport Layer
Network Layer & Transport Layer
 
Module 5-cloud computing-SECURITY IN THE CLOUD
Module 5-cloud computing-SECURITY IN THE CLOUDModule 5-cloud computing-SECURITY IN THE CLOUD
Module 5-cloud computing-SECURITY IN THE CLOUD
 
Module 3-cyber security
Module 3-cyber securityModule 3-cyber security
Module 3-cyber security
 
Unit ii-hackers and cyber crimes
Unit ii-hackers and cyber crimesUnit ii-hackers and cyber crimes
Unit ii-hackers and cyber crimes
 
Module 3-cloud computing
Module 3-cloud computingModule 3-cloud computing
Module 3-cloud computing
 
Virtualization - cloud computing
Virtualization - cloud computingVirtualization - cloud computing
Virtualization - cloud computing
 

Último

System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating SystemRashmi Bhat
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsSachinPawar510423
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgsaravananr517913
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
The SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teamsThe SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teamsDILIPKUMARMONDAL6
 

Último (20)

System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating System
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documents
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
The SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teamsThe SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teams
 

Process improvement & service oriented software engineering

  • 1. Software Engineering SWETA KUMARI BARNWAL 1 PROCESS IMPROVEMENT & SERVICE ORIENTED SOFTWARE ENGINEERING Topics Covered: Process Improvement: Process and product quality, Process Classification, Process Measurement, Process Analysis and Modeling, Process Change, The CMMI Process Improvement Framework. Service Oriented Software Engineering: Services as reusable components, Service Engineering, Software Development with Services. SOFTWARE PROCESS IMPROVEMENT Many software companies usually face issues in their software development projects and its delivery. The issues can vary from lack of documentation, lack of following the process, lack of process governance, lack of the integration and collaboration between the teams, lack of requirements traceability, lack of technology management, …etc. SPI is a methodology defined as a sequence of tasks, tools, and techniques to plan and implement improvement activities to achieve specific goals such as increasing development speed, achieving higher product quality or reducing costs. Process & Product Quality Process quality and product quality are closely related and process improvement benefits arise because the quality of the product depends on its development process. A good process is usually required to produce a good product. For manufactured goods, process is the principal quality determinant. Improvement Planning Improvement Evaluation Improvement Implementation Current Situation Evaluation
  • 2. Software Engineering SWETA KUMARI BARNWAL 2 For design-based activity, other factors are also involved especially the capabilities of the designers. Software Process Model: A software process model is an abstraction of the actual process, which is being described. It can also be defined as a simplified representation of a software process. Each model represents a process from a specific perspective. Basic software process models on which different type of software process models can be implemented: 1. A workflow Model: It is the sequential series of tasks and decisions that make up a business process. 2. The Waterfall Model: It is a sequential design process in which progress is seen as flowing steadily downwards. Phases in waterfall model: • (i) Requirements Specification • (ii) Software Design • (iii) Implementation • (iv) Testing 3. Dataflow Model: It is diagrammatic representation of the flow and exchange of information within a system. 4. Evolutionary Development Model: Following activities are considered in this method: • (i) Specification Product Quality Development Technology People Quality Process Quality Cost Time & Schedule
  • 3. Software Engineering SWETA KUMARI BARNWAL 3 • (ii) Development • (iii) Validation 5. Role / Action Model: Roles of the people involved in the software process and the activities. PROCESS CLASSIFICATION • Informal: No detailed process model. Development team chose their own way of working. • Managed: Defined process model which drives the development process. • Methodical: Processes supported by some development method such as the RUP. • Supported: Processes supported by automated CASE tools. PROCESS MEASUREMENT Wherever possible, quantitative process data should be collected ◦ However, where organisations do not have clearly defined process standards this is very difficult as you don’t know what to measure. A process may have to be defined before any measurement is possible. Process measurements should be used to assess process improvements ◦ But this does not mean that measurements should drive the improvements. The improvement driver should be the organizational objectives. Classes Of Process Measurement Time taken for process activities to be completed ◦ E.g. Calendar time or effort to complete an activity or process. Resources required for processes or activities ◦ E.g. Total effort in person-days. Number of occurrences of a particular event ◦ E.g. Number of defects discovered. PROCESS ANALYSIS AND MODELLING A software process model is an abstraction of the actual process, which is being described. It can also be defined as a simplified representation of a software process. Each model represents a process from a specific perspective. ◦ Process analysis: The study of existing processes to understand the relationships between parts of the process and to compare them with other processes.
  • 4. Software Engineering SWETA KUMARI BARNWAL 4 ◦ Process modelling: The documentation of a process which records the tasks, the roles and the entities used. Process models may be presented from different perspectives. THE CMMI PROCESS IMPROVEMENT FRAMEWORK CMM Model (Capability Maturity Model): CMM was developed by the Software Engineering Institute (SEI) at Carnegie Mellon University in 1987. • It is not a software process model. It is a framework that is used to analyze the approach and techniques followed by any organization to develop software products. • It also provides guidelines to further enhance the maturity of the process used to develop those software products. • It is based on profound feedback and development practices adopted by the most successful organizations worldwide. • This model describes a strategy for software process improvement that should be followed by moving through 5 different levels. • Each level of maturity shows a process capability level. All the levels except level-1 are further described by Key Process Areas (KPA’s). Capability Maturity Model Integration (CMMI) is a successor of CMM and is a more evolved model that incorporates best components of individual disciplines of CMM like Software CMM, Systems Engineering CMM, People CMM, etc. Since CMM is a reference model of matured practices in a specific discipline, so it becomes difficult to integrate these disciplines as per the requirements. This is why CMMI is used as it allows the integration of multiple disciplines as and when needed. Objectives of CMMI: 1. Fulfilling customer needs and expectations. 2. Value creation for investors/stockholders. 3. Market growth is increased. 4. Improved quality of products and services. 5. Enhanced reputation in Industry. CMMI Representation – Staged and Continuous : A representation allows an organization to pursue a different set of improvement objectives. There are two representations for CMMI: • Staged Representation : • uses a pre-defined set of process areas to define improvement path. • provides a sequence of improvements, where each part in the sequence serves as a foundation for the next. • an improved path is defined by maturity level. • maturity level describes the maturity of processes in organization. • Staged CMMI representation allows comparison between different organizations for multiple maturity levels. • Continuous Representation: • allows selection of specific process areas. • uses capability levels that measures improvement of an individual process area.
  • 5. Software Engineering SWETA KUMARI BARNWAL 5 • Continuous CMMI representation allows comparison between different organizations on a process-area-by-process-area basis. • allows organizations to select processes which require more improvement. • In this representation, order of improvement of various processes can be selected which allows the organizations to meet their objectives and eliminate risks. CMMI Model – Maturity Levels: In CMMI with staged representation, there are five maturity levels described as follows: 1. Maturity level 1: Initial • processes are poorly managed or controlled. • unpredictable outcomes of processes involved. • ad hoc and chaotic approach used. • No KPAs (Key Process Areas) defined. • Lowest quality and highest risk. 2. Maturity level 2: Managed • requirements are managed. • processes are planned and controlled. • projects are managed and implemented according to their documented plans. • This risk involved is lower than Initial level, but still exists. • Quality is better than Initial level. 3. Maturity level 3: Defined • processes are well characterized and described using standards, proper procedures, and methods, tools, etc. • Medium quality and medium risk involved. • Focus is process standardization. 4. Maturity level 4: Quantitatively managed • quantitative objectives for process performance and quality are set. • quantitative objectives are based on customer requirements, organization needs, etc. • process performance measures are analyzed quantitatively. • higher quality of processes is achieved. • lower risk 5. Maturity level 5: Optimizing • continuous improvement in processes and their performance. • improvement has to be both incremental and innovative. • highest quality of processes. • lowest risk in processes and their performance. CMMI Model – Capability Levels A capability level includes relevant specific and generic practices for a specific process area that can improve the organization’s processes associated with that process area. For CMMI models with continuous representation, there are six capability levels as described below : 1. Capability level 0: Incomplete • incomplete process – partially or not performed. • one or more specific goals of process area are not met. • No generic goals are specified for this level. • this capability level is same as maturity level 1. 2. Capability level 1: Performed
  • 6. Software Engineering SWETA KUMARI BARNWAL 6 • process performance may not be stable. • objectives of quality, cost and schedule may not be met. • a capability level 1 process is expected to perform all specific and generic practices for this level. • only a start-step for process improvement. 3. Capability level 2: Managed • process is planned, monitored and controlled. • managing the process by ensuring that objectives are achieved. • objectives are both model and other including cost, quality, schedule. • actively managing processing with the help of metrics. 4. Capability level 3: Defined • a defined process is managed and meets the organization’s set of guidelines and standards. • focus is process standardization. 5. Capability level 4: Quantitatively Managed • process is controlled using statistical and quantitative techniques. • process performance and quality is understood in statistical terms and metrics. • quantitative objectives for process quality and performance are established. 6. Capability level 5: Optimizing • focuses on continually improving process performance. • performance is improved in both ways – incremental and innovation. • emphasizes on studying the performance results across the organization to ensure that common causes or issues are identified and fixed. SERVICE ORIENTED SOFTWARE ENGINEERING A web service is an instance of a more general notion of a service: "an act or performance offered by one party to another. Although the process may be tied to a physical product, the performance is essentially intangible and does not normally result in ownership of any of the factors of production." The essence of a service, therefore, is that the provision of the service is independent of the application using the service. Service providers can develop specialized services and offer these to a range of service users from different organizations. Services are reusable components that are independent (no requires interface) and are loosely coupled. A web service is: A loosely coupled, reusable software component that encapsulates discrete functionality, which may be distributed and programmatically accessed. A web service is a service that is accessed using standard Internet and XML-based protocols. Services are platform and implementation-language independent. Benefits of a service-oriented approach: • Services can be offered by any service provider inside or outside of an organization so organizations can create applications by integrating services from a range of providers. • The service provider makes information about the service public so that any authorized user can use the service.
  • 7. Software Engineering SWETA KUMARI BARNWAL 7 • Applications can delay the binding of services until they are deployed or until execution. This means that applications can be reactive and adapt their operation to cope with changes to their execution environment. • Opportunistic construction of new services is possible. A service provider may recognize new services that can be created by linking existing services in innovative ways. • Service users can pay for services according to their use rather than their provision. Instead of buying a rarely-used component, the application developers can use an external service that will be paid for only when required. • Applications can be made smaller, which is particularly important for mobile devices with limited processing and memory capabilities. Computationally- intensive processing can be offloaded to external services. Services As Reusable Components Reusable software components are designed to apply the power and benefit of reusable, interchangeable parts from other industries to the field of software construction. Other industries have long profited from reusable components. Reusable electronic components are found on circuit boards. A typical part in your car can be replaced by a component made from one of many different competing manufactures. Lucrative industries are built around parts construction and supply in most competitive fields. The idea is that standard interfaces allow for interchangeable, reusable components. Reusable software components can be simple like familiar push buttons, text fields list boxes, scrollbars, dialogs etc. Reusable components add standardized interfaces and object introspection mechanisms to widgets allowing builder tools to query components about their properties and behavior. Software components need not be visible in a running application; they only need to be visible when the application is constructed. For example, the builder tool above shows a calculator component that is built from 16 button components, a text field component, and a panel upon which the buttons and a text display are placed. In addition, you can see five invisible components. These specific components hold values or strings used by the calculator for intermediate calculations, operation codes, and display strings, as well a boolean flag to determine when evaluation of a new expression is started. A programmer can move, query, or visually hook together components such as numeric value holders, disk accessors, or network socket components with a mouse while operating a builder tool. However, such components would do their work invisibly while the application is running.
  • 8. Software Engineering SWETA KUMARI BARNWAL 8 Service-Oriented Architectures Service-oriented software engineering is as significant as object-oriented software engineering. Building applications based on services allows companies and other organizations to cooperate and make use of each other's business functions. Service-based applications may be constructed by linking services from various providers using either a standard programming language or a specialized workflow language. Service-oriented architecture (SOA) is a means of developing distributed systems where the components are stand-alone services. Services may execute on different computers from different service providers. Standard protocols have been developed to support service communication and information exchange.
  • 9. Software Engineering SWETA KUMARI BARNWAL 9 Benefits of SOA: • Services can be provided locally or outsourced to external providers • Services are language-independent • Investment in legacy systems can be preserved • Inter-organizational computing is facilitated through simplified information exchange Key standards: • SOAP (Simple Object Access Protocol): a message exchange standard that supports service communication • WSDL (Web Service Definition Language): allows a service interface and its bindings to be defined • WS-BPEL (Web Services Business Process Execution Language): a standard for workflow languages used to define service composition Existing approaches to software engineering have to evolve to reflect the service-oriented approach to software development: • Service engineering (software development for reuse): the development of dependable, reusable services. • Software development with services (software development with reuse): the development of dependable software where services are the fundamental components. A service can be defined as: A loosely-coupled, reusable software component that encapsulates discrete functionality which may be distributed and programmatically accessed. A web service is a service that is accessed using standard Internet and XML-based protocols A critical distinction between a service and a component as defined in CBSE is that services
  • 10. Software Engineering SWETA KUMARI BARNWAL 10 are independent. Services do not have a 'requires' interface. Services rely on message-based communication with messages expressed in XML. The service interface is defined in a service description expressed in WSDL (Web Service Description Language). The WSDL specification defines: • What operations the service supports and the format of the messages that are sent and received by the service. The 'what' part of a WSDL document, called an interface, specifies what operations the service supports, and defines the format of the messages that are sent and received by the service. • How the service is accessed - that is, the binding maps the abstract interface onto a concrete set of protocols. The 'how' part of a WSDL document, called a binding, maps the abstract interface to a concrete set of protocols. The binding specifies the technical details of how to communicate with a Web service. • Where the service is located. This is usually expressed as a URI (Universal Resource Identifier). The 'where' part of a WSDL document describes the location of a specific Web service implementation (its endpoint). RESTful Services Current web services standards have been criticized as 'heavyweight' standards that are over- general and inefficient. REST (REpresentational State Transfer) is an architectural style based on transferring representations of resources from a server to a client. This style underlies the web as a whole and is simpler than SOAP/WSDL for implementing web services. RESTful services involve a lower overhead than so-called 'big web services' and are used by many organizations implementing service-based systems. The fundamental element in a RESTful architecture is a resource. Essentially, a resource is simply a data element such as a catalog, a medical record, or a document. In general, resources may have multiple representations i.e. they can exist in different formats. Resource operations: • Create - bring the resource into existence. • Read - return a representation of the resource. • Update - change the value of the resource. • Delete - make the resource inaccessible. The Web is an example of a system that has a RESTful architecture. Web pages are resources, and the unique identifier of a web page is its URL. • POST is used to create a resource. It has associated data that defines the resource. • GET is used to read the value of a resource and return that to the requestor in the specified representation, such as XHTML, that can be rendered in a web browser. • PUT is used to update the value of a resource. • DELETE is used to delete the resource. Disadvantages of RESTful approach: • When a service has a complex interface and is not a simple resource, it can be difficult to design a set of RESTful services to represent this.
  • 11. Software Engineering SWETA KUMARI BARNWAL 11 • There are no standards for RESTful interface description so service users must rely on informal documentation to understand the interface. • When you use RESTful services, you have to implement your own infrastructure for monitoring and managing the quality of service and the service reliability. Service Engineering Service engineering is the process of developing services for reuse in service-oriented applications. The service has to be designed as a reusable abstraction that can be used in different systems. Generally useful functionality associated with that abstraction must be designed and the service must be robust and reliable. The service must be documented so that it can be discovered and understood by potential users. Stages of service engineering include: • Service candidate identification, where you identify possible services that might be implemented and define the service requirements.It involves understanding an organization's business processes to decide which reusable services could support these processes. Three fundamental types of service: o Utility services that implement general functionality used by different business processes. o Business services that are associated with a specific business function e.g., in a university, student registration. o Coordination services that support composite processes such as ordering. • Service design, where you design the logical service interface and its implementation interfaces (SOAP and/or RESTful). Involves thinking about the operations associated with the service and the messages exchanged. The number of messages exchanged to complete a service request should normally be minimized. Service state information may have to be included in messages. Interface design stages: o Logical interface design. Starts with the service requirements and defines the operation names and parameters associated with the service. Exceptions should also be defined. o Message design (SOAP). For SOAP-based services, design the structure and organization of the input and output messages.
  • 12. Software Engineering SWETA KUMARI BARNWAL 12 Notations such as the UML are a more abstract representation than XML. The logical specification is converted to a WSDL description. o Interface design (REST). Design how the required operations map onto REST operations and what resources are required. • Service implementation and deployment, where you implement and test the service and make it available for use. Programming services using a standard programming language or a workflow language. Services then have to be tested by creating input messages and checking that the output messages produced are as expected. Deployment involves publicizing the service and installing it on a web server. Current servers provide support for service installation. Service Composition Existing services are composed and configured to create new composite services and applications. The basis for service composition is often a workflow. Workflows are logical sequences of activities that, together, model a coherent business process. For example, provide a travel reservation services which allows flights, car hire and hotel bookings to be coordinated. Service construction by composition: Formulate outline workflow In this initial stage of service design, you use the requirements for the composite service as a basis for creating an 'ideal' service design. Discover services During this stage of the process, you search service registries or catalogs to discover what services exist, who provides these services and the details of the service provision. Select possible services Your selection criteria will obviously include the functionality of the services offered. They may also include the cost of the services and the quality of service (responsiveness, availability, etc.) offered. Refine workflow This involves adding detail to the abstract description and perhaps adding or removing workflow activities. Create workflow program During this stage, the abstract workflow design is transformed to an executable program and the service interface is defined. You can use a conventional programming language, such as Java or a workflow language, such as WS-BPEL. Test completed service or application The process of testing the completed, composite service is more complex than component testing in situations where external services are used.