Software Engineering in the age of Web2.0

Preview:

DESCRIPTION

Presented at the ISEC 2008 (1st India Software Engineering Conference, Hyderabad) on the subject of “Software Engineering in the age of Web2.0”, available at the website http://www.cse.iitd.ernet.in/~sigcse/isec2008/workshop.htm

Citation preview

Madhusudan Rao

Knowledge Based Software Engineering

Software engineering

is the application of a

systematic, disciplined, quantifiable

approach to the development,

operation, and maintenance of software

Knowledge

Identify

Create

Represent

Distribute

Project Websites were few and far between No interest was taken to keep it updated Mainly for dashboards and reporting purposes

Huge amount of Documentation Not updated regularly RoI of such documents was not high Dissemination to team members was a challenge Version control issues

Publishing of Information was a lengthy process Not much participation

Folders-based content Difficult to mine for relevant info

Web 2.0 Is a trend in World Wide Web technology, and web

design,

Is a second generation of web-based communities and hosted services such as social-networking sites,

wikis,

blogs,

folksonomies

Aim to facilitate creativity, collaboration, and sharingamong users.

Web 2.0 is a

knowledge-oriented environment

where human interactions generate content

that is published, managed and used

through network applications

in a service-oriented architecture

All necessary information is available on the internet

If it is not, it is not tagged or filed

Software Engineering

Waterfall Model

Agile Methodologies

Requirements

Design

Development

Testing

MaintenanceKnowledge

Wikis

Forums

RSS Feeds

Blogs

Folksonomies

Co

nta

ins v

ario

us

Ph

ase

sT

yp

es o

f im

ple

me

nta

tion

Rich InfoIn all phases

Categorize for Easy access

Management of knowledge becomes easier The social factor - ‘Contribute and share’ is key

The cool factor - ‘Everyone is doing it’

Most tools are open-source – hence, no cost

Multiple ways to categorize same content

Easy to search

Easy process to setup

What are the Web2.0 technologies you use? Slides follow…

Project-wide initiative

Availability of “Live“ documents

Facilitate collaborative information gathering

Organization-wide initiative

Utilize knowledge expertise of entire organization

Capture Information that can be used in future

Instant notifications

Managers/Leads share information

Makes life more disciplined

Can be Internal/

External

Tool for dissemination

in distributed envt.

Sources of invaluable

information

Avoid reinventing the wheel

Provide a searchable repository that can help

locate solutions based on others experience

Easy to share with entire team

The technologies of Web2.0 makes a developer’s life much easier Covers all phases of Software Engineering

Applicable both to Waterfall or Agile

Information specific to a technology is available on the internet It requires some effort in finding and tagging it

Information specific to a project can be created quickly Distribution is possible at the click of a button

Improves the overall productivity of the team

Madhusudan Rao

Rich Internet application techniques, often Ajax-based Folksonomies (in the form of tags or tagclouds, for example) Syndication, aggregation and notification of data in RSS or Atom

feeds Weblog-publishing tools Wiki or forum software, etc., to support user-generated content Semantically valid XHTML and HTML markup Microformats extending pages with additional semantics Cascading Style Sheets to aid in the separation of presentation

and content REST and/or XML- and/or JSON-based APIs Mashups, merging content from different sources, client- and

server-side