0% found this document useful (0 votes)
26 views19 pages

SARC Topic 1 - Intro

Software design course 1

Uploaded by

Alwi Albeity
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views19 pages

SARC Topic 1 - Intro

Software design course 1

Uploaded by

Alwi Albeity
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

Software Architecture

Topic 1
Introduction

By: Esther Baguma (Msc)

Bachelor of Science in Software Engineering -BSSE


Introduction
2

The architecture of a system describes its major components,


their relationships (structures), and how they interact with each
other. Software architecture and design is a process that
includes several contributory factors such as Business strategy,
quality attributes, human dynamics, design, and IT environment.

© IUEA – 2020. 07/19/2024


Introduction
3

© IUEA – 2020. 07/19/2024


Introduction
4

We can categorize Software Architecture and Design into two


distinct phases:
i. Software Architecture and
ii. Software Design.
In Architecture, nonfunctional decisions are cast and
separated by the functional requirements.
In Design, functional requirements are accomplished.

© IUEA – 2020. 07/19/2024


Software Architecture
5

Architecture serves as a blueprint for a system. It provides


an abstraction to manage the system complexity and
establish a communication and coordination mechanism
among components.

© IUEA – 2020. 07/19/2024


Software Architecture
6

 It defines a structured solution to meet all the technical


and operational requirements, while optimizing the
common quality attributes like performance and security.
 It involves a set of significant decisions about the
organization related to software development and each of
these decisions can have a considerable impact on quality,
maintainability, performance, and the overall success of the
final product.

© IUEA – 2020. 07/19/2024


Software Architecture
7

These decisions comprise of:


o Selection of structural elements and their interfaces by
which the system is composed.
o Behavior as specified in collaborations among those
elements.
o Composition of these structural and behavioral elements
into large subsystem.
o Architectural decisions align with business objectives.
o Architectural styles that guide the organization.

© IUEA – 2020. 07/19/2024


Software Design
8

Software design provides a design plan that describes the


elements of a system, how they fit, and work together to fulfill the
requirement of the system. The objectives of having a design plan
are as follows:
 To negotiate system requirements, and to set expectations with
customers, marketing and management personnel.
 Act as a blueprint during the development process.
 Guide the implementation tasks, including detailed design,
coding, integration, and testing.
It comes before the detailed design, coding, integration, and
testing and after the domain analysis, requirements analysis, and
risk analysis.
© IUEA – 2020. 07/19/2024
Software Design
9

© IUEA – 2020. 07/19/2024


Goals of Architecture
10

The primary goal of the architecture is to identify


requirements that affect the structure of the application.
A well-laid architecture reduces the business risks
associated with building a technical solution and builds
a bridge between business and technical requirements.
Some of the other goals are as follows:
• Expose the structure of the system, but hide its
implementation details.
• Realize all the use-cases and scenarios.
• Try to address the requirements of various
stakeholders.
© IUEA – 2020. 07/19/2024
Goals of Architecture
11

• Handle both functional and quality requirements.


• Reduce the goal of ownership and improve the
organization’s market position.
• Improve quality and functionality offered by the
system.
• Improve external confidence in either the organization
or system.

© IUEA – 2020. 07/19/2024


Challenges of Software Architecture
12

Software architecture is still an emerging discipline


within software engineering. It has the
following limitations:
• Lack of tools and standardized ways to represent
architecture
• Lack of analysis methods to predict whether
architecture will result in an
implementation that meets the requirements.
• Lack of awareness of the importance of architectural
design to software
development
© IUEA – 2020. 07/19/2024
Challenges of Software Architecture
13

• Lack of understanding of the role of software architect


and poor communication
among stakeholders.
• Lack of understanding of the design process, design
experience and evaluation of
design

© IUEA – 2020. 07/19/2024


Role of Software Architect
14

A Software Architect provides a solution that the technical team


can create and design for the entire application. A software
architect should have expertise in the following areas:
Design Expertise
 Expert in software design, including diverse methods and
approaches such as object-oriented design, event-driven
design, etc.
 Lead the development team and coordinate the development
efforts for the
integrity of the design.
 Should be able to review design proposals and tradeoffs
among them.

© IUEA – 2020. 07/19/2024


Role of Software Architect
15

Domain Expertise
 Expert on the system being developed and plan for
software evolution.
 Assist in the requirement investigation process
assuring completeness and consistency.
 Coordinate the definition of domain model for the
system being developed.

© IUEA – 2020. 07/19/2024


Role of Software Architect
16

Technology Expertise
 Expert on available technologies that helps in the
implementation of the system.
 Coordinate the selection of programming language,
framework, platforms, databases, etc.
Methodological Expertise
 Expert on software development methodologies that may

be adopted during SDLC (Software Development Life


Cycle).
 Choose the appropriate approaches for development that

helps the entire team.

© IUEA – 2020. 07/19/2024


Hidden Role of Software Architect
17

 Facilitates the technical work among team members


and reinforcing the trust relationship in the team.
 Information specialist who shares knowledge and has
vast experience.
 Protect the team members from external forces that
would distract them and bring less value to the
project.

© IUEA – 2020. 07/19/2024


Deliverables of the Architect
18

• A clear, complete, consistent, and achievable set of


functional goals
• A functional description of the system, with at least two
layers of decomposition
• A concept for the system
• A design in the form of the system, with at least two layers
of decomposition
• A notion of the timing, operator attributes, and the
implementation and operation plans
• A document or process which ensures functional
decomposition is followed, and the
form of interfaces is controlled
© IUEA – 2020. 07/19/2024
19

Thank you
© IUEA – 2020. 07/19/2024

You might also like