Download presentation
Presentation is loading. Please wait.
Published byWinfred McDonald Modified over 9 years ago
1
CSPC 464 Fall 2014 Son Nguyen
2
Attendance/Roster Introduction ◦ Instructor ◦ Students Syllabus Q & A
4
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
6
To guide you through the tasks and associates best practices that are applied in architecting a software system To provide tools and techniques that can be applied immediately to today’s challenges To create a “toolbox” that can be used for tomorrow’s challenges To stimulate thinking about the future of software engineering To ensure that we are all better engineers by semester’s end To have some fun too! 6
7
See the syllabus – Lecture topics 7
8
Each student will participate in a group project Groups will create a software architecture for a fictitious but realistic software product The project will help ◦ Put course material into context and practice ◦ Provide framework for questions ◦ Demonstrate your mastery of materials Project is non-trivial! ◦ ASK QUESTIONS!! 8
9
Why you are here? What are special areas of interest or concern? Real-world problems with which you’d like to help? Where do you begin? When can you participate in architecting? How can I make this class more meaningful for you? 9
10
“Our civilization runs on software” (Bjarne S.) Software touch many aspects of our everyday lives – found in something simple and in very complex systems Software needs to ◦ Provide the required capacity ◦ Be of sufficient quality ◦ Be available when needed ◦ Get delivered at acceptable price These characteristics are directly influenced by the architecture of the software 10
11
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 ◦ What is yours? As a noun, architecture is about the complex or carefully designed structure of something As a verb, architecture is about understanding what you need to build, creating a vision for building it and making the appropriate design decisions. 11
12
12
13
There are many different types of architecture and architects within the IT industry alone: ◦ Data, hardware, enterprise, system, security, ◦ Software, information, application, etc. What do they all in common? ◦ Structure ◦ Vision Regardless of whether you’re building a software system, a network or a database; a successful solution requires: ◦ to understand the problem ◦ create a vision that can be communicated to everybody involved with the construction of the end-product. 13
14
Architecture, regardless of the domain, is about structure and vision.
15
It’s about the architecture of a piece of software, right? Well, yes, but it’s about more than just software. It’s anything and everything related to the significant elements of a software system; from the structure and foundations of the code through to the successful deployment of that code into a live environment. A combination of ◦ Application architecture aspects of software design and the organization of the code usually only concerned with a single technology stack (e.g., Java, Microsoft.NET, etc.) 15
16
The building blocks include things like programming languages and constructs, libraries, frameworks, APIs, etc. It’s described in terms of classes, components, modules, functions, design patterns, etc. ◦ and System architecture: one step up in scale from application architecture composed of multiple applications across a number of different tiers and technologies (e.g, a software system comprised of a.NET Silverlight client accessing web services on a Java EE middle-tier, which itself consumes data from an Oracle database. Each of these will have their own application architecture) The building blocks are a mix of software and hardware, including things like programming languages and software frameworks through to servers and infrastructure 16
17
Applications are becoming larger, more integrated, and are implemented using a wide variety of technologies. The various technologies and disciplines need to be orchestrated to ensure product quality. Quality attributes like reliability or usability cannot be analyzed at the code level, but they can be analyzed at the software architectural level 17
18
Individual responsible for the creation and rework of a software architecture throughout the product’s lifecycle Software architect does not work alone! ◦ Leads an architecture team ◦ Works with requirements engineers and functional designers to ensure the orderly transition of processes, artifacts, and information 18
19
Must have ◦ Technology knowledge ◦ 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 19
20
The activities of defining, documenting, maintaining, improving, and certifying proper implementation of an architecture. (IEEE 1471.2000) The art and science of defining and reworking software architectures Is an ongoing, not a one-time activity ◦ Architecting begins with requirements engineering ◦ Architecture is reworked as necessary throughout the product’s lifecycle ◦ Architect participates in the test discipline, ensuring that the architecture is both testable and tested 20
21
Need to have a common understanding of how the product is to be built ◦ As with any complex problem, there is more than one possible solution ◦ Need to ensure that we are all working on the same solution Need to have a consistent definition of the product architecture ◦ Single version of Truth ◦ Prevent confusion and avoidable rework 21
22
Customers expect a high-quality for their money. End-product: ◦ does what we said it would do ◦ Behaves/performs the way our customer expected ◦ Is usable for the purpose for which the customer bought it We cannot stay in business (very long) delivering products that are make our customers unsatisfied. 22
23
Next time, we will take a look at architecture and the process of architecting Homework assignments this week – read chapter 1 & 2 23
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.