Software Engineering for Web Applications
-
Upload
mohd-shakeb-baig -
Category
Software
-
view
157 -
download
4
description
Transcript of Software Engineering for Web Applications
Software engineering for web applications
Deriving a solution which satisfies web application requirements
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
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
Object Oriented Software Engineering
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
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
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
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.
Categories of Web Applications
Characteristics of Web Applications
Product Usage Development Evolution
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.
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.
Web Services: Service Oriented Architecture
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>
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
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
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
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
Future Trends
Aspect Oriented Programming OMG MDA Autonomic Computing Software-as-a-Service (SaaS) End User Software Development The Business of Software
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
Questions??