Software Engineering for Web Applications

21
Software engineering for web applications Deriving a solution which satisfies web application requirements

description

This is about web engineering.

Transcript of Software Engineering for Web Applications

Page 1: Software Engineering for Web Applications

Software engineering for web applications

Deriving a solution which satisfies web application requirements

Page 2: Software Engineering for Web Applications

Outline

Introduction Object Oriented Software Engineering Modeling and System Specification Software Measurement and Estimation Design with Patterns Web Application XML Software Components Web Services Future Trends Conclusion Questions

Page 3: Software Engineering for Web Applications

Introduction

Simple modeling is essential. UML is used for software design. Object Oriented Analysis is intuitive

approach of Domain Analysis Object Model is used in OOA

Page 4: Software Engineering for Web Applications

Object Oriented Software Engineering

Page 5: Software Engineering for Web Applications

Modeling and System Specification

Modeling is based on abstraction of world phenomena

System specification notations: UML State Machine Diagrams UML Object Constraint Language (OCL) TLA+ Notation

Problem Frames are used for specifying problems

Goal-oriented requirements engineering

Page 6: Software Engineering for Web Applications

Software Measurement and Estimation

Two types of measurement:1. Done before development to estimate the product duration2. Done after development to evaluate the product quality

Use case points (UCP) method is used for effort estimation

Cyclomatic Complexity is used to measure the complexity of program’s conditional logic

Class cohesion can use Interface-based or Code-based metrics

Coupling metrics could be high or low Psychological Complexity could be measured by

Algorithmic Information Content (AIC) and Logical Depth

Page 7: Software Engineering for Web Applications

Design with Patterns

Convenient solutions for software design problems

Must be need-driven In Broker method, a client object invokes

methods of a remote server object Publisher-subscriber design pattern is used to

implement indirect communication Other patterns include Command, Decorator,

State and Proxy patterns. Concurrent Programming helps in easier

programming of reactive applications Security with obscurity

Page 8: Software Engineering for Web Applications

Web Applications

Unlike traditional software, the Web serves as both development & user platform

A Web application is a system that utilizes W3C standards & technologies to deliver Web-specific resources to clients.

Page 9: Software Engineering for Web Applications

Categories of Web Applications

Page 10: Software Engineering for Web Applications

Characteristics of Web Applications

Product Usage Development Evolution

Page 11: Software Engineering for Web Applications

XML and Data Representation eXtensible Markup Language Markups: Element, Entity reference,

Comments, Processing instructions, Marked sections, Document type declarations

XML Schema provides the vocabulary to state the rules of document production.

XPointer supports internal addressing. XLink allows us to create and describe links

between resources. XSL can translate XML documents that

comply with two different XML schemas.

Page 12: Software Engineering for Web Applications

Software Components

Components are reusable pieces of software. Component communicates with the rest of the

world only via its ports using events. Two major component architectures are:

JavaBeans from Sun ActiveX controls from Microsoft .

Computational reflection is a technique that allows a system to maintain information about itself (meta-information) and use this information to change its behaviour (adapt).

Object serialization is used to extract the object state.

Page 13: Software Engineering for Web Applications

Web Services: Service Oriented Architecture

Page 14: Software Engineering for Web Applications

SOAP Communication Protocol Simple Object

Access Protocol XML based Encoding format

for inter-application communication

Document style and RPC style communication

Runs on HTTP etc.

<Envelop><Header>

header blocks

</Header><Body>

body blocks

</Body>attachment blocks

</Envelop>

Page 15: Software Engineering for Web Applications

WSDL for Web Service Description

Service description can be partitioned into parts which describe : individual Web services relationships between sets of

Web services WSDL (Web Service

Definition Language) describes individual web services

WSDL Document can be used to generate stub and skeleton proxies which interact with SOAP based middleware

Page 16: Software Engineering for Web Applications

UDDI for Service Discovery and Integration

Discovery agency level connection is a publish/find mechanism

Could be used at build-time or runtime Universal Description, Discovery, and

Integration is an implementation of discovery agency

UDDI registry offers common repository for: service providers to publish service information service requestors inquire to find service information

UDDI defines structure, publish/inquire API for registry

Page 17: Software Engineering for Web Applications

Apache Axis

Apache eXtensible Interaction System

Web Service development toolkit SOAP engine Framework for constructing SOAP

servers, clients, gateways, etc. It contains:

server that plugs into servlet engines Java2WSDL WSDL2Java

Page 18: Software Engineering for Web Applications

OMG Reusable Asset Specification

An OMG (Object Management Group) standard

Used to package digital artifacts Guideline and recommendation of reusable

software assets: structure content description

To increase reusability of software assets Encourage consistent and standard

packaging

Page 19: Software Engineering for Web Applications

Future Trends

Aspect Oriented Programming OMG MDA Autonomic Computing Software-as-a-Service (SaaS) End User Software Development The Business of Software

Page 20: Software Engineering for Web Applications

Conclusion

XML is used for data representation on Web Reusable software components are beneficial Service Oriented Architecture involves client,

server and discovery agency SOAP is XML based protocol for inter-application

object communication WSDL is used for Web service description UDDI implements discovery agency Apache Axis is a Web Service development

toolkit Reusable Asset Specification is an OMG

standard for packaging digital artifacts

Page 21: Software Engineering for Web Applications

Questions??