SlideShare une entreprise Scribd logo
1  sur  62
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

Contenu connexe

Tendances

Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
Hayim Makabee
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
Abdul Basit
 
Ch 9 traceability and verification
Ch 9 traceability and verificationCh 9 traceability and verification
Ch 9 traceability and verification
Kittitouch Suteeca
 
Software Project Management( lecture 1)
Software Project Management( lecture 1)Software Project Management( lecture 1)
Software Project Management( lecture 1)
Syed Muhammad Hammad
 

Tendances (20)

Non Functional Requirement.
Non Functional Requirement.Non Functional Requirement.
Non Functional Requirement.
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Requirement and Specification
Requirement and SpecificationRequirement and Specification
Requirement and Specification
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Introduction to Requirement engineering
Introduction to Requirement engineeringIntroduction to Requirement engineering
Introduction to Requirement engineering
 
Requirement Analysis - Software Enigneering
Requirement Analysis - Software EnigneeringRequirement Analysis - Software Enigneering
Requirement Analysis - Software Enigneering
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Ch 9 traceability and verification
Ch 9 traceability and verificationCh 9 traceability and verification
Ch 9 traceability and verification
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Software requirement engineering
Software requirement engineeringSoftware requirement engineering
Software requirement engineering
 
Test Strategy and Planning
Test Strategy and PlanningTest Strategy and Planning
Test Strategy and Planning
 
Requirement Elicitation
Requirement ElicitationRequirement Elicitation
Requirement Elicitation
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 
software characteristics
software characteristicssoftware characteristics
software characteristics
 
Requirements Traceability - The Tie That Binds
Requirements Traceability - The Tie That BindsRequirements Traceability - The Tie That Binds
Requirements Traceability - The Tie That Binds
 
Software Project Management( lecture 1)
Software Project Management( lecture 1)Software Project Management( lecture 1)
Software Project Management( lecture 1)
 

Similaire à requirements analysis and design

lecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjd
lecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjdlecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjd
lecture_5 (2).ppt hjhrrgjbgrmgrhbgrgghjd
AqeelAbbas94
 
04 fse understandingrequirements
04 fse understandingrequirements04 fse understandingrequirements
04 fse understandingrequirements
Mohesh Chandran
 

Similaire à 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
 
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
 
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
 
04 fse understandingrequirements
04 fse understandingrequirements04 fse understandingrequirements
04 fse understandingrequirements
 
UNIT-II MMB.pptx
UNIT-II MMB.pptxUNIT-II MMB.pptx
UNIT-II MMB.pptx
 
SE Unit 2(1).pptx
SE Unit 2(1).pptxSE Unit 2(1).pptx
SE Unit 2(1).pptx
 
sdlc.pptx
sdlc.pptxsdlc.pptx
sdlc.pptx
 
Seminar on Project Management by Rj
Seminar on Project Management by RjSeminar on Project Management by Rj
Seminar on Project Management by Rj
 
5. SE RequirementEngineering task.ppt
5. SE RequirementEngineering task.ppt5. SE RequirementEngineering task.ppt
5. SE RequirementEngineering task.ppt
 

Plus de Preeti Mishra

Plus de 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
 

Dernier

Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
HenryBriggs2
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 

Dernier (20)

Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Bridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptxBridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptx
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Rums floating Omkareshwar FSPV IM_16112021.pdf
Rums floating Omkareshwar FSPV IM_16112021.pdfRums floating Omkareshwar FSPV IM_16112021.pdf
Rums floating Omkareshwar FSPV IM_16112021.pdf
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 

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