Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

20ITE17 SOFTWARE ARCHITECTURE & Design Patterns

UNIT I

Basic concepts of software architecture – Context of Software Architecture – ABC cycle – What
software architecture is and what it isn’t – Architectural patterns – Good Architecture- Reference models –
Architectural structures and views-Introduction to styles – Decentralized Architectures.

PART- A
1. What is software architecture?
The software architecture of a program or computing system is the structure or structures of the
system, which comprise software elements, the externally visible properties of those elements,
and the relationships among them.”

2. What is architectural pattern?


An architectural pattern is a description of element and relation types together with a set of
constraints on how they may be used.

3. Compare System Architecture and Software Architecture.


• Software architecture focuses on the implementation that will solve a specific problem.
• Systems architecture focuses on the underlying servers (physical or virtual) and server
software (web servers, database et cetera) that the software will utilize. Systems
architecture is largely focused on scaling with high availability, fault tolerance and
redundancy to avoid data loss.

4. What is reference model?


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.

5. What is reference architecture?


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.
Whereas a reference model divides the functionality, A reference architecture is the mapping of
that functionality onto a system decomposition.
6. Why is software architecture important?
• Architecture is the vehicle for stakeholder communication
• Architecture manifests the earliest set of design decisions
• Architecture as a transferable, re-usable model
These are the reasons for the importance of software architecture from the technical perspective.
7. What is Architecture Business Cycle?
Software architecture is a result of technical, business, and social influences. Its existence in turn
affects the technical, business, and social environments that subsequently influence future
architectures. We call this cycle of influences, from the environment to the architecture and
back to the environment, the Architecture Business Cycle (ABC).
8. List out the requirements for Architecture Business Cycle.
• Case studies
• Methods
• Techniques
9. What are the three classes of influence that come from the developing
organization?
Three classes of influence that come from the developing organization:
• Immediate business
• Long-term business
• Organizational structure.

10. What activities are involved in creating software architecture?


• Creating the business case for the system
• Understanding the 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

11. What is a variety of techniques for understanding requirements from the stakeholders?
There are a variety of techniques for eliciting requirements from the stakeholders:
Object-oriented analysis uses scenarios, or "use cases" to represent requirements.
Safety-critical s y s t e m s u s e m o r e r i g o r o u s a p p r o a c h e s , s u c h a s f i n i t
e -state- machine models or formal specification languages.
Collection of quality attributes scenarios that support the capture of quality
requirements for a system.
Another technique that helps us understand requirements is the creation of
prototypes.

12. What is an architectural structures and its types?


A structure is the set of elements itself, as they exist in software or hardware.
The types of architectural structures are
• Module structures
• Component-and-connector structures
• Allocation structures
13. What are Quality attribute scenarios?
Quality attribute scenarios are the means by which quality moves from the eye of the beholder to
a more objective basis.

14. Define functional requirements and list its 2 characteristics. (MAY/JUNE 2016)
• A functional requirement defines a function of a system or its component. A function is
described as a set of inputs, the behavior, and outputs.
• Functional requirements may be calculations, technical details, data manipulation and
processing and other specific functionality that define what a system is supposed to
accomplish.
• A functional requirement describes what a software system should do.

Some of the characteristics of functional requirements are:


• Business Rules
• Transaction corrections, adjustments and cancellations
• Administrative functions
• Authentication
• Authorization levels
• Audit Tracking
• External Interfaces

15. Write various technical constraints and business constraints. (MAY/JUNE 2016)
Technical Constraints in Software Architecture
Technical constraints are fixed technical design decisions that absolutely cannot be changed.
• Programming language
• Operating system or platforms supported
• Use of a specific library or framework

Business Constraints
Business constraints are unchangeable business decisions that in some way restrict the software
architecture design.
• Schedule
• Budget
• Team composition and make-up
• Software licensing restrictions or requirements
Part B
1. List all the common software architecture structures.
2. Explain the component connectorStructure. (R)
3. How does the nature of your organization affect the architectures that develop? How do
thearchitectures affect the nature of the organizations? (C)
4. Discuss how the software architecture affects the factors of influence. (U)
5. Differentiate functional and non-functional requirements. (U)
6. Describe the technical importance of software architectures. Further elaborate on the fact that
architecture is a vehicle for stakeholder communication. (R)
7. What allocation structure is as applied to software architectures? Explain three allocation
structures in practice. (U)
8. Describe the quality attributes in various categories. (R)
9. Explain the various process recommendations as used by an architect while developing
software architectures. (An)
10. Describe the common Software Architecture Structures with neat diagram. (R) (MAY/JUNE
2016)
11. Relate the structures to each other and explain kruchten’s four views in detail. (Ap)
12.Software architecture is often compared to building architecture. What are the strong points of
this comparison? What is the correspondence in buildings to software architecture structures
and views? What is the weakness of this comparison? When does it breakdown? (E)
13. Define software architecture. Explain the common software architecture structures. (R)
14. Explain how the architecture business cycle works, with a neat diagram (An)
15. Explain how the software architectures affect the factors of influence. Hence or
otherwiseexplain ABC. (U)
16. With the help of a neat block diagram of ABC, explain in detail the different activities which
are involved in creating a software architecture. (R) (MAY/JUNE 2016)
17. What makes a good architectural process? Give various process recommendations
andproduct recommendations. (An) (MAY/JUNE 2016)
18. With an example explain various businesses constrains on software architecture. (R)
(MAY/JUNE 2016)
19. How to identify constraints for architecture? (R) (MAY/JUNE 2016)
20. Define architectural model, reference model, reference architecture and bring outthe relationship
between them. (An) (MAY/JUNE 2016)
21. Explain the architectural view in detail with the available notations. (R )
22. Write in detail about the various architectural perspectives. (R )
23. Compare view and viewpoint with its advantages and disadvantages. (E )
24. Illustrate the types of views with suitable examples. (A p )
25. What is View Point? Describe the six core viewpoints in detail. (R )

UNIT II

Structured design- Design practices - Stepwise refinement – Incremental design- Structured system
analysis and design –Jackson structured programming – Jackson system Development.

1. What do you meant structured design


Structured design is a conceptualization of problem into several well-organized elements of solution. It
is basically concerned with the solution design. Benefit of structured design is, it gives better understanding of
how the problem is being solved. Structured design also makes it simpler for designer to concentrate on the
problem more accurately.
Structured design is mostly based on ‘divide and conquer’ strategy where a problem is broken into several
small problems and each small problem is individually solved until the whole problem is solved.

2. Tools and techniques of structured design


• Coupling and cohesion
• Structure chart
• Transaction analysis and transform analysis
• Program flowchart
• Structured flowchart
• HIPO documentation
3. Define Stepwise refinement
It is the idea that software is developed by moving through the levels of abstraction, beginning at
higher levels and, incrementally refining the software through each level of abstraction, providing more detail
at each increment. At higher levels, the software is merely its design models; at lower levels there will be
some code; at the lowest level the software has been completely developed.
4. What is Jackson structured Development?
Jackson System Development (JSD) is a method of system development that covers the software life
cycle either directly or, by providing a framework into which more specialized techniques can fit. Jackson
System Development can start from the stage in a project when there is only a general statement of
requirements.
5. List out the merits and demerits in JSD
Merits of JSD:
It is designed to solve real time problem.
• JSD modelling focuses on time.
• It considers simultaneous processing and timing.
• It is a better approach for micro code application.
Demerits of JSD:
It is a poor methodology for high level analysis and data base design.
• JSD is a complex methodology due to pseudo code representation.
• It is less graphically oriented as compared to SA/SD or OMT.
• It is a bit complex and difficult to understand.
6. What are the rules for drawing structure diagrams?
• sequence is represented by unmarked boxes
• selection is represented by boxes marked with circles
• iteration is represented by an asterisked box
• sequencing is from left to right
• the three forms may not be mixed in a sequence
• the last selection part should always be conditionless (the ELSE clause)
7. What are the steps involved in JSD process?
The process part of JSP consists of five principal steps that are performed in sequence.The tasks performed in
these steps can be summarized as follows.
1. Draw a Structure Diagram that describes each of the input and output data
streams.
2. Merge these to form the program Structure Diagram.
3. List the operations that need to be performed by the program, and allocate each
operation to an element in the program Structure Diagram.
4. Convert the program to text without specific conditions for any of the decision
points.
5.Add the conditions used for each iteration and selection operation.
8. Define Program inversion
It is essentially a technique used during the implementation stage,when the designer begins to consider
the detailed organization of a solution. Prior tothat, the design activities are based on a more abstract
model and are less concernedwith the actual details of physical program organization.
9. Define State-vector seperation
State-vector separation is a transformation in which the state-vector of an inverted program is declared as an explicit
data structure, and is passed to the procedure as a parameter: one inverted program and many different instances of its
state vector can then implement many processes sharing a common definition but having distinct identities and states.
This technique allows a natural implementation of the process networks that result from the resolution of interleaving
clashes.
10. Define A data-flow stream.
Process in which messages are passed asynchronously between the entitiesconcerned, using some form of pipeline
mechanism.A data-flow stream acts as a FIFO queue, and is assumed to have infinite buffercapacity, so that the producer
process is never blocked on a write operation to the buffer of the stream.

Part B
1. What is JSD and explain the Phases of JSD.
2. Explain Jackson structured programming.
3. Draw a Structure Diagram that describes the address of a person in the ‘standard American’format of
surname, forename, initials, number, street, city, state, zip code, elaborating onthe details of each of these in
turn. How would this model cope with Jim Smith, who lives in Blacksmith’s Cottage with an address that
has no street name?
4. Explain about the JSD design for a filling station.
5. Explain about the JSD design for a company gives its work force a long break at Christmas and New Year, but
does not want to provide pay in advance. So to pay its workers during the break it must post cheques to their home
addresses. The Company employs people both on a permanent and a part-time basis. Permanent employees are paid
monthly and part-time workers are paid weekly. All employees have a unique staff identity number, allocated to them
when they join the company.
UNIT III

Early architecture description languages-Domain and style specific ADL’s- Extensible ADL’s – Documenting
software architecture – Uses and Audiences for Architecture Documentation – Views – Choosing Views – Combining
Views –Architecture evaluation – Evaluation Factors –Architecture Tradeoff Analysis Method – Lightweight
Architecture Evaluation – ATAM.
1. Define ADL
Architecture description languages (ADLs) are formal languages that can be used to represent the architecture of
a software-intensive system. As architecture becomes a dominating theme in large system development, methods for
unambiguously specifying architecture will become indispensable.
2. Which of the following is the essential feature of ADL?
The ability to declare a component and name its type is the essential feature of ADL.
3. What layered styles?
The layered architecture style is one of the most common architectural styles. The idea behind Layered Architecture
is that modules or components with similar functionalities are organized into horizontal layers. As a result, each layer
performs a specific role within the application.
4. What is meant by software architecture documentation?
Software architecture document is a map of the software. We use it to see, at a glance, how the software is
structured. It helps you understand the software's modules and components without digging into the code.

5. What are the main phases in documenting software architecture?


It comes before the detailed design, coding, integration, and testing and after the domain analysis, requirements
analysis, and risk analysis.
6. What should an architecture document for a system contain?
It should include the purpose, scope, definitions, acronyms, abbreviations, references, and overview of the
Software Architecture Document.
7. What is view?
A view simply represents a set of system elements and relationships among them, so whatever
elements and relationships you deem useful to a segment of the stakeholder community
constitute a valid view.
8. What are the categories of architectural structures?
Architectural structures are divided into three groups: module, component-and-connector (C&C),
and allocation.
9. What is the procedure for choosing the views for your project?
• Produce a candidate view list
• Combine views
• Prioritize
10. What are the parts of a documented view?
• Primary presentation
• Element catalog
• Context diagram
• Variability guide
• Architecture background
• Glossary of terms
• Other information
11. What are the main types of views?
• Logical
• Process.
• Development
• Physical
12. Distinguish structures and views.
• A view is a representation of a coherent set of architectural elements, as written by and read
by system stakeholders. It consists of a representation of a set of elements and the relations
among them.
• A structure is the set of elements itself, as they exist in software or hardware. For example, a
module structure is the set of the system's modules and their organization. A module view is
the representation of that structure, as documented by and used by some system stakeholders.
13. Define style.
A style is a specialization of element types (e.g., “client,” “layer”) and relationship types
(e.g., “is part of,” “request-reply connection,” “is allowed to use”), along with any restrictions
(e.g., “clients interact with servers but not each other” or “all the software comprises layers
arranged ina stack such that each layer can only use software in the next lower layer”).
14. List out the sections in cross view or beyond views documentation.
Cross-view or “beyond views” documentation consists of the following sections:
• Documentation roadmap
• View template.
• System overview
• Mapping between views.
• Directory.
• Project glossary and acronym list.
• Cross-view rationale.

15. Define a viewpoint. (MAY/JUNE 2016)


A viewpoint is a collection of patterns, templates, and conventions for constructing one type of
view. It defines the stakeholders whose concerns are reflected in the viewpoint and the guidelines,
principles, and template models for constructing its views.

16. How to choose views. (MAY/JUNE 2016)


This is a three-step procedure for choosing the views for your project:
• Produce a candidate view list
• Combine views
• Prioritize

17. When can architecture be evaluated?


The classical application of architecture evaluation occurs when the architecture has been specified but
before implementation has begun. Users of iterative or incremental life-cycle models can evaluate the
architectural decisions made during the most recent cycle.

18. What is ATAM method in software architecture?


The Architecture Tradeoff Analysis Method (ATAM) is a method for evaluating software architectures
relative to quality attribute goals. ATAM evaluations expose architectural risks that potentially inhibit the
achievement of an organization's business goals.

19. What are the main phases of ATAM?


The ATAM consists of four phases as follows. Preparation, planning, stakeholder recruitment, and
team formation takes place in this phase. Participants are evaluation team key project decision-makers.

20. What is architecture evaluation?


Architecture evaluation is the activity of evaluating the architectural design decisions of an (envisioned)
system to build confidence that the system can fulfill the stakeholder concerns. Typically, evaluation
techniques actually evaluate what is documented in an architecture description.

Part B
1. Write short notes about the features of ADL.
2. Explain Documenting software architecture
3. Explain in detail about Architecture Tradeoff Analysis Method(ATAM)
4. Explain in detail about Lightweight Architecture Evaluation.
5.
UNIT IV

Typical architectural design-Dataflow-Independent components-Call and return – Using styles in design –


Architectural design space-Design space of architectural elements – Design space of architectural styles.

1. What is an architecture design?


Architectural design is a discipline that focuses on covering and meeting the needs and demands, to create living
spaces, using certain tools and especially, creativity. Therefore, the aim is to combine the technological and the
aesthetic, despite the general belief that architecture is only a technological task
2. What are elements of architectural design in software engineering?
The architecture of a system describes its major components, their relationships (structures), and how they
interact with each other. Software architecture and design includes several contributory factors such as Business
strategy, quality attributes, human dynamics, design, and IT environment.
3. Why is architectural design important?
Architectural design is used to analyze whether the system will be able to meet its non-functional requirements or
not. It facilitates large-scale re-use. The software architecture that is the output of the architectural design process can be
reused across a range of the system.
4. Define MVC?
• The model is the central component of the pattern that directly manages the data, logic and rules of the application.
It is the application's dynamic data structure, independent of the user interface.
• A view can be any output representation of information, such as a chart or a diagram. Multiple views of the same
information are possible.
• The controller accepts input and converts it to commands for the model or view.
5. List out design methods. (APR/MAY-12 )
Architectural design, data design, modular design.
6. What are the main phases in designing the architecture with styles?
The architectural styles that are used while designing the software as follows:
• Data-centered architecture.
The data store in the file or database is occupying at the center of the architecture.
• Data-flow architecture.
• Call and return architectures.
• Object-oriented architectures.
• Layered architectures.

7. Data flow architectures:


This kind of architecture is used when input data to be transformed into output data through a series of
computational manipulative components.
8. Call and Return architectures:
It is used to create a program that is easy to scale and modify. Many sub-styles exist within this category. Two of
them are explained below.
• Remote procedure call architecture: This components is used to present in a main program or sub program
architecture distributed among multiple computers on a network.
• Main program or Subprogram architectures: The main program structure decomposes into number of
subprograms or function into a control hierarchy. Main program contains number of subprograms that can
invoke other components.
9. What are the main components of architectural styles explain?
An architectural style, sometimes called an architectural pattern, is a set of principles—a coarse grained pattern
that provides an abstract framework for a family of systems. An architectural style improves partitioning and
promotes design reuse by providing solutions to frequently recurring problems.
10. Characteristic features of architectural styles
Constituent parts: What are the allowable kinds of components and connectors of the style? For example, in
the pipe-and-filter style, components must be filters and connectors must be pipes.

Control topology: What geometric form does the control flow for the systems of the style take? For
example, in the main-program-and-subroutine style, components must be organised into a hierarchical structure.

Data topology: What geometric form does the data flow for the systems of the style take? For example, in
the batch sequential processing style, components are organised in a linear sequence structure that data are passed
from one component to the next.

Control/Data interaction topology: Are the topological structures of control topology and data topology
substantially isomorphic? For example, for all systems in the batch sequential processing style, the topological
structure from the control-flow point of view is identical to the structure from the data-flow point of view. In the
main-program-and-subroutine style, from the control point of view.

Part B

1. Write short notes on Architectural & component design. (MAY/JUN-15,NOV/DEC2015 )


2. Explain in details about design space of architectural elements
3. Explain in details about design space of architectural styles.
4. Explain views with reference to concept, choosing the view and its documentation
5. Prepare a case study on your own for choosing the views.

UNIT V

Understanding quality attributes- Implementation of Quality attributes in Architecture – Architecture


and requirements conformance –Functionality– Quality attribute considerations – System quality attributes-
Introduction to tactics – Achieving Quality Attributes through Tactics –Tactics types – Architectural patterns
and styles – Architecture and Quality Attributes – Quality attribute scenarios in practice.

1. What are the attributes in quality?


Identifying the appropriate quality attributes is critical in the quality management of services. Some
examples of service quality attributes include: affordability, availability, dependability, efficiency,
predictability, reliability, responsiveness, safety, security, usability, etc
2. What is the role of quality attributes in creating architecture?
Software Quality Attributes help software architects to evaluate the performance of a software
application. These quality attributes decide whether the software is of good quality or not.
3. What is implementation in architecture?
An architecture implementation framework is a piece of software that acts as a bridge between a
particular architectural style and a set of implementation technologies.
4. What is architecture conformance?
The phrase "In accordance with" in Levels of Architecture Conformance means: Supports the stated
strategy and future directions. Adheres to the stated standards (including syntax and semantic rules specified)
Provides the stated functionality.
5. What are architectural requirements?
Architecturally significant requirements are those requirements that have a measurable effect on an
computer systems architecture. This can comprise both software and hardware requirements. They are a subset
of requirements, the subset that affects the architecture of a system in measurably identifiable ways.

6. What is the definition of the art of tactics?


The art of tactics consists of three interrelated aspects: the creative and flexible array of means to
accomplish assigned missions, decision making under conditions of uncertainty when faced with an intelligent
enemy, and understanding the human dimension—the effects of combat on soldiers.

7. What is tactics in quality attributes?


A tactic is a design decision that influences the achievement of a quality attribute response—tactics
directly affect the system's response to some stimulus. Tactics impart portability to one design, high
performance to another, and integrability to a third.

8. Six parts in quality attribute scenarios


Source of stimulus. This is some entity (a human, a computer system, or any other actuator) that generated
the stimulus.
Stimulus. The stimulus is a condition that needs to be considered when it arrives at a system.
Environment. The stimulus occurs within certain conditions. The system may be in an overload condition
or may be running when the stimulus occurs, or some other condition may be true.
Artifact. Some artifact is stimulated. This may be the whole system or some pieces of it.
Response. The response is the activity undertaken after the arrival of the stimulus.
Response measure. When the response occurs, it should be measurable in some fashion so that the
requirement can be tested.

Part B
1. Understanding quality attributes
2. Explain System Quality Attributes and its parts
3. Summary of availability tactics
4. Explain architectural patterns and styles.
5. Describe all the types of Call-and-return style with neat sketch.

You might also like