Information and Software Assurance and Security
Information and Software Assurance and Security
SOFTWARE ASSURANCE
AND SECURITY
MODULE 1
INTRODUCTION TO
SOFTWARE ENGINEERING
• Importance of software engineering
• Different layers of software engineering
• Challenges in developing software
• Perspective on quality for software
• Different members of the development team
Part 1
Module 1 Submodule 1
Module 1
Submodule 1
Software Engineering Definitions and Layers
Relationship between
computer science and
software engineering
Figure 1.1
Relationship between computer science and software engineering
Over the past years
• Technology has advanced rapidly
• Ordering of food, clothes, or even transportation is done
through smartphones, while on the phone and en route to
your next destination
• With this example, software has grown to provide
humanity with endless opportunities
More complex is the system, the more is the
programming skill needed.
Figure 1.2
Software engineering layers
SOFTWARE ENGINEERING LAYERS
QUALITY FOCUS
The bedrock that supports software engineering. Any
engineering approach must rest on an organizational
commitment to quality.
Figure 1.2
Software engineering layers
SOFTWARE ENGINEERING LAYERS
PROCESS
It is the glue that holds the technology layers
together and enables rational and timely
developments of computer SW.
Figure 1.2
Software engineering layers
SOFTWARE ENGINEERING LAYERS
PROCESS
Process defines a framework that must be established for
effective delivery of SW engineering technology.
Figure 1.2
Software engineering layers
SOFTWARE ENGINEERING LAYERS
PROCESS
It forms the basis for
• management control of software projects
• establishes the context (technical
methods applied)
• Work products (models, documents,
data, reports, form, etc.) are produced, Figure 1.2
• milestones are established, Software engineering layers
Figure 1.2
Software engineering layers
SOFTWARE ENGINEERING LAYERS
METHODS
• Encompasses a broad array of tasks that include
communication, requirements analysis, design
modeling, program construction, testing, and
support.
Figure 1.2
Software engineering layers
SOFTWARE ENGINEERING LAYERS
METHODS
• Rely on a set of basic principles that govern
each area of the technology and include
modeling activities and other descriptive
techniques.
Figure 1.2
Software engineering layers
SOFTWARE ENGINEERING LAYERS
TOOLS
Provide automated and semi automated support
for the process and the methods.
Figure 1.2
Software engineering layers
SOFTWARE ENGINEERING LAYERS
TOOLS
When tools are integrated so that information
created by one tools can be used by another, a
system for the support of SW development, called
CASE (Computer-Aided Software Engineering), is
established
Figure 1.2
SOFTWARE ENGINEERING LAYERS
Figure 1.2
Software engineering layers
END OF
MODULE 1
SUBMODULE 1
References:
• Pressman, R. S. (2015). Software engineering: a practitioners approach.
New York, NY: McGraw-Hill
• Douglass, B. P. (2016). Agile systems engineering. Waltham, MA: Morgan
Kaufmann.
• Leach, R. J. (2016). Introduction to software engineering. Boca Raton:
Chapman & Hall/CRC.
• Laplante, P. A. (2018). Requirements engineering for software and
systems. Boca Raton: CRC Press.
END OF
MODULE 1
SUBMODULE 1
References:
• Pressman, R. S. (2015). Software engineering: a practitioners approach.
New York, NY: McGraw-Hill
• Douglass, B. P. (2016). Agile systems engineering. Waltham, MA: Morgan
Kaufmann.
• Leach, R. J. (2016). Introduction to software engineering. Boca Raton:
Chapman & Hall/CRC.
• Laplante, P. A. (2018). Requirements engineering for software and
systems. Boca Raton: CRC Press.
Part 1
Module 1 Submodule 2
Module 1
Submodule 2
2. Effort intensive
This Photo by Unknown Author is licensed under CC BY-SA-NC This Photo by Unknown Author is licensed
under CC BY-SA-NC
CHALLENGES IN DEVELOPING SOFTWARE
Transcendent
➢ Quality is an innate excellence (cannot be
defined exactly
➢ Quality is simple, unanalysable recognized only
through experience
QUALITY: PRODUCT-BASED
Product-Based
➢ Quality is precise, measurable variable in the
components and attributes of a product
➢ Reflects the presence or absence of such
measurable and desired product attributes
QUALITY: USER-BASED
User-based
➢ Goods that best satisfies user preferences have
the highest quality
QUALITY: MANUFACTURING
BASED
Manufacturing based
➢ Conformance to requirements
➢ Preventing defects (less expensive than
repair/rework)
➢ Products that follows specification are of high
quality
QUALITY: VALUE-BASED
Value Based
➢ Provides quality product at an acceptable price
or conformance at an acceptable cost
➢ This approach is becoming the more prevalent
Part 2
Module 1 Submodule 2
WHAT IS GOOD SOFTWARE?
• Good software engineering must always include
a strategy for producing quality software
• Three ways of considering quality
– The quality of the product
– The quality of the process
– The quality of the product in the context of
the business environment
WHAT IS GOOD SOFTWARE?
THE QUALITY OF THE PRODUCT
1. Correctness
2. Reliability
3. Efficiency
4. Integrity
5. Usability
6. Maintainability
7. Flexibility
8. Testability
9. Portability
10. Reusability
11. Interoperability
The model was grouped into three categories (product operation
factors, product revision factors, product transition factors)
Correctness
Product
operation factors
Reliability
Efficiency
Maintainability Integrity
Product revision
factors Usability
Flexibility
McCalls Quality
Model
Testability
Portability
Reusability
Product
transition factors
Interoperability
1. Quality assurance
2. Quality planning
3. Quality control
What Is Good Software?
The QUALITY OF THE PROCESS
Quality assurance
– sets up an organized and logical set of organizational
processes and deciding on that software development
standards
– industry best practices paired with those organizational
processes, software developers stand a better chance of
producing higher quality software.
What Is Good Software?
The QUALITY OF THE PROCESS
Quality planning
- Quality planning works at a more granular, project-based level,
- defining the quality attributes to be associated with the output
of the project, and
- how those attributes should be assessed.
What Is Good Software?
The QUALITY OF THE PROCESS
Quality control
- The quality control team tests and reviews software at its
various stages to ensure quality assurance processes and
standards at both the organizational and project level are being
followed.
WHAT IS GOOD SOFTWARE?
THE QUALITY IN THE CONTEXT OF THE
BUSINESS ENVIRONMENT
• Models for process improvement
– SEI’s Capability Maturity Model (CMM)
– ISO 9000
– Software Process Improvement and Capability
dEtermination (SPICE)
WHAT IS GOOD SOFTWARE?
THE QUALITY IN THE CONTEXT OF THE
BUSINESS ENVIRONMENT
• Legacy challenge.
• Heterogeneity challenge.
• Delivery challenge.
WHO DOES SOFTWARE ENGINEERING?
Participants (stakeholders)
in a software development
project
MEMBERS OF THE DEVELOPMENT TEAM
References
• http://www.onquality.info/wp-content/uploads/2010/04/5qualitydef-1.png
• https://www.tutorialspoint.com/software_quality_management/software_quality_management_factors.
htm
• https://resources.saylor.org/wwwresources/archived/site/wp-content/uploads/2012/11/Software-
quality-definitions-and-strategic-issues.pdf
• https://en.wikipedia.org/wiki/Software_quality_management
• https://searchsoftwarequality.techtarget.com/definition/Capability-Maturity-Model
• https://asq.org/quality-resources/iso-9000
• https://en.wikipedia.org/wiki/ISO/IEC_15504
• https://dzone.com/articles/the-challenges-of-legacy-software
• https://codersera.com/blog/challenges-software-developers-face-today/
INFORMATION AND
SOFTWARE ASSURANCE
AND SECURITY
MODULE 2
SOFTWARE DESIGN
1. Business architecture
2. Physical architecture
3. Logical architecture
4. Functional architecture
5. Software architecture
6. Technical architecture
7. System architecture
8. Deployment architecture
SOFTWARE ARCHITECTURES CATEGORIES:
1. Business architecture
- describes the structure of the business tasks performed
by the organization
- these are created by business analysts
SOFTWARE ARCHITECTURES CATEGORIES:
2. Physical architecture
- describes the structure of the hardware platform(s) or
network(s) on which the system will operate
- physical architecture of a system
SOFTWARE ARCHITECTURES CATEGORIES:
3. Logical architecture
- describes the structure of the business and application objects.
- Is often part of an object-oriented view of a system.
- Is often created by an object analyst
SOFTWARE ARCHITECTURES CATEGORIES:
4. Functional architecture
- describes the structure of the potential use cases and the
requirements from a user’s point of view.
- Is often part of an object-oriented view of a system
SOFTWARE ARCHITECTURES CATEGORIES:
5. Software architecture
- describe the structure of the system into layers, such as
OSI (Open systems interconnection) or layered
architecture of UNIX operating system.
- decomposed to client and server
SOFTWARE ARCHITECTURES CATEGORIES:
6. Technical architecture
- describes the structure of the major interfaces in the software
architecture.
- Elements include
1. application programming interfaces (APIs),
2. middleware,
3. database management systems,
4. graphical user interfaces, and
5. other glueware or bridgeware needed to interface
components
SOFTWARE ARCHITECTURES CATEGORIES:
6. Technical architecture
- Decisions to use CORBA, DCOM, Java RMI, or
RPC or even cloud computing, with a protocol such
as HTTP, SOAP, REST, or JSON, would be
reflected in this type of system architecture
SOFTWARE ARCHITECTURES CATEGORIES:
7. System architecture
- describes the structure of the business, application, and
technical objects and their relationships.
- the description is often created by a systems analysts
SOFTWARE ARCHITECTURES CATEGORIES:
8. Deployment architecture
- describes the structure of the mapping of the system and
technical architectures onto the physical architecture.
- It includes two views:
1. a static view of the basic files that will be necessary
2. a dynamic view of the concurrent processes and threads,
and the mechanisms for their synchronization and communication.
SOFTWARE ARCHITECTURES CATEGORIES:
8. Deployment architecture
- a thread on a particular computer or to have an autonomous
agent performing computation would be reflected in this type of
architecture
SOFTWARE ARCHITECTURE IMPORTANCE
Figure 2.1
Example of an entity
RELATIONSHIPS
Entities are connected to one another in different ways.
Example:
- A person and a car
Relationships:
• Relationship instance–link between entities (corresponds to
primary key-foreign key equivalencies in related tables)
• Relationship type–category of relationship…link between entity
types
a) Relationship type
(Completes)
b) Relationship
instances
Figure 2.3
Illustration of relationship types and relationship instances
PART 2
Of Submodule 1 in
Module 2
RELATIONSHIPS
Figure 2.4
ERD: one to many relationship
RELATIONSHIPS (many to many)
Figure 2.5
ERD: many to many relationship
RELATIONSHIPS (one to one)
A person is
married to at most
one other person,
or may not be
married at all
Figure 2.6
ERD: one to one relationship
RELATIONSHIPS
Degree of a relationship is the number of entity types that participate
in it
• Unary Relationship
• Binary Relationship
• Ternary Relationship
RELATIONSHIPS(Unary)
Entities of
One entity two
related to different Entities of three
another of different types
types related related to each
the same to each other
entity type other
Figure 2.7
ERD: Unary relationship
RELATIONSHIPS(Binary)
Figure 2.8
ERD: Unary relationship
RELATIONSHIPS(Ternary)
Figure 2.9
ERD: Unary relationship
STRUCTURED DESIGN
A mapping technique, called structured design is often characterized
as a data flow-oriented design method because it provides a
convenient transition from a data flow diagram to software
architecture.
• The transition from information flow (represented as a DFD) to
program structure is accomplished as part of a six step process.
STRUCTURED DESIGN
These six step processes are:
(1) the type of information flow is established,
(2) flow boundaries are indicated,
(3) the DFD is mapped into the program structure,
(4) control hierarchy is defined,
(5) the resultant structure is refined using design measures and
heuristics, and
(6) the architectural description is refined and elaborated.
DATA FLOW DIAGRAM
Figure 2.10
Data flow diagram symbols
CREATING A SET OF DFD
Here are simple guidelines
(1) the level 0 data flow diagram should depict the software/system as a
single bubble;
(2) primary input and output should be carefully noted;
(3) Refinement should begin by isolating candidate processes, data
objects, and data stores to be represented at the next level;
(4) all arrows and bubbles should be labeled with meaningful names;
(5) information flow continuity must be maintained from level to level, and
(6) one bubble at a time should be refined
Before we proceed to diagram 0, lets discussed what
SafeHome does.
Figure 2.11
DFD: Diagram 0
Nouns are either external entities (boxes), data or control objects (arrows), or data stores (double lines).
EXAMPLE:SAFEHOME SECURITY
FUNCTION Diagram 1
Figure 2.12
DFD: Diagram 1
EXAMPLE:
SAFEHOME SECURITY FUNCTION
Diagram 2
Figure 2.13
DFD: Diagram 2
END OF
MODULE 2
SUBMODULE 1
References:
• Pressman, R. S. (2015). Software engineering: a practitioners approach.
New York, NY: McGraw-Hill
• Douglass, B. P. (2016). Agile systems engineering. Waltham, MA: Morgan
Kaufmann.
• Leach, R. J. (2016). Introduction to software engineering. Boca Raton:
Chapman & Hall/CRC.
• Laplante, P. A. (2018). Requirements engineering for software and
systems. Boca Raton: CRC Press.
MODULE 2
Submodule 2
Software Design Tools
Figure 2.14
Example of an object Parent
OBJECTS CONCEPTS
Figure 2.15
Example of an object Child
OBJECT CONCEPTS AND TERMS
Figure 2.17
Example of Use case diagram
USE CASE DIAGRAM EXAMPLE
Figure 2.18
A use case representing
duplicated activity
SEQUENCE DIAGRAM
SEQUENCE DIAGRAM
• A sequence diagram is used to show the dynamic
communications between objects during execution of a task. It
shows the temporal order in which messages are sent between
the objects to accomplish that task.
• Sequence diagrams can be used to show the interactions in one
use case or in one scenario of the software system.
SEQUENCE DIAGRAM
Figure 2.19
Example of sequence diagram of a drawing program
SEQUENCE DIAGRAM
Figure 2.20
Example of sequence diagram of a drawing program with loops
Part 2
Module 2 Submodule 2
SEQUENCE DIAGRAM
Figure 2.21
Special features included in a sequence diagram
SEQUENCE DIAGRAM: another example
Figure 2.22
Another example of sequence diagram
ACTIVITY DIAGRAM
ACTIVITY DIAGRAM
• A UML activity diagram depicts the dynamic behavior of a
system or part of a system through the flow of control between
actions that the system performs.
• It is like a flowchart except that an activity diagram can show
concurrent flows.
ACTIVITY DIAGRAM
• Components:
- action node (rounded rectangle) – tasked performed
by the software system
- flow of control (arrows) – arrow between two action
nodes indicate that the first node will be performed
following the second node
- initial node (solid black dot) – starting point
ACTIVITY DIAGRAM
- final node (a black dot surrounded by a black circle) –
end of activity
- separation of activities (fork) – consists of one arrow
pointing to it and two or more arrows pointing out
ACTIVITY DIAGRAM
- synchronization of concurrent flow of control (join) –
a horizontal black bar with two or more incoming arrows
and one outgoing arrow
- decision node (diamond with incoming arrow and two
or more outgoing arrows) – corresponds to a branch in
the flow control based on a condition. Each outgoing
arrow is labeled with a guard (a condition inside square
brackets)
ACTIVITY DIAGRAM
Figure 2.23
Example of an activity diagram
ACTIVITY DIAGRAM
• Often, the exact division of labor does not matter. But if you do
want to indicate how the actions are divided among the
participants, you can decorate the activity diagram with
swimlanes.
• Swimlanes, as the name implies, are formed by dividing the
diagram into strips or “lanes,” each of which corresponds to one
of the participants.
ACTIVITY DIAGRAM
Figure 2.24
Example of an activity diagram
with swimlanes
ACTIVITY DIAGRAM
An Activity Diagram resembles a horizontal flowchart that shows the actions
and events as they occur. Activity diagrams show the order in which the
actions take place and identify the outcomes.
Diagram Purpose
• Activity Diagram is typically used for modeling the logic captured in a
specific use case in a use case diagram. Activity diagram can also be
used to model a specific Actor's workflow within the entire system. Activity
diagram can also be used independent of use cases for other purposes
such as to model business process of a system, to model detailed logic of
business rules etc. Activity diagram shows all potential sequence flows in
an activity.
ACTIVITY DIAGRAM EXAMPLE
Figure 2.25
Another example of an activity diagram
END OF
MODULE 2
SUBMODULE 2
References:
• Pressman, R. S. (2015). Software engineering: a practitioners approach.
New York, NY: McGraw-Hill
• Douglass, B. P. (2016). Agile systems engineering. Waltham, MA: Morgan
Kaufmann.
• Leach, R. J. (2016). Introduction to software engineering. Boca Raton:
Chapman & Hall/CRC.
• Laplante, P. A. (2018). Requirements engineering for software and
systems. Boca Raton: CRC Press.
INFORMATION AND
SOFTWARE ASSURANCE
AND SECURITY
MODULE 3
Submodule 1
Introduction to Software construction
and testing
• Software construction in the context of software
development
• Software is constructed
• Good qualities of a software
• Test plan, test cases and test execution
SOFTWARE CONSTRUCTION
SOFTWARE CONSTRUCTION is a fundamental act of
software engineering: the construction of working
meaningful software through a combination of coding,
validation, and testing (unit testing) by a programmer.
SOFTWARE CONSTRUCTION
Construction Activities
Problem
Definition
Corrective
Detailed Design Maintenan
ce
Requirements
Development
Integration
Software Testing
Architectur Unit Testing
e
System
Testing
Figure 3-1
Construction activities are shown inside the gray circle
DETAILED TASKS INVOLVED IN CONSTRUCTION
• Verifying that the groundwork has been laid so
that construction can proceed successfully
• Determining how your code will be tested
• Designing and writing classes and routines
• Creating and naming variables and named
constants
• Selecting control structures and organizing
blocks of statements
DETAILED TASKS INVOLVED IN CONSTRUCTION
• Unit testing, integration testing, and debugging
your own code
• Reviewing other team members’ low-level
designs and code and having them review yours
• Polishing code by carefully formatting and
commenting it
• Integrating software components that were
created separately
• Tuning code to make it smaller and faster
WHY IS SOFTWARE CONSTRUCTION
IMPORTANT?
Some Reasons
• Construction is a large part of
software development
WHY IS SOFTWARE CONSTRUCTION
IMPORTANT?
Some Reasons
• Construction is the central activity
in software development
WHY IS SOFTWARE CONSTRUCTION
IMPORTANT?
Some Reasons
• With a focus on construction, the
individual programmer’s
productivity can improve
enormously
WHY IS SOFTWARE CONSTRUCTION
IMPORTANT?
Some Reasons
• Construction’s product, the source
code, is often the only accurate
description of the software
WHY IS SOFTWARE CONSTRUCTION
IMPORTANT?
Some Reasons
• Construction is the only activity
that’s guaranteed to be done
SOFTWARE CONSTRUCTION STRATEGIES
High-level to low-
• TOP-DOWN
level; user interface
to detail logic
• BOTTOM-UP Reverse of the above
GOAL
• The goal of software construction is to build a product
that satisfies the quality requirements
• “Good enough software” Not excellent software !
IT’S ALL ABOUT QUALITY
• How do you ensure that the software
• does what it should?
• does it in the correct way?
• does it robust?
• is reliable?
• is easy to use?
• is easy to change?
• is easy to correct?
• is easy to test?
WHAT IS SOFTWARE QUALITY ?
Formal Definitions
• The totality of features and characteristics of a product or
service that bear on its ability to satisfy stated or implied
needs. (ISO 8402: 1986, 3.1)
• The degree to which a system, component, or process
meets specified requirements. (IEEE)
• A product that satisfies the stakeholders needs (Compliant
Product + Good Quality + Delivery Within
Budget/Schedule.)
SOFTWARE QUALITY
References:
• Code Complete by Steven McConnell
• Introduction to software engineering by
Ronald Leach
• Software Engineering 9 by Ian
Sommerville
Module 3
Submodule 2
Types of Software Testing
Beta testing
1. Is conducted at one or more customer sites by the end user of the
software
2. The developer is generally not present
3. Is conducted in a "live" environment
• Ultimately, software is only one component of a
larger computer-based system.
• Hence, once software is incorporated with other
system elements (e.g. new hardware, information),
a series of system integration and validation tests
are conducted.
• System testing is a series of different tests whose
primary purpose is to fully exercise the computer-
based system.
• Although each system test has a different purpose,
all work to verify that all system elements have
been properly integrated and perform allocated
functions.
•A recovery test that forces software to fail in a variety of
ways and verifies that recovery is properly performed.
References:
• Software Engineering 7th edition by Roger S. Pressman
PART 2
Of Submodule 2 in
Module 3
• Top-down integration testing is an incremental approach
to construction of the software architecture.
Beta testing
1. Is conducted at one or more customer sites by the end user of the
software
2. The developer is generally not present
3. Is conducted in a "live" environment
• Ultimately, software is only one component of a
larger computer-based system.
• Hence, once software is incorporated with other
system elements (e.g. new hardware, information),
a series of system integration and validation tests
are conducted.
• System testing is a series of different tests whose
primary purpose is to fully exercise the computer-
based system.
• Although each system test has a different purpose,
all work to verify that all system elements have
been properly integrated and perform allocated
functions.
•A recovery test that forces software to fail in a variety of
ways and verifies that recovery is properly performed.
References:
• Software Engineering 7th edition by
Roger S. Pressman
INFORMATION AND SOFTWARE
ASSURANCE AND SECURITY
MODULE 4
SYSTEM INTEGRATION
Submodule 1
Overview of System Integration
Type declarations
Abstract interface Interface declarations
Message declarations
<types> Defines the (XML Schema) data types used by the web
service
<message> Defines the data elements for each operation
One-way The operation can receive a message but will not return a
response
Request-response The operation can receive a request and will return a
response
Solicit-response The operation can send a request and will wait for a response
Notification The operation can send a message but will not wait for a
response
• One-way operation example:
• A request-response operation example:
• WSDL
bindings
defines the
message
format and
protocol
details for a
web service.
• A request-
response
operation
example:
• SOAP is an application communication protocol
• Is a format for sending and receiving messages
• Is platform independent
• Is based on XML
References:
• Code Complete by Steven McConnell
• Concise guide to software engineering from fundamentals to
application methods by Gerard O’Regan
• Open source software for SOA, IONA Technologies A-Trenaman-
SOA.pdf
• https://www.w3schools.com/xml/xml_wsdl.asp
• https://www.w3schools.com/xml/xml_soap.asp
• https://www.w3schools.com/xml/xml_whatis.asp
Module 4
Submodule 2
ORCHESTRATION CHOREOGRAPHY
A Single Director In Defines Interaction.
Control.
ORCHESTRATION VS. CHOREOGRAPHY
Orchestration
within
services
Choreography
between
services
Slide 39 of 28
CHOREOGRAPHY PERSPECTIVE
ORCHESTRATION PERSPECTIVE
ORCHESTRATION AND CHOREOGRAPHY
End of service
composition
LEGACY SYSTEM SERVICES
• Legacy systems are old software systems
• Organizations rely on obsolete technology but are
still essential to the business
• Not cost effective to rewrite or replace these
systems
• Many organizations would like to use them in
conjunction with more modern systems
Slide 45 of 28
LEGACY SYSTEM SERVICES
• An important application of services is to provide
access to functionality embedded in legacy systems.
• Legacy systems offer extensive functionality and this
can reduce the cost of service implementation.
• External applications can access this functionality
through the service interfaces.
Slide 46 of 28
LEGACY SYSTEM SERVICES
• Some services provided:
1. A maintenance service. This includes operations to
retrieve a maintenance job according to its job
number, priority, and geographical location and
upload details of maintenance.
Slide 48 of 28
LEGACY SYSTEM SERVICES
• Some services provided:
3. A logging service. This includes operations to add
new request for service, delete maintenance
requests, and query status of outstanding requests
Slide 51 of 28
• First, locate code worth reusing
• Here a domain expert is required
• Can be supported by automated reverse
engineering tools
• The function processes of business operations are
ways to identify variables or functions.
• There is a n:m relationship between code blocks and
business operations
Slide 52 of 28
• Next step is extract that code and reassemble it as a
separate module with its own interface.
• The by product of this code reengineering process is
a documentation of the existing business operation.
• With the use of data flow tree, it is possible for the
user to decide whether an existing operation,
implemented within a legacy system is worth
reusing
Slide 53 of 28
• Once business operation has been located,
documented and found worthy of reuse, the next
step is to wrap it.
• Provide components extracted from legacy code
with WSDL interface.
Slide 54 of 28
Slide 55 of 28
• Third and last step is to link the web services to the
overlying business processes.
• Proxy component
• On the application server there is a scheduler that
receives incoming messages, determines the web
service and forwards the WSDL contents to a
particular service
Slide 56 of 28
MAJOR PITFALLS WITH SYSTEM INTEGRATION
PITFALL DESCRIPTION
What is expected has The experience shows that the implemented
delay elements always do not arrive in the expected order
and the tests never proceed or result as foreseen;
therefore, the integration strategy should allow a
great flexibility.
Big-bang not The "big-bang" integration technique is not
appropriate appropriate for a fast detection of faults. It is thus
preferable to verify the interfaces progressively all
along the integration.
Integration plan too The preparation of the integration activities is
late planned too late in the project schedule, typically
when first implemented elements are delivered.
PROVEN PRACTICES WITH SYSTEM INTEGRATION
PRACTICE DESCRIPTION
Start earlier development The development of assembly tools and verification and
of means validation tools can be as long as the system itself. It should be
started as early as possible as soon as the preliminary design is
nearly frozen.
Integration means seen as The development of integration means (assembly tools,
enabling systems verification, and validation tools) can be seen as enabling
systems, using system definition and system realization
processes . These projects can be led by the project of the
corresponding system-of-interest, but assigned to specific
system blocks, or can be subcontracted as separate projects.
Use coupling matrix A good practice consists in gradually integrating aggregates in
order to detect faults more easily. The use of the coupling
matrix applies for all strategies and especially for the bottom up
integration strategy.
Integration and design The integration responsible should be part of the design team.
teams
END OF
MODULE 4
SUBMODULE 2
References:
• Software Engineering 7th edition by Roger S. Pressman
• https://en.wikipedia.org/wiki/Service_choreography\
• software engineering 9th edition by Ian Sommerville
• Wrapping legacy software for reuse in a SOA by Harry M. Sneed