CSEB233: Fundamentals of Software Engineering. Software Design
|
|
- Gerard Bond
- 5 years ago
- Views:
Transcription
1 CSEB233: Fundamentals of Software Engineering Software Design
2 Objectives Explain set of design principles, concepts, and practices Describe five design models complete design specification: required for a data design architectural design user interface design component-level design deployment-level design Use design support tools and evaluation Explain the use of design specification document Explain the concepts of secure software design
3 Software Design Design Principles, Concepts, and Practices
4 What is Design? Design creates software a representation or model of the But unlike the analysis provides details about: model, the design model software architecture data structures interfaces, and components that are necessary to implement the system. Why is it important? The model can be assessed for quality and improved before code is generated Tests are conducted, and more users are involved.
5 Analysis Models Design Model The four design models scenar io- based element s use-cases - text use-case diagrams activity diagrams swim lane diagrams Analysis Model f l ow- or ient ed element s data flow diagrams control-flow diagrams processing narratives Int e rf a c e De sign Com pone nt - Le v e l De sign cl ass- based element s class diagrams analysis packages CRC models collaboration diagrams behavior al element s state diagrams sequence diagrams Arc hit e c t ura l De sign Da t a / Cla ss De sign Design Model Each of the elements of the analysis/requirements model provides information that is necessary to create the design models required for a complete design specification.
6 Characteristics of Good Design Must implement all of the explicit requirements contained in the analysis model Must accommodate all the implicit requirements desired by the customer Must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software Should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective (McGlaughlin, 1991)
7 Design Principles The design process should not suffer from tunnel vision The design should be traceable to the analysis model The design should not reinvent the wheel Reinventing the wheel means to duplicate a basic method that has previously been created or optimized by others The design should minimize the intellectual distance between the software and the problem as it exists in the real world The design should exhibit uniformity and integration (Davis,1995 )
8 Design Principles The design should be structured to accommodate change The design should be structured to degrade gently, even when irregular data, events, or operating conditions are encountered The design should be assessed for quality as it is being created, not after The design should be reviewed to minimize conceptual (semantic) errors
9 Design Concepts Fundamental design concepts that span both traditional and OO software development include: Abstraction Architecture Patterns Separation of concerns Modularity Information hiding Functional Independence Refinement Aspects Refactoring OO Design concepts Design classes
10 Abstraction Use many levels of abstraction in design for a modular solution. At the highest level of abstraction, a solution is stated using the language of the problem environment At lower levels of abstraction, a more detailed description of the solution is provided. Finally, at the lowest level of abstraction, the solution is stated in a manner that can be directly implemented. Two types of abstraction: Procedural abstraction - sequence of instructions that have a specific and limited function Data abstractions - named collection of data that describes a data object
11 Abstraction door details of enter algorithm Implemented with a "knowledge" of the object that is associated with enter door manufacturer model number type swing direction weight Implemented as a data structure
12 Abstraction Data abstraction refers to, providing only essential features by hiding its background details b1 is an object calling input and output member functions. But that code is invisible to the object b1
13 Architecture Describes the overall structure of the software: organization of program components (modules), the manner in which these modules interact, and the structure of data used by the components
14 Patterns A design pattern describes a design structure that solves a particular design problem within a specific context. The objectives is to provide a description that enables a designer to determine whether the pattern: Is application to the current work Can be reused Can serve as a guide for developing a similar design pattern E.g. Online pattern searching: %2F%Fpatents.uspto.gov%2Fpatft%2Findex.html Under Quick Search, try to search pattern no and you will get automated spell analysis pattern.
15 Separation of Concerns A design concept that suggests any complex problem can be easily handled if it is sub-divided into pieces that can be solved independently A concern is a feature or behavior that is specified as part of the requirements model for the software. By separating problems into smaller, more manageable pieces, a problem takes less time and effort to solve Manifested in other design concepts: modularity, aspects, functional independence and refinement
16 Modularity When software is divided into separately named and addressable components (modules). Reasons for modularisaton: To ease the planning for implementation (coding) To define and deliver software increments To easily accommodate changes To efficiently test and debug program, and To conduct long-term maintenance without serious side effects
17 Modularity : Example vs. How many modules? Cost/module
18 Aspects Ideally, a requirements model can be organized in a way that allows you to isolate each concern so that it can be considered independently. In practice, some of these concerns span the entire system and cannot be easily compartmentalized i.e. crosscut one another. An aspect is a representation of a crosscutting concern. It is important to identify aspects so that the design can properly accommodate them as refinement and modularization occur.
19 Functional Independence Achieved by developing independent modules and aversion to excessive interaction with other modules. Module independence is measured using two quality criteria: cohesion and coupling. Cohesion is an indication of the relative functional strength of a module a cohesive module should (ideally) do just one thing Coupling is an indication of the relative interdependence among modules depends on the interface complexity between modules, the point at which entry or reference is made to a module, and what data pass across the interface.
20 Functional Independence Cohesion:
21 Functional Independence Coupling: High and Low Coupling between Modules
22 Refinement Top down design strategy where program is developed by successively refining levels of procedural detail in a hierarchical manner. It is an elaboration process that begins at a high level of abstraction. Abstraction and refinement are complementary. While abstraction hide unnecessary details from the outsiders, refinement helps to reveal low-level detais and design progresses.
23 Refinement open walk to door; reach for knob; open door; walk through; close door. repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat
24 Information Hiding Suggests that modules should be specified and designed so that information (data structures and algorithm) contain within a module is inaccessible to other modules that have no need for such information Implies that effective modularity can be achieved by defining a set of independent modules that communicate with one another only necessary information
25 Information Hiding: Example Suppose we have a Time class that counts the time of day: The Display() member function prints the current time onscreen. This member function is accessible to all It is therefore declared public In contrast, the data member ticks is declared private. External users could not access it Regardless of how Display() extracts the current timestamp from ticks, users can be sure that it will do the right thing and display the correct time onscreen.
26 Refactoring Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code [design] yet improves its internal structure (Fowler, 1999) When software is refactored, the existing design is examined for redundancy unused design elements inefficient or unnecessary algorithms poorly constructed or inappropriate data structures or any other design failure that can be corrected to yield a better design. The result will be software that is easier to integrate, test and maintain.
27 Object-oriented Design Concepts Design classes Entity classes Boundary classes Controller classes Inheritance all responsibilities of a superclass is immediately inherited by all subclasses Messages stimulate some behavior to occur in the receiving object Polymorphism a characteristic that greatly reduces the effort required to extend the design
28 Design Classes As the (OO) design evolves, a set of design classes that refines the analysis classes by providing design detail is defined. Analysis classes are refined during design to become entity classes Boundary classes are developed during design to create the interface (e.g., interactive screen or printed reports) that the user sees and interacts with as the software is used. Boundary classes are designed with the responsibility of managing the way entity objects are represented to users. Controller classes are designed to manage the creation or update of entity objects; the instantiation of boundary objects as they obtain information from entity objects; complex communication between sets of objects; validation of data communicated between objects or between the user and the application.
29 Software Design Design Models
30 Design Models high analysis model class diagrams analysis packages CRC models collaboration diagrams data flow diagrams control-flow diagrams processing narratives use-cases - text use-case diagrams activity diagrams swim lane diagrams collaboration diagrams state diagrams sequence diagrams class diagrams analysis packages CRC models collaboration diagrams data flow diagrams control-flow diagrams processing narratives state diagrams sequence diagrams Requirement s: const raint s int eroperabilit y t arget s and conf igurat ion design model low design class realizations subsystems collaboration diagrams refinements to: design class realizations subsystems collaboration diagrams technical interface design Navigation design GUI design component diagrams design classes activity diagrams sequence diagrams refinements to: component diagrams design classes activity diagrams sequence diagrams design class realizations subsystems collaboration diagrams component diagrams design classes activity diagrams sequence diagrams deployment diagrams archit ect ure element s int erface element s component -level element s process dimension deployment -level element s
31 Design Model Elements Data design elements Creates a model of data and/or information that is represented at a high level of abstraction, which is subsequently refined into progressively more implementation-specific representations that can be processes by the computer. Architectural design elements Provides high-level overview of the system with detailed descriptions to be given by other design elements Defines the relationship between major structural elements of the software, each of which will have its own architecture.
32 Design Model Elements Interface design elements Describes how the software communicates with systems that interoperate with it, and with human who use it. Component-level design elements Defines the data structures, algorithms, interface characteristics, and communication mechanisms allocated to each software component or module Deployment-level design elements Indicate how software functionality and subsystems will be allocated within the physical computing environment that will support the software.
33 Data Design Elements Data modeling is the process of representing data objects and their relationships to other objects, by applying data modeling techniques. Data dictionary is the textual description of data objects and their inter-relationships. Data dictionary is commonly used in confirming data requirements and for database developers to create and maintain a database system.
34 Data Design Elements
35 Architectural Design Elements Software architecture is the structure of structures of the system, which comprise software components, the externally visible properties of those components and the relationship among them. Importance of software architecture: Enabler for communication between all parties (stakeholders) interested in the development of the software Highlights early design decisions that will have a profound impact on all software engineering work that follows Constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together
36 Architectural Styles Data-centred A data store resides at the centre and is accessed by other components that update, add and delete data. Data-flow Consisting of pipe and filters, this architecture is applied when input data are to be transformed through a series of computation components into output data. Call and return Decomposes function into a hierarchy where a main program invokes a number of program components that in turn may invoke still other components.
37 Architectural Styles Example: Architectural styles
38 Architectural Styles Object-oriented Components encapsulate data and operations, and communication and coordination between components are through message passing Layered A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set.
39 Component-level Design Component is a modular building block for computer software Three views of what a component is: Object-oriented view a set of collaborating classes Traditional view a functional element of a program comprising processing logic and related internal data structures and interfaces Process-related view proven reusable design or code level components made available for use as design work proceeds
40 Component-level Design
41 Interface Design Elements Three golden interface design rules of human-computer 1. Place the user in control 2. Reduce the user s memory load 3. Make the interface consistent Graphical user interface (GUI) is a collection of mechanisms defined to enable software designers to build system that implement the golden rules. Are designed following the analysis results e.g. state diagram and swimlane diagram
42 Interface Design Elements The user interface (UI)
43 Deployment-level Design Source:
44 Deployment-level Design Source:
45 Software Design Design Support Tools
46 Design Support Tools All aspects of the software engineering can be supported by software tools: from project management software through tools for business and functional analysis, system design, code storage, compilers, translation tools, test software, and so on. However, tools that are concerned with analysis and design, and with using design information to create parts (or all) of the software product, are most frequently thought of as CASE tools. List of CASE tools:
47 CASE Tool: Example IBM Rational Software Architect Source:
48 CASE Tool: Example Database Modeling: Enterprise Architect by Sparx Systems Pty Ltd. Source:
49 Design Evaluation A good software design minimizes the time required to create, modify, and maintain the software while achieving run-time performance (Shore and Chromatic, 2007) Design quality is people-sensitive. For instance, design quality is dependent upon the programmers writing and maintaining the code. Design quality is change-specific. There are two general ways to make designs of higher quality with respect to this aspect: generalizing from the tools like design patterns, and using tests and refactoring as change-enablers. (Elssamadisy, 2007)
50 Design Evaluation Modification and maintenance time are more important than creation time because time spent in maintenance is much more than creation time of a software, and in iterative development, modification happens during the initial creation of the software Design quality is unpredictable Because quality is really dependant on the team developing the software. As the team changes, or evolves, then the design quality also evolves You really only know how good a design is by its standing the test of time and modifications
51 Design Evaluation Points to ponder: To maintain the quality of the design, we must maintain the theory of the design as the programming team evolves, That design quality is tied to the people who are building and maintaining the software (Shore and Chromatic, 2007)
52 Software Design Design Specification
53 Design Specification IEEE Standard for Information Technology - Systems Design - Software Design Descriptions (IEEE ) an improved version of the 1998 version This standard specifies an organizational structure for a software design description (SDD) An SDD is a document used to specify system architecture and application design in a software related project Provides a generic template for an SDD
54 SDD: Examples Refer to m#_toc Refer to SDDSample.doc
55 Software Design Secure Software Design
56 Secure System Design Principles Saltzer [1974] and later Saltzer and Schroeder [1975] list the following design principles when creating secure programs, which are still valid: 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults
57 Least privilege Each user and program should operate using the fewest privileges possible. This principle limits the damage from an accident, error, or attack. It also reduces the number of potential interactions among privileged programs, so unintentional, unwanted, or improper uses of privilege are less likely to occur. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults
58 Economy of mechanism The protection system s design should be simple and small as possible. Simpler means less can go wrong; when errors occur, easier to understand and fix. Complex mechanisms may not be correctly: Understood Modeled Configured Implemented Used Keep it as simple as possible; KISS Principle 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults
59 Complete mediation Every access attempt must be checked; position the mechanism so it cannot be subverted. A synonym for this goal is non-bypassability. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults
60 Open design Security of a mechanism should not depend upon secrecy of its design or implementation. Security through obscurity is a bad idea Should be open for scrutiny by the community Better to have a friend/colleague find an error than a foe. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults
61 Separation of privilege Access to objects should depend on more than one condition, so that defeating one protection system won t enable complete access. - Separation of duty - System should not grant permission based on single condition. - Example: Company checks over $75,000 to be signed by two officers. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults
62 Least common mechanism Minimize the amount and use of shared mechanisms (e.g. use of the /tmp or /var/tmp directories). Shared objects provide potentially dangerous channels for information flow and unintended interactions. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults
63 Psychological acceptability Also known as easy to use. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults User interface must be easy to use, so that users routinely and automatically apply the mechanisms correctly. Otherwise, they will be bypassed.
64 Fail-safe defaults Also known as permission-based approach. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults Unless a subject is given explicit access to an object, it should be denied access to the object.
65 Summary This module has: Introduced set of design principles, concepts, and practices Described five design models required for a complete design specification: data design, architectural design, user interface design, component-level design and deployment level design. Introduced design support tools and evaluation Introduced design specification document (SDD) Introduced secure software design
66 THE END College of Information Technology
Design Concepts. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman
Chapter 8 Design Concepts Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational
More informationChapter 9 Design Engineering
Chapter 9 Design Engineering Moonzoo Kim CS Division of EECS Dept. KAIST 1 Roadmap of SEPA covered in CS550 Ch 1 Ch 5 1. Intro to SE 2. A Generic View of Process 3. Process Models 4. An Agile View of Process
More informationDesign Concepts and Principles
Design Concepts and Principles Analysis to Design Data Object Description Entity- Relationship Diagram Data Flow Diagram Process Specification (PSPEC) Component level design (or) procedural design Data
More informationIntroduction to Software Engineering
Introduction to Software Engineering (CS350) Lecture 09 Jongmoon Baik Design Concept 2 Design Mitch Kapor, the creator of Lotus 1-2-3, presented a software design manifesto in Dr. Dobbs Journal. He said:
More informationSlides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only
Chapter 12 Design Concepts Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S.
More informationLecture 8: Chapter 8!
Lecture 8: Chapter 8! Design Concepts! Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For
More informationCHAPTER 9 DESIGN ENGINEERING. Overview
CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative
More informationCS485/540 Software Engineering Design Concepts (Ch. 8)
CS485/540 Software Engineering Design Concepts (Ch. 8) Cengiz Günay Dept. Math & CS, Emory University Fall 2013 Some slides courtesy of Joan Smith, Roger Pressman, and the Internets Günay (Emory) Design
More informationComponent-Level Design
Component-Level Design Minsoo Ryu Hanyang University Contents 1. Design Model 2. Fundamental Design Concepts 3. Component-Level Design 4. Object-Oriented Design Techniques 2 2 Data/class design Four Design
More informationDesign. Introduction
Design Introduction a meaningful engineering representation of some software product that is to be built. can be traced to the customer's requirements. can be assessed for quality against predefined criteria.
More informationUNIT III. Software Design
UNIT III Software Design Design Specification Models Data design - created by transforming the analysis information model (data dictionary and ERD) into data structures required to implement the software
More informationChapter 9 Design Engineering
Software Engineering: A Practitioner s s Approach, 6/e Chapter 9 Design Engineering copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student
More informationArchitectural Design
Architectural Design Minsoo Ryu Hanyang University 1. Architecture 2. Architectural Styles 3. Architectural Design Contents 2 2 1. Architecture Architectural design is the initial design process of identifying
More informationTopic # 05. Software Systems Design Concepts. (Ch. 8) Analysis Model as a Bridge
Topic # 05 Software Systems Design Concepts (Ch. 8) 1 Analysis Model as a Bridge 2 Analysis Model as a Bridge System Description (by a customer) system description List of SW System Specifications (that
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationCAS 703 Software Design
Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Other 1 2 3 4 Other Principle of Least Privilege Principle of Fail-Safe Defaults Principle of
More informationChapter 6 Architectural Design. Chapter 6 Architectural design
Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying
More informationCS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS 1. Explain iterative waterfall and spiral model for software life cycle and various activities
More informationChapter 1: Principles of Programming and Software Engineering
Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without
More informationChapter 1: Programming Principles
Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key
More informationTopic : Object Oriented Design Principles
Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities
More informationObjectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture
Objectives Architectural Design To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural
More informationWHAT IS SOFTWARE ARCHITECTURE?
WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is
More information06. Analysis Modeling
06. Analysis Modeling Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Overview of Analysis Modeling 1 Requirement Analysis 2 Analysis Modeling Approaches
More informationR.S. Pressman & Associates, Inc. For University Use Only
Software Engineering: A Practitioner s Approach, 6/e Chapter 10 Architectural Design copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student
More informationWhat is Software Architecture
What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements
More information5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered
Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process
More informationArchitectural Design
Architectural Design Objectives To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural
More informationChapter 6 Architectural Design
Chapter 6 Architectural Design Chapter 6 Architectural Design Slide 1 Topics covered The WHAT and WHY of architectural design Architectural design decisions Architectural views/perspectives Architectural
More informationcopyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner s Approach, 6/e Chapter 10 Architectural Design copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student
More informationComponent-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only
Chapter 10 Component-Level Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit
More informationTHE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)
THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) By: Mr.Prachet Bhuyan Assistant Professor, School of Computer Engineering, KIIT Topics to be Discussed 9.1 INTRODUCTION 9.2 THE O-O DESIGN PROCESS
More informationArchitectural Design
Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN
More informationUnderstanding Modelpedia Authorization
With Holocentric Modeler and Modelpedia Understanding Modelpedia Authorization V1.0/HUG003 Table of Contents 1 Purpose 3 2 Introduction 4 3 Roles 4 3.1 System Authority Roles... 5 3.2 Role Inclusion...
More informationSoftware Design Fundamentals. CSCE Lecture 11-09/27/2016
Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -
More informationChapter 8: Class and Method Design
Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined
More information3.Analysis, design concepts and principles
3.Analysis, design concepts and principles Ooo OBJECTIVE To introduce the analysis and design concepts. To introduce design heuristics and architectural design. To explain data design for design concepts.
More informationLecture 1. Chapter 6 Architectural design
Chapter 6 Architectural Design Lecture 1 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process
More informationDesign Engineering. Overview
Design Engineering Overview What is software design? How to do it? Principles, concepts, and practices High-level design Low-level design N. Meng, B. Ryder 2 1 Design Engineering The process of making
More informationExpanding Our Horizons. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011
Expanding Our Horizons CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011 1 Goals of the Lecture Cover the material in Chapter 8 of our textbook New perspective on objects and encapsulation
More informationUNIT III DESIGN CONCEPTS AND PRINCIPLES
UNIT III DESIGN CONCEPTS AND PRINCIPLES Design process and concepts modular design design heuristic design model and document. Architectural design software architecture data design architectural design
More informationCHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS
CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS Design evaluation is most critical activity during software development process. Design heuristics are proposed as a more accessible and informal means
More informationVETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS6403 SOFTWARE ENGINEERING II year/ IV sem CSE (Regulation 2013) UNIT 1- SOFTWARE PROCESS AND PROJECT
More informationDesign Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman
CS314, Colorado State University Software Engineering Notes 4: Principles of Design and Architecture for OO Software Focus: Determining the Overall Structure of a Software System Describes the process
More informationDesign and Information Hiding
Design and Information Hiding 15-214: Foundations of Software Engineering Jonathan Aldrich Related Reading: D. L. Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. CACM 15(12):1053-1058,
More informationChapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design
Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design
More informationSoftware Design. Software design is a blueprint or a plan for a computerbased solution for system
Software Design Software Design Software design is a blueprint or a plan for a computerbased solution for system Software design deals with transforming the customer requirements, as described by the SRS
More informationProgrammazione. Prof. Marco Bertini
Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Introduction Why OO Development? Improved structure of software easier to: Understand Maintain Enhance Reusable
More informationChapter 5 Object-Oriented Programming
Chapter 5 Object-Oriented Programming Develop code that implements tight encapsulation, loose coupling, and high cohesion Develop code that demonstrates the use of polymorphism Develop code that declares
More informationArchitectural Design
Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures PART 1 ARCHITECTURAL DESIGN DECISIONS Recap on SDLC Phases
More informationSoftware Architecture
Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment
More informationThe Design Patterns Matrix From Analysis to Implementation
The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley
More informationSoftware Development. Modular Design and Algorithm Analysis
Software Development Modular Design and Algorithm Analysis Data Encapsulation Encapsulation is the packing of data and functions into a single component. The features of encapsulation are supported using
More informationWhat s Next. INF 117 Project in Software Engineering. Lecture Notes -Spring Quarter, Michele Rousseau Set 6 System Architecture, UML
What s Next INF 117 Project in Software Engineering Lecture Notes -Spring Quarter, 2008 Michele Rousseau Set 6 System Architecture, UML Set 6 2 Announcements kreqs should be complete Except minor changes
More informationMinsoo Ryu. College of Information and Communications Hanyang University.
Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based
More informationCS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L
CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L 2 0 1 5 Introduction At this point, you are ready to beginning programming at a lower level How do you actually write your
More informationC++ Important Questions with Answers
1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children
More informationSystems-Level Architecture. A Re-Introduction Arch. Reintro CSC Level of Design. Divide into two levels:
Systems-Level Architecture A Re-Introduction 12 - Arch. Reintro CSC407 1 Level of Design Divide into two levels: System-LevelArchitecture Programming-Level Design You know what design is OOD + written
More informationObject-Oriented Design and Modeling Using the UML
Design Classes Object-Oriented Design and Modeling Using the UML Based on Chapter 18 of Whitten, Bentley, and Dittman: Systems Analysis and Design for the Global Enterprise (7th Ed). McGraw Hill. 2007
More informationCASE TOOLS LAB VIVA QUESTION
1. Define Object Oriented Analysis? VIVA QUESTION Object Oriented Analysis (OOA) is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary
More informationThe major elements of the object-oriented model
The major elements of the object-oriented model Abstraction Encapsulation Inheritance Modularity Suggested Reading: Bruce Eckel, Thinking in Java (Fourth Edition) Reusing Classes Hierarchy 2 An abstraction
More informationObject oriented programming Concepts
Object oriented programming Concepts Naresh Proddaturi 09/10/2012 Naresh Proddaturi 1 Problems with Procedural language Data is accessible to all functions It views a program as a series of steps to be
More informationCS 575: Software Design
CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation
More informationUnit 1 Introduction to Software Engineering
Unit 1 Introduction to Software Engineering João M. Fernandes Universidade do Minho Portugal Contents 1. Software Engineering 2. Software Requirements 3. Software Design 2/50 Software Engineering Engineering
More informationCS6501: Great Works in Computer Science
CS6501: Great Works in Computer Science Jan. 29th 2013 Longze Chen The Protection of Information in Computer Systems Jerome H. Saltzer and Michael D. Schroeder Jerry Saltzer Michael Schroeder 1 The Meaning
More informationUNIT-I Introduction of Object Oriented Modeling
UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationSoftware Life-Cycle Management
Ingo Arnold Department Computer Science University of Basel Introduction Software Life-Cycle Management Architecture Handbook View Model Architecture View Models If this is real world s physical complexity..
More informationSoftware Design Heuristics
Software Design Heuristics Software Design Heuristics CONTENT 1. Introduction 2. Encapsulation/Information Hiding 3. Strong Cohesion 4. Loose Dr. Samira Sadaoui 1 Introduction Introduction Software Design
More informationModule Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation
Module Outline Fundamentals of Object Positioning Object Oriented Analysis Fundamentals of Object 1. Encapsulation 2. Abstraction 3. Inheritance 4. Polymorphism The need of Modeling Unified modeling language
More informationCh 1: The Architecture Business Cycle
Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures
More informationIn this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks
In this Lecture you will Learn: Design Patterns Chapter 15 What types of patterns have been identified in software development How to apply design patterns during software development The benefits and
More informationSOFTWARE ENGINEERING SOFTWARE DESIGN. Saulius Ragaišis.
SOFTWARE ENGINEERING SOFTWARE DESIGN Saulius Ragaišis saulius.ragaisis@mif.vu.lt CSC2008 SE Software Design Learning Objectives: Discuss the properties of good software design including the nature and
More informationComponent-Based Software Engineering TIP
Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.
More informationTutorial 1 Answers. Question 1
Tutorial 1 Answers Question 1 Complexity Software in it what is has to do, is often essentially complex. We can think of software which is accidentally complex such as a large scale e-commerce system (simple
More informationPresenter: Dong hyun Park
Presenter: 200412325 Dong hyun Park Design as a life cycle activity bonds the requirements to construction Process of breaking down the system into components, defining interfaces and defining components
More informationDarshan Institute of Engineering & Technology Unit : 3
1) Explain design concepts. A set of fundamental software design concepts has evolved over the past four decades. Although the degree of interest in each concept has varied over the years, each has tood
More informationCSC 408F/CSC2105F Lecture Notes
CSC 408F/CSC2105F Lecture Notes These lecture notes are provided for the personal use of students taking CSC 408H/CSC 2105H in the Fall term 2004/2005 at the University of Toronto. Copying for purposes
More informationAppendix A - Glossary(of OO software term s)
Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component
More informationUNIT V *********************************************************************************************
Syllabus: 1 UNIT V 5. Package Diagram, Component Diagram, Deployment Diagram (08 Hrs, 16 Marks) Package Diagram: a. Terms and Concepts Names, Owned Elements, Visibility, Importing and Exporting b. Common
More informationArchitectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process
Architectural Design Objectives To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural
More informationINTERNAL ASSESSMENT TEST III Answer Schema
INTERNAL ASSESSMENT TEST III Answer Schema Subject& Code: Object-Oriented Modeling and Design (15CS551) Sem: V ISE (A & B) Q. No. Questions Marks 1. a. Ans Explain the steps or iterations involved in object
More informationThe ATCP Modeling Framework
The ATCP 2+9+1 Modeling Framework Bobbi Underbakke Adaptive Team Collaboration, Inc. 800.837.0677 atcprocess.com Adaptive Team Collaboration, Inc. March 22, 2005 Chris Armstrong Armstrong Process Group,
More informationOO Frameworks. Introduction. Using Frameworks
OO Frameworks Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Frameworks support reuse of detailed designs and architectures An integrated set of components
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationChapter : Analysis Modeling
Chapter : Analysis Modeling Requirements Analysis Requirements analysis Specifies software s operational characteristics Indicates software's interface with other system elements Establishes constraints
More informationSoftware Architecture and Design I
Software Architecture and Design I Instructor: Yongjie Zheng February 23, 2017 CS 490MT/5555 Software Methods and Tools Outline What is software architecture? Why do we need software architecture? How
More informationPart 7 - Object Oriented Concepts Classes, Objects, Properties and Methods
Part 7 - Object Oriented Concepts Classes, Objects, Properties and Methods Object Orientated Paradigm... 2 Abstract Data Types (ADT) & Encapsulation... 3 Encapsulation... 5 Classes and Objects... 6 Methods
More informationLecture 13 Introduction to Software Architecture
Lecture 13 Introduction to Software Architecture Software Systems Design and Implementation ITCS/ITIS 6112/8112 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at
More informationLECTURE 3: SOFTWARE DESIGN. Software Engineering Mike Wooldridge
LECTURE 3: SOFTWARE DESIGN Mike Wooldridge 1 Design Computer systems are not monolithic: they are usually composed of multiple, interacting modules. Modularity has long been seen as a key to cheap, high
More informationPatterns and Testing
and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3
More informationGRASP Design Patterns A.A. 2018/2019
GRASP Design Patterns A.A. 2018/2019 Objectives Introducing design patterns Introduzione ai design pattern Designing objects and responsibilities GRASP design patterns A long corridor A passage room Does
More informationFunctional Design of Web Applications. (partially, Chapter 7)
Functional Design of Web Applications (partially, Chapter 7) Functional Design: An Overview Users of modern WebApps expect that robust content will be coupled with sophisticated functionality The advanced
More information09. Component-Level Design
09. Component-Level Design Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 What is Component OMG UML Specification defines a component as OO view a
More informationIntroduction to Software Engineering
Chapter 1 Introduction to Software Engineering Content 1. Introduction 2. Components 3. Layered Technologies 4. Generic View of Software Engineering 4. Generic View of Software Engineering 5. Study of
More informationSE Notes Mr. D. K. Bhawnani, Lect (CSE) BIT
Unit 3 Design concepts and principles 1 Software Design 1. Software design deals with transforming the customer requirements, as described by the SRS document, into a form that is implementable using a
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationOBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe
OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++
More informationCS 292 Software Development
CS 292 Software Development and Professional Practice Structured Design and More Design Principles CS 292 Design Principles 1 Unless otherwise expressly stated, all original material of whatever nature
More informationDescribing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?
Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090
More information