Lecture - 3 Design Goals
Lecture - 3 Design Goals
3 23.03.2024
Software Design?
4
23.03.2024
Software Architecture Design Guidelines
1. identify the right architecture styles to decompose a complex system into its constituent
elements, choose the proper element and connector types, meet stakeholders’ requirements
for quality attributes, and provide proper execution tactics for efficient implementation.
2. Think of what to do before thinking of how to do it. Functional and nonfunctional
requirements should be identified, verified, and validated before architecture and detailed
design work is done. Using an abstract architecture design to communicate with
stakeholders helps avoid the need to overhaul the system design in later stages of the
software development cycle.
3. Think of abstract design before thinking of concrete design. Always start with an abstract
design that specifies interfaces of components and abstract data types. Use multiple levels
of abstraction if necessary. Make implementation decisions based on the abstract
interfaces instead of the concrete ones because those are more stable .
23.03.2024
Software Architecture Design Guidelines
6
4. Think of nonfunctional requirements early in the design process. When you map
functional requirements to an architecture design, you should consider
nonfunctional requirements as well. Communicate with stakeholders and document
their preferences for quality attributes
5. Think of software reusability and extensibility as much as possible. For most
software systems, it is likely that new functionalities will be added after the systems
are deployed. You need to consider how to reuse existing software components to
increase the reliability and cost-effectiveness of new systems.
6. Try to promote high cohesion within each element and loose coupling between
elements. A highly coherent subsystem, component, or module performs one sole
function. For example, in object-oriented design, if a class is assigned to bear two
unrelated responsibilities
23.03.2024
Software design in software life cycle
7
23.03.2024
Characteristics of good Software
23.03.2024
Software Characteristics
9
23.03.2024
Operational
10
23.03.2024
Maintenance
12
In this categories all factors are included that describes about how
well a software has the capabilities to maintain itself in the ever-
changing environment:
Modularity
Maintainability
Flexibility
Scalability
23.03.2024
13 23.03.2024
14 23.03.2024
15
THANK YOU
23.03.2024