尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare a Scribd company logo
Requirements Analysis
and
Design
Requirement
• A thing that is needed or wanted.
• A thing that is compulsory; a necessary condition.
Types of Requirements
• Functional Requirements
• Non Functional Requirements (NFRs)
– Performance
– Security
– Logging
– Reliability
Characteristics of Good Requirements
• Correct
• Clear
• Understandable
• Unambiguous
• Testable (Verifiable)
• Feasible
• Independent
• Atomic
• Necessary
• Implementation-free
• Consistent
• Complete
• Non-redundant
Requirements
Engineering Tasks
The Problems with our Requirements Practices
• We have trouble understanding
the requirements that we do
acquire from the customer
• We often record requirements in
a disorganized manner
• We spend far too little time
verifying what we do record
• We allow change to control us,
rather than establishing
mechanisms to control change
• Most importantly, we fail to
establish a solid foundation for
the system or software that the
user wants built
The Problems with our Requirements Practices
• Many software developers argue that
– Building software is so compelling that we want to jump right in
(before having a clear understanding of what is needed)
– Things will become clear as we build the software
– Project stakeholders will be able to better understand what they
need only after examining early iterations of the software
– Things change so rapidly that requirements engineering is a waste
of time
– The bottom line is producing a working program and that all else is
secondary
8
A Solution: Requirements Engineering
• Begins during the communication activity and continues into the
modeling activity
• Builds a bridge from the system requirements into software design
and construction
• Allows the requirements engineer to examine
– the context of the software work to be performed
– the specific needs that design and construction must address
– the priorities that guide the order in which work is to be completed
– the information, function, and behavior that will have a profound impact on
the resultant design
Requirements Engineering Tasks
• Seven distinct tasks
– Inception
– Elicitation
– Elaboration
– Negotiation
– Specification
– Validation
– Requirements Management
• Some of these tasks may occur in parallel and all are adapted to
the needs of the project
• All strive to define what the customer wants
• All serve to establish a solid foundation for the design and
construction of the software
Requirements
Management
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Inception Task
• During inception, the requirements engineer asks a set of questions to
establish…
– A basic understanding of the problem
– The people who want a solution
– The nature of the solution that is desired
– The effectiveness of preliminary communication and collaboration
between the customer and the developer
• Through these questions, the requirements engineer needs to…
– Identify the stakeholders
– Recognize multiple viewpoints
– Work toward collaboration
– Break the ice and initiate the communication
Questions Asked..First Set of questions Next Set of Questions Final Set of questions
These questions focus on the
customer, other stakeholders,
the overall goals, and the
benefits
These questions enable the
requirements engineer to gain a
better understanding of the
problem and allow the customer to
voice his or her perceptions about
a solution
These questions focus on
the effectiveness of the
communication activity itself
• Who is behind the request
for this work?
• Who will use the solution?
• What will be the economic
benefit of a successful
solution?
• Is there another source for
the solution that you need?
• How would you characterize
"good" output that would be
generated by a successful
solution?
• What problem(s) will this
solution address?
• Can you show me (or describe)
the business environment in
which the solution will be used?
• Will special performance issues
or constraints affect the way the
solution is approached?
• Are you the right person
to answer these
questions? Are your
answers "official"?
• Are my questions
relevant to the problem
that you have?
• Am I asking too many
questions?
• Can anyone else provide
additional information?
• Should I be asking you
anything else?
Requirements
Management
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Elicitation Task
• Eliciting requirements is difficult because of
– Problems of scope in identifying the boundaries of the system or
specifying too much technical detail rather than overall system
objectives
– Problems of understanding what is wanted, what the problem
domain is, and what the computing environment can handle
(Information that is believed to be "obvious" is often omitted)
– Problems of volatility because the requirements change over time
• Elicitation may be accomplished through two activities
– Collaborative requirements gathering
– Quality function deployment
Elicitation Work Products
• A statement of need and feasibility
• A bounded statement of scope for the system or product
• A list of customers, users, and other stakeholders who
participated in requirements elicitation
• A description of the system's technical environment
• A list of requirements (organized by function) and the domain
constraints that apply to each
• A set of preliminary usage scenarios (in the form of use cases)
that provide insight into the use of the system or product under
different operating conditions
• Any prototypes developed to better define requirements
The work products will vary depending on the system, but should
include one or more of the following items
Collaborative Requirements Gathering
• Meetings are conducted and attended by both software
engineers, customers, and other interested stakeholders
• Rules for preparation and participation are established
• An agenda is suggested that is formal enough to cover all
important points but informal enough to encourage the free flow
of ideas
• A "facilitator" (customer, developer, or outsider) controls the
meeting
• A "definition mechanism" is used such as work sheets, flip
charts, wall stickers, electronic bulletin board, chat room, or
some other virtual forum
• The goal is to identify the problem, propose elements of the
solution, negotiate different approaches, and specify a
preliminary set of solution requirements
Quality Function Deployment
• This is a technique that translates the needs of the customer
into technical requirements for software
• It emphasizes an understanding of what is valuable to the
customer and then deploys these values throughout the
engineering process through functions, information, and tasks
• It identifies three types of requirements
– Normal requirements: These requirements are the objectives and
goals stated for a product or system during meetings with the
customer
– Expected requirements: These requirements are implicit to the
product or system and may be so fundamental that the customer
does not explicitly state them
– Exciting requirements: These requirements are for features that go
beyond the customer's expectations and prove to be very satisfying
when present
Requirements
Management
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Elaboration Task
• During elaboration, the software engineer takes the information
obtained during inception and elicitation and begins to expand
and refine it
• Elaboration focuses on developing a refined technical model of
software functions, features, and constraints
• It is an analysis modeling task
– Use cases are developed
– Domain classes are identified along with their attributes and
relationships
– State machine diagrams are used to capture the life on an object
• The end result is an analysis model that defines the functional,
informational, and behavioral domains of the problem
Developing Use Cases
• Already Done
(Refer to Use Case diag slides)
Requirements
Management
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Negotiation Task
• During negotiation, the software engineer
reconciles the conflicts between what the
customer wants and what can be achieved
given limited business resources
• Requirements are ranked (i.e., prioritized)
by the customers, users, and other
stakeholders
• Risks associated with each requirement
are identified and analyzed
• Rough guesses of development effort are
made and used to assess the impact of
each requirement on project cost and
delivery time
• Using an iterative approach, requirements
are eliminated, combined and/or modified
so that each party achieves some measure
of satisfaction
Requirements
Management
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Specification Task
• A specification is the final work product produced by the requirements
engineer
• It is normally in the form of a software requirements specification(SRS)
• It serves as the foundation for subsequent software engineering activities
• It describes the function and performance of a computer-based system and
the constraints that will govern its development
• It formalizes the informational, functional, and behavioral requirements of
the proposed software in both a graphical and textual format
Software Requirements
Specification
Lab work on SRS ( Software Requirement Specification)
Requirements
Management
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Validation Task
• During validation, the work products produced as a result of requirements engineering are
assessed for quality
• The specification is examined to ensure that
– all software requirements have been stated unambiguously
– inconsistencies, omissions, and errors have been detected and corrected
– the work products conform to the standards established for the process, the project, and the product
• The formal technical review serves as the primary requirements validation mechanism
– Members include software engineers, customers, users, and other stakeholders
• Do any requirements conflict with other requirements?
• Is each requirement achievable in the technical environment that will house the system or
product?
• Is each requirement testable, once implemented?
– Approaches: Demonstration, actual test, analysis, or inspection
• Does the requirements model properly reflect the information, function, and behavior of the
system to be built?
• Has the requirements model been “partitioned” in a way that exposes progressively more
detailed information about the system?
Questions to ask when Validating Requirements
• Is each requirement consistent with the overall objective for the
system/product?
• Have all requirements been specified at the proper level of
abstraction? That is, do some requirements provide a level of
technical detail that is inappropriate at this stage?
• Is the requirement really necessary or does it represent an add-
on feature that may not be essential to the objective of the
system?
• Is each requirement bounded and unambiguous?
• Does each requirement have attribution? That is, is a source
(generally, a specific individual) noted for each requirement?
Requirements
Management
Validation
Inception
Elicitation
Elaboration
Negotiation
Specification
Requirements Management Task
• During requirements management, the
project team performs a set of activities to
identify, control, and track requirements
and changes to the requirements at any
time as the project proceeds
• Each requirement is assigned a unique
identifier
• The requirements are then placed into one
or more traceability tables
• These tables may be stored in a database
that relate features, sources,
dependencies, subsystems, and interfaces
to the requirements
• A requirements traceability table is also
placed at the end of the software
requirements specification
Requirements Analysis
Modeling
Goals of Analysis Modeling
• Provides the first technical representation of a system
• Is easy to understand and maintain
• Deals with the problem of size by partitioning the system
• Uses graphics whenever possible
• Differentiates between essential information versus
implementation information
• Helps in the tracking and evaluation of interfaces
• Provides tools other than narrative text to describe software
logic and policy
A Set of Models
• Flow-oriented modeling – provides an indication of how data
objects are transformed by a set of processing functions
• Scenario-based modeling – represents the system from the
user's point of view
• Class-based modeling – defines objects, attributes, and
relationships
• Behavioral modeling – depicts the states of the classes and
the impact of events on these states
Requirements Analysis
Overall Objectives
• Three primary objectives
– To describe what the customer requires
– To establish a basis for the creation of a software design
– To define a set of requirements that can be validated once the
software is built
• All elements of an analysis model are directly traceable to parts
of the design model, and some parts overlap
Purpose
• Specifies the software's operational characteristics
• Indicates the software's interfaces with other system elements
• Establishes constraints that the software must meet
• Provides the software designer with a representation of
information, function, and behavior
– This is later translated into architectural, interface, class/data and
component-level designs
• Provides the developer and customer with the means to assess
quality once the software is built
Analysis Rules of Thumb
• The analysis model should focus on requirements that are visible within
the problem or business domain
– The level of abstraction should be relatively high
• Each element of the analysis model should add to an overall
understanding of software requirements and provide insight into the
following
– Information domain, function, and behavior of the system
• The model should delay the consideration of infrastructure and other
non-functional models until the design phase
– First complete the analysis of the problem domain
• The model should minimize coupling throughout the system
– Reduce the level of interconnectedness among functions and classes
• The model should provide value to all stakeholders
• The model should be kept as simple as can be
Domain Analysis
• Definition
– The identification, analysis, and specification of common, reusable
capabilities within a specific application domain
– Do this in terms of common objects, classes, subassemblies, and
frameworks
• Sources of domain knowledge
– Technical literature
– Existing applications
– Customer surveys and expert advice
– Current/future requirements
• Outcome of domain analysis
– Class taxonomies
– Reuse standards
– Functional and behavioral models
– Domain languages
Analysis Modeling Approaches
• Structured analysis
– Considers data and the processes that transform the data as
separate entities
– Data is modeled in terms of only attributes and relationships (but no
operations)
– Processes are modeled to show the 1) input data, 2) the
transformation that occurs on that data, and 3) the resulting output
data
• Object-oriented analysis
– Focuses on the definition of classes and the manner in which they
collaborate with one another to fulfill customer requirements
Elements of the Analysis Model
Flow-oriented Modeling
Data Modeling
• Data Flow Diagram
Already done refer to DFD slides
Scenario Based Modeling: Use Case Diagram
• Use Case Diagram ( already done refer to use case slides)
• Activity Diagram (already done refer to Activity Diagram slides)
Class Based Modeling
• Refer to Object Oriented
Concepts slides and Class
Diagram slide
Behavioral Modeling :State Diagram
• State Diagram ( already done Refer to state diagram
slides)
Summary:
Elements of the Analysis Model
Use case text
Use case diagrams
Activity diagrams
Swim lane diagrams
Scenario-based
modeling
Class diagrams
Analysis packages
CRC models
Collaboration diagrams
Class-based
modeling
Data flow diagrams
Control-flow diagrams
Processing narratives
Flow-oriented
modeling
State diagrams
Sequence diagrams
Behavioral
modeling
Structured AnalysisObject-oriented Analysis
Design Engineering
Purpose of Design
• Design is where customer requirements, business needs, and technical considerations all come
together in the formulation of a product or system
• The design model provides detail about the software data structures, architecture, interfaces,
and components
• The design model can be assessed for quality and be improved before code is generated and
tests are conducted
– Does the design contain errors, inconsistencies, or omissions?
– Are there better design alternatives?
– Can the design be implemented within the constraints, schedule, and cost that have been established?
• A designer must practice diversification and convergence
– The designer selects from design components, component solutions, and knowledge available through
catalogueses, textbooks, and experience
– The designer then chooses the elements from this collection that meet the requirements defined by
requirements engineering and analysis modeling
– Convergence occurs as alternatives are considered and rejected until one particular configuration of
components is chosen
• Software design is an iterative process through which requirements are translated into a
blueprint for constructing the software
– Design begins at a high level of abstraction that can be directly traced back to the data, functional, and
behavioral requirements
– As design iteration occurs, subsequent refinement leads to design representations at much lower levels
of abstraction
From Analysis Model to Design Model
• Each element of the analysis model provides information that is necessary
to create the four design models
– The data/class design transforms analysis classes into design classes along with
the data structures required to implement the software
– The architectural design defines the relationship between major structural
elements of the software; architectural styles and design patterns help achieve
the requirements defined for the system
– The interface design describes how the software communicates with systems
that interoperate with it and with humans that use it
– The component-level design transforms structural elements of the software
architecture into a procedural description of software components
51
From Analysis Model to
Design Model (continued)
Data/Class Design
(Class-based model, Behavioral model)
Architectural Design
(Class-based model, Flow-oriented model)
Interface Design
(Scenario-based model, Flow-oriented model
Behavioral model)
Component-level Design
(Class-based model, Flow-oriented model
Behavioral model)
Task Set for Software Design
1) Examine the information domain model and design appropriate data structures for data objects
and their attributes
2) Using the analysis model, select an architectural style (and design patterns) that are
appropriate for the software
3) Partition the analysis model into design subsystems and allocate these subsystems within the
architecture
a) Design the subsystem interfaces
b) Allocate analysis classes or functions to each subsystem
4) Create a set of design classes or components
a) Translate each analysis class description into a design class
b) Check each design class against design criteria; consider inheritance issues
c) Define methods associated with each design class
d) Evaluate and select design patterns for a design class or subsystem
5) Design any interface required with external systems or devices
6) Design the user interface
7) Conduct component-level design
a) Specify all algorithms at a relatively low level of abstraction
b) Refine the interface of each component
c) Define component-level data structures
d) Review each component and correct all errors uncovered
5) Develop a deployment model
 Show a physical layout of the system, revealing which components will be located where in the
physical computing environment
Design Quality
Quality's Role
• The importance of design is quality
• Design is the place where quality is fostered
– Provides representations of software that can be assessed for quality
– Accurately translates a customer's requirements into a finished software
product or system
– Serves as the foundation for all software engineering activities that follow
• Without design, we risk building an unstable system that
– Will fail when small changes are made
– May be difficult to test
– Cannot be assessed for quality later in the software process when time is
short and most of the budget has been spent
• The quality of the design is assessed through a series of formal
technical reviews or design walkthroughs
Goals of a Good Design
• The design must implement all of the explicit requirements
contained in the analysis model
– It must also accommodate all of the implicit requirements desired
by the customer
• The design must be a readable and understandable guide for
those who generate code, and for those who test and support
the software
• The design should provide a complete picture of the software,
addressing the data, functional, and behavioral domains from an
implementation perspective
"Writing a clever piece of code that works is one thing; designing something
that can support a long-lasting business is quite another."
Design Quality Guidelines
1) A design should exhibit an architecture that
a) Has been created using recognizable architectural styles or patterns
b) Is composed of components that exhibit good design characteristics
c) Can be implemented in an evolutionary fashion, thereby facilitating implementation and
testing
2) A design should be modular; that is, the software should be logically partitioned
into elements or subsystems
3) A design should contain distinct representations of data, architecture, interfaces,
and components
4) A design should lead to data structures that are appropriate for the classes to be
implemented and are drawn from recognizable data patterns
5) A design should lead to components that exhibit independent functional
characteristics
6) A design should lead to interfaces that reduce the complexity of connections
between components and with the external environment
7) A design should be derived using a repeatable method that is driven by
information obtained during software requirements analysis
8) A design should be represented using a notation that effectively communicates its
meaning
Design Concepts
Already done in object oriented concepts : refer to ppt of
oo-concepts
The Design Model
Data/Class Design
Architectural Design
Interface Design
Component-level Design
Process Dimension (Progression)
AbstractionDimension
Data/Class
Elements
Interface
Elements
Architectural
Elements
Component-level
Elements
Deployment-level
Elements
Dimensions of the Design Model
Analysis model
Design model
Low
High
Introduction
• The design model can be viewed in two different dimensions
– (Horizontally) The process dimension indicates the evolution of the parts of the
design model as each design task is executed
– (Vertically) The abstraction dimension represents the level of detail as each
element of the analysis model is transformed into the design model and then
iteratively refined
• Elements of the design model use many of the same UML diagrams used in
the analysis model
– The diagrams are refined and elaborated as part of the design
– More implementation-specific detail is provided
– Emphasis is placed on
• Architectural structure and style
• Interfaces between components and the outside world
• Components that reside within the architecture
Introduction (continued)
• Design model elements are not always developed in a
sequential fashion
– Preliminary architectural design sets the stage
– It is followed by interface design and component-level design,
which often occur in parallel
• The design model has the following layered elements
– Data/class design
– Architectural design
– Interface design
– Component-level design
• A fifth element that follows all of
the others is deployment-level design
Data/Class Design
Architectural Design
Interface Design
Component-level Design
Design Elements
• Data/class design
– Creates a model of data and objects that is represented at a high level
of abstraction
• Architectural design
– Depicts the overall layout of the software
• Interface design
– Tells how information flows into and out of the system and how it is
communicated among the components defined as part of the
architecture
– Includes the user interface, external interfaces, and internal interfaces
• Component-level design elements
– Describes the internal detail of each software component by way of data
structure definitions, algorithms, and interface specifications
• Deployment-level design elements
– Indicates how software functionality and subsystems will be allocated
within the physical computing environment that will support the software

More Related Content

What's hot

Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
Vishal Singh
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
Satya P. Joshi
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
Abdul Basit
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15
koolkampus
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
IIUI
 
Component level design
Component   level designComponent   level design
Component level design
Midhula Chandren
 
Gathering requirements
Gathering requirementsGathering requirements
Gathering requirements
Doan Truong Giang
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
Niraj Kumar
 
Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3
Ahmed Alageed
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
Lilia Sfaxi
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
Rupesh Vaishnav
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Rody Middelkoop
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
asimnawaz54
 
Requirement elicitation
Requirement elicitationRequirement elicitation
Requirement elicitation
vivacemente
 
Software requirement engineering
Software requirement engineeringSoftware requirement engineering
Software requirement engineering
Syed Zaid Irshad
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
Jonathan Christian
 
Requirements prioritization
Requirements prioritizationRequirements prioritization
Requirements prioritization
Syed Zaid Irshad
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 
Software Engineering - Chapter 4 - Requirements engineering
Software Engineering - Chapter 4 - Requirements engineering  Software Engineering - Chapter 4 - Requirements engineering
Software Engineering - Chapter 4 - Requirements engineering
Ra'Fat Al-Msie'deen
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
Slideshare
 

What's hot (20)

Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Component level design
Component   level designComponent   level design
Component level design
 
Gathering requirements
Gathering requirementsGathering requirements
Gathering requirements
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
 
Requirement elicitation
Requirement elicitationRequirement elicitation
Requirement elicitation
 
Software requirement engineering
Software requirement engineeringSoftware requirement engineering
Software requirement engineering
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Requirements prioritization
Requirements prioritizationRequirements prioritization
Requirements prioritization
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
Software Engineering - Chapter 4 - Requirements engineering
Software Engineering - Chapter 4 - Requirements engineering  Software Engineering - Chapter 4 - Requirements engineering
Software Engineering - Chapter 4 - Requirements engineering
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 

Similar to requirements analysis and design

lecture_Analysis Phase.ppt
lecture_Analysis Phase.pptlecture_Analysis Phase.ppt
lecture_Analysis Phase.ppt
AteeqaKokab1
 
lecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjd
lecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjdlecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjd
lecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjd
AqeelAbbas94
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineering
Preeti Mishra
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
MuhammadTalha436
 
req engg (1).ppt
req engg (1).pptreq engg (1).ppt
req engg (1).ppt
WaniHBisen
 
Development Guideline
Development GuidelineDevelopment Guideline
Development Guideline
Mohammad Nasir Uddin
 
05 REQUIREMENT ENGINEERING for students of
05 REQUIREMENT ENGINEERING for students of05 REQUIREMENT ENGINEERING for students of
05 REQUIREMENT ENGINEERING for students of
AssadLeo1
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptx
AbdulRaheem254960
 
Requirement analysis
Requirement analysisRequirement analysis
Requirement analysis
Sangeet Shah
 
software requirement
software requirement software requirement
software requirement
nimmik4u
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza
 
Requirement Analysis
Requirement AnalysisRequirement Analysis
Requirement Analysis
SADEED AMEEN
 
Software engineering Unit 2(Updated)2.pptx
Software engineering Unit 2(Updated)2.pptxSoftware engineering Unit 2(Updated)2.pptx
Software engineering Unit 2(Updated)2.pptx
singhpriyansh0510
 
Requirementengg
RequirementenggRequirementengg
SRE.pptx
SRE.pptxSRE.pptx
SRE.pptx
KalsoomBajwa
 
Proj Mgmt.ppt
Proj Mgmt.pptProj Mgmt.ppt
Proj Mgmt.ppt
NikhilDudka
 
SRE_Lecture_1,2,3,4.pptx
SRE_Lecture_1,2,3,4.pptxSRE_Lecture_1,2,3,4.pptx
SRE_Lecture_1,2,3,4.pptx
AlideveroMurtaza
 
Software Development
Software DevelopmentSoftware Development
Software Development
Goutama Bachtiar
 
Requirement Analysis - Software Enigneering
Requirement Analysis - Software EnigneeringRequirement Analysis - Software Enigneering
Requirement Analysis - Software Enigneering
university of education,Lahore
 
04 fse understandingrequirements
04 fse understandingrequirements04 fse understandingrequirements
04 fse understandingrequirements
Mohesh Chandran
 

Similar to requirements analysis and design (20)

lecture_Analysis Phase.ppt
lecture_Analysis Phase.pptlecture_Analysis Phase.ppt
lecture_Analysis Phase.ppt
 
lecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjd
lecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjdlecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjd
lecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjd
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineering
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
req engg (1).ppt
req engg (1).pptreq engg (1).ppt
req engg (1).ppt
 
Development Guideline
Development GuidelineDevelopment Guideline
Development Guideline
 
05 REQUIREMENT ENGINEERING for students of
05 REQUIREMENT ENGINEERING for students of05 REQUIREMENT ENGINEERING for students of
05 REQUIREMENT ENGINEERING for students of
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptx
 
Requirement analysis
Requirement analysisRequirement analysis
Requirement analysis
 
software requirement
software requirement software requirement
software requirement
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Requirement Analysis
Requirement AnalysisRequirement Analysis
Requirement Analysis
 
Software engineering Unit 2(Updated)2.pptx
Software engineering Unit 2(Updated)2.pptxSoftware engineering Unit 2(Updated)2.pptx
Software engineering Unit 2(Updated)2.pptx
 
Requirementengg
RequirementenggRequirementengg
Requirementengg
 
SRE.pptx
SRE.pptxSRE.pptx
SRE.pptx
 
Proj Mgmt.ppt
Proj Mgmt.pptProj Mgmt.ppt
Proj Mgmt.ppt
 
SRE_Lecture_1,2,3,4.pptx
SRE_Lecture_1,2,3,4.pptxSRE_Lecture_1,2,3,4.pptx
SRE_Lecture_1,2,3,4.pptx
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
Requirement Analysis - Software Enigneering
Requirement Analysis - Software EnigneeringRequirement Analysis - Software Enigneering
Requirement Analysis - Software Enigneering
 
04 fse understandingrequirements
04 fse understandingrequirements04 fse understandingrequirements
04 fse understandingrequirements
 

More from Preeti Mishra

Effective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labsEffective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labs
Preeti Mishra
 
Uml intro
Uml introUml intro
Uml intro
Preeti Mishra
 
Component diagram
Component diagramComponent diagram
Component diagram
Preeti Mishra
 
Activity diag
Activity diagActivity diag
Activity diag
Preeti Mishra
 
Object diagram
Object diagramObject diagram
Object diagram
Preeti Mishra
 
Sequence diagrams
Sequence diagramsSequence diagrams
Sequence diagrams
Preeti Mishra
 
State chart diagram
State chart diagramState chart diagram
State chart diagram
Preeti Mishra
 
Use case Diagram
Use case DiagramUse case Diagram
Use case Diagram
Preeti Mishra
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
Preeti Mishra
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
Preeti Mishra
 
architectural design
 architectural design architectural design
architectural design
Preeti Mishra
 
Oo concepts and class modeling
Oo concepts and class modelingOo concepts and class modeling
Oo concepts and class modeling
Preeti Mishra
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface design
Preeti Mishra
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
Preeti Mishra
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basics
Preeti Mishra
 
Design process design rules
Design process  design rulesDesign process  design rules
Design process design rules
Preeti Mishra
 
Design process evaluating interactive_designs
Design process  evaluating interactive_designsDesign process  evaluating interactive_designs
Design process evaluating interactive_designs
Preeti Mishra
 
Foundations understanding users and interactions
Foundations  understanding users and interactionsFoundations  understanding users and interactions
Foundations understanding users and interactions
Preeti Mishra
 
IntrIntroduction
IntrIntroductionIntrIntroduction
IntrIntroduction
Preeti Mishra
 
Coupling coheshion tps
Coupling coheshion tpsCoupling coheshion tps
Coupling coheshion tps
Preeti Mishra
 

More from Preeti Mishra (20)

Effective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labsEffective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labs
 
Uml intro
Uml introUml intro
Uml intro
 
Component diagram
Component diagramComponent diagram
Component diagram
 
Activity diag
Activity diagActivity diag
Activity diag
 
Object diagram
Object diagramObject diagram
Object diagram
 
Sequence diagrams
Sequence diagramsSequence diagrams
Sequence diagrams
 
State chart diagram
State chart diagramState chart diagram
State chart diagram
 
Use case Diagram
Use case DiagramUse case Diagram
Use case Diagram
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
architectural design
 architectural design architectural design
architectural design
 
Oo concepts and class modeling
Oo concepts and class modelingOo concepts and class modeling
Oo concepts and class modeling
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface design
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basics
 
Design process design rules
Design process  design rulesDesign process  design rules
Design process design rules
 
Design process evaluating interactive_designs
Design process  evaluating interactive_designsDesign process  evaluating interactive_designs
Design process evaluating interactive_designs
 
Foundations understanding users and interactions
Foundations  understanding users and interactionsFoundations  understanding users and interactions
Foundations understanding users and interactions
 
IntrIntroduction
IntrIntroductionIntrIntroduction
IntrIntroduction
 
Coupling coheshion tps
Coupling coheshion tpsCoupling coheshion tps
Coupling coheshion tps
 

Recently uploaded

Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
simrangupta87541
 
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl LucknowCall Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
yogita singh$A17
 
My Airframe Metallic Design Capability Studies..pdf
My Airframe Metallic Design Capability Studies..pdfMy Airframe Metallic Design Capability Studies..pdf
My Airframe Metallic Design Capability Studies..pdf
Geoffrey Wardle. MSc. MSc. Snr.MAIAA
 
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
dABGO KI CITy kUSHINAGAR Ak47
 
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
dulbh kashyap
 
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC ConduitThe Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
Guangdong Ctube Industry Co., Ltd.
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
DharmaBanothu
 
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
IJCNCJournal
 
Online train ticket booking system project.pdf
Online train ticket booking system project.pdfOnline train ticket booking system project.pdf
Online train ticket booking system project.pdf
Kamal Acharya
 
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call GirlCall Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
sapna sharmap11
 
AN INTRODUCTION OF AI & SEARCHING TECHIQUES
AN INTRODUCTION OF AI & SEARCHING TECHIQUESAN INTRODUCTION OF AI & SEARCHING TECHIQUES
AN INTRODUCTION OF AI & SEARCHING TECHIQUES
drshikhapandey2022
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
gapboxn
 
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
shourabjaat424
 
Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Call Girls Madurai 8824825030 Escort In Madurai service 24X7Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Poonam Singh
 
Intuit CRAFT demonstration presentation for sde
Intuit CRAFT demonstration presentation for sdeIntuit CRAFT demonstration presentation for sde
Intuit CRAFT demonstration presentation for sde
ShivangMishra54
 
paper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdfpaper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdf
ShurooqTaib
 
Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine, Issue 49 / Spring 2024Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine
 
Cricket management system ptoject report.pdf
Cricket management system ptoject report.pdfCricket management system ptoject report.pdf
Cricket management system ptoject report.pdf
Kamal Acharya
 
Basic principle and types Static Relays ppt
Basic principle and  types  Static Relays pptBasic principle and  types  Static Relays ppt
Basic principle and types Static Relays ppt
Sri Ramakrishna Institute of Technology
 
SPICE PARK JUL2024 ( 6,866 SPICE Models )
SPICE PARK JUL2024 ( 6,866 SPICE Models )SPICE PARK JUL2024 ( 6,866 SPICE Models )
SPICE PARK JUL2024 ( 6,866 SPICE Models )
Tsuyoshi Horigome
 

Recently uploaded (20)

Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
 
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl LucknowCall Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
 
My Airframe Metallic Design Capability Studies..pdf
My Airframe Metallic Design Capability Studies..pdfMy Airframe Metallic Design Capability Studies..pdf
My Airframe Metallic Design Capability Studies..pdf
 
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
 
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
 
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC ConduitThe Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
 
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
 
Online train ticket booking system project.pdf
Online train ticket booking system project.pdfOnline train ticket booking system project.pdf
Online train ticket booking system project.pdf
 
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call GirlCall Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
 
AN INTRODUCTION OF AI & SEARCHING TECHIQUES
AN INTRODUCTION OF AI & SEARCHING TECHIQUESAN INTRODUCTION OF AI & SEARCHING TECHIQUES
AN INTRODUCTION OF AI & SEARCHING TECHIQUES
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
 
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
 
Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Call Girls Madurai 8824825030 Escort In Madurai service 24X7Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Call Girls Madurai 8824825030 Escort In Madurai service 24X7
 
Intuit CRAFT demonstration presentation for sde
Intuit CRAFT demonstration presentation for sdeIntuit CRAFT demonstration presentation for sde
Intuit CRAFT demonstration presentation for sde
 
paper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdfpaper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdf
 
Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine, Issue 49 / Spring 2024Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine, Issue 49 / Spring 2024
 
Cricket management system ptoject report.pdf
Cricket management system ptoject report.pdfCricket management system ptoject report.pdf
Cricket management system ptoject report.pdf
 
Basic principle and types Static Relays ppt
Basic principle and  types  Static Relays pptBasic principle and  types  Static Relays ppt
Basic principle and types Static Relays ppt
 
SPICE PARK JUL2024 ( 6,866 SPICE Models )
SPICE PARK JUL2024 ( 6,866 SPICE Models )SPICE PARK JUL2024 ( 6,866 SPICE Models )
SPICE PARK JUL2024 ( 6,866 SPICE Models )
 

requirements analysis and design

  • 2. Requirement • A thing that is needed or wanted. • A thing that is compulsory; a necessary condition.
  • 3. Types of Requirements • Functional Requirements • Non Functional Requirements (NFRs) – Performance – Security – Logging – Reliability
  • 4. Characteristics of Good Requirements • Correct • Clear • Understandable • Unambiguous • Testable (Verifiable) • Feasible • Independent • Atomic • Necessary • Implementation-free • Consistent • Complete • Non-redundant
  • 6. The Problems with our Requirements Practices • We have trouble understanding the requirements that we do acquire from the customer • We often record requirements in a disorganized manner • We spend far too little time verifying what we do record • We allow change to control us, rather than establishing mechanisms to control change • Most importantly, we fail to establish a solid foundation for the system or software that the user wants built
  • 7. The Problems with our Requirements Practices • Many software developers argue that – Building software is so compelling that we want to jump right in (before having a clear understanding of what is needed) – Things will become clear as we build the software – Project stakeholders will be able to better understand what they need only after examining early iterations of the software – Things change so rapidly that requirements engineering is a waste of time – The bottom line is producing a working program and that all else is secondary
  • 8. 8
  • 9. A Solution: Requirements Engineering • Begins during the communication activity and continues into the modeling activity • Builds a bridge from the system requirements into software design and construction • Allows the requirements engineer to examine – the context of the software work to be performed – the specific needs that design and construction must address – the priorities that guide the order in which work is to be completed – the information, function, and behavior that will have a profound impact on the resultant design
  • 10. Requirements Engineering Tasks • Seven distinct tasks – Inception – Elicitation – Elaboration – Negotiation – Specification – Validation – Requirements Management • Some of these tasks may occur in parallel and all are adapted to the needs of the project • All strive to define what the customer wants • All serve to establish a solid foundation for the design and construction of the software
  • 12. Inception Task • During inception, the requirements engineer asks a set of questions to establish… – A basic understanding of the problem – The people who want a solution – The nature of the solution that is desired – The effectiveness of preliminary communication and collaboration between the customer and the developer • Through these questions, the requirements engineer needs to… – Identify the stakeholders – Recognize multiple viewpoints – Work toward collaboration – Break the ice and initiate the communication
  • 13. Questions Asked..First Set of questions Next Set of Questions Final Set of questions These questions focus on the customer, other stakeholders, the overall goals, and the benefits These questions enable the requirements engineer to gain a better understanding of the problem and allow the customer to voice his or her perceptions about a solution These questions focus on the effectiveness of the communication activity itself • Who is behind the request for this work? • Who will use the solution? • What will be the economic benefit of a successful solution? • Is there another source for the solution that you need? • How would you characterize "good" output that would be generated by a successful solution? • What problem(s) will this solution address? • Can you show me (or describe) the business environment in which the solution will be used? • Will special performance issues or constraints affect the way the solution is approached? • Are you the right person to answer these questions? Are your answers "official"? • Are my questions relevant to the problem that you have? • Am I asking too many questions? • Can anyone else provide additional information? • Should I be asking you anything else?
  • 15. Elicitation Task • Eliciting requirements is difficult because of – Problems of scope in identifying the boundaries of the system or specifying too much technical detail rather than overall system objectives – Problems of understanding what is wanted, what the problem domain is, and what the computing environment can handle (Information that is believed to be "obvious" is often omitted) – Problems of volatility because the requirements change over time • Elicitation may be accomplished through two activities – Collaborative requirements gathering – Quality function deployment
  • 16. Elicitation Work Products • A statement of need and feasibility • A bounded statement of scope for the system or product • A list of customers, users, and other stakeholders who participated in requirements elicitation • A description of the system's technical environment • A list of requirements (organized by function) and the domain constraints that apply to each • A set of preliminary usage scenarios (in the form of use cases) that provide insight into the use of the system or product under different operating conditions • Any prototypes developed to better define requirements The work products will vary depending on the system, but should include one or more of the following items
  • 17. Collaborative Requirements Gathering • Meetings are conducted and attended by both software engineers, customers, and other interested stakeholders • Rules for preparation and participation are established • An agenda is suggested that is formal enough to cover all important points but informal enough to encourage the free flow of ideas • A "facilitator" (customer, developer, or outsider) controls the meeting • A "definition mechanism" is used such as work sheets, flip charts, wall stickers, electronic bulletin board, chat room, or some other virtual forum • The goal is to identify the problem, propose elements of the solution, negotiate different approaches, and specify a preliminary set of solution requirements
  • 18. Quality Function Deployment • This is a technique that translates the needs of the customer into technical requirements for software • It emphasizes an understanding of what is valuable to the customer and then deploys these values throughout the engineering process through functions, information, and tasks • It identifies three types of requirements – Normal requirements: These requirements are the objectives and goals stated for a product or system during meetings with the customer – Expected requirements: These requirements are implicit to the product or system and may be so fundamental that the customer does not explicitly state them – Exciting requirements: These requirements are for features that go beyond the customer's expectations and prove to be very satisfying when present
  • 20. Elaboration Task • During elaboration, the software engineer takes the information obtained during inception and elicitation and begins to expand and refine it • Elaboration focuses on developing a refined technical model of software functions, features, and constraints • It is an analysis modeling task – Use cases are developed – Domain classes are identified along with their attributes and relationships – State machine diagrams are used to capture the life on an object • The end result is an analysis model that defines the functional, informational, and behavioral domains of the problem
  • 21. Developing Use Cases • Already Done (Refer to Use Case diag slides)
  • 23. Negotiation Task • During negotiation, the software engineer reconciles the conflicts between what the customer wants and what can be achieved given limited business resources • Requirements are ranked (i.e., prioritized) by the customers, users, and other stakeholders • Risks associated with each requirement are identified and analyzed • Rough guesses of development effort are made and used to assess the impact of each requirement on project cost and delivery time • Using an iterative approach, requirements are eliminated, combined and/or modified so that each party achieves some measure of satisfaction
  • 25. Specification Task • A specification is the final work product produced by the requirements engineer • It is normally in the form of a software requirements specification(SRS) • It serves as the foundation for subsequent software engineering activities • It describes the function and performance of a computer-based system and the constraints that will govern its development • It formalizes the informational, functional, and behavioral requirements of the proposed software in both a graphical and textual format
  • 26. Software Requirements Specification Lab work on SRS ( Software Requirement Specification)
  • 28. Validation Task • During validation, the work products produced as a result of requirements engineering are assessed for quality • The specification is examined to ensure that – all software requirements have been stated unambiguously – inconsistencies, omissions, and errors have been detected and corrected – the work products conform to the standards established for the process, the project, and the product • The formal technical review serves as the primary requirements validation mechanism – Members include software engineers, customers, users, and other stakeholders • Do any requirements conflict with other requirements? • Is each requirement achievable in the technical environment that will house the system or product? • Is each requirement testable, once implemented? – Approaches: Demonstration, actual test, analysis, or inspection • Does the requirements model properly reflect the information, function, and behavior of the system to be built? • Has the requirements model been “partitioned” in a way that exposes progressively more detailed information about the system?
  • 29. Questions to ask when Validating Requirements • Is each requirement consistent with the overall objective for the system/product? • Have all requirements been specified at the proper level of abstraction? That is, do some requirements provide a level of technical detail that is inappropriate at this stage? • Is the requirement really necessary or does it represent an add- on feature that may not be essential to the objective of the system? • Is each requirement bounded and unambiguous? • Does each requirement have attribution? That is, is a source (generally, a specific individual) noted for each requirement?
  • 31. Requirements Management Task • During requirements management, the project team performs a set of activities to identify, control, and track requirements and changes to the requirements at any time as the project proceeds • Each requirement is assigned a unique identifier • The requirements are then placed into one or more traceability tables • These tables may be stored in a database that relate features, sources, dependencies, subsystems, and interfaces to the requirements • A requirements traceability table is also placed at the end of the software requirements specification
  • 33. Goals of Analysis Modeling • Provides the first technical representation of a system • Is easy to understand and maintain • Deals with the problem of size by partitioning the system • Uses graphics whenever possible • Differentiates between essential information versus implementation information • Helps in the tracking and evaluation of interfaces • Provides tools other than narrative text to describe software logic and policy
  • 34. A Set of Models • Flow-oriented modeling – provides an indication of how data objects are transformed by a set of processing functions • Scenario-based modeling – represents the system from the user's point of view • Class-based modeling – defines objects, attributes, and relationships • Behavioral modeling – depicts the states of the classes and the impact of events on these states
  • 36. Overall Objectives • Three primary objectives – To describe what the customer requires – To establish a basis for the creation of a software design – To define a set of requirements that can be validated once the software is built • All elements of an analysis model are directly traceable to parts of the design model, and some parts overlap
  • 37. Purpose • Specifies the software's operational characteristics • Indicates the software's interfaces with other system elements • Establishes constraints that the software must meet • Provides the software designer with a representation of information, function, and behavior – This is later translated into architectural, interface, class/data and component-level designs • Provides the developer and customer with the means to assess quality once the software is built
  • 38. Analysis Rules of Thumb • The analysis model should focus on requirements that are visible within the problem or business domain – The level of abstraction should be relatively high • Each element of the analysis model should add to an overall understanding of software requirements and provide insight into the following – Information domain, function, and behavior of the system • The model should delay the consideration of infrastructure and other non-functional models until the design phase – First complete the analysis of the problem domain • The model should minimize coupling throughout the system – Reduce the level of interconnectedness among functions and classes • The model should provide value to all stakeholders • The model should be kept as simple as can be
  • 39. Domain Analysis • Definition – The identification, analysis, and specification of common, reusable capabilities within a specific application domain – Do this in terms of common objects, classes, subassemblies, and frameworks • Sources of domain knowledge – Technical literature – Existing applications – Customer surveys and expert advice – Current/future requirements • Outcome of domain analysis – Class taxonomies – Reuse standards – Functional and behavioral models – Domain languages
  • 40. Analysis Modeling Approaches • Structured analysis – Considers data and the processes that transform the data as separate entities – Data is modeled in terms of only attributes and relationships (but no operations) – Processes are modeled to show the 1) input data, 2) the transformation that occurs on that data, and 3) the resulting output data • Object-oriented analysis – Focuses on the definition of classes and the manner in which they collaborate with one another to fulfill customer requirements
  • 41. Elements of the Analysis Model
  • 43. Data Modeling • Data Flow Diagram Already done refer to DFD slides
  • 44. Scenario Based Modeling: Use Case Diagram • Use Case Diagram ( already done refer to use case slides) • Activity Diagram (already done refer to Activity Diagram slides)
  • 45. Class Based Modeling • Refer to Object Oriented Concepts slides and Class Diagram slide
  • 46. Behavioral Modeling :State Diagram • State Diagram ( already done Refer to state diagram slides)
  • 47. Summary: Elements of the Analysis Model Use case text Use case diagrams Activity diagrams Swim lane diagrams Scenario-based modeling Class diagrams Analysis packages CRC models Collaboration diagrams Class-based modeling Data flow diagrams Control-flow diagrams Processing narratives Flow-oriented modeling State diagrams Sequence diagrams Behavioral modeling Structured AnalysisObject-oriented Analysis
  • 49. Purpose of Design • Design is where customer requirements, business needs, and technical considerations all come together in the formulation of a product or system • The design model provides detail about the software data structures, architecture, interfaces, and components • The design model can be assessed for quality and be improved before code is generated and tests are conducted – Does the design contain errors, inconsistencies, or omissions? – Are there better design alternatives? – Can the design be implemented within the constraints, schedule, and cost that have been established? • A designer must practice diversification and convergence – The designer selects from design components, component solutions, and knowledge available through catalogueses, textbooks, and experience – The designer then chooses the elements from this collection that meet the requirements defined by requirements engineering and analysis modeling – Convergence occurs as alternatives are considered and rejected until one particular configuration of components is chosen • Software design is an iterative process through which requirements are translated into a blueprint for constructing the software – Design begins at a high level of abstraction that can be directly traced back to the data, functional, and behavioral requirements – As design iteration occurs, subsequent refinement leads to design representations at much lower levels of abstraction
  • 50. From Analysis Model to Design Model • Each element of the analysis model provides information that is necessary to create the four design models – The data/class design transforms analysis classes into design classes along with the data structures required to implement the software – The architectural design defines the relationship between major structural elements of the software; architectural styles and design patterns help achieve the requirements defined for the system – The interface design describes how the software communicates with systems that interoperate with it and with humans that use it – The component-level design transforms structural elements of the software architecture into a procedural description of software components
  • 51. 51 From Analysis Model to Design Model (continued) Data/Class Design (Class-based model, Behavioral model) Architectural Design (Class-based model, Flow-oriented model) Interface Design (Scenario-based model, Flow-oriented model Behavioral model) Component-level Design (Class-based model, Flow-oriented model Behavioral model)
  • 52. Task Set for Software Design 1) Examine the information domain model and design appropriate data structures for data objects and their attributes 2) Using the analysis model, select an architectural style (and design patterns) that are appropriate for the software 3) Partition the analysis model into design subsystems and allocate these subsystems within the architecture a) Design the subsystem interfaces b) Allocate analysis classes or functions to each subsystem 4) Create a set of design classes or components a) Translate each analysis class description into a design class b) Check each design class against design criteria; consider inheritance issues c) Define methods associated with each design class d) Evaluate and select design patterns for a design class or subsystem 5) Design any interface required with external systems or devices 6) Design the user interface 7) Conduct component-level design a) Specify all algorithms at a relatively low level of abstraction b) Refine the interface of each component c) Define component-level data structures d) Review each component and correct all errors uncovered 5) Develop a deployment model  Show a physical layout of the system, revealing which components will be located where in the physical computing environment
  • 54. Quality's Role • The importance of design is quality • Design is the place where quality is fostered – Provides representations of software that can be assessed for quality – Accurately translates a customer's requirements into a finished software product or system – Serves as the foundation for all software engineering activities that follow • Without design, we risk building an unstable system that – Will fail when small changes are made – May be difficult to test – Cannot be assessed for quality later in the software process when time is short and most of the budget has been spent • The quality of the design is assessed through a series of formal technical reviews or design walkthroughs
  • 55. Goals of a Good Design • The design must implement all of the explicit requirements contained in the analysis model – It must also accommodate all of the implicit requirements desired by the customer • The design must be a readable and understandable guide for those who generate code, and for those who test and support the software • The design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective "Writing a clever piece of code that works is one thing; designing something that can support a long-lasting business is quite another."
  • 56. Design Quality Guidelines 1) A design should exhibit an architecture that a) Has been created using recognizable architectural styles or patterns b) Is composed of components that exhibit good design characteristics c) Can be implemented in an evolutionary fashion, thereby facilitating implementation and testing 2) A design should be modular; that is, the software should be logically partitioned into elements or subsystems 3) A design should contain distinct representations of data, architecture, interfaces, and components 4) A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data patterns 5) A design should lead to components that exhibit independent functional characteristics 6) A design should lead to interfaces that reduce the complexity of connections between components and with the external environment 7) A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis 8) A design should be represented using a notation that effectively communicates its meaning
  • 57. Design Concepts Already done in object oriented concepts : refer to ppt of oo-concepts
  • 58. The Design Model Data/Class Design Architectural Design Interface Design Component-level Design
  • 60. Introduction • The design model can be viewed in two different dimensions – (Horizontally) The process dimension indicates the evolution of the parts of the design model as each design task is executed – (Vertically) The abstraction dimension represents the level of detail as each element of the analysis model is transformed into the design model and then iteratively refined • Elements of the design model use many of the same UML diagrams used in the analysis model – The diagrams are refined and elaborated as part of the design – More implementation-specific detail is provided – Emphasis is placed on • Architectural structure and style • Interfaces between components and the outside world • Components that reside within the architecture
  • 61. Introduction (continued) • Design model elements are not always developed in a sequential fashion – Preliminary architectural design sets the stage – It is followed by interface design and component-level design, which often occur in parallel • The design model has the following layered elements – Data/class design – Architectural design – Interface design – Component-level design • A fifth element that follows all of the others is deployment-level design Data/Class Design Architectural Design Interface Design Component-level Design
  • 62. Design Elements • Data/class design – Creates a model of data and objects that is represented at a high level of abstraction • Architectural design – Depicts the overall layout of the software • Interface design – Tells how information flows into and out of the system and how it is communicated among the components defined as part of the architecture – Includes the user interface, external interfaces, and internal interfaces • Component-level design elements – Describes the internal detail of each software component by way of data structure definitions, algorithms, and interface specifications • Deployment-level design elements – Indicates how software functionality and subsystems will be allocated within the physical computing environment that will support the software
  翻译: