SlideShare una empresa de Scribd logo
1 de 25
62
UNIT – 4 [Part – I]
DESIGN ENGINEERING
4.1 Design Process and Design:
* Software design is an iterative process through which requirements are translated into a
“Blue Print” for constructing the software
* The design is represented at a high-level abstraction [i.e. a level that can be directly
traced to the specific system objective, more detailed data, functional and behavioral
requirements]
Guidelines for evolution of good design:
(1) The design must implement all of the explicit requirements contained in the analysis
model
* It must accommodate all of the implicit requirements, desired by the customer
(2) The design must be readable, understandable guide for those who generate code and
who test and subsequently support the software
(3) The design should provide a complete picture of the software, addressing the data,
functional and behavioral domains from an implementation perspective
4.2 Quality Guidelines:
(1) A design should exhibit an architecture that
=> has been created using recognizable architectural styles (Or) patterns
=> is composed of components that exhibit good design characteristics
=> can be implemented in an evolutionary fashion, there by facilitating
Implementation and testing
(2) A design should be a modular [i.e. the software should be logically partitioned into
elements (Or) subsystems
(3) A design should contain distinct representation 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
63
(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 requirement analysis
(8) A design should be represented using a notation that effectively communicates its
meaning
4.3 Quality Attributes:
(1) Functionality:
* It is accessed by evaluating
=> the feature set and capabilities of the program
=> the generality of the functions that are delivered
=> the security of overall system
(2) Usability:
* Ii is accessed by considering
=> human factors
=> overall aesthetics
=> consistency
=> documentation
(3) Reliability:
* It is evaluated by
=> Measuring the frequency and severity of failure
=> the accuracy of output results
=> the Mean-Time-To-Failure [MTTF]
=> the ability to recover from failure
=> the predictability of the program
(4) Performance:
* It is measured by
=> Processing speed
64
=> Response time
=> Resource consumption
=> Throughput
=> Efficiency
(5) Supportability:
* It combines the ability to
=> extend the program [extensibility]
=> Adaptability
=> Serviceability
4.4 Design Concepts:
(1) Abstraction:
* Many levels of abstraction can be used to find a modular solution to any problem
(i) Procedural Abstraction:
* It refers to a sequence of instructions that have a specific and limited function
* The name of procedural abstraction implies these functions, but specific details
are suppressed
Example:
* The word Open for a door
* Open implies a long sequence of procedural steps [e.g. Walk to
the door, reach out and grasp knob, turn knob and pull door , step
away from moving door etc..]
(ii) Data Abstraction:
* It is a named collection of data that describes a data object
Example:
* We can define a data abstraction called ‘Door’
* The ‘door’ would encompass a set of attributes that describe the
door [e.g. door type, swing direction, opening mechanism,
weight etc..]
(2) Architecture:
* It is the
65
=> Structure or organization of program components interact
=> Structure of data that are used by the components
* The architectural design can be represented using one (Or) more number of different
models
(i) Structural Models: It represents architecture as an organized collection
of program components
(ii) Framework Models: It increases the level of design abstraction, by identity
design framework, that are encountered in similar types
of application
(iii) Dynamic Models: It indicates how the structure (Or) system configure may
change as a function of external events
(iv) Process models: It focus on the design of the business process that the
system must accommodate
(v) Functional Models: It can be used to represent the functional hierarchy of a
System
(3) Patterns:
* A design pattern describes a design structure that solves a particular design problem
with in a specified context
* Additionally the design pattern may have an impact on the manner in which the pattern
is applied and used
* The purpose of each design pattern is to provide a description that enables a designer to
determine
=> Whether the pattern is applicable to the current work
=> Whether the pattern can be reused [to save design time]
=> Whether the pattern can serve as a guide for developing a similar but
functionality (Or) structurally different pattern
(4) Modularity:
* It is the process of dividing the software into separately named and addressable
components sometimes called ‘Modules’ that are integrated to satisfy problem
requirements
66
* If we divide software indefinitely the effort required to develop it will become
negligibly small

Total
Software Cost

Region of minimum cost
M

Cost
to Integrate
Cost (Or) Effort

Cost / Module

Number of Modules
* As the number of modules increases the cost to develop decreases
* As the number of modules increases the cost to integrate the modules also increases
i.e.
No. of modules

<=> Development
<=> Integrating Cost

* We modularize a design so that,
=> Development can be more easily planned
=> Software increments can be defined and delivered
67
=> Changes can be more easily accommodated
=> Testing and debugging can be conducted more efficiently
=> Long term maintenance can be conducted without series effects
(5) Information testing:
* It suggests that “modules should be specified and designed so that information
[algorithm and data] contained with in a module is in accessible to other modules that
have no need for such information
* The use of information hiding provides the greatest benefits when
=> Modifications are required during testing and later
=> during software maintenance
(6) Functional Independence:
* It is achieved by design a software that each module address a specific sub function of
requirements and has a simple interface when viewed from other parts of program
structure
* Why independence is so important?
=> Independent modules are easier to maintain
=> Error propagate is reduced
=> Reusable modules are possible
* Independence is assessed [estimated ] using two qualitative criteria:
=> Cohesion
=> Coupling
4.5 Cohesion:
* It is a measure of the closeness of the relationship between its components
* A component should implement a single logical function (Or) should implement a
single logical entity
* All parts of the component should contribute to this implementation
* If a component includes parts that are not directly related to its logical function then it
has Low Cohesion
68
Seven Levels of Cohesion:
(i) Coincidental Cohesion:
* The part of a component are not related, but simply bundled into a single component
(ii) Logical Association:
* Components that perform similar functions such as input, error handling and so on are
put together in a single component
(iii) Temporal Cohesion:
* All of the components that are activated at a single time such as
=> Start up (Or) Shut down are brought together
(iv) Procedural Cohesion:
* The elements in a component make up a single control sequence
(v) Communication Cohesion:
* All of the elements of a component operate the same input data (Or) produce the same
output data
(vi) Sequential Cohesion:
* The output from one element in the component serves as input fore some other element
(vii) Functional Cohesion:
* Each part of the component is necessary for the execution of a single function
4.6 Coupling:
* It is an indication of the strength of interconnections between the components in a
design
* Highly coupled systems, have strong systems with program units dependent on each
other
* Loosely coupled systems are made up of components which are independent or almost
independent
* Modules are tightly coupled, if they make use of shared variables (Or) if they
interchange control information
* Tightly coupling is also referred as common coupling and control coupling
* Loose coupling is achieved by ensuring that
=> Details of the data representation are held with in a component
69
* Its interface with other components should be through a parameter list
* If shared information is necessary, the sharing should be limited to those components
* Globally accessible information should be avoided wherever possible
Tight – Coupling [Components communicate
through a shared data area]

Module – A

Module – B

Module – C

Module – D

Shared Data Area

Module – A
A’s Data

Module – B

Module – C

B’s Data

C’s Data

Module – D
D’s Data

Loosely Coupled Components
70
(7) Refinement:
* It is actually a process of elaboration
* Refinement enables a designer to specify low-level details, as design progresses
* i.e. The statement describes information conceptually but provide no information about
internal workings
* Refinement causes the designer to provide more and more details as each successive
refinement occurs
(8) Refactoring:
* It is a process of changing a software system in such a way that it does not alter the
external behavior of the code [design], yet improves its internal structure
* The existing system is checked for
=> Unused design elements
=> Inefficient (Or) Unnecessary algorithms
=> Poorly constructed (Or) inappropriate data structures
=> Any other design failures that can be corrected to yield a better design
4.7 The Design Model:
* The design model can be viewed in two different dimensions:
(1) Process dimension:
* It indicates the evolution of the design model as design tasks are executed as part of the
software process
(2) Abstraction Dimension:
* It indicates the level of detail, as each element of the analysis model is transformed into
a design equivalent and then refined iteratively
71
High

Requirements
Class Diagrams

Analysis Model

Abstraction Dimension

Class Diagram

Use Cases Text

* Analysis Packages
* CRC Models
* Collaboration
Diagrams
* DFD
* Control Flow Diagram
* Processing narratives

* Use cases Diagrams
* Activity diagrams
* Collaboration Diagrams
* State diagrams
* Sequence diagrams

* Constraints
* Interoperability
* Analysis packages
* Targets and
* CRC Models
* Collaboration diagramconfiguration
* DFD
* Control – flow Diagram
* State Diagram
* Sequence diagram

Component Diagram
Design Class realization
* Subsystems
* Collaboration diagrams

Design Classes
Technical Interface
design
Navigation design

Activity Diagrams
Sequence Diagrams

Design class realization
* Collaboration diagrams
* Component diagram
* Design class
* Activity diagram
* Sequence diagram

GUI Design
Design Model
Refinements to

Refinements to

* Design class
realization
* Subsystems
* Collaboration
diagrams

* Component diagrams
* Design classes
* Activity Diagrams
* Sequence Diagrams

Deployment diagram

Low
Architecture
elements

Interface
elements
Process Dimension

Component
Level elements

Deployment
Level elements
72
(1) Data Design Elements:
* Data design creates a model of data and information that is represented at a high level
of abstraction [the customer / user view of data]
* This data model is then refined into more implementation specific representations that
can be processed by the computer based system
* The structure of data has always been an important part of software design
* For the creation of high quality application, the design of the data structures and
associated algorithms is essential
(2) Architectural design elements:
* The architectural design for software is the equivalent to the floor plan of a house
* The floor plan gives the overall layout of the room, their size and shape, relationship to
one another and the doors and windows movement in and out
* i.e. The floor plan gives overall view of the house
* Architectural design elements give us an overall view of the software
* The architectural model is derived from three resources:
(i) Information about the application domain for the software to be built
(ii) Specific analysis model elements, such as dataflow diagram
(iii) the availability of architecture patterns
(3) Interface design elements
* The interface design elements for software tell
=> How information flows into and out of the system?
=> How it is communicated among the components defined as part of the
architecture?
* There are three important elements of interface design
(i) The User interface
(ii) External interface to other systems, devices, networks
(iii) Internal interfaces between various design components
* The interface design for software is the equivalent to a set of detailed drawings for
doors, windows and external utilities of a house
73

Wireless PDA

Mobile Phone
Control Panel
LCD Display
LED Indicators
Key pad characteristics
Speaker
Wireless Interface
Read Key strokes
Decode Key
Display Status
Send control Msg

<Interface>
Keypad
Read Key stroke ()
Decode Key ()

UML Interface Representation for Control Panel
(4) Component Level Design Elements:
* The component level design for software fully describes the internal detail for each
software component
* To accomplish this component level design defines data structures for all local data
objects and algorithmic detail, for all processing that occurs with in a component
* It also describes an interface that allow access to all component operation
Example:

Sensor
Management

Component Diagram

Sensor
74
* In above fig, the sensor management component performs all functions associated with
safe home sensors including monitoring and configuration them
* A dashed arrow connects the component, to a class named sensor that is assigned to it
(5) Deployment – Level Design Elements:
* It indicate how software functionality and subsystems will be allocated with in the
physical computing environment that will support the software
* The deployment diagram shows the computing environment, but does not explicitly
indicate configuration details

Control Panel

CPI Server

Security

Home owner
Access

Personal Computer
External Access

Security

Surveillance

Home
Management

Communication

Deployment Diagram for Same Home
75
UNIT – 4 [Part – II]
CREATING AN ARCHITECTURAL DESIGN
4.8 Architectural Design:
* It represents the structure of data and program components that are required to build a
computer based system, it considers
=> the architectural style that the system will take
=> the structure and properties of the components that constitute the
system
=> the interrelationship that occur among all architectural components of a
System
Software Architecture:
* The software architecture of a program or computing system is the structure (Or)
structures of the system which comprises
=> Software components
=> Externally visible properties of those components
=> the relationships among them
* The architectural is not the operational software, but it is a representation that enables a
software engineer to
(i) analyze the effectiveness of the design in meeting its stated
Requirements
(ii) Consider architectural alternatives at a stage when making design
changes relatively easy
(iii) Reduce the risks associated with the construction of the software
Software Architecture – Importance:
(1) Representations of software architecture are an enabler for communication, between
all parties [customer] interested in the development of a computer based system
76
(2) The architecture highlights early design decision that will have a profound impact on
all software engineering works that follows on the ultimate success of the system as an
operational entity
(3) Architecture constitutes a relatively small, intellectually graspable model of
=> How the system is structured and
=> How its components work together
4.9 Data design:
* It is an action that translates data objects defined as part of the analysis model into data
structure at the software component level
* If necessary a database architecture at the application level
(1) Data design at the architectural level:
* Today small and large business organizations have dozens of data bases with hundreds
of gigabytes of data
* The challenge is to extract useful information from this data environment
* To solve this challenge the IT community has developed data mining techniques also
called Knowledge Discovery in Data bases [KDD]
* The existence of multiple databases their different structures, the degree of detail
contained with the data bases and many other factors make data mining difficult within
an existing database environment
* So an alternative solution called a data warehouse is used which adds an additional
layer to the data architecture
* A data warehouse is a large, independent database that has access to the data that are
stored in databases that serve the set of applications required by a business
(2) Data design at the component level:
* It focuses on the representation of data structures that are directly accessed by one (Or)
more software components
77
Set of principles for data Specification:
(1) The systematic analysis principles applied to function and behavior should also be
applied to data, i.e.
=> data objects should be identified
=> alternative data organizations should be considered
=> data modeling on software design should be evaluated
(2) A mechanism for defining the content of each data object should be established and
used to define both data and the operations applied to it
(3) All data structures and the operations to be performed on each should be identified
(4) Low level data design decisions should be deferred, until late in the design process. i.e
=> the over all data organizations may be defined during requirements
Analysis
=> Refined during data design work and
=> Specified in detail during component level design
(5) The representation of a data structure should be known only to those modules that
make direct use of the data contained within the structure
(6) A library of useful data structure and the operations that may be applied to them
should be developed
(7) A software design and programming language should support the specification and
realization of abstract data types
4.10 Architectural Styles and Patterns:
* An architectural style is a transformation that is imposed on the design of an entire
system
* The intent is to establish a structure for all components of the system
* The software that is built for computer based system exhibits one of many architectural
styles
* Each style describes a system category that includes
(i) a set of components [e.g. a database, Computational modules] that
performs a function required by a system
(ii) a set of connectors that enable “communication, coordination and
78
Cooperation” among components
(iii) Constraints that define how components can be integrated to form the
system
(iv) Semantic models that enables a designer to understand the overall
properties of a system, by analyzing the known properties of its
constituent parts
Architectural Pattern:
* An architectural pattern imposes a transformation on a design of architecture
* A pattern differs from a style in a number of ways:
(i) the scope of a pattern is less broad, focusing on one aspect of the
architecture rather than the architecture in tits entirety
(ii) a pattern imposes a rule on the architecture, for example
=> describing how the software will handle some aspect of its
functionality at the infrastructure level [e.g. Concurrency]
(iii) patterns tend to address specific behavioral issues within the context
of the architectural
Example:
How a real time application handles synchronization (Or)
Interrupts
4.11 Architectural Styles - Classification:
(1) Data – Centered Architecture:
* A data store [e.g. a file or database] resides at the centre of this architecture and is
accessed frequently by other components that Update, Add, delete (Or) Modify data
within the data store
* In the below figure client software accesses a central repository
* In some cases the data repository is passive [i.e. Client software accesses the data,
independent of any changes to the data (Or) the actions of other client software]
* A data – Centered approach promotes:
(i) Integrability [i.e. existing components can be changed and a new
79
Client components added to the architecture, without concern about
Other clients]
(ii) Data can be passed among clients using the black board mechanism
[i.e. the black board component serves to coordinate the transfer of
Information between clients]
(iii) Client components independently execute processes

Client Software

Client Software

Data Store
[Repository (Or)
Black board]

Client Software

Client Software

Client Software

Client Software

(2) Data – Flow Architecture:
* It is applied when input data are to be transformed through a series of computational
(Or) manipulative components into output data
* A pipe and filter structure has a set of components called Filter connected by pipes
* The pipes transmit data from one component to the next
* Each filter works independently
* The filter does not require knowledge of the working of its neighboring filters
80

Filter

Filter

Filter

Filter

Filter
Filter

Pipes

Filter

Filter

Filter

(3) Call and return architecture:
* This architectural style enables a software designer to achieve a program structure that
is relatively easy to modify and scale
* Two sub styles exist with in this category:
(i) Main program / Sub program architecture:
* This program structure decomposes function into a control hierarchy, where a ‘Main’
program invokes a number of program components, which in turn may invoke other
component
(ii) Remote procedure calls architecture:
* The components of a main program / subprogram architecture are distributed across
multiple computers on a network
(4) Object – Oriented architecture:
* The components of a system encapsulate data and the operations that must be applied to
manipulate the data
* Communication and coordination between components is accomplished via Message
Passing
81
(5) Layered architecture:

User Interface Layer
Application Layer

Utility Layer

Core Layer

4.12 Architectural Design:
* When architectural design begins, the software to be developed must put into the
context
* The design should define the external entities [i.e. devices, people] that the software
interacts with and the nature of the interaction
* Once context is modeled, the designer specifies the structure of the system by defining
software components that implement the architecture
* Until a complete architectural structure has been derived this process continues
iteratively
82
Representing the system Context:
* At the architectural design level, a software architect uses an Architectural Context
Diagram [ACD] to modeled the manner in which the software interacts with entities
external to its boundaries
* Referring to the below fig, system hat interoperate with the target systems [the system
for which an architectural design is to be developed] are represented as:
(i) Super Ordinate Systems:
* System that uses the target system as part of some higher level processing scheme
(ii) Sub Ordinate Systems:
* Systems that are used by the target system and provide data that are necessary to
complete target system functionality
(iii) Peer – Level – Systems:
* The systems that interact on a peer-to-peer basis [i.e. information is either produced or
consumed by the peers and the target system]
(iv) Actors:
* Those entities [people, devices] that interact with the target system, by producing (Or)
consuming information that is necessary for requisite processing
Super Ordinate Systems

Used By

Actors

Peers
Uses

TARGET SYSTEMS

Uses

Depends On
Sub Ordinate Systems
Architectural Context Diagram
83

Safe home
Product

Control
Panel

Internet Based
System

Peers
TARGET SYSTEMS:
Security Function

Uses

Surveillance
Function

Home
Owner
Uses
Sensors

Sensors

Architectural Context Diagram for Safe Home Security System

4.13 Defining Archetypes:
* An archetypes is a pattern (Or) class that represents a core abstraction, that is critical to
the design of an architecture for the target system
* The target system architecture is composed of archetypes
Example:
* For a safe home security function the following archetypes are defined:
(i) Node: Represents a cohesive collection on input and output elements
Example:
* A node might be
=> Various sensors
=> Variety of alarm indicators
(ii) Detector:
* An abstraction that encompasses all sensing equipment that feeds information into the
target system
84
(iii) Indicator: It represents all mechanisms for indicating that an alarm condition is
occurring
Example:
=> Alarm Siren
=> Flashing light
=> Bells
(iv) Controller:
* An abstraction that depicts the mechanism that allows the arming (Or) disarming of a
node
* If the controller resides on network, they have the ability to communicate with one
another

Controller

Communicates
with

Node

Detector

Indicator
85
Refining the architecture into components:
* As the software architecture is refined into components the structure of the system
begins to emerge
* One source for the derivation and refinement of components is the application domain
* For example, in a safe home security system function, we might define the set of top
level components that address the following functionality:
(i) External Communication Management:
* It coordinates communication of the security system function with external entities
(ii) Control Panel Processing:
* It manages all control panel functionality
(iii) Detector Management:
* It coordinates access to all detectors attached to the system
(iv) Alarm Processing:
* It verifies and acts on all alarm conditions

Safe Home Executive

External
Communication
Management

Graphical User
Interface

Security

Internet
Interface

Internet
Interface

Internet
Interface
86
Describing Instantiations of the system:
* The architectural design that has been modeled to this point is still relatively high level.
However further refinement is still necessary
* To accomplish this actual instantiation of the architecture is developed
* Here the architecture is applied to a specific problem, with the intent of demonstrating
that the structure and components are appropriate

Alarm Processing

Alarm

Phone Communication

Más contenido relacionado

La actualidad más candente

Passport automation system
Passport automation systemPassport automation system
Passport automation systemKoppula Sheryl
 
Activity diagram-UML diagram
Activity diagram-UML diagramActivity diagram-UML diagram
Activity diagram-UML diagramRamakant Soni
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5koolkampus
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software designTech_MX
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignHaitham El-Ghareeb
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysisMahesh Bhalerao
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramKumar
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
Software Requirements and Specifications
Software Requirements and SpecificationsSoftware Requirements and Specifications
Software Requirements and Specificationsvustudent1
 
Session 3 J2ME Mobile Information Device Profile(MIDP) API
Session 3 J2ME Mobile Information Device Profile(MIDP)  APISession 3 J2ME Mobile Information Device Profile(MIDP)  API
Session 3 J2ME Mobile Information Device Profile(MIDP) APImuthusvm
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLESwarnima Tiwari
 
Passport Automation System
Passport Automation SystemPassport Automation System
Passport Automation SystemMegha Sahu
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 

La actualidad más candente (20)

Passport automation system
Passport automation systemPassport automation system
Passport automation system
 
Activity diagram-UML diagram
Activity diagram-UML diagramActivity diagram-UML diagram
Activity diagram-UML diagram
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software design
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Software design
Software designSoftware design
Software design
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
SE chapter 5
SE chapter 5SE chapter 5
SE chapter 5
 
Software Requirements and Specifications
Software Requirements and SpecificationsSoftware Requirements and Specifications
Software Requirements and Specifications
 
Applets in java
Applets in javaApplets in java
Applets in java
 
Session 3 J2ME Mobile Information Device Profile(MIDP) API
Session 3 J2ME Mobile Information Device Profile(MIDP)  APISession 3 J2ME Mobile Information Device Profile(MIDP)  API
Session 3 J2ME Mobile Information Device Profile(MIDP) API
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
Passport Automation System
Passport Automation SystemPassport Automation System
Passport Automation System
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 

Destacado

Unit 2 final
Unit 2 finalUnit 2 final
Unit 2 finalsietkcse
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 finalsietkcse
 
Unit 5 final
Unit 5 finalUnit 5 final
Unit 5 finalsietkcse
 
Unit 7 final
Unit 7 finalUnit 7 final
Unit 7 finalsietkcse
 
Unit 3 final
Unit 3 finalUnit 3 final
Unit 3 finalsietkcse
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Unit 8 final
Unit 8 finalUnit 8 final
Unit 8 finalsietkcse
 
Unit 1 final
Unit 1 finalUnit 1 final
Unit 1 finalsietkcse
 
Models and methods of explanation: dynamical systems, agent models, reflexive
Models and methods of explanation: dynamical systems, agent models, reflexiveModels and methods of explanation: dynamical systems, agent models, reflexive
Models and methods of explanation: dynamical systems, agent models, reflexiveJohn Bradford
 
Lecture 13 requirements modeling - flow & behavior (2)
Lecture 13   requirements modeling - flow &  behavior (2)Lecture 13   requirements modeling - flow &  behavior (2)
Lecture 13 requirements modeling - flow & behavior (2)IIUI
 
architectural design
 architectural design architectural design
architectural designPreeti Mishra
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 

Destacado (16)

Unit 2 final
Unit 2 finalUnit 2 final
Unit 2 final
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 final
 
Unit 5 final
Unit 5 finalUnit 5 final
Unit 5 final
 
Unit 7 final
Unit 7 finalUnit 7 final
Unit 7 final
 
Unit 3 final
Unit 3 finalUnit 3 final
Unit 3 final
 
Slides chapter 8
Slides chapter 8Slides chapter 8
Slides chapter 8
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Unit 8 final
Unit 8 finalUnit 8 final
Unit 8 final
 
Unit 1 final
Unit 1 finalUnit 1 final
Unit 1 final
 
Models and methods of explanation: dynamical systems, agent models, reflexive
Models and methods of explanation: dynamical systems, agent models, reflexiveModels and methods of explanation: dynamical systems, agent models, reflexive
Models and methods of explanation: dynamical systems, agent models, reflexive
 
Lecture 13 requirements modeling - flow & behavior (2)
Lecture 13   requirements modeling - flow &  behavior (2)Lecture 13   requirements modeling - flow &  behavior (2)
Lecture 13 requirements modeling - flow & behavior (2)
 
unit 5 lesson 03 - Grammar- LP
unit 5 lesson 03 - Grammar- LPunit 5 lesson 03 - Grammar- LP
unit 5 lesson 03 - Grammar- LP
 
Slides chapters 6-7
Slides chapters 6-7Slides chapters 6-7
Slides chapters 6-7
 
architectural design
 architectural design architectural design
architectural design
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 

Similar a Unit 4 final

Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptxFajar Baskoro
 
Seii unit7 component-level-design
Seii unit7 component-level-designSeii unit7 component-level-design
Seii unit7 component-level-designAhmad sohail Kakar
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsMuhammadTalha436
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10Dhairya Joshi
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
lake city institute of technology
lake city institute of technology lake city institute of technology
lake city institute of technology RaviKalola786
 
Pressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptPressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptMotherTheresa2
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Presentation on software construction
Presentation on software constructionPresentation on software construction
Presentation on software constructionBanduChalise
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software designCliftone Mullah
 
System analysis and design
System analysis and designSystem analysis and design
System analysis and designRobinsonObura
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
4.Architectural Design.pptx
4.Architectural Design.pptx4.Architectural Design.pptx
4.Architectural Design.pptxREALGROUPS
 

Similar a Unit 4 final (20)

software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptx
 
Seii unit7 component-level-design
Seii unit7 component-level-designSeii unit7 component-level-design
Seii unit7 component-level-design
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
 
Ch 11-component-level-design
Ch 11-component-level-designCh 11-component-level-design
Ch 11-component-level-design
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
lake city institute of technology
lake city institute of technology lake city institute of technology
lake city institute of technology
 
Pressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptPressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.ppt
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Presentation on software construction
Presentation on software constructionPresentation on software construction
Presentation on software construction
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
 
System analysis and design
System analysis and designSystem analysis and design
System analysis and design
 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
 
06 fse design
06 fse design06 fse design
06 fse design
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
4.Architectural Design.pptx
4.Architectural Design.pptx4.Architectural Design.pptx
4.Architectural Design.pptx
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Unit 4 final

  • 1. 62 UNIT – 4 [Part – I] DESIGN ENGINEERING 4.1 Design Process and Design: * Software design is an iterative process through which requirements are translated into a “Blue Print” for constructing the software * The design is represented at a high-level abstraction [i.e. a level that can be directly traced to the specific system objective, more detailed data, functional and behavioral requirements] Guidelines for evolution of good design: (1) The design must implement all of the explicit requirements contained in the analysis model * It must accommodate all of the implicit requirements, desired by the customer (2) The design must be readable, understandable guide for those who generate code and who test and subsequently support the software (3) The design should provide a complete picture of the software, addressing the data, functional and behavioral domains from an implementation perspective 4.2 Quality Guidelines: (1) A design should exhibit an architecture that => has been created using recognizable architectural styles (Or) patterns => is composed of components that exhibit good design characteristics => can be implemented in an evolutionary fashion, there by facilitating Implementation and testing (2) A design should be a modular [i.e. the software should be logically partitioned into elements (Or) subsystems (3) A design should contain distinct representation 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
  • 2. 63 (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 requirement analysis (8) A design should be represented using a notation that effectively communicates its meaning 4.3 Quality Attributes: (1) Functionality: * It is accessed by evaluating => the feature set and capabilities of the program => the generality of the functions that are delivered => the security of overall system (2) Usability: * Ii is accessed by considering => human factors => overall aesthetics => consistency => documentation (3) Reliability: * It is evaluated by => Measuring the frequency and severity of failure => the accuracy of output results => the Mean-Time-To-Failure [MTTF] => the ability to recover from failure => the predictability of the program (4) Performance: * It is measured by => Processing speed
  • 3. 64 => Response time => Resource consumption => Throughput => Efficiency (5) Supportability: * It combines the ability to => extend the program [extensibility] => Adaptability => Serviceability 4.4 Design Concepts: (1) Abstraction: * Many levels of abstraction can be used to find a modular solution to any problem (i) Procedural Abstraction: * It refers to a sequence of instructions that have a specific and limited function * The name of procedural abstraction implies these functions, but specific details are suppressed Example: * The word Open for a door * Open implies a long sequence of procedural steps [e.g. Walk to the door, reach out and grasp knob, turn knob and pull door , step away from moving door etc..] (ii) Data Abstraction: * It is a named collection of data that describes a data object Example: * We can define a data abstraction called ‘Door’ * The ‘door’ would encompass a set of attributes that describe the door [e.g. door type, swing direction, opening mechanism, weight etc..] (2) Architecture: * It is the
  • 4. 65 => Structure or organization of program components interact => Structure of data that are used by the components * The architectural design can be represented using one (Or) more number of different models (i) Structural Models: It represents architecture as an organized collection of program components (ii) Framework Models: It increases the level of design abstraction, by identity design framework, that are encountered in similar types of application (iii) Dynamic Models: It indicates how the structure (Or) system configure may change as a function of external events (iv) Process models: It focus on the design of the business process that the system must accommodate (v) Functional Models: It can be used to represent the functional hierarchy of a System (3) Patterns: * A design pattern describes a design structure that solves a particular design problem with in a specified context * Additionally the design pattern may have an impact on the manner in which the pattern is applied and used * The purpose of each design pattern is to provide a description that enables a designer to determine => Whether the pattern is applicable to the current work => Whether the pattern can be reused [to save design time] => Whether the pattern can serve as a guide for developing a similar but functionality (Or) structurally different pattern (4) Modularity: * It is the process of dividing the software into separately named and addressable components sometimes called ‘Modules’ that are integrated to satisfy problem requirements
  • 5. 66 * If we divide software indefinitely the effort required to develop it will become negligibly small Total Software Cost Region of minimum cost M Cost to Integrate Cost (Or) Effort Cost / Module Number of Modules * As the number of modules increases the cost to develop decreases * As the number of modules increases the cost to integrate the modules also increases i.e. No. of modules <=> Development <=> Integrating Cost * We modularize a design so that, => Development can be more easily planned => Software increments can be defined and delivered
  • 6. 67 => Changes can be more easily accommodated => Testing and debugging can be conducted more efficiently => Long term maintenance can be conducted without series effects (5) Information testing: * It suggests that “modules should be specified and designed so that information [algorithm and data] contained with in a module is in accessible to other modules that have no need for such information * The use of information hiding provides the greatest benefits when => Modifications are required during testing and later => during software maintenance (6) Functional Independence: * It is achieved by design a software that each module address a specific sub function of requirements and has a simple interface when viewed from other parts of program structure * Why independence is so important? => Independent modules are easier to maintain => Error propagate is reduced => Reusable modules are possible * Independence is assessed [estimated ] using two qualitative criteria: => Cohesion => Coupling 4.5 Cohesion: * It is a measure of the closeness of the relationship between its components * A component should implement a single logical function (Or) should implement a single logical entity * All parts of the component should contribute to this implementation * If a component includes parts that are not directly related to its logical function then it has Low Cohesion
  • 7. 68 Seven Levels of Cohesion: (i) Coincidental Cohesion: * The part of a component are not related, but simply bundled into a single component (ii) Logical Association: * Components that perform similar functions such as input, error handling and so on are put together in a single component (iii) Temporal Cohesion: * All of the components that are activated at a single time such as => Start up (Or) Shut down are brought together (iv) Procedural Cohesion: * The elements in a component make up a single control sequence (v) Communication Cohesion: * All of the elements of a component operate the same input data (Or) produce the same output data (vi) Sequential Cohesion: * The output from one element in the component serves as input fore some other element (vii) Functional Cohesion: * Each part of the component is necessary for the execution of a single function 4.6 Coupling: * It is an indication of the strength of interconnections between the components in a design * Highly coupled systems, have strong systems with program units dependent on each other * Loosely coupled systems are made up of components which are independent or almost independent * Modules are tightly coupled, if they make use of shared variables (Or) if they interchange control information * Tightly coupling is also referred as common coupling and control coupling * Loose coupling is achieved by ensuring that => Details of the data representation are held with in a component
  • 8. 69 * Its interface with other components should be through a parameter list * If shared information is necessary, the sharing should be limited to those components * Globally accessible information should be avoided wherever possible Tight – Coupling [Components communicate through a shared data area] Module – A Module – B Module – C Module – D Shared Data Area Module – A A’s Data Module – B Module – C B’s Data C’s Data Module – D D’s Data Loosely Coupled Components
  • 9. 70 (7) Refinement: * It is actually a process of elaboration * Refinement enables a designer to specify low-level details, as design progresses * i.e. The statement describes information conceptually but provide no information about internal workings * Refinement causes the designer to provide more and more details as each successive refinement occurs (8) Refactoring: * It is a process of changing a software system in such a way that it does not alter the external behavior of the code [design], yet improves its internal structure * The existing system is checked for => Unused design elements => Inefficient (Or) Unnecessary algorithms => Poorly constructed (Or) inappropriate data structures => Any other design failures that can be corrected to yield a better design 4.7 The Design Model: * The design model can be viewed in two different dimensions: (1) Process dimension: * It indicates the evolution of the design model as design tasks are executed as part of the software process (2) Abstraction Dimension: * It indicates the level of detail, as each element of the analysis model is transformed into a design equivalent and then refined iteratively
  • 10. 71 High Requirements Class Diagrams Analysis Model Abstraction Dimension Class Diagram Use Cases Text * Analysis Packages * CRC Models * Collaboration Diagrams * DFD * Control Flow Diagram * Processing narratives * Use cases Diagrams * Activity diagrams * Collaboration Diagrams * State diagrams * Sequence diagrams * Constraints * Interoperability * Analysis packages * Targets and * CRC Models * Collaboration diagramconfiguration * DFD * Control – flow Diagram * State Diagram * Sequence diagram Component Diagram Design Class realization * Subsystems * Collaboration diagrams Design Classes Technical Interface design Navigation design Activity Diagrams Sequence Diagrams Design class realization * Collaboration diagrams * Component diagram * Design class * Activity diagram * Sequence diagram GUI Design Design Model Refinements to Refinements to * Design class realization * Subsystems * Collaboration diagrams * Component diagrams * Design classes * Activity Diagrams * Sequence Diagrams Deployment diagram Low Architecture elements Interface elements Process Dimension Component Level elements Deployment Level elements
  • 11. 72 (1) Data Design Elements: * Data design creates a model of data and information that is represented at a high level of abstraction [the customer / user view of data] * This data model is then refined into more implementation specific representations that can be processed by the computer based system * The structure of data has always been an important part of software design * For the creation of high quality application, the design of the data structures and associated algorithms is essential (2) Architectural design elements: * The architectural design for software is the equivalent to the floor plan of a house * The floor plan gives the overall layout of the room, their size and shape, relationship to one another and the doors and windows movement in and out * i.e. The floor plan gives overall view of the house * Architectural design elements give us an overall view of the software * The architectural model is derived from three resources: (i) Information about the application domain for the software to be built (ii) Specific analysis model elements, such as dataflow diagram (iii) the availability of architecture patterns (3) Interface design elements * The interface design elements for software tell => How information flows into and out of the system? => How it is communicated among the components defined as part of the architecture? * There are three important elements of interface design (i) The User interface (ii) External interface to other systems, devices, networks (iii) Internal interfaces between various design components * The interface design for software is the equivalent to a set of detailed drawings for doors, windows and external utilities of a house
  • 12. 73 Wireless PDA Mobile Phone Control Panel LCD Display LED Indicators Key pad characteristics Speaker Wireless Interface Read Key strokes Decode Key Display Status Send control Msg <Interface> Keypad Read Key stroke () Decode Key () UML Interface Representation for Control Panel (4) Component Level Design Elements: * The component level design for software fully describes the internal detail for each software component * To accomplish this component level design defines data structures for all local data objects and algorithmic detail, for all processing that occurs with in a component * It also describes an interface that allow access to all component operation Example: Sensor Management Component Diagram Sensor
  • 13. 74 * In above fig, the sensor management component performs all functions associated with safe home sensors including monitoring and configuration them * A dashed arrow connects the component, to a class named sensor that is assigned to it (5) Deployment – Level Design Elements: * It indicate how software functionality and subsystems will be allocated with in the physical computing environment that will support the software * The deployment diagram shows the computing environment, but does not explicitly indicate configuration details Control Panel CPI Server Security Home owner Access Personal Computer External Access Security Surveillance Home Management Communication Deployment Diagram for Same Home
  • 14. 75 UNIT – 4 [Part – II] CREATING AN ARCHITECTURAL DESIGN 4.8 Architectural Design: * It represents the structure of data and program components that are required to build a computer based system, it considers => the architectural style that the system will take => the structure and properties of the components that constitute the system => the interrelationship that occur among all architectural components of a System Software Architecture: * The software architecture of a program or computing system is the structure (Or) structures of the system which comprises => Software components => Externally visible properties of those components => the relationships among them * The architectural is not the operational software, but it is a representation that enables a software engineer to (i) analyze the effectiveness of the design in meeting its stated Requirements (ii) Consider architectural alternatives at a stage when making design changes relatively easy (iii) Reduce the risks associated with the construction of the software Software Architecture – Importance: (1) Representations of software architecture are an enabler for communication, between all parties [customer] interested in the development of a computer based system
  • 15. 76 (2) The architecture highlights early design decision that will have a profound impact on all software engineering works that follows on the ultimate success of the system as an operational entity (3) Architecture constitutes a relatively small, intellectually graspable model of => How the system is structured and => How its components work together 4.9 Data design: * It is an action that translates data objects defined as part of the analysis model into data structure at the software component level * If necessary a database architecture at the application level (1) Data design at the architectural level: * Today small and large business organizations have dozens of data bases with hundreds of gigabytes of data * The challenge is to extract useful information from this data environment * To solve this challenge the IT community has developed data mining techniques also called Knowledge Discovery in Data bases [KDD] * The existence of multiple databases their different structures, the degree of detail contained with the data bases and many other factors make data mining difficult within an existing database environment * So an alternative solution called a data warehouse is used which adds an additional layer to the data architecture * A data warehouse is a large, independent database that has access to the data that are stored in databases that serve the set of applications required by a business (2) Data design at the component level: * It focuses on the representation of data structures that are directly accessed by one (Or) more software components
  • 16. 77 Set of principles for data Specification: (1) The systematic analysis principles applied to function and behavior should also be applied to data, i.e. => data objects should be identified => alternative data organizations should be considered => data modeling on software design should be evaluated (2) A mechanism for defining the content of each data object should be established and used to define both data and the operations applied to it (3) All data structures and the operations to be performed on each should be identified (4) Low level data design decisions should be deferred, until late in the design process. i.e => the over all data organizations may be defined during requirements Analysis => Refined during data design work and => Specified in detail during component level design (5) The representation of a data structure should be known only to those modules that make direct use of the data contained within the structure (6) A library of useful data structure and the operations that may be applied to them should be developed (7) A software design and programming language should support the specification and realization of abstract data types 4.10 Architectural Styles and Patterns: * An architectural style is a transformation that is imposed on the design of an entire system * The intent is to establish a structure for all components of the system * The software that is built for computer based system exhibits one of many architectural styles * Each style describes a system category that includes (i) a set of components [e.g. a database, Computational modules] that performs a function required by a system (ii) a set of connectors that enable “communication, coordination and
  • 17. 78 Cooperation” among components (iii) Constraints that define how components can be integrated to form the system (iv) Semantic models that enables a designer to understand the overall properties of a system, by analyzing the known properties of its constituent parts Architectural Pattern: * An architectural pattern imposes a transformation on a design of architecture * A pattern differs from a style in a number of ways: (i) the scope of a pattern is less broad, focusing on one aspect of the architecture rather than the architecture in tits entirety (ii) a pattern imposes a rule on the architecture, for example => describing how the software will handle some aspect of its functionality at the infrastructure level [e.g. Concurrency] (iii) patterns tend to address specific behavioral issues within the context of the architectural Example: How a real time application handles synchronization (Or) Interrupts 4.11 Architectural Styles - Classification: (1) Data – Centered Architecture: * A data store [e.g. a file or database] resides at the centre of this architecture and is accessed frequently by other components that Update, Add, delete (Or) Modify data within the data store * In the below figure client software accesses a central repository * In some cases the data repository is passive [i.e. Client software accesses the data, independent of any changes to the data (Or) the actions of other client software] * A data – Centered approach promotes: (i) Integrability [i.e. existing components can be changed and a new
  • 18. 79 Client components added to the architecture, without concern about Other clients] (ii) Data can be passed among clients using the black board mechanism [i.e. the black board component serves to coordinate the transfer of Information between clients] (iii) Client components independently execute processes Client Software Client Software Data Store [Repository (Or) Black board] Client Software Client Software Client Software Client Software (2) Data – Flow Architecture: * It is applied when input data are to be transformed through a series of computational (Or) manipulative components into output data * A pipe and filter structure has a set of components called Filter connected by pipes * The pipes transmit data from one component to the next * Each filter works independently * The filter does not require knowledge of the working of its neighboring filters
  • 19. 80 Filter Filter Filter Filter Filter Filter Pipes Filter Filter Filter (3) Call and return architecture: * This architectural style enables a software designer to achieve a program structure that is relatively easy to modify and scale * Two sub styles exist with in this category: (i) Main program / Sub program architecture: * This program structure decomposes function into a control hierarchy, where a ‘Main’ program invokes a number of program components, which in turn may invoke other component (ii) Remote procedure calls architecture: * The components of a main program / subprogram architecture are distributed across multiple computers on a network (4) Object – Oriented architecture: * The components of a system encapsulate data and the operations that must be applied to manipulate the data * Communication and coordination between components is accomplished via Message Passing
  • 20. 81 (5) Layered architecture: User Interface Layer Application Layer Utility Layer Core Layer 4.12 Architectural Design: * When architectural design begins, the software to be developed must put into the context * The design should define the external entities [i.e. devices, people] that the software interacts with and the nature of the interaction * Once context is modeled, the designer specifies the structure of the system by defining software components that implement the architecture * Until a complete architectural structure has been derived this process continues iteratively
  • 21. 82 Representing the system Context: * At the architectural design level, a software architect uses an Architectural Context Diagram [ACD] to modeled the manner in which the software interacts with entities external to its boundaries * Referring to the below fig, system hat interoperate with the target systems [the system for which an architectural design is to be developed] are represented as: (i) Super Ordinate Systems: * System that uses the target system as part of some higher level processing scheme (ii) Sub Ordinate Systems: * Systems that are used by the target system and provide data that are necessary to complete target system functionality (iii) Peer – Level – Systems: * The systems that interact on a peer-to-peer basis [i.e. information is either produced or consumed by the peers and the target system] (iv) Actors: * Those entities [people, devices] that interact with the target system, by producing (Or) consuming information that is necessary for requisite processing Super Ordinate Systems Used By Actors Peers Uses TARGET SYSTEMS Uses Depends On Sub Ordinate Systems Architectural Context Diagram
  • 22. 83 Safe home Product Control Panel Internet Based System Peers TARGET SYSTEMS: Security Function Uses Surveillance Function Home Owner Uses Sensors Sensors Architectural Context Diagram for Safe Home Security System 4.13 Defining Archetypes: * An archetypes is a pattern (Or) class that represents a core abstraction, that is critical to the design of an architecture for the target system * The target system architecture is composed of archetypes Example: * For a safe home security function the following archetypes are defined: (i) Node: Represents a cohesive collection on input and output elements Example: * A node might be => Various sensors => Variety of alarm indicators (ii) Detector: * An abstraction that encompasses all sensing equipment that feeds information into the target system
  • 23. 84 (iii) Indicator: It represents all mechanisms for indicating that an alarm condition is occurring Example: => Alarm Siren => Flashing light => Bells (iv) Controller: * An abstraction that depicts the mechanism that allows the arming (Or) disarming of a node * If the controller resides on network, they have the ability to communicate with one another Controller Communicates with Node Detector Indicator
  • 24. 85 Refining the architecture into components: * As the software architecture is refined into components the structure of the system begins to emerge * One source for the derivation and refinement of components is the application domain * For example, in a safe home security system function, we might define the set of top level components that address the following functionality: (i) External Communication Management: * It coordinates communication of the security system function with external entities (ii) Control Panel Processing: * It manages all control panel functionality (iii) Detector Management: * It coordinates access to all detectors attached to the system (iv) Alarm Processing: * It verifies and acts on all alarm conditions Safe Home Executive External Communication Management Graphical User Interface Security Internet Interface Internet Interface Internet Interface
  • 25. 86 Describing Instantiations of the system: * The architectural design that has been modeled to this point is still relatively high level. However further refinement is still necessary * To accomplish this actual instantiation of the architecture is developed * Here the architecture is applied to a specific problem, with the intent of demonstrating that the structure and components are appropriate Alarm Processing Alarm Phone Communication