software architecture and quality by
DESCRIPTION
Software Architecture and Quality BY. Touseef Tahir [email protected] Lecturer CS COMSATS Institute of Information Technology, Lahore. Architecture defined Formal Definition. IEEE 1471-2000 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/1.jpg)
Software Architecture and QualityBY
Touseef [email protected]
Lecturer CSCOMSATS Institute of Information Technology, Lahore
![Page 2: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/2.jpg)
IEEE 1471-2000◦ Software architecture is the fundamental organization of a
system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution
Architecture definedFormal Definition
IEEE 1471-2000
![Page 3: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/3.jpg)
Software architecture encompasses the set of significant decisions about the organization of a software system◦Selection of the structural elements and their interfaces by
which a system is composed◦Behavior as specified in collaborations among those
elements◦Composition of these structural and behavioral elements
into larger subsystems◦Architectural style that guides this organization
Architecture definedAnother Go
Booch, Kruchten, Reitman, Bittner, and Shaw
![Page 4: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/4.jpg)
Perry and Wolf, 1992◦ A set of architectural (or design) elements that have a particular form
Boehm et al., 1995◦ A software system architecture comprises A collection of software and system components, connections, and constraints A collection of system stakeholders' need statements A rationale which demonstrates that the components, connections, and constraints define a system that,
if implemented, would satisfy the collection of system stakeholders' need statements
Clements et al., 1997 ◦The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them
Architecture definedFew More
http://www.sei.edu/architecture/definitions.html
![Page 5: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/5.jpg)
Architecture defines major components Architecture defines component relationships
(structures) and interactions Architecture omits content information about
components that does not pertain to their interactions Behavior of components is a part of architecture insofar
as it can be discerned from the point of view of another component
Common elements 1/2
![Page 6: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/6.jpg)
Architecture defines major components Architecture defines component relationships
(structures) and interactions Architecture omits content information about
components that does not pertain to their interactions Behavior of components is a part of architecture insofar
as it can be detected from the point of view of another component
Common elements 1/2
![Page 7: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/7.jpg)
Every system has an architecture (even a system composed of one component)
Architecture document defines the rationale behind the components and the structure
Common elements 2/2
![Page 8: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/8.jpg)
Architecture represents the set of earliest design decisions◦ Hardest to change◦ Most critical to get right
Architecture is the first design artifact where a system’s quality attributes are addressed
Architecture is Early
![Page 9: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/9.jpg)
Architecture serves as the blueprint for the system but also the project:◦ Team structure◦ Documentation organization◦ Work breakdown structure◦ Scheduling, planning, budgeting◦ Unit testing, integration
Architecture establishes the communication and coordination mechanisms among components
Architecture Drives
![Page 10: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/10.jpg)
Architecture vs. Design
non-functional requirements
functional requirements
(domains)
Important : this is a general guideline – sometimes the borders are blurred
Architecture: where non-functional decisions are cast, and functional requirements are partitionedDesign: where functional requirements are accomplished
architecture
design
![Page 11: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/11.jpg)
Performance Availability Usability Security
System Quality Attribute
MaintainabilityPortabilityReusabilityTestability
End User’s view
Developer’s view
Time To MarketCost and BenefitsProjected life timeTargeted MarketIntegration with Legacy System
BusinessCommunityview
A list of quality attributes exists inISO/IEC 9126-2001 Information Technology – Software Product Quality
![Page 12: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/12.jpg)
Design patterns
![Page 13: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/13.jpg)
Producer consumer problem
![Page 14: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/14.jpg)
You have◦ legacy code◦ current client
Adapter changes interface of legacy code so client can use it
Adapter fills the gap b/w two interfaces e.g date formats
No changes needed for either◦ legacy code, or◦ Client
Adapter
![Page 15: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/15.jpg)
In object-oriented programming, the command pattern is a design pattern in which an object is used to represent and encapsulate all the information needed to call a method at a later time. This information includes the method name, the object that owns the method and values for the method parameters.
Three terms always associated with the command pattern are client, invoker and receiver. The client instantiates the command object and provides the information required to call the method at a later time. The invoker decides when the method should be called. The receiver is an instance of the class that contains the method's code.
Command
![Page 16: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/16.jpg)
You have commands that need to be◦ executed,◦ undone, or◦ Queued
All commands derive from Command and implement do(), undo(), and redo()
![Page 17: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/17.jpg)
You◦ have a set of related classes◦ want to shield the rest of the system from these details
Facade provides a simplified interface Encapsulates a subsystem e-g
◦ wrap a poorly-designed collection of APIs with a single well-designed API
Facade
![Page 18: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/18.jpg)
You want uniformly to treat ◦ items (atomic elements), and◦ groups (containing items or other groups)
Composite interface specifies operations that are shared between items and groups
Examples: hierarchy of files and directories, groups of draw able elements
Composite
![Page 19: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/19.jpg)
You want to◦ delay expensive computations,◦ use memory only when needed, or◦ check access before loading an object into memory
Proxy ◦ has same interface as Real object◦ stores subset of attributes
◦ Example : thread pools
Proxy
![Page 20: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/20.jpg)
You want to◦ use different algorithms depending upon the context◦ avoid having to change the context or client
Strategy ◦ decouples interface from implementation◦ shields client from implementations◦ Context is not aware which strategy is being used; Client
configures the Context
Strategy
![Page 21: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/21.jpg)
You◦ have several different implementations◦ need to choose one, possibly at run time
Bridge ◦ decouples interface from implementation◦ shields client from implementations◦ Abstraction creates and initializes the Concrete Implementations◦ Example:
optimized code execution time, memory usage, disk space, bandwidth, power
consumption
Bridge
![Page 22: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/22.jpg)
Software Architectures
![Page 23: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/23.jpg)
Copyright © 2001 DeLorme28 November 2001
Model view controller
![Page 24: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/24.jpg)
Thin Client Fat Client
Client server architecture
![Page 25: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/25.jpg)
Single tier Two Tier N Tier
Client Server Architectures
![Page 26: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/26.jpg)
Server downloads files from shared location to Desktop environment
Job is run at the desktop environment Works if
◦ Shared usage is low◦ Data transferred is low
File Sharing Architecture
![Page 27: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/27.jpg)
File-Server Architecture
![Page 28: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/28.jpg)
Database server to replace File server Query based approach Reduced traffic, since required content is only
transferred Improves multi-user updating RPC or SQL typically used
Client/Server Architecture
![Page 29: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/29.jpg)
Two Tier Architecture
![Page 30: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/30.jpg)
N-Tier Architecture
![Page 31: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/31.jpg)
Common Architecture for a set of products or systems developed by an organization
Product Line Architecture
![Page 32: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/32.jpg)
![Page 33: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/33.jpg)
Boxes and lines
![Page 34: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/34.jpg)
![Page 35: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/35.jpg)
![Page 36: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/36.jpg)
![Page 37: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/37.jpg)
![Page 38: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/38.jpg)
![Page 39: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/39.jpg)
![Page 40: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/40.jpg)
Software Architecture
![Page 41: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/41.jpg)
Software Architecture
![Page 42: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/42.jpg)
![Page 43: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/43.jpg)
Copenhagen city VIEWS
![Page 44: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/44.jpg)
“4+1 Approach”
![Page 45: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/45.jpg)
4+1 Approach
![Page 46: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/46.jpg)
Process view
![Page 47: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/47.jpg)
Development View
![Page 48: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/48.jpg)
Scenario View
![Page 49: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/49.jpg)
Conceptual viewModule view Execution viewCode view
Siemens Four view model
![Page 50: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/50.jpg)
![Page 51: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/51.jpg)
![Page 52: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/52.jpg)
![Page 53: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/53.jpg)
![Page 54: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/54.jpg)
![Page 55: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/55.jpg)
![Page 56: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/56.jpg)
![Page 57: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/57.jpg)
![Page 58: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/58.jpg)
![Page 59: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/59.jpg)
![Page 60: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/60.jpg)
![Page 61: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/61.jpg)
![Page 62: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/62.jpg)
![Page 63: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/63.jpg)
![Page 64: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/64.jpg)
![Page 65: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/65.jpg)
![Page 66: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/66.jpg)
Develop software architecture for your project….!!!
Assignment
![Page 67: Software Architecture and Quality BY](https://reader036.vdocuments.us/reader036/viewer/2022062301/56816128550346895dd080d6/html5/thumbnails/67.jpg)
THANK YOU!!!!