Chapter 1 - Introduction
Chapter 1 - Introduction
(Seng 6131)
1
Content
❖Introduction
❖As per the IBM report, “31% of the project get cancelled before they are
completed, 53% overrun their cost estimates by an average of 189% and for every
100 projects, there are 94 restarts”.
➢Enabling achievement of
quality requirements
➢ etc.
❖However,→
5
Define Software Architecture
❖Software Engineers have always employed software architectures
➢Very often without realizing it!
Define Software Architecture…
❖What is your definition of software architecture?
➢More than150 definitions – “ What Is Your Definition of Software
Architecture“
❖Definition
• is the set of structures needed to reason about the system,
• comprise software elements, relations among them, and properties of both.
• Allocation structures
• mapping from software structures to the system’s organizational,
developmental, installation, and execution environments
• E.g. Work Assignment, Deployment, Implementation
8
Define Software Architecture…
❖Implications of the definition ….
➢Architecture is an abstraction
• information that has no effects outside of a single element is omitted
• i.e. focuses on public aspects of interfaces
11
Analogy with Building Architecture
❖Parallels
➢Satisfaction of customers’ needs
➢Specialization of labor
➢Multiple perspectives of the final product
➢Intermediate points where plans and progress are reviewed
➢Properties of structures are induced by the design of the architecture
➢The architect has a distinctive role and character
➢Architecture has matured over time into a discipline
➢Differences
➢We know a lot about buildings, much less about software
➢The nature of software is different from that of building architecture
➢Software is much more malleable than physical materials
➢The two “construction industries” are very different
➢Software deployment has no counterpart in building architecture
➢Software is a machine; a building is not 12
Architectural Structures and Views
• ….
❖Structure
➢The set of elements, as they
exist in software or hardware
14
Architectural Structures and Views…
• …..
15
Architectural Structures and Views…
❖Relating Structures to each other
➢Each of these structures provides a different perspective and each is valid
➢But they are not independent
Conflict of Quality-requirements
17
Why Is Software Architecture Important?...
2. Reasoning about and managing change
➢About 80 %of a typical software system’s total cost occurs after initial deployment
• accommodate new features, adapt to new environments, fix bugs, and so forth.
➢Every architecture partitions possible changes into three categories
Change Type The change Difficulty
local can be accomplished by modifying a single element. Easy and the most
desirable
Nonlocal requires multiple element modifications and Medium
underlying architectural approach remains intact
Architectural affects the fundamental ways in which the elements Difficult
interact with each other and will probably require
changes all over the system
➢Obviously, local changes are a good architecture is the one in which the most
common changes are local, and hence easy to make.
18
Why Is Software Architecture Important?...
3. Predicting system qualities
➢Predicting system qualities is possible as we know that certain
kinds of architectural decisions lead to certain QAs in a system,
➢The earlier you can find a problem in your design,
the cheaper, easier, and less disruptive it will be to fix.
19
Why Is Software Architecture Important?...
5. Early design decisions
➢SA is a manifestation of the earliest design decisions about a system
➢Each decision constrains the many decisions that follow.
22
Why Is Software Architecture Important?...
9. Improving cost and schedule estimates
➢Architect helps to create cost and schedule estimates
early in the project life cycle
• Project life cycle. How does a software architecture relate to the other phases of a
software development life cycle?
❖Professional Context
❖You will perform many duties beyond directly producing an architecture.
❖Architects need more than just technical skills.
❖Explaining, diplomatic, negotiation, and communication skills.
❖Architects need up-to-date knowledge: You will need to know about (for example)
patterns, or database platforms, or web services standards.
28
Stakeholders
❖ Know your stakeholders
as early as possible
30
What Do Architectures Influence?
❖Technical Influence - architecture can affect stakeholder requirements for the
next system
❖Shrink-wrapped software has clearly affected people’s
❖Project Influence - The architecture affects the structure of the developing
organization.
➢Teams are formed for individual software units; and the development, test, and integration
activities all revolve around the units.
❖Business Influence - can affect the business goals of the developing organization.
• A successful system built from an architecture can enable a company to establish a
foothold in a particular market segment.
❖Professional Influence - The process of system building will affect the architect’s
experience with subsequent.
• A successful approach successful system will be used again and again in the subsequent
system development & Architectures that fail are less likely to be chosen for future
projects.
31
Software Design Vs. Software Architecture
32
Possible Research Areas and Papers for presentation
1. Possible research problem
1. Software Architecture based
• software cost and schedule Estimation
• Software Development Effort estimation
2. Detecting & addressing quality-requirement conflicts ( example using Game Theory)
3. Detecting quality Attribute Cooperation.
2. Paper Presentation
1. Identifying quality-requirement conflicts, by B.Boehm and H.In, 1996
• Assigned to: Birara Chanie, 16-Dec-20
2. Identifying Requirements Conflicts and Cooperation: How Quality Attributes and
Automated Traceability Can Help, by Alexander Egyed and Paul Grunbacher, 2016
• Assigned to: Yohannes Sefane, 16-Dec-20
3. Software Architectural Design in Agile Environments, by Mehdi Mekni et al., 2017
• Assigned to: Megdalewit Bewketu + Melese Awoke, 23-Dec-2020
33