SlideShare a Scribd company logo
Design Modeling  (Design Engineering)
Requirements Analysis v. System Design Dilemma .  •  Requirements analysis should make minimal assumptions about the system design. •  But the requirements definition must be consistent with computing technology and the resources available. In practice, analysis and design are interwoven.  However,  do not to allow the analysis tools to prejudge the system design.
Analysis Model -> Design Model
A Note on Design Model The elements of the design model use many of the same UML and SSAD diagrams that were used in the analysis model. The difference is that these diagrams are refined and elaborated as part of design; more implementation specific detail is provided
Design Model Elements Data / Class Design Architectural Design Interface Design Component Level Design    Design Engineering starts with  Data / Class Design  – the foundation for all other elements of the design
Data / Class Design Transforms analysis-class models into design class realizations and the requisite data structures required to implement the software.  The classes and relationships defined by CRC cards and the detailed data content depicted by class attributes and other notation provide the basis for the data design activity. Part of class design may occur in conjunction with the design of software architecture. More detailed class design occurs as each software component is designed.
Architectural Design Defines the relationship between the major structural elements of the software, the architectural styles and design patterns.  The architectural design representation – the framework of a computer based system – can be derived from the class based elements and the flow-oriented elements.
Interface Design Describes how the software communicates with systems that interoperate with it, and with humans who use it. Usage Scenarios and behavioral models provide much of the information required for interface design.
Component Design The component-level design transforms structural elements of the software architecture into a procedural description of software components.  Information obtained from the class-based models, flow models and behavioral models serve as the basis for component design.
Design and Quality the design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer. the design must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software. the design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective.
Quality Guidelines A design should exhibit an architecture that (1) has been created using recognizable architectural styles or patterns, (2) is composed of components that exhibit good design characteristics and (3) can be implemented in an evolutionary fashion For smaller systems, design can sometimes be developed linearly. A design should be modular; that is, the software should be logically partitioned into elements or subsystems A design should contain distinct representations of data, architecture, interfaces, and components.
Quality Guidelines (Contd..) A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data patterns. A design should lead to components that exhibit independent functional characteristics. A design should lead to interfaces that reduce the complexity of connections between components and with the external environment. A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis. A design should be represented using a notation that effectively communicates its meaning.
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.  The design should “minimize the intellectual distance” [DAV95] between the software and the problem as it exists in the real world.  The design should exhibit uniformity and integration.  The design should be structured to accommodate change.  The design should be structured to degrade gently, even when aberrant data, events, or operating conditions are encountered.  Design is not coding, coding is not design.  The design should be assessed for quality as it is being created, not after the fact.  The design should be reviewed to minimize conceptual (semantic) errors.
Fundamental Design Concepts abstraction—data, procedure, control architecture—the overall structure of the software patterns—”conveys the essence” of a proven design solution modularity—compartmentalization of data and function Information hiding—controlled interfaces Functional independence—single-minded function and low coupling refinement—elaboration of detail for all abstractions Refactoring—a reorganization technique that simplifies the design
Data Abstraction door implemented as a data structure manufacturer model number type swing direction inserts lights type number weight opening mechanism
Procedural Abstraction open implemented with a "knowledge" of the  object that is associated with enter details of enter  algorithm
Architecture “ The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.” [SHA95a] Structural properties.  This aspect of the architectural design representation defines the components of a system (e.g., modules, objects, filters) and the manner in which those components are packaged and interact with one another. For example, objects are packaged to encapsulate both data and the processing that manipulates the data and interact via the invocation of methods  Extra-functional properties.  The architectural design description should address how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other system characteristics. Families of related systems.  The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems. In essence, the design should have the ability to reuse architectural building blocks.
Representation of Architectur e (al Design) Structural Models-  organized collection of program components Framework Models  – identify repeatable architectural design frameworks that are found in similar types of applications Dynamic Models  – indicates behavioral aspects of program architecture Process Models  – focuses on the design of the business or technical process Functional Models  – represents the functional hierarchy of the system.
Modular Design
Modularity & Cost : Trade-offs What is the "right" number of modules  for a specific software design? optimal number of modules cost of software number of modules module integration cost module development cost
Sizing Modules: Two Views
Information Hiding module controlled interface "secret" •  algorithm •  data structure •  details of external interface •  resource allocation policy clients a specific design decision
Why Information Hiding? reduces the likelihood of “side effects” limits the global impact of local design decisions emphasizes communication through controlled interfaces discourages the use of global data leads to encapsulation—an attribute of high quality design results in higher quality software
Functional Independence    Strive for low coupling
Stepwise 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
Refactoring Fowler [FOW99] defines refactoring in the following manner:  "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.” 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.
Object-oriented development Object-oriented analysis, design and programming are related but distinct. OOA is concerned with developing an object model of the application domain. OOD is concerned with developing an object-oriented system model to implement requirements. OOP is concerned with realising an OOD using an OO programming language such as Java or C++.
Characteristics of OOD Objects are abstractions of real-world or system entities and manage themselves. Objects are independent and encapsulate state and representation information.  System functionality is expressed in terms of object services. Shared data areas are eliminated. Objects  communicate by message passing. Objects may be distributed and may execute  sequentially or in parallel.
OO 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
Design Classes 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.
Inheritance Design options: The class can be designed and built from scratch. That is, inheritance is not used. The class hierarchy can be searched to determine if a class higher in the hierarchy (a superclass)contains most of the required attributes and operations. The new class inherits from the superclass and additions may then be added, as required. The class hierarchy can be restructured so that the required attributes and operations can be inherited by the new class. Characteristics of an existing class can be overridden and different versions of attributes or operations are implemented for the new class.
Generalisation and inheritance Objects are members of classes that define  attribute types and operations. Classes may be arranged in a class hierarchy  where one class (a super-class) is a generalisation of one or more other classes (sub-classes). A sub-class inherits the attributes and  operations from its super class and may add  new methods or attributes of its own. Generalisation in the UML is implemented as inheritance in OO programming languages.
A generalisation hierarchy
Advantages of inheritance It is an abstraction mechanism which may be used to classify entities. It is a reuse mechanism at both the design and the programming level. The inheritance graph is a source of organisational knowledge about domains and systems.
Problems with inheritance Object classes are not self-contained. they cannot be understood without reference to their super-classes. Designers have a tendency to reuse the inheritance graph created during analysis. Can lead to significant inefficiency. The inheritance graphs of analysis, design and implementation have different functions and should be separately maintained.
UML associations Objects and object classes participate in relationships with other objects and object classes. In the UML, a generalised relationship is indicated by an association. Associations may be annotated with information that describes the association. Associations are general but may indicate that an attribute of an object is an associated object or that a method relies on an associated object.
An association model
Messages
Polymorphism case of graphtype: if graphtype = linegraph then DrawLineGraph (data); if graphtype = piechart then DrawPieChart (data); if graphtype = histogram then DrawHisto (data); if graphtype = kiviat then DrawKiviat (data); end case; All of the graphs become subclasses of a general class called graph. Using a concept called overloading [TAY90], each subclass defines an operation called  draw . An object can send a  draw  message to any one of the objects instantiated from any one of the subclasses. The object receiving the message will invoke its own  draw  operation to create the appropriate graph.  graphtype draw Conventional   approach …
SSAD  and OOAD  based Software Design    (Design Model)
A Note on Design Model The elements of the design model use many of the same UML and SSAD diagrams that were used in the analysis model. The difference is that these diagrams are refined and elaborated as part of design; more implementation specific detail is provided
Design Model Elements Data Design Elements Data model --> data structures Data model --> database architecture Architectural Design Elements ( In detail later on ) Application domain Analysis classes, their relationships, collaborations and behaviors are transformed into design realizations Patterns and “styles”  Interface elements  the user interface (UI)  external interfaces to other systems, devices, networks or other producers or consumers of information internal interfaces between various design components .  Component Level Design Elements Deployment Level Design Elements
Interface Design Elements
Component Level Design Elements
Component Diagram HelloWorld.class hello.java hello.hml hello.jpg executable component
Deployment Level Design Elements
Pattern based Software Design  The best designers in any field have an uncanny ability to see patterns that characterize a problem and corresponding patterns that can be combined to create a solution A description of a design pattern may also consider a set of design forces.  Design forces  describe non-functional requirements (e.g., ease of maintainability, portability) associated the software for which the pattern is to be applied.  The pattern characteristics (classes, responsibilities, and collaborations) indicate the attributes of the design that may be adjusted to enable the pattern to accommodate a variety of problems.
Common Design Patterns used in Industry Façade Pattern Singleton Pattern Factory Pattern Etc    Will explore in depth in   Design Patterns
Framework based Software Design (reusable mini-architecture) A framework is not an architectural pattern, but rather an implementation-specific skeleton with a collection of “plug points” (also called  hooks  and  slots ) that enable it to be adapted to a specific problem domain.  Gamma et al note that: Design patterns are more abstract than frameworks. Design patterns are smaller architectural elements than frameworks Design patterns are less specialized than frameworks
Common  Frameworks  used in Industry Java EE Framework – distributed applications using JSP / Servlets / O-R database / EJBs / JDBC etc. Struts Framework – Web applications using JSP and servlets only Spring Framework – Distributed applications using JSP / Servlets / O-O database / AOP / JDBC etc
Coding the design specifications (TSAD - Identifying Design Architecture 1 - tier  (MS Access / Oracle / MS SQL Server)    Do you remember your HND Group Project) 2 – tier OR Client-Server (Frontend – Backend)  Tool combinations  Available: Client  / GUI  Server / Database Visual Basic  MS SQL Server / MS Access Visual Basic / Developer 2K  Oracle Power Builder
Coding the design specifications (OOAD - Identifying Design Architecture) 1 – tier  2 – tier OR Client-Server (Frontend – Backend) 3 – tier N – tier 2 kinds of platforms are available for the N- tier design  architectures: J2EE  (Sun Microsystems) .NET  (Microsoft)
Tool combinations  Available (Browser)  (Web Server)  (WAS)  (Backend) Client  Business Layer  Middle Layer  Server / Database Swing in Java  Oracle / PostgreSQL / MySQL VB Script  ASP  MS SQL Server / MS Access HTML  Servlets  Oracle / PostgreSQL / MySQL JSP  JSP / Servlets  Oracle / PostgreSQL / MySQL Struts Framework  Oracle / PostgreSQL / MySQL JSP  JSP / Servlets  EJB  Oracle / PostgreSQL / MySQL Spring Framework  POJOs  Oracle / PostgreSQL / MySQL Spring Framework  POJOs  Hibernate + Oracle / MySQL
Note Browser:  Internet Explorer / Netscape Web Server:  Tomcat / Apache Server Web Application Server:  JBoss / IIS / Weblogic /  GlassFish / IBM WebSphere IDEs  :  JDeveloper / Developer 9i Operating Systems  :  Windows / Unix flavours
What is Systems Design  Database Design  Designing Forms and Reports Designing Interfaces and Dialogues
Database Design Transform ER Diagram to relations / tables Normalization Revise your ER Diagram Revised set of  relations / tables (from revised ERD) Physically creating tables and fields
Database Tools Available Oracle  Microsoft Access  SQL Server  DB2 MySQL  PostgreSQL  HSQLDB
Designing Forms and Reports User Interface Design
Designing Interfaces and Dialogues    Interface Design Environment
Project Dictionary A catalog of requirements and specifications for a new information system.  Helps the systems analyst keep track of the enormous volume of details that is part of every system.
Tools Available CASE Tools like: Oracle Designer  Rational Rose  Together
SKILLS THAT OVERLAP SYSTEMS ANALYSIS AND DESIGN Project planning  Fact – Finding Techniques Communication Skills
Text Book(s) T1: R.S. Pressman, “Software Engineering: A Practitioner's Approach”, 6th Edition, McGraw Hill, 2006 T2: Sommerville, “ Introduction to Software Engineering”, 8th Edition, Addison-Wesley, 2007
Reference Book(s) R1: Booch, Jacobson, Rambaugh, “ UML User’s  Guide”, 2nd Edn., Addison Wesley,  2005 R2: Craig Larmann,  “Applying UML and Patterns”, Addison Wesley, 2004 R3:  Barclay and Savage, ‘’ OOD with UML and Java’’, Elsevier, 2004 R4: Shoval, ‘’ FOOAD Integrated Methodology’’, IDEA Publishing, 2007 R5:  Len Bass,  “Software Architecture in Practice”, 2nd Edn., Addison Wesley,  2003 R6:  Eric Gamma, “Design Patterns: Elements of Reusable OO Software”, 1994 R7: Software Engineering / Enterprise Systems Development related Journals  by ACM / IEEE

More Related Content

What's hot (20)

PPT
Chapter 01 software engineering pressman
RohitGoyal183
 
PPTX
Software Engineering
Jignesh Kariya
 
PPTX
Software Cost Estimation Techniques
Santhi thi
 
PPT
Pressman ch-3-prescriptive-process-models
saurabhshertukde
 
PPTX
Software requirements specification
lavanya marichamy
 
PPTX
Software design
Syed Muhammad Hammad-ud-Din
 
PPTX
Design engineering
Preeti Mishra
 
DOCX
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
nimmik4u
 
PPT
Software Process Improvement
Bilal Shah
 
PPTX
Rad model
Dyanara Pritz Menia
 
PPT
UML Diagrams
Kartik Raghuvanshi
 
PPTX
Prototype model
sadhana8
 
PPTX
Flowshop scheduling
Kunal Goswami
 
PPTX
Estimating Software Maintenance Costs
lalithambiga kamaraj
 
PDF
Introduction to software engineering
Hitesh Mohapatra
 
PPTX
Decomposition technique In Software Engineering
Bilal Hassan
 
PPT
Rad model
Sneha Chopra
 
PPTX
Software Configuration Management (SCM)
Er. Shiva K. Shrestha
 
PPT
Software estimation
Md Shakir
 
PPTX
PROTOTYPE MODEL
shenagarg44
 
Chapter 01 software engineering pressman
RohitGoyal183
 
Software Engineering
Jignesh Kariya
 
Software Cost Estimation Techniques
Santhi thi
 
Pressman ch-3-prescriptive-process-models
saurabhshertukde
 
Software requirements specification
lavanya marichamy
 
Design engineering
Preeti Mishra
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
nimmik4u
 
Software Process Improvement
Bilal Shah
 
UML Diagrams
Kartik Raghuvanshi
 
Prototype model
sadhana8
 
Flowshop scheduling
Kunal Goswami
 
Estimating Software Maintenance Costs
lalithambiga kamaraj
 
Introduction to software engineering
Hitesh Mohapatra
 
Decomposition technique In Software Engineering
Bilal Hassan
 
Rad model
Sneha Chopra
 
Software Configuration Management (SCM)
Er. Shiva K. Shrestha
 
Software estimation
Md Shakir
 
PROTOTYPE MODEL
shenagarg44
 

Viewers also liked (20)

PPT
Design concepts and principles
saurabhshertukde
 
PPTX
Concept in engineering design
Siddharth Sharma
 
PPTX
Component level design
Midhula Chandren
 
PPTX
De 1 (b)
Juhi Shah
 
DOCX
Design engineering 1 b
Ravi Patel
 
DOC
Report on design engineering
Ravi Patel
 
PPT
Structural Engineering
Javed Alam
 
DOCX
mathematics and intelligence
Abuta Ogeto
 
PDF
Podium project report
Design & Engineering
 
PPTX
Empathy mapping in Design Engineering
Bhasker Vijaykumar Bhatt
 
PPTX
De ppt
Divyesh Shah
 
DOC
De 1b report
Jaykumar Desai
 
PDF
Design and Engineering-Module 5: User Centered and Product Centered Design, C...
Naseel Ibnu Azeez
 
PPT
Software design, software engineering
Rupesh Vaishnav
 
DOCX
Design engineering report
imshahbaz
 
DOCX
Design report
yash patel
 
PPTX
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
 
PPTX
Domain Driven Design Framework
Bien Hoang
 
PPTX
Nimble framework
tusjain
 
Design concepts and principles
saurabhshertukde
 
Concept in engineering design
Siddharth Sharma
 
Component level design
Midhula Chandren
 
De 1 (b)
Juhi Shah
 
Design engineering 1 b
Ravi Patel
 
Report on design engineering
Ravi Patel
 
Structural Engineering
Javed Alam
 
mathematics and intelligence
Abuta Ogeto
 
Podium project report
Design & Engineering
 
Empathy mapping in Design Engineering
Bhasker Vijaykumar Bhatt
 
De ppt
Divyesh Shah
 
De 1b report
Jaykumar Desai
 
Design and Engineering-Module 5: User Centered and Product Centered Design, C...
Naseel Ibnu Azeez
 
Software design, software engineering
Rupesh Vaishnav
 
Design engineering report
imshahbaz
 
Design report
yash patel
 
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
 
Domain Driven Design Framework
Bien Hoang
 
Nimble framework
tusjain
 
Ad

Similar to Design engineering (20)

PPTX
Unit 5 design engineering ssad
Preeti Mishra
 
PPT
DESIGN CONCEPTS
VigneshSridhar17
 
PPT
Ch09
guest50f28c
 
PPT
Slides chapter 9
Priyanka Shetty
 
PPT
CHAPTER12.ppt
CharenReposposa
 
PPT
software Design.ppt
Satyanandaram Nandigam
 
PPT
Chapter 6 design
nikshaikh786
 
PPT
Software design
Inocentshuja Ahmad
 
PPT
software engineering unit-3 in software engineering
terala1
 
PPTX
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
PPTX
CS8494 SOFTWARE ENGINEERING Unit-3
SIMONTHOMAS S
 
PPT
OOSE Unit 4 PPT.ppt
itadmin33
 
PPTX
UNIT_III_Design Engineering, design engineering, architecture, patterns, UML ...
MANOJ964697
 
PPTX
Architecture and UML diagrams, types of UML diagrams, types of architecture a...
MANOJ964697
 
PPTX
Chapter 08
Nazir Ahmed
 
PPT
Oose unit 4 ppt
Dr VISU P
 
PPTX
06 fse design
Mohesh Chandran
 
PDF
Design concepts in concepts of engineering design
SureshvSuri1
 
PPT
Unit4
anuragmbst
 
Unit 5 design engineering ssad
Preeti Mishra
 
DESIGN CONCEPTS
VigneshSridhar17
 
Slides chapter 9
Priyanka Shetty
 
CHAPTER12.ppt
CharenReposposa
 
software Design.ppt
Satyanandaram Nandigam
 
Chapter 6 design
nikshaikh786
 
Software design
Inocentshuja Ahmad
 
software engineering unit-3 in software engineering
terala1
 
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
CS8494 SOFTWARE ENGINEERING Unit-3
SIMONTHOMAS S
 
OOSE Unit 4 PPT.ppt
itadmin33
 
UNIT_III_Design Engineering, design engineering, architecture, patterns, UML ...
MANOJ964697
 
Architecture and UML diagrams, types of UML diagrams, types of architecture a...
MANOJ964697
 
Chapter 08
Nazir Ahmed
 
Oose unit 4 ppt
Dr VISU P
 
06 fse design
Mohesh Chandran
 
Design concepts in concepts of engineering design
SureshvSuri1
 
Unit4
anuragmbst
 
Ad

More from Vikram Dahiya (20)

PPTX
All Leadership Theories
Vikram Dahiya
 
PPTX
Marketing 4.0 (2018)
Vikram Dahiya
 
PDF
Donald Trump vs Hillary Clinton
Vikram Dahiya
 
PPTX
India's CSR policy and NVG
Vikram Dahiya
 
PPTX
Social stratification and mobility vikram dahiya
Vikram Dahiya
 
PPTX
Wallpaper Brands in India
Vikram Dahiya
 
PPTX
Sanitaryware Industry
Vikram Dahiya
 
PPTX
Furnishing Industry Information
Vikram Dahiya
 
PPTX
Tiles industry in India
Vikram Dahiya
 
PPTX
Furniture Industry in India
Vikram Dahiya
 
PPTX
Plywood industry- A deep insight
Vikram Dahiya
 
PPTX
Indian paint industry
Vikram Dahiya
 
PPT
e-wallet , The future of Cards and Money
Vikram Dahiya
 
PPTX
Facebook Case
Vikram Dahiya
 
PPTX
Genzyme : The Renvela Launch Decision
Vikram Dahiya
 
PPTX
Product Failure Evaluation
Vikram Dahiya
 
PPTX
Final
Vikram Dahiya
 
PPTX
Dog golf
Vikram Dahiya
 
PPTX
Bread for your thought
Vikram Dahiya
 
PPTX
Future Mobile Trends
Vikram Dahiya
 
All Leadership Theories
Vikram Dahiya
 
Marketing 4.0 (2018)
Vikram Dahiya
 
Donald Trump vs Hillary Clinton
Vikram Dahiya
 
India's CSR policy and NVG
Vikram Dahiya
 
Social stratification and mobility vikram dahiya
Vikram Dahiya
 
Wallpaper Brands in India
Vikram Dahiya
 
Sanitaryware Industry
Vikram Dahiya
 
Furnishing Industry Information
Vikram Dahiya
 
Tiles industry in India
Vikram Dahiya
 
Furniture Industry in India
Vikram Dahiya
 
Plywood industry- A deep insight
Vikram Dahiya
 
Indian paint industry
Vikram Dahiya
 
e-wallet , The future of Cards and Money
Vikram Dahiya
 
Facebook Case
Vikram Dahiya
 
Genzyme : The Renvela Launch Decision
Vikram Dahiya
 
Product Failure Evaluation
Vikram Dahiya
 
Dog golf
Vikram Dahiya
 
Bread for your thought
Vikram Dahiya
 
Future Mobile Trends
Vikram Dahiya
 

Recently uploaded (20)

PDF
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pdf
ghjghvhjgc
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PPTX
Talbott's brief History of Computers for CollabDays Hamburg 2025
Talbott Crowell
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
PDF
“ONNX and Python to C++: State-of-the-art Graph Compilation,” a Presentation ...
Edge AI and Vision Alliance
 
PPTX
Wondershare Filmora Crack Free Download 2025
josanj305
 
PDF
Evolution: How True AI is Redefining Safety in Industry 4.0
vikaassingh4433
 
PDF
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
PDF
Dev Dives: Accelerating agentic automation with Autopilot for Everyone
UiPathCommunity
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PDF
Software Development Company Keene Systems, Inc (1).pdf
Custom Software Development Company | Keene Systems, Inc.
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
[GDGoC FPTU] Spring 2025 Summary Slidess
minhtrietgect
 
PDF
NASA A Researcher’s Guide to International Space Station : Fundamental Physics
Dr. PANKAJ DHUSSA
 
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pdf
ghjghvhjgc
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Talbott's brief History of Computers for CollabDays Hamburg 2025
Talbott Crowell
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
“ONNX and Python to C++: State-of-the-art Graph Compilation,” a Presentation ...
Edge AI and Vision Alliance
 
Wondershare Filmora Crack Free Download 2025
josanj305
 
Evolution: How True AI is Redefining Safety in Industry 4.0
vikaassingh4433
 
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
Dev Dives: Accelerating agentic automation with Autopilot for Everyone
UiPathCommunity
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
Software Development Company Keene Systems, Inc (1).pdf
Custom Software Development Company | Keene Systems, Inc.
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
[GDGoC FPTU] Spring 2025 Summary Slidess
minhtrietgect
 
NASA A Researcher’s Guide to International Space Station : Fundamental Physics
Dr. PANKAJ DHUSSA
 

Design engineering

  • 1. Design Modeling (Design Engineering)
  • 2. Requirements Analysis v. System Design Dilemma . • Requirements analysis should make minimal assumptions about the system design. • But the requirements definition must be consistent with computing technology and the resources available. In practice, analysis and design are interwoven. However, do not to allow the analysis tools to prejudge the system design.
  • 3. Analysis Model -> Design Model
  • 4. A Note on Design Model The elements of the design model use many of the same UML and SSAD diagrams that were used in the analysis model. The difference is that these diagrams are refined and elaborated as part of design; more implementation specific detail is provided
  • 5. Design Model Elements Data / Class Design Architectural Design Interface Design Component Level Design  Design Engineering starts with Data / Class Design – the foundation for all other elements of the design
  • 6. Data / Class Design Transforms analysis-class models into design class realizations and the requisite data structures required to implement the software. The classes and relationships defined by CRC cards and the detailed data content depicted by class attributes and other notation provide the basis for the data design activity. Part of class design may occur in conjunction with the design of software architecture. More detailed class design occurs as each software component is designed.
  • 7. Architectural Design Defines the relationship between the major structural elements of the software, the architectural styles and design patterns. The architectural design representation – the framework of a computer based system – can be derived from the class based elements and the flow-oriented elements.
  • 8. Interface Design Describes how the software communicates with systems that interoperate with it, and with humans who use it. Usage Scenarios and behavioral models provide much of the information required for interface design.
  • 9. Component Design The component-level design transforms structural elements of the software architecture into a procedural description of software components. Information obtained from the class-based models, flow models and behavioral models serve as the basis for component design.
  • 10. Design and Quality the design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer. the design must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software. the design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective.
  • 11. Quality Guidelines A design should exhibit an architecture that (1) has been created using recognizable architectural styles or patterns, (2) is composed of components that exhibit good design characteristics and (3) can be implemented in an evolutionary fashion For smaller systems, design can sometimes be developed linearly. A design should be modular; that is, the software should be logically partitioned into elements or subsystems A design should contain distinct representations of data, architecture, interfaces, and components.
  • 12. Quality Guidelines (Contd..) A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data patterns. A design should lead to components that exhibit independent functional characteristics. A design should lead to interfaces that reduce the complexity of connections between components and with the external environment. A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis. A design should be represented using a notation that effectively communicates its meaning.
  • 13. 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. The design should “minimize the intellectual distance” [DAV95] between the software and the problem as it exists in the real world. The design should exhibit uniformity and integration. The design should be structured to accommodate change. The design should be structured to degrade gently, even when aberrant data, events, or operating conditions are encountered. Design is not coding, coding is not design. The design should be assessed for quality as it is being created, not after the fact. The design should be reviewed to minimize conceptual (semantic) errors.
  • 14. Fundamental Design Concepts abstraction—data, procedure, control architecture—the overall structure of the software patterns—”conveys the essence” of a proven design solution modularity—compartmentalization of data and function Information hiding—controlled interfaces Functional independence—single-minded function and low coupling refinement—elaboration of detail for all abstractions Refactoring—a reorganization technique that simplifies the design
  • 15. Data Abstraction door implemented as a data structure manufacturer model number type swing direction inserts lights type number weight opening mechanism
  • 16. Procedural Abstraction open implemented with a "knowledge" of the object that is associated with enter details of enter algorithm
  • 17. Architecture “ The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.” [SHA95a] Structural properties. This aspect of the architectural design representation defines the components of a system (e.g., modules, objects, filters) and the manner in which those components are packaged and interact with one another. For example, objects are packaged to encapsulate both data and the processing that manipulates the data and interact via the invocation of methods Extra-functional properties. The architectural design description should address how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other system characteristics. Families of related systems. The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems. In essence, the design should have the ability to reuse architectural building blocks.
  • 18. Representation of Architectur e (al Design) Structural Models- organized collection of program components Framework Models – identify repeatable architectural design frameworks that are found in similar types of applications Dynamic Models – indicates behavioral aspects of program architecture Process Models – focuses on the design of the business or technical process Functional Models – represents the functional hierarchy of the system.
  • 20. Modularity & Cost : Trade-offs What is the "right" number of modules for a specific software design? optimal number of modules cost of software number of modules module integration cost module development cost
  • 22. Information Hiding module controlled interface "secret" • algorithm • data structure • details of external interface • resource allocation policy clients a specific design decision
  • 23. Why Information Hiding? reduces the likelihood of “side effects” limits the global impact of local design decisions emphasizes communication through controlled interfaces discourages the use of global data leads to encapsulation—an attribute of high quality design results in higher quality software
  • 24. Functional Independence  Strive for low coupling
  • 25. Stepwise 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
  • 26. Refactoring Fowler [FOW99] defines refactoring in the following manner: "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.” 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.
  • 27. Object-oriented development Object-oriented analysis, design and programming are related but distinct. OOA is concerned with developing an object model of the application domain. OOD is concerned with developing an object-oriented system model to implement requirements. OOP is concerned with realising an OOD using an OO programming language such as Java or C++.
  • 28. Characteristics of OOD Objects are abstractions of real-world or system entities and manage themselves. Objects are independent and encapsulate state and representation information. System functionality is expressed in terms of object services. Shared data areas are eliminated. Objects communicate by message passing. Objects may be distributed and may execute sequentially or in parallel.
  • 29. OO 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
  • 30. Design Classes 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.
  • 31. Inheritance Design options: The class can be designed and built from scratch. That is, inheritance is not used. The class hierarchy can be searched to determine if a class higher in the hierarchy (a superclass)contains most of the required attributes and operations. The new class inherits from the superclass and additions may then be added, as required. The class hierarchy can be restructured so that the required attributes and operations can be inherited by the new class. Characteristics of an existing class can be overridden and different versions of attributes or operations are implemented for the new class.
  • 32. Generalisation and inheritance Objects are members of classes that define attribute types and operations. Classes may be arranged in a class hierarchy where one class (a super-class) is a generalisation of one or more other classes (sub-classes). A sub-class inherits the attributes and operations from its super class and may add new methods or attributes of its own. Generalisation in the UML is implemented as inheritance in OO programming languages.
  • 34. Advantages of inheritance It is an abstraction mechanism which may be used to classify entities. It is a reuse mechanism at both the design and the programming level. The inheritance graph is a source of organisational knowledge about domains and systems.
  • 35. Problems with inheritance Object classes are not self-contained. they cannot be understood without reference to their super-classes. Designers have a tendency to reuse the inheritance graph created during analysis. Can lead to significant inefficiency. The inheritance graphs of analysis, design and implementation have different functions and should be separately maintained.
  • 36. UML associations Objects and object classes participate in relationships with other objects and object classes. In the UML, a generalised relationship is indicated by an association. Associations may be annotated with information that describes the association. Associations are general but may indicate that an attribute of an object is an associated object or that a method relies on an associated object.
  • 39. Polymorphism case of graphtype: if graphtype = linegraph then DrawLineGraph (data); if graphtype = piechart then DrawPieChart (data); if graphtype = histogram then DrawHisto (data); if graphtype = kiviat then DrawKiviat (data); end case; All of the graphs become subclasses of a general class called graph. Using a concept called overloading [TAY90], each subclass defines an operation called draw . An object can send a draw message to any one of the objects instantiated from any one of the subclasses. The object receiving the message will invoke its own draw operation to create the appropriate graph. graphtype draw Conventional approach …
  • 40. SSAD and OOAD based Software Design (Design Model)
  • 41. A Note on Design Model The elements of the design model use many of the same UML and SSAD diagrams that were used in the analysis model. The difference is that these diagrams are refined and elaborated as part of design; more implementation specific detail is provided
  • 42. Design Model Elements Data Design Elements Data model --> data structures Data model --> database architecture Architectural Design Elements ( In detail later on ) Application domain Analysis classes, their relationships, collaborations and behaviors are transformed into design realizations Patterns and “styles” Interface elements the user interface (UI) external interfaces to other systems, devices, networks or other producers or consumers of information internal interfaces between various design components . Component Level Design Elements Deployment Level Design Elements
  • 45. Component Diagram HelloWorld.class hello.java hello.hml hello.jpg executable component
  • 47. Pattern based Software Design The best designers in any field have an uncanny ability to see patterns that characterize a problem and corresponding patterns that can be combined to create a solution A description of a design pattern may also consider a set of design forces. Design forces describe non-functional requirements (e.g., ease of maintainability, portability) associated the software for which the pattern is to be applied. The pattern characteristics (classes, responsibilities, and collaborations) indicate the attributes of the design that may be adjusted to enable the pattern to accommodate a variety of problems.
  • 48. Common Design Patterns used in Industry Façade Pattern Singleton Pattern Factory Pattern Etc  Will explore in depth in Design Patterns
  • 49. Framework based Software Design (reusable mini-architecture) A framework is not an architectural pattern, but rather an implementation-specific skeleton with a collection of “plug points” (also called hooks and slots ) that enable it to be adapted to a specific problem domain. Gamma et al note that: Design patterns are more abstract than frameworks. Design patterns are smaller architectural elements than frameworks Design patterns are less specialized than frameworks
  • 50. Common Frameworks used in Industry Java EE Framework – distributed applications using JSP / Servlets / O-R database / EJBs / JDBC etc. Struts Framework – Web applications using JSP and servlets only Spring Framework – Distributed applications using JSP / Servlets / O-O database / AOP / JDBC etc
  • 51. Coding the design specifications (TSAD - Identifying Design Architecture 1 - tier (MS Access / Oracle / MS SQL Server)  Do you remember your HND Group Project) 2 – tier OR Client-Server (Frontend – Backend) Tool combinations Available: Client / GUI Server / Database Visual Basic MS SQL Server / MS Access Visual Basic / Developer 2K Oracle Power Builder
  • 52. Coding the design specifications (OOAD - Identifying Design Architecture) 1 – tier 2 – tier OR Client-Server (Frontend – Backend) 3 – tier N – tier 2 kinds of platforms are available for the N- tier design architectures: J2EE (Sun Microsystems) .NET (Microsoft)
  • 53. Tool combinations Available (Browser) (Web Server) (WAS) (Backend) Client Business Layer Middle Layer Server / Database Swing in Java Oracle / PostgreSQL / MySQL VB Script ASP MS SQL Server / MS Access HTML Servlets Oracle / PostgreSQL / MySQL JSP JSP / Servlets Oracle / PostgreSQL / MySQL Struts Framework Oracle / PostgreSQL / MySQL JSP JSP / Servlets EJB Oracle / PostgreSQL / MySQL Spring Framework POJOs Oracle / PostgreSQL / MySQL Spring Framework POJOs Hibernate + Oracle / MySQL
  • 54. Note Browser: Internet Explorer / Netscape Web Server: Tomcat / Apache Server Web Application Server: JBoss / IIS / Weblogic / GlassFish / IBM WebSphere IDEs : JDeveloper / Developer 9i Operating Systems : Windows / Unix flavours
  • 55. What is Systems Design Database Design Designing Forms and Reports Designing Interfaces and Dialogues
  • 56. Database Design Transform ER Diagram to relations / tables Normalization Revise your ER Diagram Revised set of relations / tables (from revised ERD) Physically creating tables and fields
  • 57. Database Tools Available Oracle Microsoft Access SQL Server DB2 MySQL PostgreSQL HSQLDB
  • 58. Designing Forms and Reports User Interface Design
  • 59. Designing Interfaces and Dialogues  Interface Design Environment
  • 60. Project Dictionary A catalog of requirements and specifications for a new information system. Helps the systems analyst keep track of the enormous volume of details that is part of every system.
  • 61. Tools Available CASE Tools like: Oracle Designer Rational Rose Together
  • 62. SKILLS THAT OVERLAP SYSTEMS ANALYSIS AND DESIGN Project planning Fact – Finding Techniques Communication Skills
  • 63. Text Book(s) T1: R.S. Pressman, “Software Engineering: A Practitioner's Approach”, 6th Edition, McGraw Hill, 2006 T2: Sommerville, “ Introduction to Software Engineering”, 8th Edition, Addison-Wesley, 2007
  • 64. Reference Book(s) R1: Booch, Jacobson, Rambaugh, “ UML User’s Guide”, 2nd Edn., Addison Wesley, 2005 R2: Craig Larmann, “Applying UML and Patterns”, Addison Wesley, 2004 R3: Barclay and Savage, ‘’ OOD with UML and Java’’, Elsevier, 2004 R4: Shoval, ‘’ FOOAD Integrated Methodology’’, IDEA Publishing, 2007 R5: Len Bass, “Software Architecture in Practice”, 2nd Edn., Addison Wesley, 2003 R6: Eric Gamma, “Design Patterns: Elements of Reusable OO Software”, 1994 R7: Software Engineering / Enterprise Systems Development related Journals by ACM / IEEE