This site is 100% ad supported. Please add an exception to adblock for this site.

SE549 Lecture 1

Terms

undefined, object
copy deck
Separation of concern
is the process of breaking a computer program into distinct features that overlap in functionality as little as possible
Software entity is a construct of interlocking concepts
Data sets Relationships among data items Algorithms Invocations of functions
Inherent properties of building software
Complexity Conformity Changeability Invisibility
Principles of Software Engineering
Separation of concerns Modularity Abstraction Refinement Anticipation of change Automation Compositionality
Abstracting some design means
removing its non-essential details while preserving the essentials
Refinement is
is a contrivance or device intended to improve or perfect something
Step-wise refinement is
the ability to create complex programs by progressively introducing implementation details into simpler programs
The Context of Software Architecture
Requirements Architecture Design Implementation
Requirements are concerned with
the determination of the information, processing, and characteristics of that information and processing needed by the user of the system
Architecture is concerned with
the selection of architectural elements, their interactions, and the constraints on those elements and their interactions necessary to provide a framework in which to satisfy the requirements and serve as a basis for the design
Design is concerned with the
modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements
Implementation is concerned with s
the representation of the algorithms and data types that satisfy the design, architecture, and requirement
Software Architecture
the structure of structures of the system, which comprises software components, the externally visible properties of those components, and the relationships among them
Importance of Software Architecture
Serves as an enabler for communication between all stakeholders participating or interested in the development of a computing system Highlights design decisions that have a profound impact on all software engineering work and the ultimate success of the system as an operational entity Constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together
Software Architecture =
{ Elements, Form, Rationale }
Classes of architectural elements
Processing elements Data elements Connecting elements
Architectural Form
Consists of weighted properties and relationships The necessity of selecting among alternatives
Rationale
Captures the motivation for the choice of architectural style, the choice of elements, and the form
Architectural style encapsulates
important decisions about the architectural elements and emphasizes important constraints on the elements and their relationships
An architectural style is a
coordinated set of architectural constraints that restricts the 57 roles/features of architectural elements and the allowed relationships among those elements within any architecture that conforms to that style.
Architectural Problems
Architectural erosion Architectural drift
Architectural erosion
Violations of the architecture Increasing brittleness of the system
Architectural drift
Insensitivity about architecture Results in lack of coherence and clarity of form Leads to architectural erosion
A model is an
artifact constructed to represent something
Models
Used to communicate core ideas Often based on mathematical objects (numbers, sets, etc) Abstraction is of vital importance simplicity is the key are used to ensure that solutions are sound
Davis’ Law
The value of a model depends on the view taken, but none is best for all purposes

Deck Info

26

johnnyinnsbrook

permalink