Design engineering

Post on 20-Jan-2015

663 views 5 download

Tags:

description

 

transcript

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

1 1

Design Modeling Design Modeling (Design Engineering)(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.

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

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

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

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.

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.

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.

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.

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.

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.

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.

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.

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

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

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

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.

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.

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

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

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??

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

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

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.

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

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.

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

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.

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

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.

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.

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.

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

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.

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.

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.

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

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

3838

Messages

:SenderObject

:ReceiverObject

message (<parameters>)

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 …

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

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

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

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

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

4444

Component Level Design Elements

SensorManagementSensor

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

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

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.

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

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

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

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

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)

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

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

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

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

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

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

58

Designing Forms and Reports User Interface Design

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

59

Designing Interfaces and Dialogues

Interface Design Environment

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.

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

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

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

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