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
13
votes
3 answers

Books specifically on Software Architecture and not Software Design

Can you please suggest some books on Software Architecture, which should talk about how to design software at module level and how those modules will interact. There are numerous books which talks about design patterns which are mostly low level…
Invincible
  • 795
  • 3
  • 10
  • 17
13
votes
3 answers

Marker interface vs empty abstract class

I am facing difficulties to decide between using a marker interface or an empty abstract class. I have two classes BrokerResponse and Notification, which have no structural similarity. The only thing connecting them is the need to be subscribable…
tgr
  • 3,557
  • 4
  • 33
  • 63
13
votes
2 answers

DDD: guidance on updating multiple properties of entities

So, i decided to learn DDD as it seems to solve some architectural problems i have been facing. While there are lots of videos and sample blogs, i have not encountered one that guides me to solve the following scenario: Suppose i have the…
sergio
  • 1,026
  • 2
  • 19
  • 43
13
votes
3 answers

DDD navigation to entities inside aggregate root via composite identity

I have an aggregate root Products which contains a list of entities Selection, which in turn contains a list of entities called Features. The aggregate root Product has an identity of just name The entity Selection has an identity of name (and its…
morleyc
  • 2,169
  • 10
  • 48
  • 108
13
votes
1 answer

Put business logic in entity

I've read the Fowler's article about "Anemic Domain Model" (link: http://www.martinfowler.com/bliki/AnemicDomainModel.html), and I agree with his point of view. I've tried to create an application where Entities are simple POPO, but in this way, I…
marka.thore
  • 2,795
  • 2
  • 20
  • 35
13
votes
2 answers

Purpose of Utility tree in ATAM

What is an utility tree and what is it's purpose in case of Architecture tradeoff analysis method(ATAM)? Thanks
user1323981
12
votes
14 answers

How to deal with requests for ridiculous functionality in your software?

Of course, most of the time this type of request comes from management that neither has a clue about what the users really want, nor does [s]he have a clue about the technical aspects of building a specific software project or software in general.…
TheHolyTerrah
  • 2,859
  • 3
  • 43
  • 50
12
votes
2 answers

How to apply composition in android MVP?

Recently I took over an android project which is built on top of MVP. While simple screens are quite straight forward and easy to read and maintain, the more complex parts of the app are not. Multiple inheritance levels have caused me days of…
stoefln
  • 14,498
  • 18
  • 79
  • 138
12
votes
2 answers

DTO Design in TypeScript/Angular2

I'm currently developing an Angular 2 application. While developing I started to use TypeScript classes to create objects from JSON I receive through HTTP or when creating a new object in a form. The class may for example look like this. export…
DaSch
  • 931
  • 1
  • 5
  • 20
12
votes
11 answers

What are some situations where Agile is inappropriate?

I have been hearing and reading about Agile for years. I own a book or two on it and I like the idea. I am finally in a position where I could roll something like this out where I work, but I have serious concerns about whether it's the way to go…
Brian MacKay
  • 31,133
  • 17
  • 86
  • 125
11
votes
5 answers

Architecture: Best practices for manipulating models without polluting the POJOs? And without repeating boiler-plate code everywhere

This is a problem we encounter often. There must be some best practices to address this... Simplified Question Where's the best place to put common code that manipulates POJOs? such that: POJOs only have properties and getters/setters the…
gMale
  • 17,147
  • 17
  • 91
  • 116
11
votes
3 answers

How to design a software workflow chart?

I have been working for a while now but because of my earlier habits i never worked systematically. I have never created a workflow chart for my software as how the software will work and instead of that i started working directly which in turn…
Agent_Spock
  • 1,107
  • 2
  • 16
  • 44
11
votes
2 answers

Is it a good practice to mock Automapper in unit tests?

There is this codebase where we use automapper and have 2 layers, Domain and Service. Each has its object for data representation, DomainItem and ServiceItem. The service gets data from domain, the uses constructor injected automapper instance to…
netchkin
  • 1,387
  • 1
  • 12
  • 21
11
votes
3 answers

Django-like Framework Pattern

I have been using Django for many years (since Django 1.2). and in the past, I used different type of web frameworks (such as CakePHP, Rails, ASP.NET MVC, and some other full-stack framework). Django wasn't my first framework. Different frameworks…
Yeo
  • 11,416
  • 6
  • 63
  • 90
10
votes
7 answers

What's the best way to resolve a combinatorial explosion of interactions?

One of the things I'm working on right now has some similarities to a game. For purposes of illustration, I'm going to explain my problem using an example drawn from a fictitious, hypothetical game. Let's call it DeathBlaster 4: The Deathening. In…
John Feminella
  • 303,634
  • 46
  • 339
  • 357