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

Slides:



Advertisements
Similar presentations
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
Advertisements

Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Software Architecture in Practice
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Lecture Nine Database Planning, Design, and Administration
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
CSC230 Software Design (Engineering)
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Enterprise Architecture
The Many Contexts of Software Architecture
Software Architecture in Practice (3rd Ed) Introduction
Effective Methods for Software and Systems Integration
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Copyright Course Technology 1999
CPTE 209 Software Engineering Summary and Review.
Elements of Software Architecture
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Twelfth Lecture Hour 10:30 – 11:20 am, Saturday, September 15 Software Management Disciplines Project Organization and Responsibilities (from Part III,
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
Software Requirements Engineering CSE 305 Lecture-2.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
CSE 102 Introduction to Computer Engineering What is Computer Engineering?
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSE 303 – Software Design and Architecture
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering Lecture 10: System Engineering.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
Enterprise Architectures. Core Concepts Key Learning Points: This chapter will help you to answer the following questions: What are the ADM phase names.
Quality Consulting Module 7 Solution Development.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
MIS Project Management Instructor: Sihem Smida Project Man agent 3Future Managers1.
Advanced Software Engineering Dr. Cheng
Building Enterprise Applications Using Visual Studio®
CompSci 280 S Introduction to Software Development
Software Architecture Lecture 3
Chapter 1- Introduction
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Software Architecture Lecture 3
Software Architecture Lecture 3
Software Architecture Lecture 3
Software Architecture Lecture 3
Chapter 5 Architectural Design.
Software Architecture Lecture 3
Presentation transcript:

CSPC 464 Fall 2014 Son Nguyen

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

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

 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

 See the syllabus – Lecture topics 7

 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

 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

 “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

 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

 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

Architecture, regardless of the domain, is about structure and vision.

 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

 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

 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

 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

 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

 The activities of defining, documenting, maintaining, improving, and certifying proper implementation of an architecture. (IEEE )  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

 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

 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

 Next time, we will take a look at architecture and the process of architecting  Homework assignments this week – read chapter 1 & 2 23