Top Banner
06/07/22 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JU 1 1 Design Modeling Design Modeling (Design Engineering) (Design Engineering)
64
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

1 1

Design Modeling Design Modeling (Design Engineering)(Design Engineering)

Page 2: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 3: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

3 3

Analysis Model -> Design Analysis Model -> Design ModelModel

Analysis Model

use-cases - text use-case diagrams activity diagrams swim lane diagrams

data flow diagrams control-flow diagrams processing narratives

f low-oriented elements

behavioralelements

class-basedelements

scenario-basedelements

class diagrams analysis packages CRC models collaboration diagrams

state diagrams sequence diagrams

Data/ Class Design

Architectural Design

Interface Design

Component- Level Design

Design Model

Page 4: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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

Page 5: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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

Page 6: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 7: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 8: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 9: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 10: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

1010

Design and QualityDesign and Quality the design must implement all of the explicit the design must implement all of the explicit

requirements contained in the analysis model, requirements contained in the analysis model, and it must accommodate all of the implicit and it must accommodate all of the implicit requirements desired by the customer.requirements desired by the customer.

the design must be a readable, understandable the design must be a readable, understandable guide for those who generate code and for those guide for those who generate code and for those who test and subsequently support the software.who test and subsequently support the software.

the design should provide a complete picture of the design should provide a complete picture of the software, addressing the data, functional, the software, addressing the data, functional, and behavioral domains from an implementation and behavioral domains from an implementation perspective.perspective.

Page 11: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

1111

Quality GuidelinesQuality Guidelines A design should exhibit an architecture that (1) has been A design should exhibit an architecture that (1) has been

created using recognizable architectural styles or created using recognizable architectural styles or patterns, (2) is composed of components that exhibit patterns, (2) is composed of components that exhibit good design characteristics and (3) can be implemented good design characteristics and (3) can be implemented in an evolutionary fashionin an evolutionary fashion For smaller systems, design can sometimes be For smaller systems, design can sometimes be

developed linearly.developed linearly. A design should be modular; that is, the software should A design should be modular; that is, the software should

be logically partitioned into elements or subsystemsbe logically partitioned into elements or subsystems A design should contain distinct representations of data, A design should contain distinct representations of data,

architecture, interfaces, and components.architecture, interfaces, and components.

Page 12: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

12

Quality Guidelines (Contd..)Quality Guidelines (Contd..)

A design should lead to data structures that are appropriate for the A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data classes to be implemented and are drawn from recognizable data patterns.patterns.

A design should lead to components that exhibit independent A design should lead to components that exhibit independent functional characteristics.functional characteristics.

A design should lead to interfaces that reduce the complexity of A design should lead to interfaces that reduce the complexity of connections between components and with the external connections between components and with the external environment.environment.

A design should be derived using a repeatable method that is driven A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis.by information obtained during software requirements analysis.

A design should be represented using a notation that effectively A design should be represented using a notation that effectively communicates its meaning.communicates its meaning.

Page 13: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

1313

Design Design PrinciplesPrinciples The design process should not suffer from ‘tunnel vision.’ The design process should not suffer from ‘tunnel vision.’

The design should be traceable to the analysis model. The design should be traceable to the analysis model. The design should not reinvent the wheel. The design should not reinvent the wheel. The design should “minimize the intellectual distance” [DAV95] The design should “minimize the intellectual distance” [DAV95]

between the software and the problem as it exists in the real world. between the software and the problem as it exists in the real world. The design should exhibit uniformity and integration. The design should exhibit uniformity and integration. The design should be structured to accommodate change. The design should be structured to accommodate change. The design should be structured to degrade gently, even when The design should be structured to degrade gently, even when

aberrant data, events, or operating conditions are encountered. aberrant data, events, or operating conditions are encountered. Design is not coding, coding is not design. Design is not coding, coding is not design. The design should be assessed for quality as it is being created, The design should be assessed for quality as it is being created,

not after the fact. not after the fact. The design should be reviewed to minimize conceptual (semantic) The design should be reviewed to minimize conceptual (semantic)

errors.errors.

Page 14: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

1414

Fundamental Design Fundamental Design ConceptsConcepts

abstraction—data, procedure, controlabstraction—data, procedure, control architecture—the overall structure of the softwarearchitecture—the overall structure of the software patterns—”conveys the essence” of a proven design solutionpatterns—”conveys the essence” of a proven design solution modularity—compartmentalization of data and functionmodularity—compartmentalization of data and function Information hiding—controlled interfacesInformation hiding—controlled interfaces Functional independence—single-minded function and low Functional independence—single-minded function and low

couplingcoupling refinement—elaboration of detail for all abstractionsrefinement—elaboration of detail for all abstractions Refactoring—a reorganization technique that simplifies the Refactoring—a reorganization technique that simplifies the

designdesign

Page 15: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

1515

Data Data AbstractionAbstractiondoordoor

implemented as a data structure

manufacturermanufacturermodel numbermodel numbertypetypeswing directionswing directioninsertsinsertslightslights typetype numbernumberweightweightopening mechanismopening mechanism

Page 16: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

1616

Procedural Procedural AbstractionAbstraction

openopen

implemented with a "knowledge" of the object that is associated with enter

details of enter details of enter algorithmalgorithm

Page 17: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

1717

ArchitectureArchitecture““The overall structure of the software and the The overall structure of the software and the ways in which that structure provides ways in which that structure provides conceptual integrity for a system.” [SHA95a]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.

Page 18: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

18

Representation of Architecture(al Design)Structural Models- organized collection of

program componentsFramework 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.

Page 19: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

1919

Modular Modular DesignDesigneasier to build, easier to change, easier to fix ...

Page 20: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

2020

Modularity & Cost : Trade-Modularity & Cost : Trade-offsoffsWhat is the "right" number of modules What is the "right" number of modules

for a specific software design?for a specific software design?

optimal numberoptimal number of modulesof modules

cost ofcost of softwaresoftware

number of modulesnumber of modules

modulemoduleintegrationintegration

costcost

module development cost module development cost

Page 21: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

2121

Sizing Modules: Two Sizing Modules: Two ViewsViews

MODULE

What's inside??

How big is it??

Page 22: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

2222

Information HidingInformation Hiding

modulemodulecontrolledcontrolledinterfaceinterface

"secret""secret"

• • algorithmalgorithm

• • data structuredata structure

• • details of external interfacedetails of external interface

• • resource allocation policyresource allocation policy

clientsclients

a specific design decisiona specific design decision

Page 23: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

2323

Why Information Why Information Hiding?Hiding?

reduces the likelihood of “side effects”reduces the likelihood of “side effects” limits the global impact of local design decisionslimits the global impact of local design decisions emphasizes communication through controlled emphasizes communication through controlled

interfacesinterfaces discourages the use of global datadiscourages the use of global data leads to encapsulation—an attribute of high leads to encapsulation—an attribute of high

quality designquality design results in higher quality softwareresults in higher quality software

Page 24: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

2424

Functional Functional IndependenceIndependence

Strive for low coupling

COHESION - the degree to which a module performs one and only one function. COUPLING - the degree to which a module is "connected" to other modules in the system.

Page 25: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

2525

Stepwise Stepwise RefinementRefinementopen

walk to door;reach for knob;

open door;

walk through;close door.

repeat until door opensturn knob clockwise;if knob doesn't turn, then take key out; find correct key; insert in lock;endifpull/push doormove out of way;end repeat

Page 26: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

2626

RefactoringRefactoring 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.

Page 27: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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++.

Page 28: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 29: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

2929

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

Page 30: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

3030

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.

Page 31: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

3131

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.

Page 32: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 33: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

33

A generalisation hierarchyEmployee

Programmer

projectprogLanguages

Manager

ProjectManager

budgetsControlled

dateAppointed

projects

Dept.Manager

StrategicManager

dept responsibilities

Page 34: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 35: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 36: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 37: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

37

An association model

Employee Department

Manager

is-member-of

is-managed-by

manages

Page 38: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

3838

Messages

:SenderObject

:ReceiverObject

message (<parameters>)

Page 39: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

3939

Polymorphism

case of graphtype:case of graphtype:

if graphtype = linegraph then DrawLineGraph (data);if graphtype = linegraph then DrawLineGraph (data);

if graphtype = piechart then DrawPieChart (data);if graphtype = piechart then DrawPieChart (data);

if graphtype = histogram then DrawHisto (data);if graphtype = histogram then DrawHisto (data);

if graphtype = kiviat then DrawKiviat (data);if graphtype = kiviat then DrawKiviat (data);

end case;end case;

All of the graphs become subclasses of a general class All of the graphs become subclasses of a general class called graph. Using a concept called overloading [TAY90], called graph. Using a concept called overloading [TAY90], each subclass defines an operation called each subclass defines an operation called drawdraw. An object . An object can send a can send a drawdraw message to any one of the objects message to any one of the objects instantiated from any one of the subclasses. The object instantiated from any one of the subclasses. The object receiving the message will invoke its own receiving the message will invoke its own drawdraw operation operation to create the appropriate graph. to create the appropriate graph.

graphtype drawgraphtype draw

ConventionalConventional approach …approach …

Page 40: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

4040

SSAD and OOAD based Software Design (Design Model)

process dimension

architecture elements

interface elements

component-level elements

deployment-level elements

low

high

class diagrams analysis packages CRC models collaboration diagrams

use-cases - text use-case diagrams activity diagrams swim lane diagrams collaboration diagrams data flow diagrams

control-flow diagrams processing narratives

data flow diagrams control-flow diagrams processing narratives

state diagrams sequence diagrams

state diagrams sequence diagrams

design class realizations subsystems collaboration diagrams

design class realizations subsystems collaboration diagrams

refinements to:

deployment diagrams

class diagrams analysis packages CRC models collaboration diagrams

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

analysis model

design model

Requirements: constraints interoperability targets and configuration

technical interface design Navigation design GUI design

Page 41: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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

Page 42: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

4242

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

Page 43: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

4343

Interface Design Elements

ControlPanel

LCDdisplay LEDindicators keyPadCharacteristics speaker wirelessInterface

readKeyStroke() decodeKey() displayStatus() lightLEDs() sendControlMsg()

Figure 9.6 UML interface representation for ControlPanel

KeyPad

readKeystroke() decodeKey()

<<interface>>

WirelessPDA

KeyPad

MobilePhone

Page 44: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

4444

Component Level Design Elements

SensorManagementSensor

Page 45: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

45

Component Diagram

HelloWorld.class

hello.java

hello.hml

hello.jpg

executable component

Page 46: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

4646

Deployment Level Design Elements

Figure 9.8 UML deployment diagram for SafeHome

Personal computer

Security

homeManagement

Surveillance

communication

Control Panel CPI server

Security homeownerAccess

externalAccess

Page 47: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

4747

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.

Page 48: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

48

Common Design Patterns used in Industry Façade Pattern Singleton Pattern Factory Pattern Etc

Will explore in depth in Design Patterns

Page 49: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

4949

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

Page 50: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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

Page 51: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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

Page 52: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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)

Page 53: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

53

Tool combinations Available

(Browser) (Web Server) (WAS) (Backend) Client Business Layer Middle Layer Server / DatabaseSwing in Java Oracle / PostgreSQL / MySQLVB Script ASP MS SQL Server / MS AccessHTML Servlets Oracle / PostgreSQL / MySQLJSP JSP / Servlets Oracle / PostgreSQL / MySQLStruts Framework Oracle / PostgreSQL / MySQLJSP JSP / Servlets EJB Oracle / PostgreSQL / MySQL Spring Framework POJOs Oracle / PostgreSQL / MySQL Spring Framework POJOs Hibernate + Oracle / MySQL

Page 54: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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

Page 55: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

55

What is Systems Design

Database Design Designing Forms and Reports Designing Interfaces and Dialogues

Page 56: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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

Page 57: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

57

Database Tools Available

Oracle

Microsoft Access

SQL Server

DB2

MySQL

PostgreSQL

HSQLDB

Page 58: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

58

Designing Forms and Reports User Interface Design

Page 59: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

59

Designing Interfaces and Dialogues

Interface Design Environment

Page 60: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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.

Page 61: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

61

Tools Available

CASE Tools like:

Oracle Designer

Rational Rose

Together

Page 62: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

62

SKILLS THAT OVERLAP SYSTEMS ANALYSIS AND DESIGN Project planning

Fact – Finding Techniques

Communication Skills

Page 63: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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

Page 64: Design engineering

04/10/23 Dr. Deepak Dahiya, Associate Professor, Dept. of CSE & IT, JUIT Waknaghat

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