Discussion post
"Architectural Styles" Please respond to the following:
· Analyze two architectural styles of your choosing and, for each, give an example of a real-world application whose software design would benefit by incorporating your chosen style. Justify your response.
· Evaluate the driving factors or conditions that affect the selection of an architectural style for a given open-source software application. Provide two examples of these conditions and how they help determine an application’s architectural style.
JR’s post states the following:Top of Form
Data centric style- a data store will be in the center of the architecture and accessed by other components that update, add, delete or modify the data present within the store (2008). I think this type of design would work best with organizations like Walmart and Amazon. This style is flexible and promotes integrability.
Layered style- divided style is divided into various horizontal layers and each layer has some specific function. It’s a beneficial style because different individuals/teams can work on different layers that they’re knowledgeable about and most efficient. I think this style would best for bank applications.
I think the budget and the client/users would affect the selected style. Depending on what type of budget is in place affects where the money is allocated to therefore selecting the most cost-effective options. The user/client affects the style because developers would have to select an option that would be most effective for the client and the end goal.
Reference
https://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Data_Center/DC_Infra2_5/DCInfra_1.htm
NM’s post states the following:Top of Form
Architectural Styles" Please respond to the following:
Analyze two architectural styles of your choosing and, for each, give an example of a real-world application whose software design would benefit by incorporating your chosen style. Justify your response.
The architectural style is a particular pattern that focuses on the large-scale of a system. And it is about selecting, adapting, and integrating several architectural styles in ways that best produce the desired result (Pfleefer & Atlee, 2010).
Two architectural styles: Component-based and pipe-and-filter.
Component-base is a method of software development whereby systems are created by assembling preexisting components (Graca, 2017). Meaning it reduced design complexity in each part solves smaller problems. Component reuse—reuse algorithm and environment model in a web application. And unit testing—where it eliminates retesting for durable components and reduces the cost of verification. A web developer uses component-based to the created web application to be more composable and performant. And the server API is more application.
Pipe-and-filter—system functionality is achieved by passing input data through a sequence of data-transforming components called filters to produce output data (Graca, 201 ...
Science 7 - LAND and SEA BREEZE and its Characteristics
Discussion postArchitectural Styles Please respond to the fo.docx
1. Discussion post
"Architectural Styles" Please respond to the following:
· Analyze two architectural styles of your choosing and, for
each, give an example of a real-world application whose
software design would benefit by incorporating your chosen
style. Justify your response.
· Evaluate the driving factors or conditions that affect the
selection of an architectural style for a given open-source
software application. Provide two examples of these conditions
and how they help determine an application’s architectural
style.
JR’s post states the following:Top of Form
Data centric style- a data store will be in the center of the
architecture and accessed by other components that update, add,
delete or modify the data present within the store (2008). I think
this type of design would work best with organizations like
Walmart and Amazon. This style is flexible and promotes
integrability.
Layered style- divided style is divided into various horizontal
layers and each layer has some specific function. It’s a
beneficial style because different individuals/teams can work on
different layers that they’re knowledgeable about and most
efficient. I think this style would best for bank applications.
I think the budget and the client/users would affect the selected
style. Depending on what type of budget is in place affects
where the money is allocated to therefore selecting the most
cost-effective options. The user/client affects the style because
developers would have to select an option that would be most
effective for the client and the end goal.
Reference
https://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Dat
a_Center/DC_Infra2_5/DCInfra_1.htm
2. NM’s post states the following:Top of Form
Architectural Styles" Please respond to the following:
Analyze two architectural styles of your choosing and, for each,
give an example of a real-world application whose software
design would benefit by incorporating your chosen style. Justify
your response.
The architectural style is a particular pattern that focuses on the
large-scale of a system. And it is about selecting, adapting, and
integrating several architectural styles in ways that best produce
the desired result (Pfleefer & Atlee, 2010).
Two architectural styles: Component-based and pipe-and-filter.
Component-base is a method of software development whereby
systems are created by assembling preexisting components
(Graca, 2017). Meaning it reduced design complexity in each
part solves smaller problems. Component reuse—reuse
algorithm and environment model in a web application. And
unit testing—where it eliminates retesting for durable
components and reduces the cost of verification. A web
developer uses component-based to the created web application
to be more composable and performant. And the server API is
more application.
Pipe-and-filter—system functionality is achieved by passing
input data through a sequence of data-transforming components
called filters to produce output data (Graca, 2017). And pipes
are connectors that simply transmit data from one filter to the
next without modifying the data. The pipe-and-filter
architecture inspired by the Unix technique of connecting the
output of an application to the input of another via pipes on the
shell (Oreilly, n.d.). The architecture consists of one or more
data sources connected to data filters via pipes. Filters process
the data they received by passing them to other filters in the
pipeline (Oreilly, n.d.).
Evaluate the driving factors or conditions that affect the
selection of an architectural style for a given open-source
software application. Provide two examples of these conditions
3. and how they help determine an application’s architectural
style.
By design, the manager(s) is one of the driving factors that
affect the selection of an architectural style, the resources
needed (i.e., budget, support staff), and end-users needs in
selecting the architectural style.
References:
Pfleeger, S. L., Altee, J. M. (2010). Software engineering:
Theory and practice (4th ed.). Upper Saddle River, New Jersey:
Prentice Hall.
Graca, H. (2017, July 28). Architectural style vs. Architectural
Patterns vs. Design Patterns. Retrieved
from https://herbertograca.com/2017/07/28/architectural-styles-
vs-architectural-patterns-vs-design-patterns/
Brereton, P., & Budgen, D. (2000). Component-based System: A
Classification of Issues. Retrieved
from https://dl.acm.org/doi/10.1109/2.881695d
Oreilly. (n.d.). Pipe and Filter Architecture. Retrieved
from https://www.oreilly.com/library/view/software-
architecture-with/9781786468529/ch08s04.html
Discussion post
"Menu Selection and Organization" Please respond to the
following:
· Describe the considerations that you would take into account
when selecting the menu style for an application and why.
Support your response with examples.
· Imagine you have been asked to help a novice designer
effectively organize his menu content in an application. Provide
the novice designer with the advice you feel would be most
helpful when organizing content for menus. Support your
response.
4. DI post states the following:
I would advise the novice designer to ensure the primary
navigation should have limited options to provide an interactive
organized display (Hidayat & Purwanto, 2015). It is also
essential to organize content based on the priority value and
important content to come first for the first impression.
Questions to be answered:
1. In other words, limited options so that the user can feel
empowered without becoming confused coupled with prioritized
choices in those options.
2. So, does that mean that someone that is not a novice designer
should approach men use differently?
3. On a priority scale, would you rush a product to make
delivery date with a poor menu or push delivery back? What
would be the ramifications?
JN’s post states the following:Top of Form
Greetings Class,
Several considerations to take when selecting a menu style
are the following: Visibility, Informative, Coordinate with users
by themselves, and manipulating menus should be easier for
users. (Ajermani, S., 2018) Visibility is important because the
menu items/images should coordinate with the function, it
should also be easy to read for large and small screens; having a
menu too large would not be visually helpful - adding sub-
menus will help with the problem. Informative menus are easy
to understand and explain what is occurring within that menu,
like the "tools" option should indicate tools available within
that menu. Coordinate with users by themselves, this means a
developer should not be designing a brand new menu that's
never been seen before, it should follow general menu builds
and not be too complex. Manipulating menus should be easier
for users, this is generally important for mobile type
5. applications that utilize touch for navigating menus; menus
should not be too small or too hard to read or touch to guide
through.
The most helpful piece of advice for a novice user is to
"simplify the user journey" (Smith, A., 2019). A menu should
be extremely easy to understand and should follow a general
guide. Assist the users in completing whatever task or goal they
are trying to accomplish. Utilizing Top level menus to avoid
clutter will help the user keep focus and guide them on the path
they are taking.
-John
References:
Ajmerani, S. (2018, September 19). 4 Key Areas to Consider
when Designing a "Menu" for your Mobile App. Retrieved from
https://tweakyourbiz.com/technology/4-key-areas-to-consider-
when-designing-menu-for-your-mobile-app
Smith, A. (2019, November 19). Top 8 Mobile Navigation Menu
Design for Your Inspiration. Retrieved from
https://uxplanet.org/top-8-mobile-navigation-menu-design-for-
your-inspiration-8a2d925bffc0
AZ’s post states the following:Top of Form
or this scenario, let's say the application is selling apparel. A
menu style that would support desktop and mobile viewing is
two-dimensional mega menus. Two-dimensional mega menus
provide a sleek overview of items with clickable graphics and
pictures. Apparel websites like BCBG use two-dimensional
mega menus, ensuring simplicity in engaging the user for
purchase. When opened in the mobile, it displays one item at a
time in a scrollable design. Of course, the website would
include sequencing with the seasons in trend as the main
display, unless user searches for specific choices using familiar
phrasing such as "size " in simultaneous menus. The layout can
cover many styles depending on the website's themes and tools
like WordPress. Also, a user logs in for purchases, so a form
6. fill-in is required to personalize the shopping experience. A
menu style depends on how the designer wants the user to
interact with the system and what is being marketed
(Shneiderman, Plaisant, Cohen, Jacobs, & Elmqvist, 2016) .
For a novice designer, I would recommend looking at similar
popular websites to get a good idea of the layout for the menu
setup. Ask questions. Some questions to ask are, how do I want
a user to interact with the menu? What is it I am trying to
accomplish with this menu? How do I want my display to look?
What actions are needed from the user to access information
from the menu? Is this menu friendly for mobile and desktop
use? Do pop-up menus serve a purpose for the user? Also, I
would recommend looking at guidelines to create universal
usability for menu items ensuring ease of use and simplicity.
Source:
Shneiderman, B., Plaisant, C., Cohen, M., Jacobs, S., &
Elmqvist, N. (2016). Designing The User Interface: Strategies
for Effective Human-Computer Interaction (2016th Custom
Ed.). Boston: Pearson.
Discussion post
"Direct Manipulation and Virtual Environments" Please respond
to the following:
· Your software development company has been contracted to
build a tool that will manage user accounts and rights in an
Active Directory environment. One of your developers tells you
that he wants the tool to make use of direct manipulation. A
second developer argues that a command line structure would be
a better and more secure approach. Take a stand on this
argument, providing at least three positives of each approach,
and then make a decision for this project and support it.
· Describe virtual and augmented reality. Suggest a way in
7. which this technology could be used in the future; either to
improve a current process / procedure or create a new process /
procedure. Provide an example of your suggested use of the
technology.
PF Question:
How does user empowerment relate to the Mandel criteria for
user interfaces?
JN’s post states the following:Top of Form
Greetings Class,
As a software development company delivering services to a
customer, it is vital to ensure the delivered product will meet
the user needs. It should also make the user's job easier and
simpler. A command line tool does not do this, it must be
interacted with and could cause some serious errors from typos
and other type of mistakes. Direct manipulation is more of user
interface with a "point and click/touch interaction" with objects.
This is often much easier to work with and can be extremely
simple to learn. Although it might looks better and also only
allow the required actions, a company could find it more secure
than direct manipulation; since the command line is being
removed from the user. (Sherugar, S., & Budiu, R., 2016) The
best route is to build a GUI/DM interface which can easily be
learned and worked that removes the possibility for errors and
needing a more advanced user.
Virtual reality is a where a user leaves the real world and
interacts with a digital environment through the use of headsets.
Augmented reality is where a user experiences virtual (fake)
objects on the real world. Mixed reality is newer type of reality
which brings interaction with virtual objects into play with the
real world where virtual objects change or manipulate based on
the interaction. (Marr, B., 2019) An example of way this
technology could be used in the future to improve a function
would be surgeons learning to operate, through the use of mixed
8. reality a surgeon could practice on a virtual subject in order to
ensure they are doing the procedure properly. They could then
play it back to verify that what occurred truly happened and
would be a great training tool.
-John
References:
Marr, B. (2019, July 19). The Important Difference Between
Virtual Reality, Augmented Reality and Mixed Reality.
Retrieved from
https://www.forbes.com/sites/bernardmarr/2019/07/19/the-
important-difference-between-virtual-reality-augmented-reality-
and-mixed-reality/#44b8ea7135d3
Sherugar, S., & Budiu, R. (2016, August 21). Direct
Manipulation: Definition. Retrieved from
https://www.nngroup.com/articles/direct-manipulation/
NM’s post states the following:Top of Form
Good Evening Classmates and Professor,
· Your software development company has been contracted to
build a tool that will manage user accounts and rights in an
Active Directory environment. One of your developers tells you
that he wants the tool to make use of direct manipulation. A
second developer argues that a command line structure would be
a better and more secure approach. Take a stand on this
argument, providing at least three positives of each approach,
and then make a decision for this project and support it.
Active Directory environment can be done from the Graphical
User Interface (GUI), but the commands available from a
command prompt can be very powerful and can save you time.
Command line is more secure because you have to run it in
elevated mode, As Administrator, and you must be in
administrative group(s) to run the commands.
Also you can use PowerShell which is a task automation and
configuration management framework from Microsoft,
9. consisting of a command-line shell and associated scripting
language. Windows PowerShell is a command-line shell and
scripting language designed especially for system
administration. ... Built on the .NET Framework, Windows
PowerShell helps IT professionals to control and automate the
administration of the Windows operating system and
applications that run on Windows Server environment. By
command lines having simple design means there is better
security.
Direct manipulation takes a lot longer than command lines and
is equated to WYSIWYGs. With Direct manipulation, repetitive
tasks are not well supported.
The positives of direct approach is as follows:
1. Easy to learn for the user and easy for users to retain what
they have learned.
2. Also with the direct manipulation approach, it presents tasks
concepts visually (GUI)
3. It encourages exploration – make users want to explore the
interface.
The positive command line structure
1. Scalability –handles scalability easy and quickly. Allows a
single action to be taken to achieve results over large numbers
of discrete tasks.
2. Simple design –simplicity yields security
3. Has a simpler interface – it doesn’t rely on menus or buttons
to get tasks done
For this project, to build a tool that will manage user accounts
and rights in an Active Directory environment, I would use
command line, power shell and GPOs instead of direct
manipulation because command lines are more scalable. You
can have more control using command lines, capable of
multitasking by joining syntax just can’t see it and faster
10. performance with just the use of a keyboard and lastly,
command line uses a lot less resources and command line
doesn’t change as much as GUIs does/can. Programmers lean
more towards Command Lines and with building a tool, it is
best to stick with command lines.
https://www.nngroup.com/articles/direct-manipulation/
https://web.cs.dal.ca/~jamie/teach/MatthewDean/dialog_styles/s
ld012.htm
https://www.techrepublic.com/blog/linux-and-open-source/five-
benefits-of-command-line-tools/
https://redmondmag.com/articles/2015/04/15/command-line-
tools.aspx
· Describe virtual and augmented reality. Suggest a way in
which this technology could be used in the future; either to
improve a current process / procedure or create a new process /
procedure. Provide an example of your suggested use of the
technology
Virtual Reality is the use of computer technology to create a
simulated environment. Unlike traditional user interfaces, VR
places the user inside an experience. Instead of viewing a screen
in front of them, users are immersed and able to interact with
3D worlds. "Virtual Reality is an interactive immersive 3D
computer generated simulation, designed to make the user
believe, to the greatest extent possible, that they are actually
experiencing a real environment." According to Forbes
magazine, virtual reality (VR) is the next big wave of the
future. VR replaces boring, flat monitors with 3D worlds that
immerse users in unique visual experiences.
Augmented Reality is a view of the real, physical world in
which users find elements enhanced by computer-generated
11. input. Designers create inputs ranging from sound to video, to
graphics to GPS overlays and more, in digital content that
responds in real time to changes in the user’s environment,
usually movement.
Virtual reality can be extremely useful in the medical schools
were students can perform virtual complex surgeries before
performing in the real world. This could do both improve a
process and create a new process.
Augmented reality concept will only take off universally when
UX designers think about how they can integrate AR with daily
life to improve productivity, efficiency or quality of
experiences. This technology superimposes a CG image on a
user’s view of the real world. Unlike virtual reality, where
everything a user sees is generated by a computer, augmented
reality keeps the real-world focus, but just adds elements that
aren’t really there to enhance the user’s experience. Google is
reintroducing Google Glass as an augmented reality tool for the
workforce.
https://www.computersciencedegreehub.com/faq/what-is-
virtual-reality/
https://www.interaction-design.org/literature/topics/augmented-
reality
Discussion post
"Prototyping" Please respond to the following:
· Give an example of a software system for which developing a
prototype would result in saving a significant amount of
development time. Explain why the prototype will save
development time in this case.
· Give a different example of a software system for which
developing a prototype would not result in saving a significant
12. amount of development time. Explain why the prototype will
not save development time.
LG’s post states the following:Top of Form
"Prototyping" Please respond to the following:
Give an example of a software system for which developing a
prototype would result in saving a significant amount of
development time. Explain why the prototype will save
development time in this case.
The best example I could think about for a prototype of a
software system is a cloud system. The reason I selected the
cloud system based on some exposure in the development of a
cloud solution for an organization I worked in. The conception
of the cloud is not something brand new; however, the
organization did not have a commercial cloud service available
to its customers. The process started within the Innovation
Team, where the team spent a short amount of time asking
customers what type of business needs would cloud help them
with. Those needs turn into a set of requirements, and then the
team used that information to develop a prototype or shell of
what the commercial cloud service would entail. Using agile
and scrum, the team developed a minimal viable product (MVP)
on what the solution would have to operate. The prototype was
presented back to those customers to "test drive" and provide
feedback where the prototype transform based on the feedback
into a more robust solution. The team was able to recruit
customers to help in building on the prototype base on their
experience or interest. Now a time of five, with only two being
a technical resource, ended up compromising on 10-12, allow
for more investment, both funding and people, to expand the
prototype into that robust system. Development work was able
to be farmed out to more people so that resource-load would be
more balanced between 10-12 versus 2. Experience levels also
increased, allowing for more development work completed. As
13. more interest came, the development process reduced due to the
volume of developers. The development model was more
advance as the development and user interaction was almost
simultaneously since these users were now part of the overall
team — the real-life experience help to shake out issues or
errors before the final development was completed.
Overall,l prototyping is a great way to develop software. The
ability to build, test,t and then rework real-time help with
ensuring your product is viable early in the process. Having the
minimal requirements and then build from there while the
inclusion of the customers helps to achieve a final solutions that
is able to be used sooner than later. I wast better than spending
a lot of time collecting requirements only to learn that when
you're ready to build,d the requirements will have
change. Prototyping is beneficial because your customers are
part of the process,s and instead of waiting until the end, they
are available to provide insight on the product development to
help shape the product to meet their satisfaction. It included
addressing functionality issues or errors early in the
development process,s and it allows them to understand the
functionality of how the system will support operations when
implemented.
Give a different example of a software system for which
developing a prototype would not result in saving a significant
amount of development time. Explain why the prototype will
not save development time.
The website for a new small business may not be a good fit with
prototyping and saving development time. Small businesses
have limited personnel,l, and those employees (users) usually
are focused on running the business. Spending time to provide
requirements,s and being part of a team to develop the site may
not be available due to other work priorities. The business may
not be able to invest the time and money to through the
14. prototype process. If there are no users available, the
prototyping process would be ineffective because the user is
needed for requirements gathering or available to the
development team to identify functionality errors.
References:
freeCodeCamp.org. (2017, September 26). To prototype or not
to prototype: that is the question. Retrieved
from https://www.freecodecamp.org/news/to-prototype-or-not-
to-prototype-that-is-the-question-2f85c8cde2b/
Rouse, M. (2019, September 9). What is the Prototyping Model?
Retrieved
from https://searchcio.techtarget.com/definition/Prototyping-
Model
JR’s post states the following:Top of Form
A prototype can help in a case where a hospital wanted to
implement a new system. A prototype is a mock-up of the
desired functionality of a system (Fairley, 2009). Creating a
prototype can help in this case by showing which approaches
are useful and which ones are a waste of time. The prototype
can also help with finalizing requirements and showcasing
which requirements aren’t necessary. A prototype in this case
can give the hospital staff a real-life representation of what they
would be using and be able to give their input accordingly.
I think in a situation where delivery of a product needs to be
quick or funds are low, a prototype wouldn’t be beneficial. A
prototype can be time consuming and sometimes costly. A
prototype wouldn’t save time in this case because developers
would have to create, develop, test and then wait to get
feedback from users/involved parties.
Reference
Fairley, R. (2009). Managing and Leading Software
Projects: Chichester, U. K.: WIiley