Questions tagged [software-design]

Software design is the activity of deciding what properties, elements, responsibilities, interfaces, relationships and interactions are required in order to create an effective piece of software.

According to Wikipedia, software design is:

Software design is the process by which an agent creates a specification of a software artifact, intended to accomplish goals, using a set of primitive components and subject to constraints. Software design may refer to either "all the activities involved in conceptualizing, framing, implementing, commissioning, and ultimately modifying complex systems" or "the activity following requirements specification and before programming, as ... [in] a stylized software engineering process."

1966 questions
8
votes
1 answer

Pluginable cross-platform software design for react & react native

I want to design a cross-platform (Android, iOS, and Web) plugin-able software that means everyone can easily develop a plugin for it and users can pick plugins from the marketplace and install it. Every plugin can: Share data in the back-end side…
Vahid Kharazi
  • 5,723
  • 17
  • 60
  • 103
8
votes
3 answers

The Dependency Inversion Principle with .NET Framework classes

I'm trying to understand SOLID principles, in particular The Dependency Inversion Principle. In this is SO answer it is explained very well. I think I have understood that I can't create any instance of a class inside my class. Is it right? But if I…
VansFannel
  • 45,055
  • 107
  • 359
  • 626
8
votes
3 answers

How do you handle validation in composite microservice request?

Consider an application with two entities: User (contains basic user data, such as name) Passport (contains authentication credentials, i.e. password) And two internal microservices: UserService (responsible for creating and managing users and…
8
votes
0 answers

How to design a news feed system like google reader?

I’m preparing a system design interview, i was expected to be asked such kind of question in the interview, so I want to show my design process about this. In addition, I would like what are the best practices to solve some difficulties in the…
Max Lin
  • 89
  • 1
  • 3
8
votes
2 answers

Clean Architecture - Robert Martin - Use Case Granularity

I am considering implementing Robert Martin's Clean Architecture in a project and I am trying to find out how to handle non-trivial use cases. I am finding it difficult to scale the architecture to complex/composed use cases, especially use cases…
8
votes
6 answers

Good Data Structure for Unit Conversion?

StackOverflow crowd. I have a very open-ended software design question. I've been looking for an elagant solution to this for a while and I was wondering if anyone here had some brilliant insight into the problem. Consider this to be like a data…
riwalk
  • 14,033
  • 6
  • 51
  • 68
8
votes
7 answers

Which keyboard keys are internationally available and easily accessed?

When developing software for public use, it is important to ensure that it is designed with consideration for a variety of setups. How much does the keyboard vary across different layouts? Can all characters be relied on to exist? Like the…
c..
  • 1,044
  • 1
  • 9
  • 23
8
votes
3 answers

Credit system: history based or balance based?

I am going to write a simple credit system that user can "add", "deduct" credits in the system. Currently I am thinking of two approaches. Simple one: Store the user' credit as balance field in the database, and all actions ("add", "deduct") are…
Ryan
  • 10,041
  • 27
  • 91
  • 156
8
votes
4 answers

What is an Architecture Context Diagram (ACD) and are there any other names for it?

I've been charged with the following tasks for a group project: a) Design/Draw an Architecture Context Diagram b) ACD Description c) UML deployment diagram The UML deployment diagram is no issue as there are plenty of straight-forward resources…
Julian
  • 1,853
  • 5
  • 27
  • 48
8
votes
8 answers

Is it worth converting my functional JavaScript code to an object-oriented design?

I'm currently building a small web application that includes a fair amount of JavaScript. When I was prototyping the initial idea, I just hacked together a few functions to demonstrate how the application would eventually behave intending to go…
Tom
  • 15,527
  • 5
  • 48
  • 62
8
votes
7 answers

Why shouldn't C# (or .NET) allow us to put a static/shared method inside an interface?

Why shouldn't C# (or .NET) allow us to put a static/shared method inside an interface? Seemingly duplicate from Why we can not have Shared(static) function/methods in an interface/abstract class?, but my idea is a bit different,;I just want to put a…
Hao
  • 8,047
  • 18
  • 63
  • 92
8
votes
2 answers

Analysis and Design for Functional Programming

How do you deal with analysis and design phases when you plan to develop a system using a functional programming language like Haskell? My background is in imperative/object-oriented programming languages, and therefore, I am used to use case…
7
votes
2 answers

Balsamiq for network or architecture diagrams

I love the sketchy look of Balsamiq and the ability to put designs together quickly. I would love to be able to do the same thing for architecture diagrams but Balsamiq doesn't have any objects for those kinds of drawings. Visio and PowerPoint work…
Jon Crowell
  • 21,695
  • 14
  • 89
  • 110
7
votes
4 answers

OOP design : Car - Connection between Tank and Engine

I'm not sure whether I'm violating OOP conepts insanely. Say there is a Carclass which "has" an Engine and a Tank. When the Engine is operating , it will take oil from the Tank (say unit by unit per a cycle though oil is uncountable) How should the…
Dinushan
  • 2,067
  • 6
  • 30
  • 47
7
votes
2 answers

Azure DevOps: release version

I am going to create my CI/CD pipeline in Azure DevOps, but I have a problem with release version number. with this CI/CD a dotnet app build and a docker image created, so I want to have docker image release number same as : V1.2.0 and ..... but…
Meraj Kashi
  • 283
  • 1
  • 8
  • 18