Bag om Theories of Computing for Software Development
In the globalized and technological world in which we live, it is necessary to look for ways to improve digital computer systems. Software, for example, is constantly changing, as there is a need to correct existing errors or add new features and functionality. This evolutionary need of the software system makes it "unreliable" and predisposed to defects, delayed delivery, and cost overruns. The complexity of software systems requires software professionals to reason, design, code, and communicate through software components. From this need, software engineering has shown itself more attractive and has recently become a very approached area. Also through it came the branch of software architecture, which works with the use of layers, aiming to facilitate the allocation of functionality from requirements and to support flexibility and portability, resulting in ease of reuse and maintenance. This is due to the well-defined standard interfaces that encapsulate components. In addition to modularizations, the architecture supports a set of quality and performance attributes.
Vis mere