Software architecture decision making [Real Research]

Last updated : Aug 25, 2022
Written by : Marla Hergenrader
Current current readers : 3103
Write a comment

Software architecture decision making

What is decision-making in architecture?

Decision architecture is the art and science of designing Web sites for good decision making by users. Decision making is a complex process. How humans process information drives decision making. People process information primarily through two mental modes, or channels, that operate in parallel.

What is decision-making in software development?

The decision-making process in software development and maintenance is mostly dependent on software practitioner's experience and intuition. For example, developers use their experiences when prioritizing bug fixes, managers allocate development and testing resources based on their intuition and so on.

What are examples of architectural decisions?

Architectural structure decisions such as "Client Server", "n-tier", etc. Any detailed design decision (e.g. the layout of a user interface, the detailed user steps in a manual task, the detailed format of the data in a component interface). The detailed format of the data in the interface to the COTS software.

Why are architectural decisions important?

Documenting architectural decisions helps a project succeed by helping current and future contributors understand the reasons for doing things a certain way. When they are working on a new feature, project leaders—whether open or closed source—need to decide how to implement it.

What kinds of decision making does an architecture empower?

Architectural decisions capture key design issues and the rationale behind chosen solutions. They are conscious design decisions concerning a software-intensive system as a whole or one or more of its core components and connectors in any given view.

Why is software decision making critical to the success of software system?

Software architecture decision-making is critical to the success of a software system as software architecture sets the structure of the system, determines its qualities, and has far-reaching consequences throughout the system life cycle.

How do software engineers make decisions?

  1. Preliminaries.
  2. Step 1 — Assign A Directly Responsible Individual.
  3. Step 2 — Research And Form Your Opinion.
  4. Step 3 — Key Stakeholder Empathy.
  5. Step 4 — Gather Stakeholders And Moderate.
  6. Step 5 — Timeboxed Arrival At A Decision.
  7. Step 6 — Document, Ratify, and Communicate.

How do engineers make decisions?

The Brown University Division of Engineering (Brown University, n.d.) has defined the typical engineering decision making process as follows: define clearly the objectives of solving a specific problem. generate all possible solutions. predict the outcome of each solution.

What are the seven categories of architectural design decisions?

  • Allocation of responsibilities.
  • Coordination model.
  • Data model.
  • Management of resources.
  • Mapping among architectural elements.
  • Binding time decisions.
  • Choice of technology.

Who is responsible for taking architectural decisions?

The correct answer of this question is the project manager . Explanation: Given - Quality management and taking architectural decisions.

How are decisions made?

  • Step 1: Identify the decision.
  • Step 2: Gather relevant information.
  • Step 3: Identify the alternatives.
  • Step 4: Weigh the evidence.
  • Step 5: Choose among alternatives.

What is a design decision?

Design decisions take into account human considerations, from ergonomics to cognitive capabilities. A good solution has to be useable and useful. Design decisions have some sort of aesthetic component—that is: the beauty and elegance of the execution. This is true even if the solution has no physical component.

Which of these are the elements of design decision?

  • Lines. The first and most basic element of design is the line.
  • Shapes. The second element of design is shape, when a two-dimensional line encloses an area.
  • Colors. Color is another powerful element of design.
  • Typography.
  • Texture.
  • Space.

What is architectural views in software engineering?

Architecture view or viewpoint is set of representations of an architecture that covers stakeholder issues. It also represents functional and non-functional requirements of software application. View is basically partial expression of system from specific perspective.

How an architecture serves as a basis for analysis?

Architecture serves as the basis for system analysis and construction. Architecture tells implementers what to implement. For those interested in the ability of the design to meet the system's quality objectives, the architecture documentation serves as the fodder for evaluation.

What is technical decision-making?

Technical decision-making is the art of choosing a technology, tool, framework, programming language, service, architecture, or pattern to solve a problem scientifically. A decision can go a long way in making your life easier, simpler, fast or slow, complex, and miserable in the future.

What is the strong decision making process?

Identify the alternatives. Determine the pros and cons. Choose an alternative. Review the decision.

Why is decision making important for engineers?

A quality decision-making process can drive creativity. Decision quality can help to overcome cognitive biases and provide a vehicle for civil engineers to develop creative solutions while also bringing their clients along on the creative journey.

What are engineering decisions?

Decision Engineering is a framework that unifies a number of best practices for organizational decision making. It is based on the recognition that, in many organizations, decision making could be improved if a more structured approach were used.

What is software architecture reuse?

Software architectures are reused by selecting those features required in a target system and then tailoring the domain model, subject to the appropriate feature/object dependency constraints, to generate the target system specification.

more content related articles
Check these related keywords for more interesting articles :
How to render sketchup model in blender
How to access altium vault
How to open two archicad files
How to update archicad 24
Design house water garden
Saturn pcb design calculator
House design rooftop philippines
How to place camera in microstation
How to generate boq in revit
How to update altium library loader
Model 3d hard surface
How to play sketchup files
3d print squid game mask thingiverse
3d max interior projects
How to highlight track in altium

Did you find this article relevant to what you were looking for?

Write a comment

Software architecture decision making

Comment by Gino Brallier

Thanks for this great article

Thanks for your comment Gino Brallier, have a nice day.
- Marla Hergenrader, Staff Member

Comment by enredava9

hello everyone and welcome to software architecture monday my name is mark richards you may have noticed that the date of this lesson number 141 is is quite a ways away from 140 and that's because i did take a little bit of a summer vacation a what i would consider a well-deserved break but anyways i'm back and we're back to our regular two-week cadence uh every monday in this lesson number 141 we're going to take a look at managing architecture decisions and i'll show you what i mean um when we get to that point so you could see a list of all of my lessons in software architecture monday through my website at lessons or just click on the lessons link in the menu now most of the material that i do in software architecture monday comes from two books that i wrote with my friend neil ford fundamentals of software architecture which was published in 2020 and then the software architecture the hard parts which was just published in 2021 i guess yes what year is it anyways most of the material does come from these but sometimes i create a lesson based on a question that i get in the middle of a training session for example or when i'm on a consulting gig and that's exactly what this lesson is all about this comes from a question about a company who was indeed using architecture decision records and i was struggling with managing those or had some questions about managing them and that's what i wanted to address in this lesson now way back if we go in the way back machine to lesson 55 i talked about architecture decision records and if you haven't seen that lesson yet or if you're not familiar with adrs or architecture decision records um i'd suggest pausing the video and taking a look at that but if you are familiar with adrs you can review it later but let me show you and just spend like a minute talking about an architecture decision record every architecture decision we make as an architect can be recorded as documentation typically each decision corresponds to a certain file and that's called an architecture decision record now these in spirit are short it's not meant to provide all this documentation but really to document our architecture decision one to two pages long usually i use either markdown most of the time i use ascii doc but you can use plain text as well now the five main categories of an architecture decision the title describing what the decision is or the actual decision the status proposed accepted or superseded in the context section of the architecture decision record this is where we describe and very briefly a couple of sentences to a paragraph of what the problem is and what some of the alternatives are this i love saying really is architecture documentation one of the most important parts of the architecture decision record of course is the decision with justification and finally the consequences now in lesson 55 i talked a lot about each of these but what i want to focus on in this lesson number 141 is the status in other words how do you manage an architecture decision record for example let's say an architect or a senior developer i'm just creating an architecture decision record an adr but i'm not sure if i've got all the material i'm not sure if i've got everything here so i'd like others to comment on it well if other people other developers and other architects maybe other stakeholders start commenting on it commenting when should you consider that adr final as a matter of fact here is actually the question i did receive during one project is an architecture decision ever final and so these all point to one thing and that is how do you manage architecture decisions and probably more importantly what if the decision changes what do we do should we edit the adr what what's the process well let's take a look at all of those questions first of all let's say a software architect creates an architecture decision record and would like others developers and other development teams other architects to comment on it one of the things i do for this very common situation is to create a new status type i mean here's the nice thing you could do anything you want to with an architecture decision record so here's the typical form i use i create a new status type instead of accepted proposed or superseded i have a status of rfc request for comment and i always put a date by june 22nd so this kind of status indicates to everybody a request for comment that's the rfc prior to making that decision and always specifying an end date specifying that end date solves that kind of final problem where it's always just open and people are commenting on it and so in this case once that date hits then it either goes into proposed status or accepted status and as a matter of fact i can accept sometimes my architecture decision records in lesson 55 i described some of those criteria that i use um however if it's proposed at that point it then goes in front of let's say an architecture review board or a a group of peers to actually or maybe it's the lead architect to actually make that decision and then accept it so this rfc kind of allows a latency period before it actually goes into proposed or accepted status well that's one half of managing an architecture decision record but here's the situation based on some of the new requirements we need to change this decision to something else what do we do do we take that architecture decision record and just change it and start modifying it and reverse the decision and let's say move it from in this case uh a federated um service bus into a single service bus typically we don't do that because you see the problem is if i change a decision then two things occur first i don't have the history of that prior decision and secondly people are familiar with the fact that adr 67 let's say was this particular decision and now the decision completely changes so here's typically the process that happens for changes that occur now minor changes that don't change the architecture decision itself but rather add some context or maybe add some justification in that case please edit the architecture decision record because what we're doing is we're enhancing it but we're not changing the decision but once it's been accepted and we reverse a decision or change the decision itself that's when we create a new adr for example adr 82 and that's where we apply our changes to change that architecture decision now the confusion is 67 still exists and has been accepted so now we have two different decisions that's where we get the superseded piece so notice the adr 67 the status changes from accepted to superseded by adr 82 and then adr 82 once it gets accepted supersedes 67. in this way if we're taking a look at adr 67 we know this is ancient history it's been superseded already so one of the things in this kind of practice which is very common is to always look at that status before just taking it at face value of what that decision is this kind of practice of managing architecture decisions gives us the history and the prior context of why we made a certain decision and then adr 82 describe

Thanks enredava9 your participation is very much appreciated
- Marla Hergenrader

About the author