Software Design: Principles, Process, and Concepts Getting Started with Design.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 11 Component-Level Design
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
Analysis Modeling.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Chapter 10: Architectural Design
Chapter 9 Design Engineering
Architectural Design.
What is Software Architecture?
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Chapter 10 Architectural Design
The Design Discipline.
Design Concepts "You can use an eraser on the drafting table or a sledge hammer on the construction site." Frank Lloyd Wright.
Design Issues Practice: A generic View Design Principles.
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
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.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Chapter 5 CS 8532: Advanced Software Engineering Dr. Hisham Haddad Class will start momentarily.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Chapter 9 요구사항 모델링: 시나리오 기반 방법론 Requirements Modeling: Scenario-Based Methods 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
Chapter : Design Engineering. Design Engineering It covers the set of principles, concepts, and practices that lead to the development of a high quality.
Systems Analysis and Design in a Changing World, 3rd Edition
Design Concepts and Principles Instructor: Dr. Jerry Gao.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11a: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
DESIGN OF SOFTWARE ARCHITECTURE
Software Engineering B.Tech IT/II Sem-II Term: Unit-4 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
Component Design Elaborating the Design Model. Component Design Translation of the architectural design into a detailed (class-based or module- based)
Chapter : 9 Architectural Design
Chapter : 8 Design Concepts
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
UA. Unified Approach ( UA ) It combines best practices, methods process, guidelines & methodology (Rumbaugh, Booch and Jacobson) along with UML notations.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Architectural Design Communicating: Big Picture Holistically Gestalt.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
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 9 Design Engineering
CompSci 280 S Introduction to Software Development
Design engineering Prepared By:Jay A.Dave..
Design and Implementation
Lecture 9- Design Concepts and Principles
Software Quality Engineering
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 9 Requirements Modeling: Scenario-Based Methods
Component-Level Design
Chapter 9 Design Engineering
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Lecture 9- Design Concepts and Principles
Software Engineering Practice: A Generic View
UNIT III Design Engineering
Software Development Process Using UML Recap
Presentation transcript:

Software Design: Principles, Process, and Concepts Getting Started with Design

General Information on Design Analysis (requirements) model vs. design model End User vs. Developer Function and behavior (what) vs. architecture, interface, and component (how) Primary views of the design Data/Classes: necessary information, data structures, data stores, objects and actors Architecture: Overall “big picture” of relationships among system elements, design framework and patterns Deployment: How system is hosted in target environment (i.e., what computers, data files, networks, and/or other infrastructure). Interfaces: user, external, and internal Components: refinement of visible object classes to include system, support, and utility classes.

Design Modeling: Principles Design should result from analysis Design should consider s/w architecture first Give thought to data structures (foundation of design). Good data design simplifies components. Give extra care to communicate across interfaces Keep user in mind when creating UI, stress easy use, not easy implementation. Keep components cohesive (functionally independent) Keep components loosely coupled (simple interfaces) Keep your designs (and design descriptions) simple and easily understood Develop the design iteratively See task set on pg 112 6/e (and more detailed on pg 222 7/e, pg 232 6/e)

Design Modeling: Process Class Modeling Examine analysis class diagrams for data characteristics: content, pervasiveness, sharing, flow, transformation, persistence Examine analysis class diagrams and use cases for problem domain actors and objects, processes, constraints, and interfaces Architecture Modeling Identify all major system components Determine relationships among major components, business processes, system elements Apply design framework or pattern (if appropriate) Interface Design Three interface types: user, external and internal Component-Level Design Elaborate and refine detail of major components Add helper, system and utility classes as required Re-factor as required

Design Modeling: Concepts Abstraction: allows us to handle complexity Architecture: organizes program components Patterns: when applicable, provides insight or guidance for design choices Modularity: the mechanism for implementing abstractions Information Hiding: inhibits side effect errors Functional Independence: low coupling and high cohesion Refinement: the manner in which designs are elaborated Refactoring: improving the internal structure of the design or code

Additional Points of Emphasis Diversification and convergence (pg 216 7/e, pg227 6/e) Quality Attributes (pgs /e, pgs /e) Functionality Usability Reliability Performance Supportability Design Classes (pg 230 7/e, pg 239 6/e) UI Classes Business Domain Classes Process Classes Persistent Classes System Classes Application-specific classes