I was wondering if anyone knows of a book dedicated to designing a complex system, I'm not talking about code construction but the actual designing of a program. Something that helps with core requirements, layout, etc.