You are on page 1of 15

1

Software Architecture and Design


Design Goals

Instructor Name: Riaz Ahmad


23.03.2024 Department of Computer Science, COMSATS University Islamabad, Wah Campus, Pakistan
Outline
2

 What is software Design and Architecture?


 Software Architecture Design Guidelines
 Software design in software life cycle
 Characteristics of good Software
 Operational
 Transitional
 Maintenance
 Summery of the lecture
 What next……..
23.03.2024
Motivational Quotation of Today?
1. “Not to become someone else, but to be more thoroughly yourself.”
― Robert Greene, The Laws of Human Nature
2. “What I fear is not the enemy’s strategy but our own mistakes.”
― Robert Greene, The Laws of Human Nature
3. “We have a continual desire to communicate our feelings and
yet at the same time the need to conceal them for proper social
functioning.”
― Robert Greene, The Laws of Human Nature

3 23.03.2024
Software Design?
4

Software design is a process of problem solving and planning for a


software solution.
Architecture is:
▫All about communication.▫ What „parts‟ are there?
▫How do the „parts‟ fit together?

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

A software product is concluded as a good software by what it


offers and how well it can be used. The factors that decide the
software properties are divided into three categories:
Operational
Transitional
and
Maintenance

23.03.2024
Software Characteristics
9

23.03.2024
Operational

10

 In operational categories, the factors that decide the software performance


in operations. It can be measured on:
 Budget
 Usability
 Efficiency
 Correctness
 Functionality
 Dependability
 Security
 Safety
23.03.2024
Transitional
11

 When the software is moved from one platform to another, the


factors deciding the software quality:
 Portability
 Interoperability
 Reusability
 Adaptability

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

You might also like