You are on page 1of 9

HW 01

Ch01
1. Software architecture is often compared to the architecture of buildings as a conceptual
analogy. What are the strong points of that analogy? What is the correspondence in
buildings to software architecture structures and views? To patterns? What are the
weaknesses of the analogy? When does it break down?

Software architecture comes about through assembly of architectural elements in well-chosen


forms to satisfy the functionality and performance needs of system.
The strength of the analogy between software architecture and building architecture lies in the
fact that both of them involve the bigger picture of design. Software architecture determines how
system components are identified and allocated and how they interact to form the entire
system .This is more or less like building architecture which determines how different
components and aspects of a structure (or set of structures) interact to form a particular building.
Just like in building architecture where different structures must be arranged in a particular way
to fit the desired pattern and application, system architecture ensures that system components
interact in the desired manner to be functional and to fit user needs and desires.
Both software and building architects must test the integrity of the structures they build and
verify that their structures conform to the drafted outline presented to the client.
The weaknesses of this analogy are that while building architecture produces final designs that
cannot be changed, software architecture must be flexible to constant changes and modifications.

2. Is there a different definition of software architecture that you are familiar with? If so,
compare and contrast it with the definition given in this chapter. Many definitions include
considerations like "rationale" (stating the reasons why the architecture is what it is) or
how the architecture will evolve over time. Do you agree or disagree that these
considerations should be part of the definition of software architecture?
A different definition of software architecture that I am familiar with and that is in contrast with
the definition in this chapter is:
“Software architecture is about making fundamental structural choices that are costly to change
once implemented. Software architecture choices include specific structural options from
possibilities in the design of software. “
 Many architectural decisions are made early, but not all are.
 Many decisions are made early that are not architectural.
 It’s hard to look at a decision and tell whether or not it’s “major.”

This study source was downloaded by 100000857480464 from CourseHero.com on 03-29-2023 03:31:57 GMT -05:00

https://www.coursehero.com/file/51156795/HW01-Software-Archtecturedocx/
Yes , I Agree that these considerations should be part of the definition of software architecture.
Because each consideration shows the goals and expectations of the software is being created to
meet. For Example; Compatibility , modularity , Extensibility etc.

3. Find a commonly accepted definition of system architecture and discuss what it has in
common with software architecture. Do the same for enterprise architecture?
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.
A system architecture or systems architecture is the conceptual model that defines
the structure, behavior, and more views of a system. An architecture description is a formal
description and representation of a system, organized in a way that supports reasoning about
the structures and behaviors of the system.
System architecture and software architecture have common behavior that they both can consist
of components and the sub-components developed, that will work together to implement the
overall system.
The fundamental organization of a system, embodied in its components, their relationships to
each other and to the environment, and the principles governing its design and evolution.

Chap 02
1. This chapter argues that architecture brings a number of tangible benefits. How would
you measure the benefits, on a particular project, of each of the thirteen points?
Explanation of the benefits, on a particular project, of each of the thirteen points:-

1. An architecture will inhibit or enable a system’s driving quality attributes.


Suppose we have a banking project .So an architecture will inhibit or enable a bank
system’s driving quality attributes.
Like for Modifiability attribute if we make changes in any banking system ,it should not
affect its customers.
2. The decisions made in an architecture allow you to reason about and manage change as
the system evolves.
So according to this point most common changes should be local and hence easy to make.
Or banking project changes should be like ,we can manage easily and should not affect
system.

This study source was downloaded by 100000857480464 from CourseHero.com on 03-29-2023 03:31:57 GMT -05:00

https://www.coursehero.com/file/51156795/HW01-Software-Archtecturedocx/
3. The analysis of an architecture enables early prediction of a system’s qualities.
So if we analysis a banking architecture ,we can get to know what’s its qualities like how
the system will behave in critical situation or if a small part will not work, how that will
affect the other parts functionalities.
4. A documented architecture enhances communication among stakeholders.
It facilitates communication with stakeholders, contributing to a system that better fulfills
their needs. Communicating about complex systems from the point of view of
stakeholders helps them understand the consequences of their stated requirements and the
design decisions based on them. Architecture gives the ability to communicate about
design decisions before the system is implemented when they are still relatively easy to
adapt.
5. The architecture is a carrier of the earliest and hence most fundamental, hardest-to-
change design decisions.
So according to this with respect to banking architecture ,we will get to know how this
system will work i.e. how many processors it needs to run the application and how the
component of this system will work means how the modulus of the system will work
,how they will interchange data, how they will share the resources.
6. An architecture defines a set of constraints on subsequent implementation.
So according to this with respect to banking architecture, An banking architect assigns
performance budget to the pieces of software involved in some larger piece of
functionality. If each software unit stays within its budget, the overall transaction will
meet its performance requirement. Implementers of each of the constituent pieces may
not know the overall budget, only their own.

7. The architecture dictates the structure of an organization, or vice versa.


Yes. For example if we make a banking system architecture ,it defines like how many
units will it have or like what will be the communication channels between the modules
etc.
8. An architecture can provide the basis for evolutionary prototyping.
It also enables quicker changes in IT Systems. There is increased demand for systems to
change quickly to meet rapidly evolving business needs, legislative requirements, etc.

9. An architecture is the key artifact that allows the architect and project manager to reason
about cost and schedule.

This study source was downloaded by 100000857480464 from CourseHero.com on 03-29-2023 03:31:57 GMT -05:00

https://www.coursehero.com/file/51156795/HW01-Software-Archtecturedocx/
It identifies areas for potential cost savings. Architecture helps an project manager to
analyze and identify areas where changes could lead to cost savings. For instance, the
architecture may show that multiple database systems could be changed so that only one
product is used, reducing software and support costs.

10. An architecture can be created as a transferable, reusable model that form the heart of a
product line.
So according to this with respect to banking architecture, we can reuse the code by
making effective architecture like classes or APIs which we can use in other modules of
the project.
So according to this in banking system, Architecture can also define what functionalities
are stable for particular module or what are changing.
11. Architecture-based development focuses attention on the assembly of components, rather
than simply on their creation.
So according to this with respect to banking architecture, there is modules that can be
made separately or independently for example we can make discount functionality
separately.
12. By restricting design alternatives, architecture channels the creativity of developers,
reducing design and system complexity.
So according to this with respect to banking architecture, Banking Architectural patterns
helps the Architect and focus the architect on the quality attributes of interest in large part
by restricting the vocabulary of design.

13. An architecture can be the foundation for training a new team member.
So according to this with respect to banking architecture,The architecture can serve as the
first introduction to the system for new project members. That means is new team
member joins the project in between development by looking into architecture ,he will
know its in and out or how the system exactly works.
2. Suppose you want to introduce architecture-centric practices to your organization. Your
management is open to the idea, but wants to know the ROI for doing so. How would you
respond?
In response of this , I will tell them all the benefits we can have ,if we will have a architecture-
centric practices to our organization. I will make them understand that a good software
architecture is extremely important for a software project. I would tell them that there are lots of
benefits of software architecture that will tell you more about how it can help you in your project
and why you should invest in a good software architecture.

This study source was downloaded by 100000857480464 from CourseHero.com on 03-29-2023 03:31:57 GMT -05:00

https://www.coursehero.com/file/51156795/HW01-Software-Archtecturedocx/
It creates a solid foundation for the software project and makes your platform scalable. It
increases the performance of the platform, reduces costs, and avoids code duplicity.

it’s important that somebody owns the big picture and sells the vision throughout the entirety of
the software development lifecycle, evolving it throughout the project if necessary and taking
responsibility for ensuring that it’s delivered successfully. We can do this by only having a
architecture of project
I would tell them that architecture helps an organization analyze its current IT and identify areas
where changes could lead to cost savings.

3. Prioritize the list of thirteen points in this chapter according to some criteria meaningful
to you. Justify your answer. Or, if you could choose only two or three of the reasons to
promote the use of architecture in a project, which would you choose and why?
The decisions made in an architecture allow you to reason about and manage change as the
system evolves .
So according to this point most common changes should be local and hence easy to make. Or
banking project changes should be like ,we can manage easily and should not affect system.

An architecture can be the foundation for training a new team member.


This is very important point ,So according to this if we will take banking architecture as an
example ,The architecture can serve as the first introduction to the system for new project
members. That means is new team member joins the project in between development by looking
into architecture ,he will know its in and out or how the system exactly works.
An architecture is the key artifact that allows the architect and project manager to reason about
cost and schedule.
It identifies areas for potential cost savings. Architecture helps an project manager to analyze and
identify areas where changes could lead to cost savings. For instance, the architecture may show
that multiple database systems could be changed so that only one product is used, reducing
software and support costs.
So above are the some points in this chapter ,on the basis of them I would Prioritize the list of
thirteen points.

This study source was downloaded by 100000857480464 from CourseHero.com on 03-29-2023 03:31:57 GMT -05:00

https://www.coursehero.com/file/51156795/HW01-Software-Archtecturedocx/
Ch03
1 . Enumerate six different software systems used by your organization. For each of these
systems:
a. What are the contextual influences?
b. Who are the stakeholders?
c. How do these systems reflect or impact the organizational structure?
Six different software systems
1. Educational Management System
Contextual influences:-
Technical Context:-It will help to manage student subjects ,their queries ,Subject submission etc.
Stakeholders:-
Students, University staff, maintenance team, Professors
How do this systems reflect or impact the organizational structure:-
This system impact on organization system very well .Because this system is backbone of
organization.
So this system should be reliable, available.
2. Student Attendance System
Contextual influences:-
Technical Context:-It will help to manage student attendance.
stakeholders:-
Students, maintenance team, Professors
How do this systems reflect or impact the organizational structure:-
This system impact on organization system not very much. Because this system is part of
organization.
So this system should be reliable.
3. Library management system
Contextual influences:-
Technical Context:-It will help to manage Library of organization.
stakeholders:-

This study source was downloaded by 100000857480464 from CourseHero.com on 03-29-2023 03:31:57 GMT -05:00

https://www.coursehero.com/file/51156795/HW01-Software-Archtecturedocx/
Students, maintenance team, Library management
How do this systems reflect or impact the organizational structure:-
This system impact on organization is not very much .But this system is part of organization and
manage library of organization.
So this system should be reliable and available.

4. Staff management system


Contextual influences:-
Technical Context:-It will help to manage staff of Organization.
stakeholders:-
maintenance team, Organization staff, Organization Management
How do this systems reflect or impact the organizational structure:-
This system impact on organization very well .Because this provide and manage staff of
organization.
So this system should be reliable and available.

5.University website
Contextual influences:-
Technical Context:-It will help to manage university all activities ,its modules and all university
activities.
Business Context:-It serve some business purpose.
Professional Context
stakeholders:-
maintenance team, Organization staff, Organization Management, Students, Guest
How do this systems reflect or impact the organizational structure:-
This system is the heart of organization. Its very important and it should be robust, reliable and
available.
6.Account management system
Contextual influences:-
Technical Context:-It will help to manage university Accounts .

This study source was downloaded by 100000857480464 from CourseHero.com on 03-29-2023 03:31:57 GMT -05:00

https://www.coursehero.com/file/51156795/HW01-Software-Archtecturedocx/
stakeholders:-
maintenance team, Account Department
How do this systems reflect or impact the organizational structure:-
This system is also important part of the organization manages accounts of all organization
entities. Its very important and it should be robust, reliable and available.

2. What kinds of business goals have driven the construction of the following?
a. The World Wide Web
b. Amazon's EC2 cloud infrastructure
c. Google's Android platform
A. The World Wide Web:- Primary business goal of constructing The World Wide Web is
communication.And Secondary business goals of constructing it was collaboration ,research and
development etc
Publicity, Marketing and Advertising
The WWW appears to be an ideal medium for businesses attempting to promote themselves and
their wares. Setting up a site on the WWW, and thus gaining instant access to millions of people
all over the globe, can be achieved at a small fraction of the cost using more conventional
methods .
B. Amazon's EC2 cloud infrastructure:-
If your business needs Growth, Flexibility and Customizable features.

AWS is an incredibly broad yet detailed offering with so many options they are the digital
version of Cheesecake Factory, a restaurant with 21 pages of over 250+ menu offerings.

Storage, computing, scalability, load balancing, plug and play; Ai, Machine Learning… and so
on.

They also have about a 9 year head start and a fairly high up time with immediate brand
recognition.
C. Google's Android platform
Google has embraced an open-market strategy for Android. Android's code is open source,
allowing multiple developers and programmers to create apps and code upgrades. Multiple
manufacturers use an open-source license to get the right to make Android tablets and phones.
Even if Google's open market has limits, developing Android platforms is an attractive
alternative for manufacturers who don't want to deal with Apple's tighter oversight.

This study source was downloaded by 100000857480464 from CourseHero.com on 03-29-2023 03:31:57 GMT -05:00

https://www.coursehero.com/file/51156795/HW01-Software-Archtecturedocx/
This study source was downloaded by 100000857480464 from CourseHero.com on 03-29-2023 03:31:57 GMT -05:00

https://www.coursehero.com/file/51156795/HW01-Software-Archtecturedocx/
Powered by TCPDF (www.tcpdf.org)

You might also like