Professional Documents
Culture Documents
Engineering
UNIT 2 : Socio-technical system , Critical system
Requirements Engineering Process , System Models
This is to certify that the e-book titled “software engineering” comprises all elementary
learning tools for a better understating of the relevant concepts. This e-book is comprehensively compiled as per the
Predefined eight parameters and guidelines.
Signature
Ms. Kimaya K. Shelar
Date: 03-02-2021
Assistant Professor
Department of IT
DISCLAIMER: The information contained in this e-book is compiled and distributed for
educational purposes only. This e-book has been designed to help learners understand relevant
concepts with a more dynamic interface. The compiler of this e-book and Vidyalankar School
of Information Technology give full and due credit to the authors of the contents, developers
and all websites from wherever information has been sourced. We acknowledge our gratitude
towards the websites YouTube, Wikipedia, and Google search engine. No commercial benefits
are being drawn from this project.
Unit II
Contents:
1) Socio-technical system:
Essential characteristics of socio technical systems, Emergent System Properties, Systems
Engineering, Components of system such as organization, people and computers, Dealing
Legacy Systems.
2) Critical system:
Types of critical system, A simple safety critical system, Dependability of a system,
Availability and Reliability, Safety and Security of Software systems.
4) System Models:
Models and its types, Context Models, Behavioural Models, Data Models, Object Models,
Structured Methods.
Recommended Books:
Sr.
Title Author/s Publisher Edition
No.
Pearson
Ian
1 Software Engineering Education Ninth
Somerville
Pankaj Narosa
2 Software Engineering
Jalote Publication
Software engineering, a Roger Tata
3 Seventh
practitioner’s approach Pressman Mcgraw-hill
Pearson
4 Software Design D.Budgen 2nd
education
5 Software Engineering KL James PHI IEEE
Software Engineering WS Tata
6
principles and practice Jawadekar Mcgraw-hill
Software EngineeringA S.A
7 PHI India.
Concise Study Kelkar
Software Engineering Concept Subhajit OxfordHigher
8
and Applications Datta Education
1. Functional emergent properties when the purpose of a system only emerges after its
components are integrated. For example, a bicycle has the functional property of being a
transportation device once it has been assembled from its components.
2. Non-functional emergent properties, which relate to the behavior of the system in its
operational environment. Reliability, performance, safety, and security are examples of
emergent properties. These are critical for computer-based systems, as failure to achieve a
minimum defined level in these properties usually makes the system unusable. Some users may
not need some of the system functions, so the system may be acceptable without them.
However, a system that is unreliable or too slow is likely to be rejected by all its users.
SYSTEMS ENGINEERING
There are three overlapping stages in the lifetime of large and complex
Socio technical systems:
https://www.youtube.com/watch?v=JKUycuyGj7I
1. Procurement or acquisition: - During this stage, the purpose of a system is decided; high-
level system requirements are established; decisions are made on how functionality will be
distributed across hardware, software, and people, and the components that will make up the
system are purchased.
2. Development: - During this stage, the system is developed. Development processes include
all of the activities involved in system development such as requirements definition, system
design, hardware and software engineering, system integration, and testing. Operational
processes are defined and the training courses for system users are designed.
3. Operation: - At this stage, the system is deployed, users are trained, and the system is brought
into use. The planned operational processes usually then have to change to reflect the real
working environment where the system is used. Overtime, the system evolves as new
requirements are identified. Eventually, the system declines in value and it is decommissioned
and replaced.
The goals of the system development process are to develop or acquire all of the
components of a system and then to integrate these components to create the final
system. The requirements are the bridge between the procurement and the development
processes.
2. System design: -This process overlaps significantly with the requirements development
process. It involves establishing the overall architecture of the system, identifying the
different system components and understanding the relationships between them.
4. System integration: - During this stage, the components are put together to create a new
system. Only then do the emergent system properties become apparent.
5. System testing: -This is usually an extensive, prolonged activity where problems are
discovered. The subsystem engineering and system integration phases are re-entered to
repair these problems, tune the performance of the system, and implement new
requirements. System testing may involve both testing by the system developer and
acceptance/user testing by the organization that has procured the system.
6. System deployment: - This is the process of making the system available to its users,
transferring data from existing systems, and establishing communications with other
systems in the environment. The process culminates with a ‘go live’ after which users
start to use the system to support their work.
System operation
Operational processes are the processes that are involved in using the system for its
defined purpose. For example, operators of an air traffic control system follow specific
processes when aircraft enter and leave airspace, when they have to change height or
speed, when an emergency occurs, and so on. For new systems, these operational
processes have to be defined and documented during the system development process.
Operators may have to be trained and other work processes adapted to make effective
use of the new system. Undetected problems may arise at this stage because the system
specification may contain errors or omissions. Although the system may perform to
specification, its functions may not meet the real operational needs.
Consequently, the operators may not use the system as its designers intended.
The key benefit of having system operators is that people have a unique capability of
being able to respond effectively to unexpected situations, even when they have never
had direct experience of these situations. Therefore, when things go wrong, the
operators can often recover the situation although this may sometimes mean that the
defined process is violated. Operators also use their local knowledge to adapt and
improve processes.
Consequently, you should design operational processes to be flexible and adaptable.
The operational processes should not be too constraining, they should not require
operations to be done in a particular order, and the system software should not rely on
a specific process being followed. Operators usually improve the process because they
know what does and does not work in a real situation.
• Socio technical systems are enterprise systems that are intended to help deliver some
organizational or business goal.
• Because they are embedded in the organizational environment, the, development and
the use of these systems is influenced by the organization’s policies and procedures by
its working culture.
• The users of the system are the people who are influenced by the way the organization
is managed and by their interaction with other people inside and outside the
organization.
• Human and organizational factors from the system’s environment that affect the system
design include:
• PROCESS CHANGES:-
1) Does the system require changes to the work processes in the environment?
2) If changes happen in the process then training is mandatory.
• JOB CHANGES:-
1) Does the system de-skill the users in the environment or cause them to change the
way they work ?
2)If the job changes are resented in the organization, than the employee has to be well
trained to be accepted by the introduction of the system in the organization.
• ORGANISATIONAL CHANGES: -
1) Does the system change the structure in an organization?
2) Depending upon the complexity of the organization, the changes has to be accepted
in the organization.
Legacy Systems
• Legacy system are Socio-technical computer based systems that have been developed
in the past using an obsolete technology.
• These system includes various sub-systems, processes and procedures which are
working on older ways and rely on legacy systems that are difficult to change.
• These systems are crucial to the operation of a business and it is often too risky to be
discarded such as bank customer accounting system and aircraft maintenance system
etc.
• Legacy systems constrains new business processes and consume a high proportion of
company budgets.
Various issues are:-
1) Do we throw away and restart or continue to maintain ?
2) What are the economics (cost and risk) of each approach.
3) If system depends on other COTS, will upgrades to those be available?
Critical Systems
• Systems failure that can result insignificant economic losses, physical damage or threats
to human life.
• They are technical or socio technical systems that people depend on
• If these systems fail to deliver their services as expected, then serious problems and
significant loses may result.
• Safety-critical system – System whose failure may result in injury, loss of life or serious
environmental damage. Example Control system for a chemical manufacturing plant
• Mission-critical system – System whose failure may result in the failure of some goal
directed activity. Example Navigational system for a spacecraft
• Business-critical system – System whose failure may result in very high costs for the
business using that system. Example Customer accounting system in a bank.
Simple Safety-critical system
• It is the property of the system that equals to its trustworthiness. Trustworthiness means
the degree of user confidence that will operate as they expect and will not fail. Four
principal dimensions to dependability are
– Availability – The ability of the system to deliver services when required.
– Reliability – The ability of the system to deliver services as specified.
– Safety – The ability of the system to operate without Catastrophic failure.
– Security –– The ability of the system to protect itself against accidental or
deliberate interruption.
• System availability and reliability are closely related properties that can both be
expressed as numerical probabilities.
• The availability of a system is the probability that the system will be up and running to
deliver these services to users on request.
• The reliability of a system is the probability that the systems services will be correctly
delivered as specified.
• Reliability and availability are closely related but sometimes one is more important than
the other. If user expect continuous service from a system, then the system has a high
available requirement. It must be available whenever a demand is made. However, if
the losses that result from a system failure are low and the system can recover quickly
then failures don’t seriously affect the system users. In such systems, the reliability
requirements may be relatively low.
• Reliability and availability are compromised by system failures like a failure to deliver
a service etc.
• It is helpful to distinguish between the terms fault, error and failure
Reliability Terminology
Source : Reliabilty
https://www.youtube.com/watch?v=apRKaqBiNQg
Safety
• Safety-critical systems are systems where it is essential that system operation is always
safe, that is the system should never damage people or the system’s environment even
if the system fails. Eg include control and monitoring systems in aircraft, process
control systems in chemical and pharmaceutical plants and automobile control systems.
• Safety critical software falls in two classes:
• Primary safety critical software – Embedded as a controller in a system. Malfunctioning
of such software can cause hardware malfunction which results in human injury or
environmental damage.
• Secondary safety critical software – Indirectly results in injury. Example is medical
database holding details of drugs administered to patients error in this could result in
wrong dosage of drugs
SECURITY TERMINILOGY
https://www.youtube.com/watch?v=_llqRnlrzWw
• The goal of this process is to create and maintain a system requirements document.
• Requirement engineering process includes four high level activities:
1) If the system is useful to the business (Feasibility study).
2) Discovering requirements (Elicitations and Analysis).
3) Converting these requirements into some standard form (Specification).
4) Checking that the requirements actually define the system that the customer wants
(Validation).
Feasibility Studies
• For all new systems the requirement engineering process should start with feasibility
study.
• The input to the feasibility study is preliminary requirements, an outline description of
how the system is intended to support business process.
• The results is the report that recommends whether or not it is worth carrying on with
the project.
• Thus a feasibility study is a short focused study that aims to answer a number of
questions like system contribution, system implementation and system integration.
• If the system does not support the business objectives it has no real value to the
business.
• Carrying out a feasibility study involves information assessment, information collection
and report writing.
• The information assessment phase identifies the information that is required and once
the information is gathered discussion with various sources can be done.
Requirements Discovery
• It is the process of gathering information about the proposed and existing system and
filtering the user requirements from it. Sources of information during the requirements
discovery phase includes documentation, system stakeholders and specification of
similar systems. The different ways of gathering information are
• Viewpoints – It can be used to classify stakeholders and other sources of requirements.
There are three different types of viewpoints.
– Interactor viewpoints represent people or other systems that interact directly
with the system
– Indirect viewpoints represent stakeholders who do not use the system
themselves but who influence the requirements in some way
– Domain viewpoints represents domain characteristics and constraints that
influence the system requirements.
• Viewpoints provide different types of requirements. Interactor viewpoints provide
detailed system requirements where as indirect viewpoints are more likely to provide
higher level organizational requirements and constraints and domain viewpoints
normally provide domain constraints that apply to the system. The initial identification
of viewpoints that are relevant to a system can sometimes be difficult. Viewpoints that
provide requirements may come from the marketing and external affairs departments.
For a non-trivial system there is huge number of viewpoints
• Interviewing – In this portion questions are put to the stakeholders about the system.
Interviews can be of open type (no predefined set of questions) or closed type
(predefined set of questions).
• Interviews are good for getting an overall understanding of what the stakeholders do,
how they might interact with the system and the difficulties that they face with current
systems.
• Interviews are not so good for understanding the requirements from the application
domain because there are subtle power and influence relationships between the
stakeholders in the organization
• Effective interviews have two characteristics
– They are open minded avoid perceived ideas about the requirements and are
willing to listen to stakeholders
– They prompt the interviewee to start discussion with a question
• Information from interviews supplements other information about the system from
documents, user observations and so on
• Sometimes interviews may be the only source of information but still it may miss an
important thing and hence it should be used alongside other requirements techniques
• Scenarios – They are particularly useful for adding detail to an outline requirements
description.
• Several form of scenarios provide different types of information at different levels of
detail about the system.
• The scenario starts with an outline of the interaction and during elicitation details are
added to create a complete description of that interaction
• Scenario based elicitation can be carried out informally where the requirements
engineer works with stakeholders to identify scenarios
• Scenarios may be written as text, supplemented by diagrams, screen shots etc.
• Use-cases – They are scenario based technique for requirements elicitation.
• They have now become a fundamental feature of the UML notation for describing
object oriented system models.
• Use-cases identify the individual interactions with the system
• They can be documented with text or linked with UML models
• The UML is a de facto standard for object oriented modeling so use cases and use case
based elicitation is increasingly used for requirements elicitation
Requirements Validation
• It is concerned with showing that the requirements actually define the system that the
customer wants
• It overlaps analysis in that it is concerned with finding problems with the requirements
• It is important because errors in requirements documentation can lead to extensive
rework costs when they are discovered during development process
• The cost of fixing a requirements problems is much greater than repairing design or
coding errors
• Various checks carried out on requirements in requirements document are
– Validity checks – A system is needed to perform certain functions
– Consistency checks – Requirements should not be contradictory or of the same
system function
– Completeness checks – Requirements document should include all functions
and constraints
– Realism checks – Requirements should be checked to ensure that they could
actually be implemented
– Verifiability – Requirements should always be written so that they are verifiable
Requirements Validation Technique
Requirements Management
• Requirements for the large system keeps on changing due to which stakeholders
understanding of problem is constantly changing.
• It is hard for the users and system customers to anticipate what effects the new system
will have on organization
• New needs and priorities are discovered
– Large systems have different users having different requirements and priorities
– After delivery new features may be added for user support if the system is to
meet its goal
– Business and technical environment changes after installation and these changes
must be reflected in the system
• Hence it is the process of understanding and controlling changes to system
requirements. The process of requirement process should start after draft version of
requirement is available but planning of managing the changing requirements must start
during requirements elicitation process
Requirements Management Planning
• Planning is an essential first stage in the requirements management process.
• During the requirement management stage ,following are decided:-
– Requirements Identification – Each requirement must be uniquely identified
– Change management process – Set of activities that assess the impact and cost
of changes
– Traceability policies – Define relationships between requirements and between
requirements and system
– Tool support- Tools that may be used range from specialist requirement
management systems to spreadsheets and simple data base systems.
Requirements management needs automated support and the software tools and this
should be chosen during the planning phase. The needed tool support are:-
1) Requirements storage:- The requirements should be maintained in a secure ,
managed data store that is accessible to everyone involved in the requirements
engineering process.
2) Change management:- The process of change management is simplified if
active tool support is available.
3) Traceability management:- some tools are available which use natural
language processing techniques to help discover possible relationship
between requirements.
Requirements change managements
Change management is essential because you need to decide if the benefits of implementing
new requirements are justified by the costs of implementation. The advantage of using a formal
process for change management is that all change proposals are treated consistently and
changes to the requirements document are made in a controlled way.
System Models
System modeling is the process of developing abstract models of a system, with each model
presenting a different view or perspective of that system. System modeling uses some kind of
graphical notation, Unified Modeling Language (UML).
Models are used during the requirements engineering process to help derive the requirements
for a system, during the design process to describe the system to engineer implementing the
system and after implementation to document the system’s structure and operation. You may
develop models of both the existing system and the system to be developed:
1. Models of the existing system are used during requirements engineering. They help clarify
what the existing system does and can be used as a basis for discussing its strengths and
weaknesses. These then lead to requirements for the new system.
2. Models of the new system are used during requirements engineering to help
explain the proposed requirements to other system stakeholders. Engineers use these models to
discuss design proposals and to document the system for implementation.
The UML has many diagram types and so supports the creation of many
different types of system model.
UML five diagram types could represent the essentials of a system:
1. Activity diagrams, which show the activities involved in a process or in data
processing.
2. Use case diagrams, which show the interactions between a system and its environment.
3. Sequence diagrams, which show interactions between actors and the system and between
system components.
4. Class diagrams, which show the object classes in the system and the associations between
these classes.
5. State diagrams, which show how the system reacts to internal and external events.
Context Models
• At an early stage in the requirements elicitation and analysis process boundaries of the
system must be decided involving system stakeholders
• In some cases the boundary between a system and its environment is relatively clear.
For example where an automated system is replacing an existing manual or
computerized system the environment of the new system is usually the same as the
existing system where as in other cases the stakeholders decide the boundary. For
example in the library system the user decides the boundary whether to include library
catalogues for accessing or not
• Once some decisions on the boundaries of the system has been made part of the activity
is definition of that context. Producing a simple architectural model is the first activity
• In the above figure each ATM is connected to account database, local branch
accounting system, a security system and a system to support machine maintenance.
• The system is also connected to usage database that monitors how the networks of ATM
is used and to a local branch counter system.
• Architectural models describes the environment of the system but do not show the
relationships between the other systems in the environment and the system that is being
specified
• Simple architecture models are supplemented by other models such as process models
that show the process activities by the system
Behavioural Model
• Used to describe the overall behavior of the system
• These are of two types
– Data Flow Models which model the data processing in the system
– State Machine Models which model how the system reacts to events
• Some systems are driven by data so data flow model is enough to represent their
behavior
• Real time systems are often driven with minimal data processing and hence state
machine model is most effective
• It describes how a system responds to internal or external events and shows the system
states and events that cause transitions from one state to another but does not show the
flow of data within the system
• This type of model is often used for modelling real time systems
• These models are an integral part of real time design methods and assumes that at any
time the system is in one of the number of possible states
• The problem with the state machine approach is that the number of possible states
increases rapidly and therefore some structuring is needed
• The following figure shows the state machine model of a simple microwave oven
Data Models
• An important part of system modeling is defining the logical form of data processed by
the system. These are called as semantic data models.
• The most widely used data modeling technique is ERA (Entity-Relation-Attribute)
modeling
• The relationship models devised from this system are in 3NF and hence they been
widely used
• Because of the explicit typing and the recognition of the subtypes and super types it is
also straight forward to implement these models using object oriented databases
• Data models lack detail and more descriptions of ERA must be maintained by using
data dictionaries
• Data dictionaries are used to develop system models
• It is simply an alphabetical list of names included in model
• The advantages of data dictionary are it checks for the uniqueness and warns against
name duplications and it stores all data in a single place
• The following figure is an example of data model
Object Model
• Expressing the system requirements using object model, designing using objects and
developing using languages like C++ and Java
• Object models developed during requirements analysis are used to represent both data
and its process. They combine some uses of dataflow and semantic models
• They are also useful for showing how entities in the system may be classified and
composed of other entities. Objects are executable entities with attributes and services
of the object class and many objects can be created from a class
• The following diagram shows an object class in UML as a vertically oriented rectangle
with three sections – name of the object, class attributes, operations associated with the
object
Structured Methods
• Systematic way of producing models of an existing system or proposed system
• Provide a framework for detailed system modeling as part of requirements elicitation
and analysis
• Have their own preferred set of system models and usually define a process that are
used to derive these models and set of rules and guidelines that apply to the models
• CASE tools usually used support model editing, coding, report generation and some
model checking capabilities
• Have been applied in many large projects because they use standard notations and
ensure standard design documentation
• Suffer from following weakness
– Do not provide effective support for understanding non-functional requirements
– Do not include guidelines whether a method is appropriate nor do they advice
on how they can be adapted for a particular project
– Produce too much documentation
– Models produced are very detailed hence difficult to understand
1) Socio-technical systems are systems that are intended to help deliver a __________.
a) Business Goals
b) Organizational policies
c) Working culture
d) Procedures
2) Socio-technical systems have __________ properties that are properties of the system
as a whole rather than associated with individual parts of the system.
a) Security
b) Dependability
c) Reliability
d) Emergent
4) _________ diagrams, shows the interaction between a system and its environment.
a) Sequence
b) Activity
c) Use case
d) State
5) _________ is the process of gathering information about the proposed and existing
system and filtering the user requirements from it.
a) Requirement specification
b) Requirement classification
c) Requirement negotiation
d) Re quirement discovery
6) The measure of the probability that the system will cause an accident is called
_______.
a) Risk
b) Hazard probability
c) Hazard severity
d) Damage
7) An event that occurs at some point in time when the system does not deliver a service
as expected by its users is ____________.
a) System error
b) System failure
c) Human error
d) System fault
8) System availability and ________ are closely related properties that can both be
expressed as numerical probabilities.
a) Dependability
b) Safety
c) Security
d) Reliability
9) The ability of a system to continue to deliver service while under attack or when the
part of the system is disabled is called___________.
a) Maintainability
b) Survivability
c) Error tolerance
d) Reliability
10) System whose failure may result in the failure of some goal directed activities are
___________ system.
a) Business critical
b) Technical
c) Safety critical
d) Mission critical
11) The __________ of a system varies depending on how the component assemblies
are arranged and connected.
a) Reliability
b) Volume
c) Security
d) Repairability
13) ______________ is the process of defining the elements of the system such as
architecture, components and modules and their interaction of how the data goes through the
system.
a) System Engineering
b) System Design
c) System Modelling
d) System, Development
14) _____________ system whose failure may cause a failure in business operations.
a) Business Critical
b) Mission Critical
c) Safety Critical
d) Security Critical
17) ________________ associated with the system user interface and operator errors.
a) Preliminary risk analysis
b) Life Cycle risk analysis
c) Operational risk analysis
d) Business risk analysis
18) __________ Reflects the extent to which the system can be repaired in the event of a
failure
a) Reparability
b) Maintainability
c) Survivability
d) Error Tolerance
19) ________ reflects the extent to which user input errors can be avoided and tolerated.
a) Reparability
b) Maintainability
c) Survivability
d) Error Tolerance
20) ________ reflects the extent to which the system can be adapted to new
requirements.
a) Reparability
b) Maintainability
c) Survivability
d) Error Tolerance