Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.

Similar presentations


Presentation on theme: "CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A."— Presentation transcript:

1 CSPC 464 Fall 2014 Son Nguyen

2  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A

3

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

5

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


Download ppt "CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A."

Similar presentations


Ads by Google