Retrieved from https://studentshare.org/miscellaneous/1607703-software-design
https://studentshare.org/miscellaneous/1607703-software-design.
Software Design Software Design Where software architecture ends and software design begins. Software architecture, as defined byShaw and Garlan (1996), includes a set of crucial decisions concerning the software system organization techniques such as the selection of structural elements and their interfaces; expected behaviors among the defined elements; composition of behavioral and structural elements; functionalities of the system i.e. performance, comprehensibility, usability, aesthetic issues, resilience and economic/technical constraints; and architectural guiding styles for the organization.
Software Architecture is also the structure of a system which comprises the externally visible features of any software elements and their (features) relationships. Architecture is all about the User Interface (UI) of a system (Bass, Len, Paul C., and Rick K., 2003, 2nd Ed.).Software design is a sequence of reaching a solution to software hitches. It takes into consideration issues to do with compatibility, modularity, packaging, extensibility, robustness, security, fault-tolerance and usability.
In a System Development Life Cycle (SDLC), software architecture forms the fundamentals that determine the design of that software by specifying the organization techniques to be implemented during the next step of designing.If a well-documented bad design is better than an undocumented good one. A software design document is a well written and stable description (done by the software designer) of the software product outlining all sections of software and their intended functionalities. This document is deemed to provide a complete description of the intended end result of the software, while keeping to a quality view of the system.
Therefore, a well-documented bad design will serve no purpose if it describes “space” none existing features. It will be better to have a good design that conforms to the system architecture and organizational expectations but without documentation rather than a well-documented but poorly done design.How to measure the design quality of a piece of code and quantify its simplicity, elegance, modularity.The quality of any piece of code in a design would be determined by using varied code quality measurement techniques such as focus on the fundamentals of Object Oriented Programming styles and the design patterns; writing of clean codes (codes that are to the standards and principles in relation to the problem); and identifying WTFs “Bad Smells” within the code (Robert C. Martins).A simple way to quantify the quality of a piece of code’s simplicity, elegance, modularity, e.t.c.
is by integrating code analysis tools like Check Style and Find bugs. Lastly discuss situations where you might experiment with software design.The need to experiment with software design is to gather information/ data about the design and analyze it by considering how the intended experimental factors would fit wholly into a model expected to meet the precise objective set for the experiment and satisfy the practical constrains of time and financial resources (Montgomery, Douglas C., 1997).
ReferencesBass, Len, Paul Clements, and Rick K. (2003). Software Architecture in Practice, 2nd ed. Addison-Wesley Professional.Robert C. Martins. Clean Code: A handbook of Agile Software Craftsmanship.Montgomery, Douglas C. (1997). Design and Analysis of Experiments (4th edition). New York:John Wiley & Sons.
Read More