Advance Software Engineering

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Chapter 2 – Software Processes
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Design Concepts and Principles
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 10 Architectural Design
The Design Discipline.
Engineering, Operations & Technology | Information TechnologyAPEX | 1 Copyright © 2009 Boeing. All rights reserved. Architecture Concept UG D- DOC UG D-
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
The Challenge of IT-Business Alignment
Lecture 9: Chapter 9 Architectural Design
Identify steps for understanding and solving the
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 13 Architectural Design
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Chapter 7 Applying UML and Patterns Craig Larman
Systems Analysis and Design in a Changing World, 3rd Edition
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 Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Software Engineering COSC 4460 Class 4 Cherry Owen.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Design Concepts ch-8
Chapter 2 Object-Oriented Paradigm Overview
Software Project Configuration Management
The Components of Information Systems
Software Process Activities.
Unified Modeling Language
Chapter 13 Architectural Design
The Systems Engineering Context
Chapter 13 Architectural Design
Part 3 Design What does design mean in different fields?
Software Quality Engineering
CHAPTER 3 Architectures for Distributed Systems
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Overview of System Engineering
The Components of Information Systems
Systems analysis and design, 6th edition Dennis, wixom, and roth
Chapter 9 Architectural Design
Software Architecture
Systems analysis and design, 6th edition Dennis, wixom, and roth
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Chapter 13 Architectural Design
Object oriented analysis and design
Analysis models and design models
CS 8532: Advanced Software Engineering
An Introduction to Software Architecture
Chapter 9 Architectural Design.
CS385T Software Engineering Dr.Doaa Sami
CHAPTER 9 (part a) BASIC INFORMATION SYSTEMS CONCEPTS
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Requirements Engineering Lecture 6
Presentation transcript:

Advance Software Engineering Architecture Design Syed Saqib Raza Rizvi Lecture 3

What is Design? Design allows you to model the system or product that is to be built. Design helps to understand Technical details better. Design is a Process of Converting: What to do?? ======= How to do? (R.E) (Design)

What is Design? Design is what almost every engineer wants to do, core of engineering process It is the place where creativity rules—where stakeholder requirements, business needs, and technical considerations all come together in the formulation of a product or system

What is Design? The design model provides detail about software architecture, data structures, interfaces, and components that are necessary to implement the system

System A system is a collection of components organized to accomplish a specific function or set of functions (IEEE Std. 610.12-1990)

Software Architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, and the relationships among them

Software Architecture Architectural design represents the structure of data and program components that are required to build a computer-based system.

Why is it important? You wouldn’t attempt to build a house without a map, would you? You’d need to look at the big picture—the house itself—before you worry about details. That’s what architectural design does—it provides you with the big picture and ensures that you’ve got it right

Why is it important? Representations of software architecture are an enabler for communication between all parties (stakeholders) The architecture highlights early design decisions that provide you solid foundations on which software will be built Architecture “constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together”

Software Architecture Software architecture is:   An overall view of the solution to a problem The high-level design of modular components and how they interact A foundation that one can build on to solve a problem (e.g., rules, policies, attributes, etc.)

A Brief Taxonomy of Architectural Styles Data-centered architectures:

A Brief Taxonomy of Architectural Styles Call and return architectures:

A Brief Taxonomy of Architectural Styles Main program/subprogram architecture:

A Brief Taxonomy of Architectural Styles Object-oriented architectures:

Software Architecture: Example Level 1 Design Security Check Student’s Records Student’s Account Student’s Academic Teacher’s Record Teacher’s Account

Software Architecture: Example Level 2 Design User Name & Password Secret Question Access Deny Gives New Password Allow Access Open Main Page WRONG Right WRONG Right Security

Software Architecture: Example Student Main Page Add new Student Record Add Student Personal Information Add Student Academic Information Add Student Accounts Information Search Student Record Grant All Available Information Students Level 1 Design Admin Department Examination Accounts

Software Architecture Defining architecture is part of the software development process Its primary goal is to define the non-functional/ functional requirements of a system. Architecture is also important because it: Controls complexity Gives Consistency and Uniformity Reduces risk Enables re-use

Software Architecture Architecture focuses on how the major elements and components within an application are used by, or interact with, other major elements and components within the application

Why is Architecture Important? The risks exposed by poor architecture include software that is unstable, is unable to support existing or future business requirements, or is difficult to deploy or manage in a production environment

Why is Architecture Important? Systems should be designed with consideration for the user, the system, and the business goal Business System User

Why is Architecture Important? Consider the following high level concerns when thinking about software architecture:   How will the users be using the application? What are the quality attribute requirements for the application, such as security, performance, and configuration? How can the application be designed to be flexible and maintainable over time?

The Goals of Architecture Application architecture seeks to build a bridge between business requirements and technical requirements The goal of architecture is to identify the requirements that affect the structure of the application A good design is sufficiently flexible to be able to handle the natural change that will occur over time in hardware and software technology, as well as in user requirements

The Goals of Architecture An architect must consider the overall effect of design decisions, the inherent tradeoffs between quality attributes (such as performance and security), and the tradeoffs required to address user, system, and business requirements

The Goals of Architecture Keep in mind that the architecture should: Expose the structure of the system but hide the implementation details Realize all of the use cases and scenarios Try to address the requirements of various stakeholders Handle both functional and quality requirements

The Principles of Architecture Design Current thinking on architecture assumes that your design will evolve over time and that you cannot know everything you need to know up front in order to fully architect your system Your design will generally need to evolve during the implementation stages of the application Create your architecture with this evolution in mind so that it will be able to adapt to requirements that are not fully known at the start of the design process

The Principles of Architecture Design Consider the following questions as you create an architectural design:   What are the foundational parts of the architecture that represent the greatest risk? What are the parts of the architecture that are most likely to change? What are your key assumptions, and how will you test them? What conditions may require you to re-factor the design?

The Principles of Architecture Design Do not attempt to over engineer the architecture, and do not make assumptions that you cannot verify, Instead, keep your options open for future change

The Principles of Architecture Design Key Architecture Principles:  Build to change Reduce risk Use models and visualizations as a communication and collaboration tool Identify key engineering decisions

ASSIGNMENT Architectural Patterns: Built architectural patterns from your Requirement Documents.

The End Thank You So Much!!