Welcome and Intro To SW Architecture
Welcome and Intro To SW Architecture
Software
Architecture
CSPC 464 Fall 2022
Prof. Son Nguyen
Welcome
Roll Call
Introduction
◦ Instructor
◦ Students
Syllabus
Coming Next
Q&A
About myself…
Been working in the computer industry since 1980 – for several
companies including Shared Medical Systems, NCR, Hughes Aircraft,
TRW/Northrop, Digital/Compaq/HP, TrendMicro, Raytheon
◦ OS/SW Developer, Computer/Sales Support Consultant, Technical Marketing
Manager, Principal SW/Systems Engineer, SW Engineering Manager/team
leadership
4
The Text Book
The Class Portal
References
1. Software Architecture for Developers,
Simon Brown
2. An Introduction to Software
Architecture, David Garlan and Mary
Shaw
3. Software Architecture, A. Bijlsma, B.J.
Heerendr., E.E. Roubtovair, S. Stuurman
4. Software Architecture in Practice, Len
Bass, Paul Clements, Rick Kazman
7
Inspiration
Course Description and
Objectives
This course provides an introduction to basic
principles and practices of software design and
architecture
10
The Plan
See the syllabus – Lecture topics
11
The Project
Each student will participate in a team project
12
Motivation
“Our civilization runs on software” (Bjarne Stroustrup,
C++ programming creator)
Software needs to
◦ Provide the required capacity
◦ Be of sufficient quality
◦ Be available when needed
◦ Get delivered at acceptable price
Source: https://www.glassdoor.com/List/Best-Jobs-in-America-
14
LST_KQ0,20.htm
What is Architecture?
The word “architecture” means many different things to
many different people and there are many different
definitions floating around:
◦ Systems, subsystems, interactions and interfaces
◦ Design with the bigger picture in mind
◦ The blueprint
◦ The skeleton/backbone of the product
Activities of
defining,
documenting
,
maintaining,
improving,
and
certifying
proper
implementati
on of an
architecture
(IEEE
1471.2000)
16
Type of Architecture
There are many different types of architecture
and architects within the computer industry:
◦ Data, hardware, enterprise, system, security
◦ Software, information, application, etc.
17
What is Software
Architecture
It’s about more than just the architecture of
a piece of software.
18
Software Architecture
A combination of
◦ Application architecture:
aspects of software design and the
organization of the code
usually only concerned with a
single technology stack – a list of
technologies to provide a SW
solution/application (e.g., LAMP –
Linux, Apache, MySQL, PHP)
20
Software Architecture
Software architecture is also about making
◦ fundamental structural choices
◦ engineering decisions
◦ These are costly to change once implemented
21
Why do we need Software
Architecture?
“Why should we care about software architecture anyway?
Sometimes a developer just wants to jump right in and
start coding. Software architecture is the foundation of a
software system. The foundation has a profound effect on
the quality of what is built on top of it. “Joseph Ingeno
23
Software Architect
Must have
◦ Technology knowledge - Can he/she do without?
◦ Understandings of Software Development Process
◦ Design knowledge and programming skills
◦ Ability to make decisions
Under pressure
When not popular
◦ Ability to mediate and negotiate between and
with “stakeholder” groups
◦ Aware of organizational politics
24
Software Architecting
The activities of defining, documenting, maintaining,
improving, and certifying proper implementation of an
architecture. (IEEE 1471.2000)
26
Need for Software Architecting
Customers expect a high-quality for their
investment
End-product should:
◦ do what we said it would do
◦ Behave/perform the way our customer expected
◦ be usable for the purpose for which the customer
bought it
27
Review
What is an architecture? Choose the best answer
a) is about the complex or carefully designed structure of something
b) is about understanding what you need to build, creating a vision
for building it and making the appropriate design decisions
c) The design backbone
d) The blue print
e) a and b
What is software architecture?
f) It’s about the architecture of a piece of software
g) It’s anything and everything related to the significant elements of
a software system
h) A combination of application architecture and system architecture
i) IT infrastructure.
j) a, b, and c
Review
What is the role of the architect? (Choose all that apply)
a) responsible for the creation and rework of a software architecture
throughout the product’s lifecycle
b) Works with requirements engineers and functional designers to
ensure the orderly transition of processes, artifacts, and
information
c) Does not need to have technology/design knowledge.
d) Ability to mediate and negotiate between and with stakeholders
What is architecting?
a) The activities of defining, documenting, maintaining, improving,
and certifying proper implementation of an architecture
b) Is a one-time activity.
c) Architecting begins with design engineering.
d) The art and science of defining and reworking software
architectures
Review
SW Architecture - Core concepts
Is this correct?
30
Just a few more slides, let’s take a short
break!
https://www.dreamstime.com/illustration/take-break.html
Process of
Architecting
CSPC 464 Fall 2022
Prof. Son Nguyen
Process of Architecting
Process
◦ Phase
◦ Iteration
◦ Activity
Method Content
◦ Tasks
◦ Roles
◦ Work Products
Types of Process
◦ Waterfall
◦ Iterative
◦ Agile
Key Method Concepts
Use SW and Systems Process Engineering Meta-Model Specification
(SPEM) standard developed by Object Management
Group (OMG), a nonprofit technology standards
consortium.
◦ Requirement Analyst
◦ Project manager
◦ Lead architect
◦ Application architect
◦ Infrastructure architect
◦ Data Architect
Method Content - Work
Product
A piece of information or
physical entity that is
produced/used during
execution of the process
Polls
44
Waterfall Process
Each discipline is deemed to be complete when
all the appropriate work products for that
discipline have been created and signed off
For example, the requirements discipline considered to be
complete when :
◦ all the requirements have been identified in detail, reviewed, and
documented in the system/software requirements spec (SRS)
◦ then the output (e.g., SRS) from requirements flows into the architecture
discipline
Classic Waterfall Model
Phases Work
Products
Requirements SRS
Design SAD
Integration Prelim
Build
Test (Validation & Verification) Final Build
Release
Deployment d
Product
Hotfixes
Maintenance Patches
Minor
Release
46
Waterfall Process
This approach is widely used in:
◦ the development of a system involves a relative
small amount of risk
◦ projects represent minor enhancements of an
existing system
Iteration:
◦ A short and set duration of a project
◦ Allow to demonstrate incremental value
◦ Obtain early and continuous feedback
An iterative approach:
◦ Allows early user feedback through
execution of incremental releases
◦ Scrum
◦ Extreme Programming (XP)
Agile Process - Scrum
Scrum is one of the framework under the Agile software development
◦ Scrum emphasizes taking a short step of development, inspecting the resulting product Did it
meet expectations?
◦ and the efficacy of current practices How can we work better or make the product better?
◦ and then adapting the product goals and process practices Is this still the most valuable
feature to deliver at this time?
◦ Repeat forever!!!!!
Design
Coding
Test
Extreme Programming
(XP)
Characteristics
◦ Focuses on productivity and software quality
◦ Quick releases, with a recommended two-week iteration
◦ Each iteration results in production-ready code
◦ Highly productive, self-organized teams
XP Core Practices
◦ Small releases – smaller increments mean rapid deployments
◦ Pair programming: two programmers- one enters code, the other ensures that code is
accurate, periodically switch roles
◦ Test-driven Development (TDD) – writes acceptance tests prior to developing code
◦ Customer tests – customer describes test criteria
◦ Continuous integration – check code into a build several times a day
◦ Simple design – adapt as necessary/revisit as needed
The End
Summary
Process of Architecting
◦ Process: Ph…., It…., Act…..
◦ Method Content:
Work P…..
Ta….
Ro…..
◦ Types of Process
Waterfall
Iterative
Phases: In…., Ela…., Cons…., Trans….
Iterations
Agile
Agile Manifesto
Scrum
Summary
Agile
Agile Manifesto – The four values:
1. Individuals and Interactions Over P_______ and T____
2. Working S_______ Over Comprehensive Documentation
3. Customer C___________ Over Contract Negotiation
4. Responding to Change Over Following a P_____
Agile Methodologies:
◦ Scrum
◦ Extreme Programming
Coming Next…
62
Assignments
Assignment: Introduce Yourself to Your Classmates
and Professor by Friday Sept 02, 5PM
63
Q&A
Any questions?