SlideShare une entreprise Scribd logo
1  sur  90
MOUDLE-1
INTRODUCTION
 Software Engineering is essential for the
functioning of government , society, and various
institutions.
 Software systems are abstract and intangible.
 Many different software available from simple to
complex.
 Two factors for the failure:
 Increasing system complexity
 Failure to use software engineering methods
FREQUENTLY ASKED QUESTIONS ABOUT
SOFTWARE ENGINEERING
Question Answer
What is software? Computer programs and associated documentation.
Software products may be developed for a particular
customer or may be developed for a general market.
What are the attributes of good software? Good software should deliver the required functionality
and performance to the user and should be
maintainable, dependable and usable.
What is software engineering? Software engineering is an engineering discipline that is
concerned with all aspects of software production.
What are the fundamental software
engineering activities?
Software specification, software development, software
validation and software evolution.
What is the difference between software
engineering and computer science?
Computer science focuses on theory and fundamentals;
software engineering is concerned with the practicalities
of developing and delivering useful software.
What is the difference between software
engineering and system engineering?
System engineering is concerned with all aspects of
computer-based systems development including
hardware, software and process engineering. Software
engineering is part of this more general process.
Question Answer
What are the key challenges facing
software engineering?
Coping with increasing diversity, demands for reduced
delivery times and developing trustworthy software.
What are the costs of software
engineering?
Roughly 60% of software costs are development costs,
40% are testing costs. For custom software, evolution
costs often exceed development costs.
What are the best software engineering
techniques and methods?
While all software projects have to be professionally
managed and developed, different techniques are
appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems require
a complete and analyzable specification to be developed.
You can’t, therefore, say that one method is better than
another.
What differences has the web made to
software engineering?
The web has led to the availability of software services
and the possibility of developing highly distributed service-
based systems. Web-based systems development has led
to important advances in programming languages and
software reuse.
SOFTWARE PRODUCTS
 Generic products
 Stand-alone systems that are marketed and sold to any
customer who wishes to buy them.
 Examples – PC software such as graphics programs,
project management tools; CAD software; software for
specific markets such as appointments systems for
dentists.
 Customized products
 Software that is commissioned by a specific customer to
meet their own needs.
 Examples – embedded control systems, air traffic
control software, traffic monitoring systems.
ESSENTIAL ATTRIBUTES OF SOFTWARE
Product characteristic Description
Maintainability Software should be written in such a way so that it can evolve to
meet the changing needs of customers. This is a critical attribute
because software change is an inevitable requirement of a
changing business environment.
Dependability and
security
Software dependability includes a range of characteristics
including reliability, security and safety. Dependable software
should not cause physical or economic damage in the event of
system failure. Malicious users should not be able to access or
damage the system.
Efficiency Software should not make wasteful use of system resources such
as memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.
Acceptability Software must be acceptable to the type of users for which it is
designed. This means that it must be understandable, usable and
compatible with other systems that they use.
SOFTWARE ENGINEERING
 Software engineering is an engineering discipline
that is concerned with all aspects of software
production from the early stages of system
specification through to maintaining the system
after it has gone into use.
 Engineering discipline
 Using appropriate theories and methods to solve
problems bearing in mind organizational and financial
constraints.
 All aspects of software production
 Not just technical process of development. Also project
management and the development of tools, methods
etc. to support software production.
SOFTWARE PROCESS ACTIVITIES
 A systematic approach that is used in software
engineering is called software process. The
activities are:
 Software specification, where customers and
engineers define the software that is to be produced
and the constraints on its operation.
 Software development, where the software is
designed and programmed.
 Software validation, where the software is checked to
ensure that it is what the customer requires.
 Software evolution, where the software is modified to
reflect changing customer and market requirements
FACTORS AFFECTING SOFTWARE
 Heterogeneity
 Increasingly, systems are required to operate as distributed
systems across networks that include different types of
computer and mobile devices.
 Business and social change
 Business and society are changing incredibly quickly as
emerging economies develop and new technologies become
available. They need to be able to change their existing
software and to rapidly develop new software.
 Security and trust
 As software is intertwined with all aspects of our lives, it is
essential that we can trust that software.
 Scale
 Software has to be developed across a very wide range of
scales from small in portable or wearable devices through
internet scale.
SOFTWARE ENGINEERING DIVERSITY
 Software engineering is a systematic approach to the
production of software that takes into account practical
cost, schedule, and dependability issues, as well as the
needs of software customers and producers.
 There are many different types of application:
 Stand-alone
 Interactive transaction based
 Embedded control
 Batch processing
 Entertainment
 Systems for modeling and simulation
 Data Collection and analysis systems
 Systems of systems.
SOFTWARE ENGINEERING AND WEB
 The development of the World Wide Web has had a profound
effect on all of our lives.
 Initially, the Web was primarily a universally accessible
information store and it had little effect on software systems.
These systems ran on local computers and were only
accessible from within an organization.
 Instead of writing software and deploying it on users’ PCs, the
software was deployed on a web server.
 The next stage in the development of web-based systems was
the notion of web
 services. Web services are software components that deliver
specific, useful functionality and which are accessed over the
Web.
 In the last few years, the notion of ‘software as a service’ has
been developed
 This radical change in software organization has,
obviously, led to changes in the ways that web-based
systems are engineered.
 Software reuse has become the dominant approach for
constructing web-based systems.
 Web-based systems should be developed and delivered
incrementally.
 User interfaces are constrained by the capabilities of web
browsers. Although technologies such as AJAX mean that
rich interfaces can be created within a web browser, these
technologies are still difficult to use.
SOFTWARE ENGINEERING ETHICS
 As a software engineer, you must accept that your job
involves wider responsibilities than simply the
application of technical skills. You must also behave in
an ethical and morally responsible way if you are to be
respected as a professional engineer. The
responsibilities are:
 Confidentiality
 Competence
 Intellectual property rights
 Computer misuse
THE ACM/IEEE CODE OF ETHICS
 Software Engineering Code of Ethics and Professional Practice
 ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and
Professional Practices
 PREAMBLE
 The short version of the code summarizes aspirations at a high level of the
abstraction; the clauses that are included in the full version give examples
and details of how these aspirations change the way we act as software
engineering professionals. Without the aspirations, the details can become
legalistic and tedious; without the details, the aspirations can become high
sounding but empty; together, the aspirations and the details form a cohesive
code.
 Software engineers shall commit themselves to making the analysis,
specification, design, development, testing and maintenance of software a
beneficial and respected profession. In accordance with their commitment to
the health, safety and welfare of the public, software engineers shall adhere
to the following Eight Principles:

 PUBLIC - Software engineers shall act consistently with the public interest.
 CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the
best interests of their client and employer consistent with the public interest.
 PRODUCT - Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.
 JUDGMENT - Software engineers shall maintain integrity and independence in their
professional judgment.
 MANAGEMENT - Software engineering managers and leaders shall subscribe to and
promote an ethical approach to the management of software development and
maintenance.
 PROFESSION - Software engineers shall advance the integrity and reputation of the
profession consistent with the public interest.
 COLLEAGUES - Software engineers shall be fair to and supportive of their
colleagues.
 SELF - Software engineers shall participate in lifelong learning regarding the practice
of their profession and shall promote an ethical approach to the practice of the
profession.
CASE STUDIES
 The three types of systems that are used as case
studies are:
 An embedded system This is a system where the software
controls a hardware device and is embedded in that device.
 An information system This is a system whose primary
purpose is to manage and provide access to a database of
information.
 A sensor-based data collection system This is a system
whose primary purpose is to collect data from a set of sensors
and process that data in some way.
AN INSULIN PUMP CONTROL SYSTEM
 Two requirements are to be met:
 The system shall be available to deliver insulin when
required.
 The system shall perform reliably and deliver the correct
amount of insulin to counteract the current level of blood
sugar.
A PATIENT INFORMATION SYSTEM FOR MENTAL
HEALTH CARE
The MHC-PMS (Mental Health Care Patient
Management System) is an information system
that is intended for use in clinics.
It makes use of a centralized database of
patient information but has also been designed to
run on a PC, so that it may be accessed and
used from sites that do not have secure network
connectivity.
When the local systems have secure network
access, they use patient information in the
database but they can download and use local
copies of patient records when they are
disconnected.
Key Features are as Follows:
 Individual care management
 Clinicians can create records for patients, edit the
information in the system, view patient history, etc. The
system supports data summaries so that doctors can
quickly learn about the key problems and treatments that
have been prescribed.
 Patient monitoring
 The system monitors the records of patients that are
involved in treatment and issues warnings if possible
problems are detected.
 Administrative reporting
 The system generates monthly management reports
showing the number of patients treated at each clinic, the
number of patients who have entered and left the care
system, number of patients sectioned, the drugs
prescribed and their costs, etc.
A WILDERNESS WEATHER STATION
 To help monitor climate change and to improve the accuracy of
weather forecasts in remote areas, the government of a country
with large areas of wilderness decides to deploy several hundred
weather stations in remote areas. These weather stations collect
data from a set of instruments that measure temperature and
pressure, sunshine, rainfall, wind speed, and wind direction.
 The systems consists
 The weather station
system
 The data management
and archiving system
 The station maintenance
system
SOFTWARE PROCESSES
 A structured set of activities required to develop a
software system.
 Many different software processes but all involve:
 Specification – defining what the system should do;
 Design and implementation – defining the organization of
the system and implementing the system;
 Validation – checking that it does what the customer
wants;
 Evolution – changing the system in response to changing
customer needs.
 When we describe and discuss processes, we
usually talk about the activities in these processes
such as specifying a data model, designing a user
interface, etc. and the ordering of these activities.
 Process descriptions may also include:
 Products, which are the outcomes of a process activity;
 Roles, which reflect the responsibilities of the people
involved in the process;
 Pre- and post-conditions, which are statements that are
true before and after a process activity has been
enacted or a product produced.
SOFTWARE PROCESS MODELS
 The waterfall model This takes the fundamental process
activities of specification, development, validation, and
evolution and represents them as separate process phases
such as requirements specification, software design,
implementation, testing, and so on.
 Incremental development This approach interleaves the
activities of specification, development, and validation. The
system is developed as a series of versions (increments), with
each version adding functionality to the previous version.
 Reuse-oriented software engineering This approach is
based on the existence of a significant number of reusable
components. The system development process focuses on
integrating these components into a system rather than
developing them from scratch.
WATER FALL MODEL
 There are separate identified phases in the waterfall
model:
 Requirements analysis and definition
 System and software design
 Implementation and unit testing
 Integration and system testing
 Operation and maintenance
INCREMENTAL DEVELOPMENT
 Incremental development is based on the idea of
developing an initial implementation, exposing this to user
comment and evolving it through several versions until an
adequate system has been developed.
BENEFITS
 The cost of accommodating changing customer
requirements is reduced.
 It is easier to get customer feedback on the development
work that has been done.
 More rapid delivery and deployment of useful software to
the customer is possible.
PROBLEMS
The process is not visible.
System structure tends to degrade as new increments are
added.
REUSE-ORIENTED SOFTWARE ENGINEERING
 Reuse-oriented approaches rely on a large base of
reusable software components and an integrating
framework for the composition of these components.
 Process stages
 Component analysis;
 Requirements modification;
 System design with reuse;
 Development and integration
 There are three types of software component that may be
used in a reuse-oriented process:
 Web services that are developed according to service
standards and which are available for remote invocation.
 Collections of objects that are developed as a package to be
integrated with a component framework such as .NET or
J2EE.
 Stand-alone software systems that are configured for use in a
particular environment.
PROCESS ACTIVITIES
 Real software processes are inter-leaved sequences of
technical, collaborative and managerial activities with the
overall goal of specifying, designing, implementing and
testing a software system.
 The four basic process activities of specification,
development, validation and evolution are organized
differently in different development processes.
 In the waterfall model, they are organized in sequence,
whereas in incremental development they are inter-leaved.
SOFTWARE SPECIFICATION
 The process of establishing what services are
required and the constraints on the system’s
operation and development.
 Requirements engineering process
 Feasibility study
 Is it technically and financially feasible to build the system?
 Requirements elicitation and analysis
 What do the system stakeholders require or expect from the
system?
 Requirements specification
 Defining the requirements in detail
 Requirements validation
 Checking the validity of the requirements
Software
specification
Software Design
&Implementation
Software Validation
Software Evolution
SOFTWARE DESIGN AND IMPLEMENTATION
 The process of converting the system specification
into an executable system.
 Software design
 Design a software structure that realises the
specification;
 Implementation
 Translate this structure into an executable program;
 The activities of design and implementation are
closely related and may be inter-leaved
Software
specification
Software Design
&Implementation
Software Validation
Software Evolution
DESIGN ACTIVITIES
 Architectural design, where you identify the
overall structure of the system, the principal
components (sometimes called sub-systems or
modules), their relationships and how they are
distributed.
 Interface design, where you define the interfaces
between system components.
 Component design, where you take each system
component and design how it will operate.
 Database design, where you design the system
data structures and how these are to be
represented in a database
SOFTWARE VALIDATION
 Verification and validation (V & V) is intended to
show that a system conforms to its specification
and meets the requirements of the system
customer.
 Involves checking and review processes and
system testing.
 System testing involves executing the system with
test cases that are derived from the specification of
the real data to be processed by the system.
 Testing is the most commonly used V & V activity.
STAGES OF TESTING
 Development or component testing
 Individual components are tested independently;
 Components may be functions or objects or coherent
groupings of these entities.
 System testing
 Testing of the system as a whole. Testing of emergent
properties is particularly important.
 Acceptance testing
 Testing with customer data to check that the system
meets the customer’s needs.
Software
specification
Software Design
&Implementation
Software Validation
Software Evolution
SOFTWARE EVOLUTION
 Software is inherently flexible and can change.
 As requirements change through changing
business circumstances, the software that supports
the business must also evolve and change.
 Although there has been a demarcation between
development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer systems
are completely new.
Software
specification
Software Design
&Implementation
Software Validation
Software Evolution
BOEHM’S SPIRAL MODEL
 Process is represented as a spiral rather than as a
sequence of activities with backtracking.
 Each loop in the spiral represents a phase in the
process.
 No fixed phases such as specification or design -
loops in the spiral are chosen depending on what is
required.
 Risks are explicitly assessed and resolved
throughout the process.
EACH LOOP IS DIVIDED INTO FOUR SECTORS
 Objective setting
 Specific objectives for the phase are identified.
 Risk assessment and reduction
 Risks are assessed and activities put in place to reduce
the key risks.
 Development and validation
 A development model for the system is chosen which
can be any of the generic models.
 Planning
 The project is reviewed and the next phase of the spiral
is planned.
REQUIREMENT ENGINEERING
REQUIREMENT ENGINERRING
 The process of finding out, analyzing, documenting and
checking these services and constraints is called
requirements engineering (RE).
 In some cases, a requirement is simply a high-level,
abstract statement of a service that a system should
provide or a constraint on a system.
 This is inevitable as requirements may serve a dual
function
 May be the basis for a bid for a contract - therefore must be
open to interpretation;
 May be the basis for the contract itself - therefore must be
defined in detail;
 Both these statements may be called requirements.
TYPES OF RQUIREMENT
 User requirements
 Statements in natural language plus diagrams of the
services the system provides and its operational
constraints. Written for customers.
 System requirements
 A structured document setting out detailed descriptions
of the system’s functions, services and operational
constraints. Defines what should be implemented so
may be part of a contract between client and contractor.
POSSIBLE READERS OF THE REQUIREMENT.
 Software system requirement are classified as
follows:
 Functional requirements
 Statements of services the system should provide, how the
system should react to particular inputs and how the system
should behave in particular situations.
 May state what the system should not do.
 Non-functional requirements
 Constraints on the services or functions offered by the system
such as timing constraints, constraints on the development
process, standards, etc.
 Often apply to the system as a whole rather than individual
features or services.
FUNCTIONAL REQUIREMENTS
 Describe functionality or system services.
 Depend on the type of software, expected users
and the type of system where the software is used.
 Functional user requirements may be high-level
statements of what the system should do.
 Functional system requirements should describe
the system services in detail.
EXAMPLE (MHC-PMS)
 A user shall be able to search the appointments
lists for all clinics.
 The system shall generate each day, for each clinic,
a list of patients who are expected to attend
appointments that day.
 Each staff member using the system shall be
uniquely identified by his or her 8-digit employee
number.
 Problems arise when requirements are not precisely
stated.
 Ambiguous requirements may be interpreted in different
ways by developers and users.
 Consider the term ‘search’ in requirement 1
 User intention – search for a patient name across all
appointments in all clinics;
 Developer interpretation – search for a patient name in an
individual clinic. User chooses clinic then search.
 In principle, requirements should be both complete and
consistent.
 Complete
 They should include descriptions of all facilities required.
 Consistent
 There should be no conflicts or contradictions in the
descriptions of the system facilities.
 In practice, it is impossible to produce a complete and
consistent requirements document.
NONFUNCTIONAL REQUIREMENTS
 These define system properties and constraints e.g.
reliability, response time and storage requirements.
Constraints are I/O device capability, system
representations, etc.
 Non-functional requirements may be more critical than
functional requirements. If these are not met, the system
may be useless.
PROBLEMS FOR IMPLEMENTATION OF
NONFUNCTIONAL REQUIREMENTS
 Non-functional requirements may affect the overall
architecture of a system rather than the individual
components.
 For example, to ensure that performance requirements
are met, you may have to organize the system to
minimize communications between components.
 A single non-functional requirement, such as a
security requirement, may generate a number of
related functional requirements that define system
services that are required.
 It may also generate requirements that restrict existing
requirements.
CLASSIFICATION
 Product requirements
 Requirements which specify that the delivered product
must behave in a particular way e.g. execution speed,
reliability, etc.
 Organisational requirements
 Requirements which are a consequence of organisational
policies and procedures e.g. process standards used,
implementation requirements, etc.
 External requirements
 Requirements which arise from factors which are external
to the system and its development process e.g.
interoperability requirements, legislative requirements, etc.
METRICS FOR SPECIFYING NONFUNCTIONAL
REQUIREMENTS
Property Measure
Speed Processed transactions/second
User/event response time
Screen refresh time
Size Mbytes
Number of ROM chips
Ease of use Training time
Number of help frames
Reliability Mean time to failure
Probability of unavailability
Rate of failure occurrence
Availability
Robustness Time to restart after failure
Percentage of events causing failure
Probability of data corruption on failure
Portability Percentage of target dependent statements
Number of target systems
SOFTWARE REQUIREMENT DOCUMENT
 The software requirements document (sometimes called the
software requirements specification or SRS) is an official
statement of what the system developers should implement.
 It should include both the user requirements for a system and
a detailed specification of the system requirements.
 The requirements document has a diverse set of users,
ranging from the senior management of the organization that
is paying for the system to the engineers responsible for
developing the software.
 Critical systems need to have detailed requirements because
safety and security have to be analyzed in detail.
USERS OF
REQUIREMENT
DOCUMENT
STRUCTURE OF REQUIREMENT DOCUMENT AS PER IEEE
Chapter Description
Preface This should define the expected readership of the document and describe its
version history, including a rationale for the creation of a new version and a
summary of the changes made in each version.
Introduction This should describe the need for the system. It should briefly describe the
system’s functions and explain how it will work with other systems. It should
also describe how the system fits into the overall business or strategic
objectives of the organization commissioning the software.
Glossary This should define the technical terms used in the document. You should not
make assumptions about the experience or expertise of the reader.
User requirements
definition
Here, you describe the services provided for the user. The nonfunctional
system requirements should also be described in this section. This description
may use natural language, diagrams, or other notations that are
understandable to customers. Product and process standards that must be
followed should be specified.
System architecture This chapter should present a high-level overview of the anticipated system
architecture, showing the distribution of functions across system modules.
Architectural components that are reused should be highlighted.
Chapter Description
System
requirements
specification
This should describe the functional and nonfunctional requirements in more detail.
If necessary, further detail may also be added to the nonfunctional requirements.
Interfaces to other systems may be defined.
System models This might include graphical system models showing the relationships between
the system components and the system and its environment. Examples of
possible models are object models, data-flow models, or semantic data models.
System evolution This should describe the fundamental assumptions on which the system is based,
and any anticipated changes due to hardware evolution, changing user needs,
and so on. This section is useful for system designers as it may help them avoid
design decisions that would constrain likely future changes to the system.
Appendices These should provide detailed, specific information that is related to the
application being developed; for example, hardware and database descriptions.
Hardware requirements define the minimal and optimal configurations for the
system. Database requirements define the logical organization of the data used
by the system and the relationships between data.
Index Several indexes to the document may be included. As well as a normal alphabetic
index, there may be an index of diagrams, an index of functions, and so on.
REQUIREMENT SPECIFICATION
 Requirements specification is the process of writing
down the user and system requirements in a
requirements document.
 Ideally, the user and system requirements should be
clear, unambiguous, easy to understand, complete, and
consistent.
 The user requirements for a system should describe the
functional and nonfunctional requirements so that they
are understandable by system users who don’t have
detailed technical knowledge.
 System requirements are expanded versions of the
user requirements that are used by software engineers
as the starting point for the system design
NOATATIONS FOR WRITING SYSTEM REQUIREMENTS
Notation Description
Natural language The requirements are written using numbered sentences in natural language.
Each sentence should express one requirement.
Structured natural
language
The requirements are written in natural language on a standard form or
template. Each field provides information about an aspect of the requirement.
Design description
languages
This approach uses a language like a programming language, but with more
abstract features to specify the requirements by defining an operational model
of the system. This approach is now rarely used although it can be useful for
interface specifications.
Graphical notations Graphical models, supplemented by text annotations, are used to define the
functional requirements for the system; UML use case and sequence
diagrams are commonly used.
Mathematical
specifications
These notations are based on mathematical concepts such as finite-state
machines or sets. Although these unambiguous specifications can reduce the
ambiguity in a requirements document, most customers don’t understand a
formal specification. They cannot check that it represents what they want and
are reluctant to accept it as a system contract
NATURAL LANGUAGE SPECIFICATION
 Natural language has been used to write
requirements for software since the beginning of
software engineering.
 It is expressive, intuitive, and universal
GUIDELINES
 Invent a standard format and use it for all
requirements.
 Use language in a consistent way. Use shall for
mandatory requirements, should for desirable
requirements.
 Use text highlighting to identify key parts of the
requirement.
 Avoid the use of computer jargon.
 Include an explanation (rationale) of why a
requirement is necessary.
3.2 The system shall measure the blood sugar and
deliver insulin, if required, every 10 minutes. (Changes
in blood sugar are relatively slow so more frequent
measurement is unnecessary; less frequent measurement
could lead to unnecessarily high sugar levels.)
3.6 The system shall run a self-test routine every
minute with the conditions to be tested and the
associated actions defined in Table 1. (A self-test routine
can discover hardware and software problems and alert the
user to the fact the normal operation may be impossible.)
STRUCTURED SPECIFICATIONS
 An approach to writing requirements where the
freedom of the requirements writer is limited and
requirements are written in a standard way.
 Structured language notations use templates to
specify system requirements.
 An example of a form-based specification, in this
case, one that defines how to calculate the dose of
insulin to be delivered when the blood sugar is
within a safe band.
FORM BASED SPECIFICATIONS
 Definition of the function or entity.
 Description of inputs and where they come from.
 Description of outputs and where they go to.
 Information about the information needed for the
computation and other entities used.
 Description of the action to be taken.
 Pre and post conditions (if appropriate).
 The side effects (if any) of the function.
 Using structured specifications removes some of the
problems of natural language specification.
 It is still sometimes difficult to write requirements in a
clear and unambiguous way, particularly when complex
computations (e.g., how to calculate the insulin dose)
are to be specified.
 To address this problem, you can add extra information
to natural language requirements, for example, by using
tables or graphical models of the system.
 Tables are particularly useful when there are a number
of possible alternative situations and you need to
describe the actions to be taken for each of these
REQUIREMENTS ENGINEERING PROCESSES
 The processes used for RE vary widely depending
on the application domain, the people involved and
the organisation developing the requirements.
 However, there are a number of generic activities
common to all processes
 Requirements elicitation;
 Requirements analysis;
 Requirements validation;
 Requirements management.
 In practice, RE is an iterative activity in which these
processes are interleaved.
REQUIREMENTS ELICITATION AND ANALYSIS
 Sometimes called requirements elicitation or requirements
discovery.
 Involves technical staff working with customers to find out
about the application domain, the services that the system
should provide and the system’s operational constraints.
 May involve end-users, managers, engineers involved in
maintenance, domain experts, trade unions, etc. These are
called stakeholders.
 Stakeholders don’t know what they really want.
 Stakeholders express requirements in their own terms.
 Different stakeholders may have conflicting requirements.
 Organisational and political factors may influence the system
requirements.
 The requirements change during the analysis process.
New stakeholders may emerge and the business
environment may change.
 Software engineers work with a range of system
stakeholders to find out about the application domain,
the services that the system should provide, the
required system performance, hardware constraints,
other systems, etc.
 Stages include:
 Requirements discovery,
 Requirements classification and organization,
 Requirements prioritization and negotiation,
 Requirements specification.
REQUIREMENT DISCOVERY
 Requirements discovery (sometime called
requirements elicitation) is the process of gathering
information about the required system and existing
systems, and distilling the user and system
requirements from this information.
 Sources of information during the requirements
discovery phase include documentation, system
stakeholders, and specifications of similar systems.
 The approaches are as follows:
 Interviewing
 Observation or ethnography
 Scenarios
 Use cases
INTERVIEW
 Formal or informal interviews with stakeholders are
part of most RE processes.
 Types of interview
 Closed interviews based on pre-determined list of
questions
 Open interviews where various issues are explored with
stakeholders.
 Effective interviewing
 Be open-minded, avoid pre-conceived ideas about the
requirements and are willing to listen to stakeholders.
 Prompt the interviewee to get discussions going using a
springboard question, a requirements proposal, or by
working together on a prototype system.
ETHNOGRAPHY
 A social scientist spends a considerable time
observing and analysing how people actually work.
 People do not have to explain or articulate their
work.
 Social and organisational factors of importance may
be observed.
 Ethnographic studies have shown that work is
usually richer and more complex than suggested by
simple system models.
 Requirements that are derived from the way that people
actually work rather than the way I which process
definitions suggest that they ought to work.
 Requirements that are derived from cooperation and
awareness of other people’s activities.
 Awareness of what other people are doing leads to changes in
the ways in which we do things.
 Ethnography is effective for understanding existing
processes but cannot identify new features that should be
added to a system.
SCENARIOS
 Scenarios are real-life examples of how a system
can be used.
 They should include
 A description of the starting situation;
 A description of the normal flow of events;
 A description of what can go wrong;
 Information about other concurrent activities;
 A description of the state when the scenario finishes.
USE CASES
 Use-cases are a scenario based technique in the
UML which identify the actors in an interaction and
which describe the interaction itself.
 A set of use cases should describe all possible
interactions with the system.
 High-level graphical model supplemented by more
detailed tabular description.
 Sequence diagrams may be used to add detail to
use-cases by showing the sequence of event
processing in the system.
REQUIREMENT VALIDATION
 Requirements validation is the process of checking that
requirements actually define the system that the
customer really wants.
 It overlaps with analysis as it is concerned with finding
problems with the requirements.
 Different types of checks involved are:
 Validity. Does the system provide the functions which best
support the customer’s needs?
 Consistency. Are there any requirements conflicts?
 Completeness. Are all functions required by the customer
included?
 Realism. Can the requirements be implemented given
available budget and technology
 Verifiability. Can the requirements be checked or tested?
REQUIREMENTS VALIDATION TECHNIQUES
 Requirements reviews
 Systematic manual analysis of the requirements.
 Prototyping
 Using an executable model of the system to check
requirements. They can experiment with this model to
see if it meets their real needs.
 Test-case generation
 Developing tests for requirements to check testability.
REQUIREMENTS MANAGEMENT
 Requirements management is the process of managing
changing requirements during the requirements
engineering process and system development.
 New requirements emerge as a system is being
developed and after it has gone into use.
 You need to keep track of individual requirements and
maintain links between dependent requirements so that
you can assess the impact of requirements changes.
 You need to establish a formal process for making
change proposals and linking these to system
requirements.
 Changing Requirements are due to:
 The business and technical environment of the system
always changes after installation.
 The people who pay for a system and the users of that
system are rarely the same people.
 Large systems usually have a diverse user community, with
many users having different requirements and priorities that
may be conflicting or contradictory.
REQUIREMENTS MANAGEMENT PLANNING
 Establishes the level of requirements management
detail that is required.
 Requirements management decisions:
 Requirements identification: Each requirement must be
uniquely identified so that it can be cross-referenced with
other requirements.
 A change management process: This is the set of activities
that assess the impact and cost of changes. I discuss this
process in more detail in the following section.
 Traceability policies: These policies define the relationships
between each requirement and between the requirements
and the system design that should be recorded.
 Tool support: Tools that may be used range from specialist
requirements management systems to spreadsheets and
simple database systems.
REQUIREMENTS CHANGE MANAGEMENT
 Deciding if a requirements change should be accepted
 Problem analysis and change specification
 During this stage, the problem or the change proposal is analyzed
to check that it is valid. This analysis is fed back to the change
requestor who may respond with a more specific requirements
change proposal, or decide to withdraw the request.
 Change analysis and costing
 The effect of the proposed change is assessed using traceability
information and general knowledge of the system requirements.
Once this analysis is completed, a decision is made whether or
not to proceed with the requirements change.
 Change implementation
 The requirements document and, where necessary, the system
design and implementation, are modified. Ideally, the document
should be organized so that changes can be easily implemented

Contenu connexe

Tendances

CAD/CAM/CIM (18ME72) Module -4 Part-A
CAD/CAM/CIM (18ME72) Module -4 Part-ACAD/CAM/CIM (18ME72) Module -4 Part-A
CAD/CAM/CIM (18ME72) Module -4 Part-AMohammed Imran
 
Introduction of computer aided manufacturing.pptx
Introduction of computer aided manufacturing.pptxIntroduction of computer aided manufacturing.pptx
Introduction of computer aided manufacturing.pptxChirag Patel
 
CNC Mill Machine Programming Course - SIEMENS SINUMERICK 820D
CNC Mill Machine Programming Course - SIEMENS SINUMERICK 820DCNC Mill Machine Programming Course - SIEMENS SINUMERICK 820D
CNC Mill Machine Programming Course - SIEMENS SINUMERICK 820DMohamed Nader
 
Introductiuon to cad
Introductiuon to cadIntroductiuon to cad
Introductiuon to cadnayakq
 
Computer Aided Manufacturing by Luqman
Computer Aided Manufacturing by LuqmanComputer Aided Manufacturing by Luqman
Computer Aided Manufacturing by LuqmanEngr MUHAMMAD LUQMAN
 
Introduction to cad
Introduction to cadIntroduction to cad
Introduction to cadDeepak Antil
 
Uses of Computers in Manufacturing and production sector
Uses of Computers in Manufacturing and production sectorUses of Computers in Manufacturing and production sector
Uses of Computers in Manufacturing and production sectorNingela Weasley
 
Role of computers in mfg
Role of computers in mfgRole of computers in mfg
Role of computers in mfgAshok Mannava
 
CIM Computer Integrated Manufacturing
CIM Computer Integrated ManufacturingCIM Computer Integrated Manufacturing
CIM Computer Integrated ManufacturingTanuVerma39
 
uses of computer in industry,robots,simulations
uses of computer in industry,robots,simulationsuses of computer in industry,robots,simulations
uses of computer in industry,robots,simulationsArooj mughal
 

Tendances (20)

CAD/CAM/CIM (18ME72) Module -4 Part-A
CAD/CAM/CIM (18ME72) Module -4 Part-ACAD/CAM/CIM (18ME72) Module -4 Part-A
CAD/CAM/CIM (18ME72) Module -4 Part-A
 
3D Advanced Roughing
3D Advanced Roughing3D Advanced Roughing
3D Advanced Roughing
 
Introduction of computer aided manufacturing.pptx
Introduction of computer aided manufacturing.pptxIntroduction of computer aided manufacturing.pptx
Introduction of computer aided manufacturing.pptx
 
Module 1
Module 1Module 1
Module 1
 
CAD/CAM
CAD/CAMCAD/CAM
CAD/CAM
 
CNC Mill Machine Programming Course - SIEMENS SINUMERICK 820D
CNC Mill Machine Programming Course - SIEMENS SINUMERICK 820DCNC Mill Machine Programming Course - SIEMENS SINUMERICK 820D
CNC Mill Machine Programming Course - SIEMENS SINUMERICK 820D
 
CAD/CAM Lecture #2
CAD/CAM Lecture #2CAD/CAM Lecture #2
CAD/CAM Lecture #2
 
Introductiuon to cad
Introductiuon to cadIntroductiuon to cad
Introductiuon to cad
 
Computer Aided Manufacturing by Luqman
Computer Aided Manufacturing by LuqmanComputer Aided Manufacturing by Luqman
Computer Aided Manufacturing by Luqman
 
Cad cam
Cad camCad cam
Cad cam
 
Cad cam
Cad camCad cam
Cad cam
 
Introduction to cad
Introduction to cadIntroduction to cad
Introduction to cad
 
Uses of Computers in Manufacturing and production sector
Uses of Computers in Manufacturing and production sectorUses of Computers in Manufacturing and production sector
Uses of Computers in Manufacturing and production sector
 
1 cam intro
1 cam intro1 cam intro
1 cam intro
 
Role of computers in mfg
Role of computers in mfgRole of computers in mfg
Role of computers in mfg
 
CAD/CAM Lecture #3
CAD/CAM Lecture #3CAD/CAM Lecture #3
CAD/CAM Lecture #3
 
CIM Computer Integrated Manufacturing
CIM Computer Integrated ManufacturingCIM Computer Integrated Manufacturing
CIM Computer Integrated Manufacturing
 
shwetabisht
shwetabishtshwetabisht
shwetabisht
 
Manufacturing
ManufacturingManufacturing
Manufacturing
 
uses of computer in industry,robots,simulations
uses of computer in industry,robots,simulationsuses of computer in industry,robots,simulations
uses of computer in industry,robots,simulations
 

Similaire à 17CS45_CBCS_Moulde 1 ppt

Soft Eng - Introduction
Soft Eng - IntroductionSoft Eng - Introduction
Soft Eng - IntroductionJomel Penalba
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineeringJennifer Polack
 
香港六合彩
香港六合彩香港六合彩
香港六合彩pchgmf
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideSharehcslenk
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩tnxaht
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩eqhnwl
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩bxuket
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩ohtpwshx
 
SE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdfSE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdfbalaji984829
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxomgadekar25
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxYaseenNazir3
 
SE - Lecture 1 - Introduction to S Engineering.pptx
SE - Lecture 1 - Introduction to S Engineering.pptxSE - Lecture 1 - Introduction to S Engineering.pptx
SE - Lecture 1 - Introduction to S Engineering.pptxTangZhiSiang
 

Similaire à 17CS45_CBCS_Moulde 1 ppt (20)

Soft Eng - Introduction
Soft Eng - IntroductionSoft Eng - Introduction
Soft Eng - Introduction
 
Ch1
Ch1Ch1
Ch1
 
Ch1
Ch1Ch1
Ch1
 
Ch1
Ch1Ch1
Ch1
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
Swe notes
Swe notesSwe notes
Swe notes
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
 
Lecture-1-3.pptx
Lecture-1-3.pptxLecture-1-3.pptx
Lecture-1-3.pptx
 
Ch1 introduction
Ch1 introductionCh1 introduction
Ch1 introduction
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
labiqa'd.pptx
labiqa'd.pptxlabiqa'd.pptx
labiqa'd.pptx
 
SE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdfSE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdf
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptx
 
SE - Lecture 1 - Introduction to S Engineering.pptx
SE - Lecture 1 - Introduction to S Engineering.pptxSE - Lecture 1 - Introduction to S Engineering.pptx
SE - Lecture 1 - Introduction to S Engineering.pptx
 

Plus de sweetheartshridevi

Plus de sweetheartshridevi (15)

Functions and Recursion
Functions and RecursionFunctions and Recursion
Functions and Recursion
 
Structures and Pointers
Structures and PointersStructures and Pointers
Structures and Pointers
 
21PSP13-Array and Strings
21PSP13-Array and Strings21PSP13-Array and Strings
21PSP13-Array and Strings
 
21PSP13
21PSP1321PSP13
21PSP13
 
17CS61 Module-1 Notes
17CS61 Module-1 Notes17CS61 Module-1 Notes
17CS61 Module-1 Notes
 
M.Tech_18SCN13_Module1_INS_VTU
M.Tech_18SCN13_Module1_INS_VTUM.Tech_18SCN13_Module1_INS_VTU
M.Tech_18SCN13_Module1_INS_VTU
 
Module 2 17CS45
Module 2 17CS45Module 2 17CS45
Module 2 17CS45
 
Linked List
Linked ListLinked List
Linked List
 
Stacks and Queues notes_17CS33
Stacks and Queues notes_17CS33Stacks and Queues notes_17CS33
Stacks and Queues notes_17CS33
 
Introduction to Data Structures_17CS33
Introduction to Data Structures_17CS33Introduction to Data Structures_17CS33
Introduction to Data Structures_17CS33
 
15CS51_Module 5_Management and Entrepreneurship
15CS51_Module 5_Management and Entrepreneurship15CS51_Module 5_Management and Entrepreneurship
15CS51_Module 5_Management and Entrepreneurship
 
15CS51_Module 4_Management and Entrepreneurship
15CS51_Module 4_Management and Entrepreneurship15CS51_Module 4_Management and Entrepreneurship
15CS51_Module 4_Management and Entrepreneurship
 
15CS51_Module 3_Management and Entrepreneurship
15CS51_Module 3_Management and Entrepreneurship15CS51_Module 3_Management and Entrepreneurship
15CS51_Module 3_Management and Entrepreneurship
 
15CS51_Module 2_Management and Entrepreneurship
15CS51_Module 2_Management and Entrepreneurship15CS51_Module 2_Management and Entrepreneurship
15CS51_Module 2_Management and Entrepreneurship
 
Introduction to management
Introduction to managementIntroduction to management
Introduction to management
 

Dernier

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
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniquesugginaramesh
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
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
 
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
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 

Dernier (20)

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
 
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
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
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
 
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...
 
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
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 

17CS45_CBCS_Moulde 1 ppt

  • 2.  Software Engineering is essential for the functioning of government , society, and various institutions.  Software systems are abstract and intangible.  Many different software available from simple to complex.  Two factors for the failure:  Increasing system complexity  Failure to use software engineering methods
  • 3. FREQUENTLY ASKED QUESTIONS ABOUT SOFTWARE ENGINEERING Question Answer What is software? Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. What are the attributes of good software? Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable. What is software engineering? Software engineering is an engineering discipline that is concerned with all aspects of software production. What are the fundamental software engineering activities? Software specification, software development, software validation and software evolution. What is the difference between software engineering and computer science? Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process.
  • 4. Question Answer What are the key challenges facing software engineering? Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software. What are the costs of software engineering? Roughly 60% of software costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. What are the best software engineering techniques and methods? While all software projects have to be professionally managed and developed, different techniques are appropriate for different types of system. For example, games should always be developed using a series of prototypes whereas safety critical control systems require a complete and analyzable specification to be developed. You can’t, therefore, say that one method is better than another. What differences has the web made to software engineering? The web has led to the availability of software services and the possibility of developing highly distributed service- based systems. Web-based systems development has led to important advances in programming languages and software reuse.
  • 5. SOFTWARE PRODUCTS  Generic products  Stand-alone systems that are marketed and sold to any customer who wishes to buy them.  Examples – PC software such as graphics programs, project management tools; CAD software; software for specific markets such as appointments systems for dentists.  Customized products  Software that is commissioned by a specific customer to meet their own needs.  Examples – embedded control systems, air traffic control software, traffic monitoring systems.
  • 6. ESSENTIAL ATTRIBUTES OF SOFTWARE Product characteristic Description Maintainability Software should be written in such a way so that it can evolve to meet the changing needs of customers. This is a critical attribute because software change is an inevitable requirement of a changing business environment. Dependability and security Software dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure. Malicious users should not be able to access or damage the system. Efficiency Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilisation, etc. Acceptability Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable and compatible with other systems that they use.
  • 7. SOFTWARE ENGINEERING  Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.  Engineering discipline  Using appropriate theories and methods to solve problems bearing in mind organizational and financial constraints.  All aspects of software production  Not just technical process of development. Also project management and the development of tools, methods etc. to support software production.
  • 8. SOFTWARE PROCESS ACTIVITIES  A systematic approach that is used in software engineering is called software process. The activities are:  Software specification, where customers and engineers define the software that is to be produced and the constraints on its operation.  Software development, where the software is designed and programmed.  Software validation, where the software is checked to ensure that it is what the customer requires.  Software evolution, where the software is modified to reflect changing customer and market requirements
  • 9. FACTORS AFFECTING SOFTWARE  Heterogeneity  Increasingly, systems are required to operate as distributed systems across networks that include different types of computer and mobile devices.  Business and social change  Business and society are changing incredibly quickly as emerging economies develop and new technologies become available. They need to be able to change their existing software and to rapidly develop new software.  Security and trust  As software is intertwined with all aspects of our lives, it is essential that we can trust that software.  Scale  Software has to be developed across a very wide range of scales from small in portable or wearable devices through internet scale.
  • 10. SOFTWARE ENGINEERING DIVERSITY  Software engineering is a systematic approach to the production of software that takes into account practical cost, schedule, and dependability issues, as well as the needs of software customers and producers.  There are many different types of application:  Stand-alone  Interactive transaction based  Embedded control  Batch processing  Entertainment  Systems for modeling and simulation  Data Collection and analysis systems  Systems of systems.
  • 11. SOFTWARE ENGINEERING AND WEB  The development of the World Wide Web has had a profound effect on all of our lives.  Initially, the Web was primarily a universally accessible information store and it had little effect on software systems. These systems ran on local computers and were only accessible from within an organization.  Instead of writing software and deploying it on users’ PCs, the software was deployed on a web server.  The next stage in the development of web-based systems was the notion of web  services. Web services are software components that deliver specific, useful functionality and which are accessed over the Web.  In the last few years, the notion of ‘software as a service’ has been developed
  • 12.  This radical change in software organization has, obviously, led to changes in the ways that web-based systems are engineered.  Software reuse has become the dominant approach for constructing web-based systems.  Web-based systems should be developed and delivered incrementally.  User interfaces are constrained by the capabilities of web browsers. Although technologies such as AJAX mean that rich interfaces can be created within a web browser, these technologies are still difficult to use.
  • 13. SOFTWARE ENGINEERING ETHICS  As a software engineer, you must accept that your job involves wider responsibilities than simply the application of technical skills. You must also behave in an ethical and morally responsible way if you are to be respected as a professional engineer. The responsibilities are:  Confidentiality  Competence  Intellectual property rights  Computer misuse
  • 14. THE ACM/IEEE CODE OF ETHICS  Software Engineering Code of Ethics and Professional Practice  ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices  PREAMBLE  The short version of the code summarizes aspirations at a high level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.  Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles: 
  • 15.  PUBLIC - Software engineers shall act consistently with the public interest.  CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.  PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.  JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.  MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.  PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.  COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.  SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
  • 16. CASE STUDIES  The three types of systems that are used as case studies are:  An embedded system This is a system where the software controls a hardware device and is embedded in that device.  An information system This is a system whose primary purpose is to manage and provide access to a database of information.  A sensor-based data collection system This is a system whose primary purpose is to collect data from a set of sensors and process that data in some way.
  • 17. AN INSULIN PUMP CONTROL SYSTEM
  • 18.  Two requirements are to be met:  The system shall be available to deliver insulin when required.  The system shall perform reliably and deliver the correct amount of insulin to counteract the current level of blood sugar.
  • 19. A PATIENT INFORMATION SYSTEM FOR MENTAL HEALTH CARE The MHC-PMS (Mental Health Care Patient Management System) is an information system that is intended for use in clinics. It makes use of a centralized database of patient information but has also been designed to run on a PC, so that it may be accessed and used from sites that do not have secure network connectivity. When the local systems have secure network access, they use patient information in the database but they can download and use local copies of patient records when they are disconnected.
  • 20. Key Features are as Follows:  Individual care management  Clinicians can create records for patients, edit the information in the system, view patient history, etc. The system supports data summaries so that doctors can quickly learn about the key problems and treatments that have been prescribed.  Patient monitoring  The system monitors the records of patients that are involved in treatment and issues warnings if possible problems are detected.  Administrative reporting  The system generates monthly management reports showing the number of patients treated at each clinic, the number of patients who have entered and left the care system, number of patients sectioned, the drugs prescribed and their costs, etc.
  • 21. A WILDERNESS WEATHER STATION  To help monitor climate change and to improve the accuracy of weather forecasts in remote areas, the government of a country with large areas of wilderness decides to deploy several hundred weather stations in remote areas. These weather stations collect data from a set of instruments that measure temperature and pressure, sunshine, rainfall, wind speed, and wind direction.  The systems consists  The weather station system  The data management and archiving system  The station maintenance system
  • 23.  A structured set of activities required to develop a software system.  Many different software processes but all involve:  Specification – defining what the system should do;  Design and implementation – defining the organization of the system and implementing the system;  Validation – checking that it does what the customer wants;  Evolution – changing the system in response to changing customer needs.
  • 24.  When we describe and discuss processes, we usually talk about the activities in these processes such as specifying a data model, designing a user interface, etc. and the ordering of these activities.  Process descriptions may also include:  Products, which are the outcomes of a process activity;  Roles, which reflect the responsibilities of the people involved in the process;  Pre- and post-conditions, which are statements that are true before and after a process activity has been enacted or a product produced.
  • 25. SOFTWARE PROCESS MODELS  The waterfall model This takes the fundamental process activities of specification, development, validation, and evolution and represents them as separate process phases such as requirements specification, software design, implementation, testing, and so on.  Incremental development This approach interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with each version adding functionality to the previous version.  Reuse-oriented software engineering This approach is based on the existence of a significant number of reusable components. The system development process focuses on integrating these components into a system rather than developing them from scratch.
  • 26. WATER FALL MODEL  There are separate identified phases in the waterfall model:  Requirements analysis and definition  System and software design  Implementation and unit testing  Integration and system testing  Operation and maintenance
  • 27. INCREMENTAL DEVELOPMENT  Incremental development is based on the idea of developing an initial implementation, exposing this to user comment and evolving it through several versions until an adequate system has been developed.
  • 28. BENEFITS  The cost of accommodating changing customer requirements is reduced.  It is easier to get customer feedback on the development work that has been done.  More rapid delivery and deployment of useful software to the customer is possible. PROBLEMS The process is not visible. System structure tends to degrade as new increments are added.
  • 29. REUSE-ORIENTED SOFTWARE ENGINEERING  Reuse-oriented approaches rely on a large base of reusable software components and an integrating framework for the composition of these components.  Process stages  Component analysis;  Requirements modification;  System design with reuse;  Development and integration
  • 30.  There are three types of software component that may be used in a reuse-oriented process:  Web services that are developed according to service standards and which are available for remote invocation.  Collections of objects that are developed as a package to be integrated with a component framework such as .NET or J2EE.  Stand-alone software systems that are configured for use in a particular environment.
  • 31. PROCESS ACTIVITIES  Real software processes are inter-leaved sequences of technical, collaborative and managerial activities with the overall goal of specifying, designing, implementing and testing a software system.  The four basic process activities of specification, development, validation and evolution are organized differently in different development processes.  In the waterfall model, they are organized in sequence, whereas in incremental development they are inter-leaved.
  • 32. SOFTWARE SPECIFICATION  The process of establishing what services are required and the constraints on the system’s operation and development.  Requirements engineering process  Feasibility study  Is it technically and financially feasible to build the system?  Requirements elicitation and analysis  What do the system stakeholders require or expect from the system?  Requirements specification  Defining the requirements in detail  Requirements validation  Checking the validity of the requirements
  • 34. SOFTWARE DESIGN AND IMPLEMENTATION  The process of converting the system specification into an executable system.  Software design  Design a software structure that realises the specification;  Implementation  Translate this structure into an executable program;  The activities of design and implementation are closely related and may be inter-leaved
  • 36. DESIGN ACTIVITIES  Architectural design, where you identify the overall structure of the system, the principal components (sometimes called sub-systems or modules), their relationships and how they are distributed.  Interface design, where you define the interfaces between system components.  Component design, where you take each system component and design how it will operate.  Database design, where you design the system data structures and how these are to be represented in a database
  • 37. SOFTWARE VALIDATION  Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the system customer.  Involves checking and review processes and system testing.  System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.  Testing is the most commonly used V & V activity.
  • 38. STAGES OF TESTING  Development or component testing  Individual components are tested independently;  Components may be functions or objects or coherent groupings of these entities.  System testing  Testing of the system as a whole. Testing of emergent properties is particularly important.  Acceptance testing  Testing with customer data to check that the system meets the customer’s needs.
  • 40. SOFTWARE EVOLUTION  Software is inherently flexible and can change.  As requirements change through changing business circumstances, the software that supports the business must also evolve and change.  Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new.
  • 42. BOEHM’S SPIRAL MODEL  Process is represented as a spiral rather than as a sequence of activities with backtracking.  Each loop in the spiral represents a phase in the process.  No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.  Risks are explicitly assessed and resolved throughout the process.
  • 43. EACH LOOP IS DIVIDED INTO FOUR SECTORS  Objective setting  Specific objectives for the phase are identified.  Risk assessment and reduction  Risks are assessed and activities put in place to reduce the key risks.  Development and validation  A development model for the system is chosen which can be any of the generic models.  Planning  The project is reviewed and the next phase of the spiral is planned.
  • 44.
  • 46. REQUIREMENT ENGINERRING  The process of finding out, analyzing, documenting and checking these services and constraints is called requirements engineering (RE).  In some cases, a requirement is simply a high-level, abstract statement of a service that a system should provide or a constraint on a system.  This is inevitable as requirements may serve a dual function  May be the basis for a bid for a contract - therefore must be open to interpretation;  May be the basis for the contract itself - therefore must be defined in detail;  Both these statements may be called requirements.
  • 47. TYPES OF RQUIREMENT  User requirements  Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers.  System requirements  A structured document setting out detailed descriptions of the system’s functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.
  • 48.
  • 49. POSSIBLE READERS OF THE REQUIREMENT.
  • 50.  Software system requirement are classified as follows:  Functional requirements  Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.  May state what the system should not do.  Non-functional requirements  Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.  Often apply to the system as a whole rather than individual features or services.
  • 51. FUNCTIONAL REQUIREMENTS  Describe functionality or system services.  Depend on the type of software, expected users and the type of system where the software is used.  Functional user requirements may be high-level statements of what the system should do.  Functional system requirements should describe the system services in detail.
  • 52. EXAMPLE (MHC-PMS)  A user shall be able to search the appointments lists for all clinics.  The system shall generate each day, for each clinic, a list of patients who are expected to attend appointments that day.  Each staff member using the system shall be uniquely identified by his or her 8-digit employee number.
  • 53.  Problems arise when requirements are not precisely stated.  Ambiguous requirements may be interpreted in different ways by developers and users.  Consider the term ‘search’ in requirement 1  User intention – search for a patient name across all appointments in all clinics;  Developer interpretation – search for a patient name in an individual clinic. User chooses clinic then search.  In principle, requirements should be both complete and consistent.  Complete  They should include descriptions of all facilities required.  Consistent  There should be no conflicts or contradictions in the descriptions of the system facilities.  In practice, it is impossible to produce a complete and consistent requirements document.
  • 54. NONFUNCTIONAL REQUIREMENTS  These define system properties and constraints e.g. reliability, response time and storage requirements. Constraints are I/O device capability, system representations, etc.  Non-functional requirements may be more critical than functional requirements. If these are not met, the system may be useless.
  • 55. PROBLEMS FOR IMPLEMENTATION OF NONFUNCTIONAL REQUIREMENTS  Non-functional requirements may affect the overall architecture of a system rather than the individual components.  For example, to ensure that performance requirements are met, you may have to organize the system to minimize communications between components.  A single non-functional requirement, such as a security requirement, may generate a number of related functional requirements that define system services that are required.  It may also generate requirements that restrict existing requirements.
  • 56. CLASSIFICATION  Product requirements  Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc.  Organisational requirements  Requirements which are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc.  External requirements  Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.
  • 57.
  • 58. METRICS FOR SPECIFYING NONFUNCTIONAL REQUIREMENTS Property Measure Speed Processed transactions/second User/event response time Screen refresh time Size Mbytes Number of ROM chips Ease of use Training time Number of help frames Reliability Mean time to failure Probability of unavailability Rate of failure occurrence Availability Robustness Time to restart after failure Percentage of events causing failure Probability of data corruption on failure Portability Percentage of target dependent statements Number of target systems
  • 59. SOFTWARE REQUIREMENT DOCUMENT  The software requirements document (sometimes called the software requirements specification or SRS) is an official statement of what the system developers should implement.  It should include both the user requirements for a system and a detailed specification of the system requirements.  The requirements document has a diverse set of users, ranging from the senior management of the organization that is paying for the system to the engineers responsible for developing the software.  Critical systems need to have detailed requirements because safety and security have to be analyzed in detail.
  • 61. STRUCTURE OF REQUIREMENT DOCUMENT AS PER IEEE Chapter Description Preface This should define the expected readership of the document and describe its version history, including a rationale for the creation of a new version and a summary of the changes made in each version. Introduction This should describe the need for the system. It should briefly describe the system’s functions and explain how it will work with other systems. It should also describe how the system fits into the overall business or strategic objectives of the organization commissioning the software. Glossary This should define the technical terms used in the document. You should not make assumptions about the experience or expertise of the reader. User requirements definition Here, you describe the services provided for the user. The nonfunctional system requirements should also be described in this section. This description may use natural language, diagrams, or other notations that are understandable to customers. Product and process standards that must be followed should be specified. System architecture This chapter should present a high-level overview of the anticipated system architecture, showing the distribution of functions across system modules. Architectural components that are reused should be highlighted.
  • 62. Chapter Description System requirements specification This should describe the functional and nonfunctional requirements in more detail. If necessary, further detail may also be added to the nonfunctional requirements. Interfaces to other systems may be defined. System models This might include graphical system models showing the relationships between the system components and the system and its environment. Examples of possible models are object models, data-flow models, or semantic data models. System evolution This should describe the fundamental assumptions on which the system is based, and any anticipated changes due to hardware evolution, changing user needs, and so on. This section is useful for system designers as it may help them avoid design decisions that would constrain likely future changes to the system. Appendices These should provide detailed, specific information that is related to the application being developed; for example, hardware and database descriptions. Hardware requirements define the minimal and optimal configurations for the system. Database requirements define the logical organization of the data used by the system and the relationships between data. Index Several indexes to the document may be included. As well as a normal alphabetic index, there may be an index of diagrams, an index of functions, and so on.
  • 63. REQUIREMENT SPECIFICATION  Requirements specification is the process of writing down the user and system requirements in a requirements document.  Ideally, the user and system requirements should be clear, unambiguous, easy to understand, complete, and consistent.  The user requirements for a system should describe the functional and nonfunctional requirements so that they are understandable by system users who don’t have detailed technical knowledge.  System requirements are expanded versions of the user requirements that are used by software engineers as the starting point for the system design
  • 64. NOATATIONS FOR WRITING SYSTEM REQUIREMENTS Notation Description Natural language The requirements are written using numbered sentences in natural language. Each sentence should express one requirement. Structured natural language The requirements are written in natural language on a standard form or template. Each field provides information about an aspect of the requirement. Design description languages This approach uses a language like a programming language, but with more abstract features to specify the requirements by defining an operational model of the system. This approach is now rarely used although it can be useful for interface specifications. Graphical notations Graphical models, supplemented by text annotations, are used to define the functional requirements for the system; UML use case and sequence diagrams are commonly used. Mathematical specifications These notations are based on mathematical concepts such as finite-state machines or sets. Although these unambiguous specifications can reduce the ambiguity in a requirements document, most customers don’t understand a formal specification. They cannot check that it represents what they want and are reluctant to accept it as a system contract
  • 65. NATURAL LANGUAGE SPECIFICATION  Natural language has been used to write requirements for software since the beginning of software engineering.  It is expressive, intuitive, and universal
  • 66. GUIDELINES  Invent a standard format and use it for all requirements.  Use language in a consistent way. Use shall for mandatory requirements, should for desirable requirements.  Use text highlighting to identify key parts of the requirement.  Avoid the use of computer jargon.  Include an explanation (rationale) of why a requirement is necessary.
  • 67. 3.2 The system shall measure the blood sugar and deliver insulin, if required, every 10 minutes. (Changes in blood sugar are relatively slow so more frequent measurement is unnecessary; less frequent measurement could lead to unnecessarily high sugar levels.) 3.6 The system shall run a self-test routine every minute with the conditions to be tested and the associated actions defined in Table 1. (A self-test routine can discover hardware and software problems and alert the user to the fact the normal operation may be impossible.)
  • 68. STRUCTURED SPECIFICATIONS  An approach to writing requirements where the freedom of the requirements writer is limited and requirements are written in a standard way.  Structured language notations use templates to specify system requirements.  An example of a form-based specification, in this case, one that defines how to calculate the dose of insulin to be delivered when the blood sugar is within a safe band.
  • 69.
  • 70. FORM BASED SPECIFICATIONS  Definition of the function or entity.  Description of inputs and where they come from.  Description of outputs and where they go to.  Information about the information needed for the computation and other entities used.  Description of the action to be taken.  Pre and post conditions (if appropriate).  The side effects (if any) of the function.
  • 71.  Using structured specifications removes some of the problems of natural language specification.  It is still sometimes difficult to write requirements in a clear and unambiguous way, particularly when complex computations (e.g., how to calculate the insulin dose) are to be specified.  To address this problem, you can add extra information to natural language requirements, for example, by using tables or graphical models of the system.  Tables are particularly useful when there are a number of possible alternative situations and you need to describe the actions to be taken for each of these
  • 72.
  • 73. REQUIREMENTS ENGINEERING PROCESSES  The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However, there are a number of generic activities common to all processes  Requirements elicitation;  Requirements analysis;  Requirements validation;  Requirements management.  In practice, RE is an iterative activity in which these processes are interleaved.
  • 74.
  • 75. REQUIREMENTS ELICITATION AND ANALYSIS  Sometimes called requirements elicitation or requirements discovery.  Involves technical staff working with customers to find out about the application domain, the services that the system should provide and the system’s operational constraints.  May involve end-users, managers, engineers involved in maintenance, domain experts, trade unions, etc. These are called stakeholders.  Stakeholders don’t know what they really want.  Stakeholders express requirements in their own terms.  Different stakeholders may have conflicting requirements.  Organisational and political factors may influence the system requirements.
  • 76.  The requirements change during the analysis process. New stakeholders may emerge and the business environment may change.  Software engineers work with a range of system stakeholders to find out about the application domain, the services that the system should provide, the required system performance, hardware constraints, other systems, etc.  Stages include:  Requirements discovery,  Requirements classification and organization,  Requirements prioritization and negotiation,  Requirements specification.
  • 77.
  • 78. REQUIREMENT DISCOVERY  Requirements discovery (sometime called requirements elicitation) is the process of gathering information about the required system and existing systems, and distilling the user and system requirements from this information.  Sources of information during the requirements discovery phase include documentation, system stakeholders, and specifications of similar systems.  The approaches are as follows:  Interviewing  Observation or ethnography  Scenarios  Use cases
  • 79. INTERVIEW  Formal or informal interviews with stakeholders are part of most RE processes.  Types of interview  Closed interviews based on pre-determined list of questions  Open interviews where various issues are explored with stakeholders.  Effective interviewing  Be open-minded, avoid pre-conceived ideas about the requirements and are willing to listen to stakeholders.  Prompt the interviewee to get discussions going using a springboard question, a requirements proposal, or by working together on a prototype system.
  • 80. ETHNOGRAPHY  A social scientist spends a considerable time observing and analysing how people actually work.  People do not have to explain or articulate their work.  Social and organisational factors of importance may be observed.  Ethnographic studies have shown that work is usually richer and more complex than suggested by simple system models.
  • 81.  Requirements that are derived from the way that people actually work rather than the way I which process definitions suggest that they ought to work.  Requirements that are derived from cooperation and awareness of other people’s activities.  Awareness of what other people are doing leads to changes in the ways in which we do things.  Ethnography is effective for understanding existing processes but cannot identify new features that should be added to a system.
  • 82. SCENARIOS  Scenarios are real-life examples of how a system can be used.  They should include  A description of the starting situation;  A description of the normal flow of events;  A description of what can go wrong;  Information about other concurrent activities;  A description of the state when the scenario finishes.
  • 83. USE CASES  Use-cases are a scenario based technique in the UML which identify the actors in an interaction and which describe the interaction itself.  A set of use cases should describe all possible interactions with the system.  High-level graphical model supplemented by more detailed tabular description.  Sequence diagrams may be used to add detail to use-cases by showing the sequence of event processing in the system.
  • 84.
  • 85. REQUIREMENT VALIDATION  Requirements validation is the process of checking that requirements actually define the system that the customer really wants.  It overlaps with analysis as it is concerned with finding problems with the requirements.  Different types of checks involved are:  Validity. Does the system provide the functions which best support the customer’s needs?  Consistency. Are there any requirements conflicts?  Completeness. Are all functions required by the customer included?  Realism. Can the requirements be implemented given available budget and technology  Verifiability. Can the requirements be checked or tested?
  • 86. REQUIREMENTS VALIDATION TECHNIQUES  Requirements reviews  Systematic manual analysis of the requirements.  Prototyping  Using an executable model of the system to check requirements. They can experiment with this model to see if it meets their real needs.  Test-case generation  Developing tests for requirements to check testability.
  • 87. REQUIREMENTS MANAGEMENT  Requirements management is the process of managing changing requirements during the requirements engineering process and system development.  New requirements emerge as a system is being developed and after it has gone into use.  You need to keep track of individual requirements and maintain links between dependent requirements so that you can assess the impact of requirements changes.  You need to establish a formal process for making change proposals and linking these to system requirements.
  • 88.  Changing Requirements are due to:  The business and technical environment of the system always changes after installation.  The people who pay for a system and the users of that system are rarely the same people.  Large systems usually have a diverse user community, with many users having different requirements and priorities that may be conflicting or contradictory.
  • 89. REQUIREMENTS MANAGEMENT PLANNING  Establishes the level of requirements management detail that is required.  Requirements management decisions:  Requirements identification: Each requirement must be uniquely identified so that it can be cross-referenced with other requirements.  A change management process: This is the set of activities that assess the impact and cost of changes. I discuss this process in more detail in the following section.  Traceability policies: These policies define the relationships between each requirement and between the requirements and the system design that should be recorded.  Tool support: Tools that may be used range from specialist requirements management systems to spreadsheets and simple database systems.
  • 90. REQUIREMENTS CHANGE MANAGEMENT  Deciding if a requirements change should be accepted  Problem analysis and change specification  During this stage, the problem or the change proposal is analyzed to check that it is valid. This analysis is fed back to the change requestor who may respond with a more specific requirements change proposal, or decide to withdraw the request.  Change analysis and costing  The effect of the proposed change is assessed using traceability information and general knowledge of the system requirements. Once this analysis is completed, a decision is made whether or not to proceed with the requirements change.  Change implementation  The requirements document and, where necessary, the system design and implementation, are modified. Ideally, the document should be organized so that changes can be easily implemented