SlideShare a Scribd company logo
1 of 29
Define Software Process ? What are the activities include in Software Architecture ? Explain in detail
Definition: 1) A software process refers to the set of tools, methods, and practices used to produce a
software product.
2) A software process is a set of activities and associated results that produce the software
product
Software process involve following activities:
S-16 W-17 S-17 S-18 W-18 S-19
 Software Specification: Where customer and engineers define the software that is to be produced
the constraints of the software.
 S/W Development: Where the software is designed and programmed as per customer specification
 S/W Validation: Where the software is checked to ensure that it is what the customer required
 S/W Evolution: Where the software is modified according to customer need or market requirement
Continue….
The various activities involved in creating software architecture are:
 Creating the business case for the system
 Understanding the non functional requirements
 Creating or selecting the architecture
 Documenting and communicating the architecture
 Analyzing or evaluating the architecture
 Implementing the system based on the architecture
 Ensuring that the implementation conforms to the architecture
What is the design process of software? Explain the importance of s/w design
 Software design is a process to transform user requirements into some suitable form, which helps
the programmer in software coding and implementation.
 Software design is the important step in SDLC (Software Design Life Cycle), which moves the
concentration from problem domain to solution domain. It tries to specify how to fulfill the
requirements mentioned in SRS.
 Software design plays an important role in developing software: during software design, software
engineers produce various models that form a kind of blueprint of the solution to be implemented
 Software design consists of two activities that fit between software requirements analysis and
software construction:
 Software architectural design (sometimes called high-level design): develops top-level
structure and organization of the software and identifies the various components
 Software detailed design: specifies each component in sufficient detail to facilitate its
construction. ----outcome module specification document
S-16 W-17 S-17
Architecture
design
Abstract
specification
design
Interface
design
Component
design
Data Structure
design
Algorithm
Design
Continue…
Stage 1:
Stage 2:
 Architectural design (also: high-level design) •architecture -the overall
structure: main modules and their connections •design that covers the main
use-cases of the system •addresses the main non-functional requirements
(e.g., throughput, reliability) •hard to change
 Detailed design (also: low-level design) •the inner structure of the main
modules •may take the target programming language into account •detailed
enough to be implemented in the programming language
Importance of Software Design:
 Design provides best abstraction; it allows you to understand the requirements better,
meet them better.
 Design prevents redundancy and increases reusability.
 Design is also the best approach to mitigate the risk you have no idea about.
 Design allows not only finding out how the software product is going to look, but also
allows both software owners and developers to realize how it's going to function.
Continue….
Why software architecture is important? Explain
 Architecture focuses on how the major elements and components within an application are used
by, or interact with, other major elements and components within the application
 There are fundamentally three reasons for software architecture is importance from a technical
perspective.
 Communication among take holders: 1) Business owner customer and 2)Developers
 Early design decisions:
 Transferable abstraction of a system
 Architecture last for long time
What is architecture style and architectural Pattern and Design Pattern? Also explain
difference between them..
Architectural Styles:
Definition: An architectural style defines a family of a system in terms of a pattern of
structural organization, a vocabulary of components and connectors, with constraints and
how they can be combine
 Each architectural style describes a system category that encompasses
1. A set of components: database, computational unit module
2. A set of connectors:
3. Constraints:
4. Semantic model:
 It also helps to invent more advance solution using basic solution
 It’s the highest level of granularity and it specifies layers, high-level modules of the
application and how those modules and layers interact with each other, the relations between
them
Continue….
Architectural Patterns
Definition: pattern is a recurring solution to a recurring problem. An architectural pattern is a
general, reusable solution to a commonly occurring problem in software architecture within a
given context
 Architectural patterns are similar to software design pattern but have a broader scope.
 The architectural patterns address various issues in software engineering, such as computer hardware
performance limitations, high availability and minimization of a business risk.
 In the case of Architectural Patterns, they solve the problems related to the Architectural Style. For
example, “what classes will we have and how will they interact, in order to implement a system with a
specific set of layers“, or “what high-level modules will have in our Service-Oriented Architecture and
how will they communicate“, or “how many tiers will our Client-server Architecture have“.
 Architectural Patterns have an extensive impact on the code base, most often impacting the whole
application either horizontally (ie. how to structure the code inside a layer) or vertically (ie. how a request
is processed from the outer layers into the inner layers and back).
 Examples of Architectural Patterns: MVC
Continue….
Design Patterns
Design Patterns differ from Architectural Patterns in their scope, they are more localized,
they have less impact on the code base, and they impact a specific section of the code base,
for example:
 How to instantiate an object when we only know what type needs to be instantiated at
run time (maybe a Factory Class?);
 How to make an object behave differently according to its state (maybe a state machine,
or a Strategy Pattern?).
Describe following terms: i) A reference model ii) A reference architecture
A reference model:
 It’s a descriptive conceptual framework, establishing a common language of communication
and understanding, about elements of a system and their significant relationships, within a
community of interest. Blueprint for system development
 A reference model is a division of functionality together with data flow between the pieces.
 A reference model is a standard decomposition of a known problem into parts that
cooperatively solve the problem. It is widely used in telecommunication and defence system
A reference architecture:
 A reference architecture is a document or set of documents to which a project manager or other
interested party can refer for best practices.
 Whereas a reference model divides the functionality, A reference architecture is the mapping of
that functionality onto a system decomposition.
 A reference architecture is a reference model mapped onto software elements (that cooperatively
implement the functionality defined in the reference model) and the data flows between them.
 A reference architecture can be thought of as a resource that documents the learning experiences
gained through past projects. By using a reference architecture, a project team can potentially save
time and avoid mistakes by learning from past experiences.
 One of the most popular examples of reference architectures in IT is the Java Platform Enterprise
Edition (Java EE) architecture, which provides a layered reference architecture and templates
addressing a range of technology and business issues that have guided many Java-based enterprise
systems. RA typically suggested the optimal delivering methods for specific technology
 Reference architectures provide guidance on how to apply specific patterns and/or practices to
solve particular classes of problems.
Continue….
 RA help project manager, S/W developers ,architect as well as It managers to collaborate and
communicate efficiently about an implementation project
 RA help to answer the most common question that arises as a result they help teams to avoid
errors & delay that may occurred without the use of tested set of best practices (Reference
architecture)
 RA—inhouse—third party service provider or vendor
 Typically RA will document H/W and S/W processes ,specification & configuration as well as
logical components & interrelationship
 It represent the building block of a system
 It focus on key engg decision
 It create a conceptual ,physical or logical view for a software system
 It help to identify the key decisions and key risk early on
Continue….
 Reference models, architectural patterns, and reference architectures are not architectures; they
are useful concepts that capture elements of an architecture. Each one is the outcome of early
design decisions. The relationship among these design elements is shown in Figure 2.2.
 Typically, a reference architecture will document such things as hardware, software, processes,
specifications and configurations, as well as logical components and interrelationships.
Explain ADL
 An architectural description language (ADL) is used to describe software architecture
 An ADL may be a formal or semi-formal descriptive language, a graphics language, or
include both.
 The advantage of using an ADL lies in the ability to rigorously specify architecture so that
it can be analyzed
 Architectural Description Languages (ADLs) provide a means to model and analyze
software architectures in order to improve software quality and correctness.
 ADL is used to solve design problems in software industry
Example: UML
AADL (architectural analysis & description language )
 Path A-D is one in which an ADL is used as the modeling language. Path B-E is one in
which UML is used as the modeling notation. Path A-C-E, is one in which an
architecture is first represented in an ADL, but then transformed into UML before
producing an implementation.
Continue….
ADL Tools
 ADL tools help to build the solution faster
 It also help to validate the decision taken
 It also provides means to an end
 Diagramming tools: help to check diagrammatic solutions
 Analyzer: These ADL tools are used to analyze the structural and behavioral properties
of a system
 Simulator: It help to simulate the system
 Conclusion: It is suitable for task of architecture creation, refinement and validation as
well as it will help to represent most of the common architectural styles
Explain Web application Architecture?
 The basic web architecture is two tiered where a web browser display information content and web
server that transform information for client.
 Web Server: Web server is a computer program that accept HTTP request and return HTTP
responses with optional data contents.
 Server Side: 1) Stores persistent data 2) Cannot be seen by the user 3) Can only respond to HTTP requests for a particular URL
 Client Side: 1) Languages used include: HTML, CSS, and Javascript. 2) Parsed by the user’s browser. 3) Reacts to user input.
Backend
Web application Architecture
Enlist the different architectural Style
1. Data Centered Architecture
2. Data Flow Architecture
3. Call & Return Architecture
4. Event Driven Architecture
1. Data Centered Architecture Style: A data stored (file and DB)reside its center of the
architecture & is access frequently by other components that update add, update, delete or
modify data within the store
Client
Software
Client
Software
Client
Software
Client
Software
Data Store
Repository
Adv: Efficient way to
manage and add
components
Disadv: Difficult to
support expansion
 This data-centered architecture will promote integrability. This means that the existing
components can be changed and new client components can be added to the architecture without
the permission or concern of other clients.
 The data integrity is the key principle of such system (Access to shared data)
Involves:
 Data store
 S/w
Component
Agents
 Explicit method invocation
 Implicit method invocation
2. Data Flow Architecture: This architecture is applied when input data are to be transformed
through a series of computation or manipulative components into output data
Example: Pipe and filter Pattern , Batch sequential:
 Pipe and filter Pattern: This pattern can be used to structure systems which produce and
process a stream of data. Each processing step is enclosed within a filter component.
Data to be processed is passed through pipes. These pipes can be used for buffering or for
synchronization purposes.
Fig: Pipe-filter pattern
Transmitting
Data
Transforming data
independently Problem:
Need to apply
a series of
ordered but
independent
computations
Stateless
Continue..
 Data Flow Architecture is transformed input data by a series of computational or manipulative
components into output data.
 It has main objective is to achieve the qualities of reuse and modifiability.
 In data flow architecture, the data can be flow in the graph topology with cycles or in a linear
structure without cycles.
 Adv: It simplifies the system maintenance & provides reusability
It support both sequential and Parallel execution
 Disadvantages: Performance is often poor
Many times parsing and unpairing overhead is involve
Usage :
Compilers. The consecutive filters perform lexical analysis, parsing, semantic analysis,
and code generation
3. Call and Return Architecture: Main program and Subprogram Architecture :
Decompose function into a control hierarchy where a main program invokes a subprogram
component which in turn may invokes many other components
Main
Program
Sub
Program
Sub
Program
Sub
Program
Sub
Program
Sub
Program
Sub
Program
Controlled Sub Program
Application Sub Program
Example 1: Main program & subroutine pattern
Example2 :Layered Architecture pattern  N-tier architecture:
 This pattern can be used to structure programs that can be decomposed into groups of subtasks,
each of which is at a particular level of abstraction. Each layer provides services to the next higher
layer.
 A number of different layers are needed each accomplishing operation that progressively become
closer to the Machine instructions set.
 At the outer layer ,component services ,user interface operations
 At the inner layer component perform operating system interfacing
 The most commonly found 4 layers of a general information system are as follows.
1. Presentation layer (also known as UI layer)
2. Application layer (also known as service layer)
3. Business logic layer (also known as domain layer)
4. Data access layer (also known as persistence layer)
Usage
•General desktop applications.
•E commerce web applications.
Note: In pure layer each layer should communicate only with its immediate
neighbors
Adv:
 Ease of
Development
 Testing is easy
DisAdv:
 Performance is poor
 Agility is low
 Scalability is low
Example2 :Layered Architecture pattern :
The customer screen is responsible for accepting
the request and displaying the customer
information. It does not know where the data is,
how it is retrieved, or how many database tables
must be queries to get the data. Once the
customer screen receives a request to get
customer information for a particular individual, it
then forwards that request onto the customer
delegate module. This module again delegate the
request to business layer (customer object)
The customer object in the business layer is responsible
for aggregating all of the information needed by the
business request This module calls out to the customer
dao (data access object) module in the persistence
layer to get customer data, and also the order
dao module to get order information. These modules in
turn execute SQL statements to retrieve the
corresponding data and pass it back up to the customer
object in the business layer. Once the customer object
receives the data, it aggregates the data and passes
that information back up to the customer delegate,
which then passes that data to the customer screen to
Fig. Example of Layered Architecture
4. Event-bus style/ Event Driven Architecture style
This pattern primarily deals with events and has 4 major components; event source,
event listener, channel and event bus. Sources publish messages to particular
channels on an event bus. Listeners subscribe to particular channels. Listeners are
notified of messages that are published to a channel to which they have subscribed
before.
Usage
 Android development
 Notification services
 The event-driven architecture pattern is a
popular distributed asynchronous architecture
pattern used to produce highly scalable
applications.
 It is also highly adaptable and can be used for
small applications and as well as large, complex
ones.
 Agility high
 Performance is high
 Ease of development is low
 Testability is low
Model-view-controller pattern
This pattern, also known as MVC pattern, divides an interactive application in to 3 parts as,
1. model—contains the core functionality and data ie business logic ,database query etc
2. view—displays the information to the user (more than one view may be defined),look& feel
3. controller—handles the input from the user ,affect either model or view
This is done to separate internal representations of information from the ways information is
presented to, and accepted from, the user. It decouples components and allows efficient code
reuse.
Usage
 Architecture for World Wide Web applications in major programming languages.
 Web frameworks such as Django and Rails.
 The main purpose of MVC pattern is to
decouple the GUI from the data.
 It also used to provide multiple views for
the same data
 Model section is used for maintaining data Data access layer section
Handle Data representation
Dynamic rendering
Handles request flow
Never handle data logic
Event handling section
Handles Data logic flow
Interact with database
Client-server Architecture
 This pattern consists of two parties; a server and multiple clients. The server component will
provide services to multiple client components. Clients request services from the server and
the server provides relevant services to those clients. Furthermore, the server continues to
listen to client requests.
 Each client calls on the server, which performs some service and
returns the result.
 The clients know the interface of the server.
 The server does not need to know the interface of the client
 The response in general is immediate
 End users interact only with the client
Usage
•Online applications such as email, document sharing and banking.
 Design Goals for Client/Server Architectures
 It provide high performance
 Server can handle large number of clients thus achieved scalability
 It improve flexibility and reliability
Peer-to-peer pattern
 In this pattern, individual components are known as peers. Peers may function both as a client,
requesting services from other peers, and as a server, providing services to other peers. A peer
may act as a client or as a server or as both, and it can change its role dynamically with time.
 It is suitable for small applications.
Advantages:
 Easy to install and configure
 Eliminate central dependency
 Less cost and easy maintaining
Disadvantages:
 Difficult to administrate ie no control
 Vulnerable to threat
 Data recovery and backup is difficult
Client/Server
Client/Server
Client/Server
Client/Server
Client/Server
Client/Server
 In p-2-p pattern
communication between
peers depends entirely on
application requirement

More Related Content

Similar to SA_UNIT_1.pptx

Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
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
 
Software engineering
Software engineeringSoftware engineering
Software engineeringStella526835
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docesrabilgic2
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 
Software Architecture
Software Architecture Software Architecture
Software Architecture ssuser9d62d6
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
Software enginnering
Software enginneringSoftware enginnering
Software enginneringIshucs
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Mozaic Works
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architectureIvano Malavolta
 

Similar to SA_UNIT_1.pptx (20)

Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
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
 
06 fse design
06 fse design06 fse design
06 fse design
 
Software design
Software designSoftware design
Software design
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.doc
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Software Architecture
Software Architecture Software Architecture
Software Architecture
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
Software enginnering
Software enginneringSoftware enginnering
Software enginnering
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Software design
Software designSoftware design
Software design
 

Recently uploaded

Levelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument methodLevelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument methodManicka Mamallan Andavar
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.elesangwon
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solidnamansinghjarodiya
 
Ch10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfCh10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfChristianCDAM
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...Erbil Polytechnic University
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
OOP concepts -in-Python programming language
OOP concepts -in-Python programming languageOOP concepts -in-Python programming language
OOP concepts -in-Python programming languageSmritiSharma901052
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfManish Kumar
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfBalamuruganV28
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdfHafizMudaserAhmad
 
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork
 
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书rnrncn29
 

Recently uploaded (20)

Levelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument methodLevelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument method
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solid
 
Ch10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfCh10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdf
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
OOP concepts -in-Python programming language
OOP concepts -in-Python programming languageOOP concepts -in-Python programming language
OOP concepts -in-Python programming language
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdf
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf
 
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
 
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
 

SA_UNIT_1.pptx

  • 1. Define Software Process ? What are the activities include in Software Architecture ? Explain in detail Definition: 1) A software process refers to the set of tools, methods, and practices used to produce a software product. 2) A software process is a set of activities and associated results that produce the software product Software process involve following activities: S-16 W-17 S-17 S-18 W-18 S-19
  • 2.  Software Specification: Where customer and engineers define the software that is to be produced the constraints of the software.  S/W Development: Where the software is designed and programmed as per customer specification  S/W Validation: Where the software is checked to ensure that it is what the customer required  S/W Evolution: Where the software is modified according to customer need or market requirement Continue…. The various activities involved in creating software architecture are:  Creating the business case for the system  Understanding the non functional requirements  Creating or selecting the architecture  Documenting and communicating the architecture  Analyzing or evaluating the architecture  Implementing the system based on the architecture  Ensuring that the implementation conforms to the architecture
  • 3. What is the design process of software? Explain the importance of s/w design  Software design is a process to transform user requirements into some suitable form, which helps the programmer in software coding and implementation.  Software design is the important step in SDLC (Software Design Life Cycle), which moves the concentration from problem domain to solution domain. It tries to specify how to fulfill the requirements mentioned in SRS.  Software design plays an important role in developing software: during software design, software engineers produce various models that form a kind of blueprint of the solution to be implemented  Software design consists of two activities that fit between software requirements analysis and software construction:  Software architectural design (sometimes called high-level design): develops top-level structure and organization of the software and identifies the various components  Software detailed design: specifies each component in sufficient detail to facilitate its construction. ----outcome module specification document S-16 W-17 S-17
  • 4. Architecture design Abstract specification design Interface design Component design Data Structure design Algorithm Design Continue… Stage 1: Stage 2:  Architectural design (also: high-level design) •architecture -the overall structure: main modules and their connections •design that covers the main use-cases of the system •addresses the main non-functional requirements (e.g., throughput, reliability) •hard to change  Detailed design (also: low-level design) •the inner structure of the main modules •may take the target programming language into account •detailed enough to be implemented in the programming language
  • 5. Importance of Software Design:  Design provides best abstraction; it allows you to understand the requirements better, meet them better.  Design prevents redundancy and increases reusability.  Design is also the best approach to mitigate the risk you have no idea about.  Design allows not only finding out how the software product is going to look, but also allows both software owners and developers to realize how it's going to function. Continue….
  • 6. Why software architecture is important? Explain  Architecture focuses on how the major elements and components within an application are used by, or interact with, other major elements and components within the application  There are fundamentally three reasons for software architecture is importance from a technical perspective.  Communication among take holders: 1) Business owner customer and 2)Developers  Early design decisions:  Transferable abstraction of a system  Architecture last for long time
  • 7. What is architecture style and architectural Pattern and Design Pattern? Also explain difference between them.. Architectural Styles: Definition: An architectural style defines a family of a system in terms of a pattern of structural organization, a vocabulary of components and connectors, with constraints and how they can be combine  Each architectural style describes a system category that encompasses 1. A set of components: database, computational unit module 2. A set of connectors: 3. Constraints: 4. Semantic model:  It also helps to invent more advance solution using basic solution  It’s the highest level of granularity and it specifies layers, high-level modules of the application and how those modules and layers interact with each other, the relations between them
  • 8. Continue…. Architectural Patterns Definition: pattern is a recurring solution to a recurring problem. An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context  Architectural patterns are similar to software design pattern but have a broader scope.  The architectural patterns address various issues in software engineering, such as computer hardware performance limitations, high availability and minimization of a business risk.  In the case of Architectural Patterns, they solve the problems related to the Architectural Style. For example, “what classes will we have and how will they interact, in order to implement a system with a specific set of layers“, or “what high-level modules will have in our Service-Oriented Architecture and how will they communicate“, or “how many tiers will our Client-server Architecture have“.  Architectural Patterns have an extensive impact on the code base, most often impacting the whole application either horizontally (ie. how to structure the code inside a layer) or vertically (ie. how a request is processed from the outer layers into the inner layers and back).  Examples of Architectural Patterns: MVC
  • 9. Continue…. Design Patterns Design Patterns differ from Architectural Patterns in their scope, they are more localized, they have less impact on the code base, and they impact a specific section of the code base, for example:  How to instantiate an object when we only know what type needs to be instantiated at run time (maybe a Factory Class?);  How to make an object behave differently according to its state (maybe a state machine, or a Strategy Pattern?).
  • 10. Describe following terms: i) A reference model ii) A reference architecture A reference model:  It’s a descriptive conceptual framework, establishing a common language of communication and understanding, about elements of a system and their significant relationships, within a community of interest. Blueprint for system development  A reference model is a division of functionality together with data flow between the pieces.  A reference model is a standard decomposition of a known problem into parts that cooperatively solve the problem. It is widely used in telecommunication and defence system A reference architecture:  A reference architecture is a document or set of documents to which a project manager or other interested party can refer for best practices.  Whereas a reference model divides the functionality, A reference architecture is the mapping of that functionality onto a system decomposition.
  • 11.  A reference architecture is a reference model mapped onto software elements (that cooperatively implement the functionality defined in the reference model) and the data flows between them.  A reference architecture can be thought of as a resource that documents the learning experiences gained through past projects. By using a reference architecture, a project team can potentially save time and avoid mistakes by learning from past experiences.  One of the most popular examples of reference architectures in IT is the Java Platform Enterprise Edition (Java EE) architecture, which provides a layered reference architecture and templates addressing a range of technology and business issues that have guided many Java-based enterprise systems. RA typically suggested the optimal delivering methods for specific technology  Reference architectures provide guidance on how to apply specific patterns and/or practices to solve particular classes of problems. Continue….
  • 12.  RA help project manager, S/W developers ,architect as well as It managers to collaborate and communicate efficiently about an implementation project  RA help to answer the most common question that arises as a result they help teams to avoid errors & delay that may occurred without the use of tested set of best practices (Reference architecture)  RA—inhouse—third party service provider or vendor  Typically RA will document H/W and S/W processes ,specification & configuration as well as logical components & interrelationship  It represent the building block of a system  It focus on key engg decision  It create a conceptual ,physical or logical view for a software system  It help to identify the key decisions and key risk early on
  • 13. Continue….  Reference models, architectural patterns, and reference architectures are not architectures; they are useful concepts that capture elements of an architecture. Each one is the outcome of early design decisions. The relationship among these design elements is shown in Figure 2.2.  Typically, a reference architecture will document such things as hardware, software, processes, specifications and configurations, as well as logical components and interrelationships.
  • 14. Explain ADL  An architectural description language (ADL) is used to describe software architecture  An ADL may be a formal or semi-formal descriptive language, a graphics language, or include both.  The advantage of using an ADL lies in the ability to rigorously specify architecture so that it can be analyzed  Architectural Description Languages (ADLs) provide a means to model and analyze software architectures in order to improve software quality and correctness.  ADL is used to solve design problems in software industry Example: UML AADL (architectural analysis & description language )
  • 15.  Path A-D is one in which an ADL is used as the modeling language. Path B-E is one in which UML is used as the modeling notation. Path A-C-E, is one in which an architecture is first represented in an ADL, but then transformed into UML before producing an implementation. Continue….
  • 16. ADL Tools  ADL tools help to build the solution faster  It also help to validate the decision taken  It also provides means to an end  Diagramming tools: help to check diagrammatic solutions  Analyzer: These ADL tools are used to analyze the structural and behavioral properties of a system  Simulator: It help to simulate the system  Conclusion: It is suitable for task of architecture creation, refinement and validation as well as it will help to represent most of the common architectural styles
  • 17. Explain Web application Architecture?  The basic web architecture is two tiered where a web browser display information content and web server that transform information for client.  Web Server: Web server is a computer program that accept HTTP request and return HTTP responses with optional data contents.  Server Side: 1) Stores persistent data 2) Cannot be seen by the user 3) Can only respond to HTTP requests for a particular URL  Client Side: 1) Languages used include: HTML, CSS, and Javascript. 2) Parsed by the user’s browser. 3) Reacts to user input.
  • 19. Enlist the different architectural Style 1. Data Centered Architecture 2. Data Flow Architecture 3. Call & Return Architecture 4. Event Driven Architecture
  • 20. 1. Data Centered Architecture Style: A data stored (file and DB)reside its center of the architecture & is access frequently by other components that update add, update, delete or modify data within the store Client Software Client Software Client Software Client Software Data Store Repository Adv: Efficient way to manage and add components Disadv: Difficult to support expansion  This data-centered architecture will promote integrability. This means that the existing components can be changed and new client components can be added to the architecture without the permission or concern of other clients.  The data integrity is the key principle of such system (Access to shared data) Involves:  Data store  S/w Component Agents  Explicit method invocation  Implicit method invocation
  • 21. 2. Data Flow Architecture: This architecture is applied when input data are to be transformed through a series of computation or manipulative components into output data Example: Pipe and filter Pattern , Batch sequential:  Pipe and filter Pattern: This pattern can be used to structure systems which produce and process a stream of data. Each processing step is enclosed within a filter component. Data to be processed is passed through pipes. These pipes can be used for buffering or for synchronization purposes. Fig: Pipe-filter pattern Transmitting Data Transforming data independently Problem: Need to apply a series of ordered but independent computations Stateless
  • 22. Continue..  Data Flow Architecture is transformed input data by a series of computational or manipulative components into output data.  It has main objective is to achieve the qualities of reuse and modifiability.  In data flow architecture, the data can be flow in the graph topology with cycles or in a linear structure without cycles.  Adv: It simplifies the system maintenance & provides reusability It support both sequential and Parallel execution  Disadvantages: Performance is often poor Many times parsing and unpairing overhead is involve
  • 23. Usage : Compilers. The consecutive filters perform lexical analysis, parsing, semantic analysis, and code generation 3. Call and Return Architecture: Main program and Subprogram Architecture : Decompose function into a control hierarchy where a main program invokes a subprogram component which in turn may invokes many other components Main Program Sub Program Sub Program Sub Program Sub Program Sub Program Sub Program Controlled Sub Program Application Sub Program Example 1: Main program & subroutine pattern
  • 24. Example2 :Layered Architecture pattern N-tier architecture:  This pattern can be used to structure programs that can be decomposed into groups of subtasks, each of which is at a particular level of abstraction. Each layer provides services to the next higher layer.  A number of different layers are needed each accomplishing operation that progressively become closer to the Machine instructions set.  At the outer layer ,component services ,user interface operations  At the inner layer component perform operating system interfacing  The most commonly found 4 layers of a general information system are as follows. 1. Presentation layer (also known as UI layer) 2. Application layer (also known as service layer) 3. Business logic layer (also known as domain layer) 4. Data access layer (also known as persistence layer) Usage •General desktop applications. •E commerce web applications. Note: In pure layer each layer should communicate only with its immediate neighbors Adv:  Ease of Development  Testing is easy DisAdv:  Performance is poor  Agility is low  Scalability is low
  • 25. Example2 :Layered Architecture pattern : The customer screen is responsible for accepting the request and displaying the customer information. It does not know where the data is, how it is retrieved, or how many database tables must be queries to get the data. Once the customer screen receives a request to get customer information for a particular individual, it then forwards that request onto the customer delegate module. This module again delegate the request to business layer (customer object) The customer object in the business layer is responsible for aggregating all of the information needed by the business request This module calls out to the customer dao (data access object) module in the persistence layer to get customer data, and also the order dao module to get order information. These modules in turn execute SQL statements to retrieve the corresponding data and pass it back up to the customer object in the business layer. Once the customer object receives the data, it aggregates the data and passes that information back up to the customer delegate, which then passes that data to the customer screen to Fig. Example of Layered Architecture
  • 26. 4. Event-bus style/ Event Driven Architecture style This pattern primarily deals with events and has 4 major components; event source, event listener, channel and event bus. Sources publish messages to particular channels on an event bus. Listeners subscribe to particular channels. Listeners are notified of messages that are published to a channel to which they have subscribed before. Usage  Android development  Notification services  The event-driven architecture pattern is a popular distributed asynchronous architecture pattern used to produce highly scalable applications.  It is also highly adaptable and can be used for small applications and as well as large, complex ones.  Agility high  Performance is high  Ease of development is low  Testability is low
  • 27. Model-view-controller pattern This pattern, also known as MVC pattern, divides an interactive application in to 3 parts as, 1. model—contains the core functionality and data ie business logic ,database query etc 2. view—displays the information to the user (more than one view may be defined),look& feel 3. controller—handles the input from the user ,affect either model or view This is done to separate internal representations of information from the ways information is presented to, and accepted from, the user. It decouples components and allows efficient code reuse. Usage  Architecture for World Wide Web applications in major programming languages.  Web frameworks such as Django and Rails.  The main purpose of MVC pattern is to decouple the GUI from the data.  It also used to provide multiple views for the same data  Model section is used for maintaining data Data access layer section Handle Data representation Dynamic rendering Handles request flow Never handle data logic Event handling section Handles Data logic flow Interact with database
  • 28. Client-server Architecture  This pattern consists of two parties; a server and multiple clients. The server component will provide services to multiple client components. Clients request services from the server and the server provides relevant services to those clients. Furthermore, the server continues to listen to client requests.  Each client calls on the server, which performs some service and returns the result.  The clients know the interface of the server.  The server does not need to know the interface of the client  The response in general is immediate  End users interact only with the client Usage •Online applications such as email, document sharing and banking.  Design Goals for Client/Server Architectures  It provide high performance  Server can handle large number of clients thus achieved scalability  It improve flexibility and reliability
  • 29. Peer-to-peer pattern  In this pattern, individual components are known as peers. Peers may function both as a client, requesting services from other peers, and as a server, providing services to other peers. A peer may act as a client or as a server or as both, and it can change its role dynamically with time.  It is suitable for small applications. Advantages:  Easy to install and configure  Eliminate central dependency  Less cost and easy maintaining Disadvantages:  Difficult to administrate ie no control  Vulnerable to threat  Data recovery and backup is difficult Client/Server Client/Server Client/Server Client/Server Client/Server Client/Server  In p-2-p pattern communication between peers depends entirely on application requirement