What is meant by Email or Electronic Mail?
- Email or electronic mail is the most popular and convenient means for exchange of digital messages and information in the modern world.
- E- Mail facility is harnessed through a computer network probably over an internet connection.
- Earlier the email can be used for sending messages only when both the sender and the recipient were online and such messages were called instant messages.
- But, today the email system is somewhat changed and is entirely based up on a store and forward model.
- When an email is sent, it is stored by the server and later is delivered accordingly.
- The sender and recipient do not require being online though they need to connect to the particular email server in order to send and receive the emails.
- The whole email system is today governed by the simple mail transfer protocol or SMTP rather than FTP or file transfer protocol that was used earlier.
Problems faced by Email Systems
These email system like any other system has too got many problems like:
1. Attachment size limitation
2. Overloading of information
3. Spamming
4. Computer viruses
5. Email spoofing
6. Email bombing
7. Tracking of sent and received emails
8. Privacy concerns
This article is dedicated to the worst problem being faced by the email today i.e., “email spoofing”.
Introduction to Email Spoofing
Most of us are aware about the content spoofing; the email spoofing is also somewhat same only with the only difference being that it affects emails rather than web sites or web applications.
"An email is said to have been spoofed when its sender’s address as well as its header part have been altered to make it seem as though it has been originated from a source different from the actual source."
What makes these emails so vulnerable to email spoofing?
- More and more emails fall victims to email spoofing since the simple mail transfer protocol (SMTP) does not provide any techniques or methodologies for the authentication of these emails.
- It becomes comparatively easy for the attackers to forging and impersonating the emails.
- In some cases there might be legitimate causes for forging an email but in other cases the cause can be quite mischievous like phishing and spamming in order to hide the origination of the email.
- The attacker can easily change the email properties like its return path, reply to and from fields etc and make it appear as though somebody else had sent the email hiding the identity of the actual email sender.
- The recipient comes in to believing that the email has been received from the address as altered and stated in the “from” field when it is actually form a different source.
- Such emails are said to be spammed and bear the address of the spam email in the “reply to” field.
- Most of the spam emails are malicious in nature and may be infected with a Trojan, virus or worm and so on.
- Some might be just for the sake of advertisement of some cause.
- Earlier before the advent of the spam, the legitimately spoofed emails were used as a viable business model.
- Consequently the spam emails came to be recognized as an annoying problem. This problem called for the need of anti spam methodologies.
- Spoofing the IP address is somewhat difficult as compared to spoofing of the email content.
- This is so because of the great bit size of the IP address.
- To overcome such spoofing problems techniques such as following are used:
1. PGP cryptographic signatures technique
2. Using SSL or TLS in mail transfer software
3. Other encryption techniques.
Proper authentication is the only solution for preventing spoofing and bombing of emails.
Wednesday, March 7, 2012
What is meant by email spoofing in detail?
Posted by
Sunflower
at
3/07/2012 11:00:00 AM
0
comments
Labels: Authentication, Client, Connection, digital, Electronic Mail, Email, Email Spoofing, FTP, Internet, Messages, Online, Problems, Recipient, Security, Sender, Server, SMTP, WebApp, Websites
|
| Subscribe by Email |
|
Monday, March 5, 2012
What are different HTML errors?
HTML or hyper text mark up language is perhaps one of the most used mark up languages for the web pages, sites and applications with which most of us are familiar. This language is written using the HTML elements which mainly constitute of the tags enclosed in the angle brackets like:
These elements are housed in the web page or site. Most of the HTML tags are implemented in pairs of two.
HTML ELEMENTS AND CONTENT
- Some tags are even empty and are commonly known as empty elements.
- These are usually unpaired unlike the filled elements which are paired.
- In the paired tags, the first tag is called the start tag and the second one is then called the end tag.
- Between these two tags, any text, comments, tags etc can be added by the designer of the web sites.
- The content that is to be added should only be of textual type.
- Due to some wrong designing principles often some errors are introduced in to the html of the web site or the page.
- One of the most common errors is the insertion of the graphical content in to the html.
- Such content is neither displayed nor is it interpreted.
- It simply causes the malfunctioning of the web site.
- Other elements of the html allow the addition of the graphical content and only these should be used whenever some graphics are to be inserted in to the page.
- Html elements provide a means for the creation of the structured documents that denote the structural semantics for textual content like:
1. Lists
2. Links
3. Paragraphs
4. Headings
5. Quotes and so on.
DIFFERENT HTML ERRORS AND THEIR IMPACT
- Html can also be embedded in to the scripts like javascript which also some times leads to errors when inserted incorrectly.
- Such errors affect the behaviour of the web sites and cause them to behave abnormally.
- Whenever the site is affected by an error or a bug is encountered, a set of error messages is generated by the business logic component which is then stored as a string in any of the available scopes.
- For using such functions, you need to define an application scope with the name of default attribute, because if such a scope is not found, then nothing is to be rendered by the business logic.
- Some designers forget to define such scopes and therefore end up with unnecessary errors in their web sites.
- Many more errors occur whenever a requested is generated by the client to the web server.
- In such cases the server responds with some status messages, few of which have been mentioned below along with the possible errors:
1. 400:
Bad syntax of the request is preventing the server to process it.
2. 401:
The request though being cannot be processed because of unavailability of the authentication processes.
3. 404 not found:
The page requested by the client is found to be unavailable at that moment.
4. 405 method not allowed:
The client made request in such a way that is not supported by that site.
5. 407 proxy authentication required:
The client has not authenticated its proxy.
6. 408 request time out:
The server’s request time expired while waiting for the client to generate one.
7. 409 conflict:
The server is not able to process the request because of the presence of some conflict in it.
8. 410 gone:
The page that was requested is no longer available on the web.
Posted by
Sunflower
at
3/05/2012 09:00:00 AM
0
comments
Labels: Authentication, Bugs, Client, Client Server, Content, Elements, Errors, Graphics, HTML, Languages, Page, Request, Respond, Semantics, Structural, Tags, Web Applications, Web page, WebApp, Website
|
| Subscribe by Email |
|
Friday, March 2, 2012
What are different error handling defects?
Errors are a major headache to the software programmers, developers as well as testers. They cause the whole software system or application to falter, produce unexpected results and behave abnormally. Some errors cause more harm while some cause less, some are easy to discover whereas some are hideous, some are as active and disruptive like a volcano and others are dormant. Therefore error handling becomes an important factor in deciding the success of a program.
WHAT IS MEANT BY ERROR HANDLING?
- Error handling is the way of a program to handle the errors that disturb its functioning.
- The error handling procedure should be very strong and smart.
- Error handling requires a lot decision making.
- The error handling process like other processes also is a victim of defects.
STEPS IN ERROR HANDLING PROCESS & DEFECT CAUSING FACTORS
1. The main steps involved in an Error handling process are namely detection, anticipation and resolution of the errors that occur during the execution of the software program or application.
2. Some applications even employ programs called “error handlers” developed specially for handling the errors.
3. A software system or application is said to have good error handling capabilities if it is able to recover from the errors without causing the whole program to terminate or if it is not able to handle that error, properly terminates the program without causing any data loss.
4. Such forceful termination is nothing but an error handling defect.
5. The basic factors causing the run time errors are invalid input data and adverse function parameters.
6. Lack of memory is another defect causing factor.
A Software application comprises of various small programs.These programs may conflict with each other during the run time. Similarly web applications also experience due to electrical noise and malware or undue pressure on the server.
ERROR HANDLING PROCESS
A software system or application can overcome these errors by its error handling process. But this error handling process also faces some risks from any defects in its source code. Thus we can define the error handling defects as the defects that reduce the efficiency of the error handling process.
1. On the initiation of the error handling process, the discrepancy between the expected behavior and actual behavior is identified.
2. Whenever there is some discrepancy in the behavior of the program, a defect is created.
3. The test script that was being executed at the time of encounter of the defect is tested.
4. This process is called defect creation.
5. After this, the discovered defect is verified i.e., whether or not the defect is valid.
6. A severity level is assigned to the defect.
7. This severity level indicates the impact and visibility of the defect on the program.
8. The defect can cause the core functionality to go out of order or stop working.
9. It can affect the operational environment.
10. Such defects prevent the user from accessing the features and functionalities of the software system or application.
11. Incorrect navigation links are also a defect.
12. According to the level of the severity the encountered errors can cause, they are assigned priorities.
13. This process is defect prioritization.
14. Several priority codes have been defined.
15. There are some defects that do not even allow the testing to take place.
16. Defects causing such errors are given the highest priority.
17. The defect is once again confirmed and this process is called defect confirmation.
18. After the defect confirmation the defect is analyzed, the affected code is redesigned, developed and tested again for any shortcomings.
19. This process following the defect confirmation is called defect resolution.
20. The defects after being resolved are once again reviewed by the developer and certain test scripts are run to confirm that the defect has been resolved.
21. After the verification the defect is closed.
Posted by
Sunflower
at
3/02/2012 02:36:00 PM
0
comments
Labels: Application, Data, Decision, Defects, Detection, Error Detection, Error handling, Errors, Factors, Function, Input, Open Closed, Recover, Software Systems, Steps, Terminate, Test Scripts, WebApp
|
| Subscribe by Email |
|
Sunday, August 21, 2011
What is meant by Relationship-Navigation Analysis (RNA)?
Relationship navigation analysis (RNA) is a series of analysis steps to identify relationships among the elements that are left uncovered during the creation of the analysis model. There are five steps that constitutes the RNA approach:
- Stakeholder analysis establishes stakeholder hierarchy and identifies various user categories.
- Element analysis identifies content objects and functional elements that are in interest to end uses.
- Relationship analysis identifies the relationship among web application elements.
- Navigation analysis identifies the accessibility of elements by users.
- Evaluation analysis identifies the cost and benefit included.
RELATIONSHIP ANALYSIS
To assess analysis model elements to understand relationships among them, some guidelines are:
- the attributes identified for element.
- whether description about element exists and where?
- is element composed of other smaller elements?
- is element a member of larger collection of elements?
- does analysis class describe the element?
- in using the element, what are the pre and post conditions.
- is the element used in specific ordering of other elements?
- does the element appear in the same place?
The answers to above questions helps the web engineer to position the element in question within the web application and to establish relationships among elements.
NAVIGATION ANALYSIS
After relationship are identified among elements, the web engineer defines how the user category navigates from one element to another. The questions that would clear the navigation requirements are:
- how are navigation errors handled?
- should certain elements be easier to reach?
- should group element navigation be given priority over specific element navigation?
- should links be used for navigation?
- should there be a navigation log for users?
- should a navigation map or menu be established?
- for which user category an optimal navigation be designed?
Posted by
Sunflower
at
8/21/2011 07:57:00 PM
0
comments
Labels: Analysis, Application, Approach, Elements, Evaluation Criterion, Guidelines, Identify, Navigate, navigation, Relationships, RNA, Steps, Users, Web Applications, WebApp
|
| Subscribe by Email |
|
Tuesday, August 16, 2011
What are the guidelines to be remembered if In House Web Engineering strategy is chosen for web application development?
Due to the increasing complexity, the web application project becomes like a software engineering project management. It is important to recognize that the guidelines recommended for small and moderately sized WebE projects can be performed quickly. In no case, should WebE planning for projects of this size take more than 5 percent of overall project effort :
- One should understand the scope, the dimensions of change, and project constraints. For an effective WebApp planning, requirements gathering and customer communication are essential precursors.
- An incremental project strategy should be developed so that evolution is not uncontrolled and chaotic.
- Risk analysis should be performed. All risk management tasks are performed for web engineering projects but the approach is abbreviated. Schedule and technology risk is the most important concern for most web engineers.
- The overall project estimate should be developed which focuses on macroscopic rather than microscopic issues.
- A set of web engineering tasks is selected which is appropriate for characteristics of problem, product, project, people on web engineering team.
- A schedule is established in which web engineering tasks are distributed along project timeline for increment to be developed.
- Regardless of project size, it is important to establish project milestones so that progress can be assessed.
- A change management is facilitated by incremental development strategy recommended for web applications. There is a possibility to delay change until next increment which in turn reduces the delay effects that are associated with changes.
Posted by
Sunflower
at
8/16/2011 01:22:00 PM
0
comments
Labels: Analysis, Applications, Change, Change management, Complexity, Guidelines, In-house, Incremental, Risk Management, Risks, Schedule, Scope, Web Applications, Web based systems, Web Engineering, WebApp
|
| Subscribe by Email |
|
Wednesday, August 10, 2011
What comprises the Web Engineering Team?
For a successful web application project, there is a need for a successful web engineering team. Web engineering teams can be organized in the same manner as traditional software team, however, players and their roles are quite different.
The roles that people play in a web engineering team are:
- Content is the most important part of web applications. So, role of content developer or provider focus on the generation of content.
- The content developed should be organized. Web publisher is a person who acts as a mediator between the technical person and non technical content developer.
- Web engineer is responsible for activities like requirements elicitation, analysis modeling, architectural, navigational and interface design, web application implementation and testing. He should be thorough in technologies as well.
- Business domain experts take care of questions related to business goals, objectives and requirements associated with a web application.
- Support specialist is a person whose responsibility is to continue with web application support. All the corrections, adaptations and enhancements are taken care by a support specialist.
- Administrator is responsible for the day to day activity of a web application which also includes development and implementation of policies, support procedures, security rights, handling web traffic etc.
In order to build a team for web application:
- team guidelines are established which includes expectations from team member, how problems are dealt and what methods are used to improve the effectiveness.
- strong leadership.
- team motivation and respect for individual talents.
- commitment from every team member is necessary.
- momentum should be maintained.
Posted by
Sunflower
at
8/10/2011 12:46:00 PM
0
comments
Labels: Administrator, Applications, Business domain expert, Content, Developers, Interface, Players, Quality, Specialist, Web Applications, Web based systems, Web engineers, Web pages, Web publisher, WebApp
|
| Subscribe by Email |
|
Thursday, February 3, 2011
What are different issues that complicate database testing for web applications?
Web applications interface with sophisticated database management systems and build dynamic content objects created in real time using the data acquired from a database.Errors can and do occur as a consequence of each of these steps. Database testing for web applications is complicated by a variety of factors:
- Tests should be designed in such a way that they should be able to uncover errors made in translating the user's request into a form that is processed by DBMS.
- REMOTE DATABASE TO THE SERVER: Tests should be designed that uncovers errors in communication between web application and remote database.
- RAW DATA FROM DATABASE MUST BE TRANSMITTED TO WEBAPP SERVER: Tests should be designed that will demonstrate the validity of raw data received by the web application server.
- DYNAMIC CONTENT OBJECT TRANSMITTED TO CLIENT IN A FORM THAT IS DISPLAYED TO END USER: Tests should be designed to uncover errors in content object format and there should be test compatibility with client environment configurations.
Testing should ensure that :
- valid information is passed between client and server from interface layer.
- web application processes scripts correctly.
- user data is passed correctly to server.
- queries are passed to data management layer that communicates with database access routines.
User interface Layer - Tested to ensure HTML scripts are constructed properly and
transmitted to server side.
WebApp Layer on server - Ensure that user data are extracted from HTML scripts and transmitted to data transformation layer.
Data transformation function - Tested to ensure that correct SQL is created and passed to data management components.
Posted by
Sunflower
at
2/03/2011 01:24:00 PM
0
comments
Labels: Application, Clients, Data, Database, Database design, Database Testing, Design, Errors, Factors, Interfaces, Objects, Server, Users, Web Applications, WebApp
|
| Subscribe by Email |
|
Wednesday, February 2, 2011
Analysis for Web Applications - The Functional Model and The Configuration Model
The functional model describes two elements of web application :
- User Observable Functions: Delivered by web application to end users. It encompasses any processing functions that are initiated directly by the user. These functions may be implemented using operations within analysis classes but from the point of view of an end-user, the function is the visible outcome.
- Class Operations: Implement behaviors associated with the class. These operations manipulate class attributes and are involved as classes collaborate with one another to accomplish some required behavior.
The UML activity diagram can be used to represent processing details.
The Configuration Model describes the environment that the web application will require on both the server and client side of the system. Although it is very important to consider all configurations that are likely to be used, a web application must be engineered to serve its end-users. Web application resides on a server that provides access via Internet, Intranet or an Extra-net. Server hardware and operating system must be specified. Also, interoperability considerations on the server side should be considered.
Client side software provides an infrastructure that enables access to web application from user's location. Web application content and functionality is delivered by browser software. Each browser has its own peculiarities.
Posted by
Sunflower
at
2/02/2011 01:21:00 PM
0
comments
Labels: Analysis, Analysis Model, Applications, Classes, Client, Configuration, End-users, Functional, Functions, Infrastructure, Operations, Server, Users, Web Applications, WebApp
|
| Subscribe by Email |
|
Monday, January 31, 2011
Overview of The Content Model for Web Applications
The content model is derived from an examination of use cases developed for the web application. This model contains structural elements that provides a view of content requirements for a web application. Structural elements include content objects like text, images, audio, video and photographs.It also contains analysis classes which cover attributes that describe it, operations that effect the behavior and collaborations.
A content object is any item of cohesive information that is to be presented to an end-user. These content objects are extracted from use cases. Content can be developed before the web application implementation, while the web application is being built or long after web application is operational.
The web engineer meets the person who has designed the use case and obtain a more detailed understanding of what descriptive and pricing information means. The descriptive information includes a paragraph of general description of component, photograph of component, a multi-paragraph technical description of component, a schematic diagram of component and a thumbnail video that shows how to install the component.
Content objects with a brief description of each object is more than enough to define the requirements for content that must be designed and implemented. In some cases, a data tree is used to represent a hierarchy of content objects. The content model may contain entity relationship diagrams that describes the relationship among content objects.
Posted by
Sunflower
at
1/31/2011 09:55:00 PM
0
comments
Labels: Analysis, Analysis Model, Application, Classes, Components, Content, Content Model, Content Object, Data, Design, Implementation, Information, Objects, Use cases, Users, Web Applications, WebApp
|
| Subscribe by Email |
|
Friday, January 28, 2011
Introduction to Navigation Design - Navigation Semantics and Syntax
Once the web application architecture and the content is defined, navigation pathways that enable users to access the web application content and functions.
- semantics of the navigation for different users of the site should be identified.
- syntax of achieving the navigation should be defined.
NAVIGATION SEMANTICS
Each user category has a user hierarchy and related use cases. There are different navigation requirements for each actor. A set of classes are defined for the use cases developed for each user. It contains one or more content objects or web application functions. As interaction with web application occurs, series of Navigation Semantic Units(NSUs) are encountered. A NSU describes the navigation requirements for each use case. The NSU shows how an actor moves between content objects or web application functions.
Navigation Semantic Unit is a set of information and related navigation structures that collaborate in the fulfillment of a subset of related user requirements.
The Web application designer creates a navigation semantic unit for each use case associated with each user role. During initial stages of navigation design, the web application content architecture is assessed to determine one or more ways of navigating for each use case. Ways of navigating identifies navigation nodes and the links that enable navigation between them.
NAVIGATION SYNTAX
The syntax of navigation design are:
- Tabs: a variation of navigation bar or column.
- Individual navigation link: test based links, icons, buttons and graphical metaphors.
- Horizontal Navigation bar: lists major content or functional categories in a bar containing appropriate links.
- Vertical Navigation column: lists major content or functional categories and second lists virtually all major content objects within web application.
- Site maps: provide an all-inclusive table of contents for navigation to all content objects and functionality contained within web application.
Posted by
Sunflower
at
1/28/2011 02:06:00 PM
0
comments
Labels: Application, Classes, Design, Identification, Interaction, Mechanics, navigation, Navigation Design, NSU, Objects, Requirements, Semantics, Syntax, Units, Use cases, Users, Web Applications, WebApp
|
| Subscribe by Email |
|
Wednesday, January 26, 2011
Introduction to Content Design - Content Objects and Content Design Issues
Content design focuses on two different design issues, each addressed by individuals with different skill sets. In content design :
- a design representation is developed for content objects and
- mechanisms are represented that are required to initiate their relationships to one another.
- representation of information within a specific content object is concerned.
It is design activity that is conducted by copywriters, graphic designers, and others who generate the content to be used within a web application.
A content object is closely aligned with a data object. A content object has attributes that include content specific information and implementation specific attributes that are specified as part of design.
UML association and aggregation may be used to represent relationships between content objects.
Once all the content objects are modeled, the information that each object is to deliver must be authored and then formatted to best meet the customer's needs. Content authoring is the job of specialists who design the content object by providing an outline of information to be delivered and an indication of the types of generic content objects that will be used to deliver the information.
As content objects are designed, they are chunked to form web application pages. The number of content objects incorporated into a single page is a function of user needs, constraints imposed by download speed of internet connections, and restrictions imposed by the amount of scrolling that the user will tolerate.
Posted by
Sunflower
at
1/26/2011 11:40:00 PM
0
comments
Labels: Application, Attributes, Content, Content Design, Content Object, Design, Issues, Objects, Relationships, Representation, software engineering, Web Applications, WebApp, WebApps
|
| Subscribe by Email |
|
Monday, January 24, 2011
What are different tasks representing WebApp interface design?
The user interface design begins with
- identification of user.
- identification of task.
- identification of environmental requirements.
Once these are identified, user scenarios are created and analyzed.
TASKS REPRESENTING WEB APPLICATION INTERFACE DESIGN ARE:
- The information that is contained in the analysis model is reviewed and refined as required.
- A rough sketch of web application interface layout is developed.
- The user objectives should be mapped into specific interface actions.
- A set of user tasks associated with action should be defined.
- Each interface action should have a storyboard screen image which depicts the interface response to user interaction.
- The input from aesthetic design should be used to refine the interface layout and storyboards.
- Implementing interface requires user interface objects. These user interface objects should be identified which may require a search through an existing object library.
- A procedural representation of user's interaction with interface is developed.
- A behavioral representation of the interface is also developed. It may use UML state diagrams to represent state mechanisms.
- Each state's interface layout is described using design information developed in tasks 2 and tasks 5.
- The interface design model should be refined and reviewed.
Posted by
Sunflower
at
1/24/2011 12:49:00 PM
0
comments
Labels: Actions, Application, Define, Design, Images, Interface, Layout, Mapping, Representation, software engineering, Tasks, User, User Interface, Web Applications, WebApp
|
| Subscribe by Email |
|
Friday, January 21, 2011
The WebApp Design - Attributes, Goals and Web Design Pyramid
Design is an engineering activity that leads to a high quality product. The major attributes of quality for web applications are:
- Security : The main emphasis of security is the ability of the web application and its environment to avoid unauthorized access or attack.
- Availability : Web application will not meet users needs if its unavailable. Availability is the measure of the percentage of time that a web application is available for use.
- Scalability : Is the variation in volume handled significantly by the web applications and the system. It is important to build a web application that can accommodate the burden of success.
- Time to market : It is a measure of quality from business point of view.
What should be considered when assessing content quality?
- Scope and depth of content be easily determined so that it meets user's needs?
- Background and authority of content's author be easily identified?
- Possibility of determining the currency of content, last update?
- Stability of content and location?
- Credibility of content?
- Uniqueness of content?
- Is content well organized?
- Is content valuable?
Design Goals
The design goals for every web application are:
- Simplicity
- Consistency
- Identity
- Robustness
- Navigability
- Visual appeal
- Compatibility
Web Design Pyramid
Each level of the pyramid represents the design activities:
- Interface Design : It describes structure and organization of the user interface. It includes screen layout, interaction modes, navigation mechanisms.
- Aesthetic Design : It describes the look and feel of the application.
- Content Design : It defines layout, structure and outline of all content.
- Navigation Design : It describes the navigational flow for web application.
- Architectural Design : It represents the overall hypermedia structure.
- Component Design : It develops detailed processing logic.
Posted by
Sunflower
at
1/21/2011 01:04:00 PM
0
comments
Labels: Activity, Aesthetic, Application, Architectural, Attributes, Content, Design Pyramid, Goals, Interface, navigation, Product, Quality, Representation, Scope, User, Web Applications, WebApp
|
| Subscribe by Email |
|
Friday, November 20, 2009
Web Engineering Process
Choosing a process model is based on the attributes of the software to be developed.
If immediacy and continuous evolution are the primary attributes of WebApp, a web engineering team might choose an agile process model. If a WebApp is to be developed over a longer time period, an incremental process model might be chosen.
Defining a Framework :
Any one of the agile process models can be applied successfully as a WebE process. Before we define a process framework for WebE, three things must be kept in mind :
- WebApps are often delivered incrementally.
- Changes will occur frequently.
- Timelines are short.
WebE Process Framework :
- Customer Communication : Within the WebE process, customer communication is characterized by :
* Business analysis : It defines the business/organizational context for the WebApp
* Formulation : It is a requirements gathering activity involving all stakeholders. The intent is to describe the problem that the WebApp is to solve.
- Planning : The “plan” consists of a task definition and a timeline schedule for the time period (usually measured in weeks) projected for the development of the WebApp increment.
- Modeling :
Analysis model — establishes a basis for design.
* Content Analysis
* Interaction Analysis
* Functional Analysis
* Configuration Analysis
Design model — represents the key WebApp elements.
* Content design
* Aesthetic design
* Architectural design
* Interface design
* Navigation design
* Component design
- Construction : WebE tools and technology are applied to construct the WebApp that has been modeled.
- Deployment : The WebApp is configured for its operational environment, delivered to end-users, and then an evaluation period commences.
Posted by
Sunflower
at
11/20/2009 11:59:00 AM
0
comments
Labels: Framework, Process, Web Applications, Web based systems, Web Engineering, WebApp, WebE
|
| Subscribe by Email |
|
Thursday, November 19, 2009
WebApp Engineering Layers
The development of Web based systems and applications incorporate specialized process models, software engineering methods adapted to the characteristics of WebApp development, and a set of important enabling technologies. Process, methods, and technologies provide a layered approach to WebE that is conceptually identical to the software engineering layers :
- Process
WebE process models embrace the agile development philosophy that defines the following activities
* Embrace change.
* Encourages the creativity and independence of development staff and strong interaction with WebApp stakeholders.
* Builds systems using small development team
* Emphasizes evolutionary or incremental development using short development cycles.
- Methods
The WebE methods landscape encompasses a set of technical tasks that enable a Web engineer to understand, characterize, and then build a high-quality WebApp.
* Communication methods : It defines the approach used to facilitate communication between Web engineers and all other Web stakeholders.
* Requirements analysis methods : These methods provide a basis for understanding the content to be delivered by WebApp, the function to be provided for the end user, and modes of interaction that each class of user will require.
* Design methods : It encompasses a series of design techniques that address WebApp content, application and information architecture, interface design, and navigation structure.
* Testing methods : It incorporates formal technical reviews of both the content and design model and a wide array of testing techniques.
- Tools and Technology
These technologies encompasses a wide array of content description and modeling languages, browsers, multimedia tools, site authoring tools, database connectivity
tools, servers and server utilities, and site management and analysis tools.
Posted by
Sunflower
at
11/19/2009 04:14:00 PM
0
comments
Labels: Layers, Methods, Process, Technology, Tools, Web Applications, Web based systems, WebApp, WebE
|
| Subscribe by Email |
|
Attributes of Web Based Systems
Web-based systems and applications deliver a complex array of content and functionality to a broad population of end-users. The following attributes are encountered in the vast majority of WebApps.
- Network Intensiveness.
- Concurrency.
- Unpredictable load.
- Performance.
- Availability.
- Data driven.
- Content sensitive.
- Continuous evolution.
- Immediacy.
- Security.
- Aesthetics.
The following application categories are most commonly encountered in WebE work :
- Informational : read-only content is provided with simple navigation and links.
- Download.
- Customizable.
- Interaction.
- User input.
- Transaction-oriented.
- Service-oriented.
- Portal.
- Database access.
- Data warehousing.
Posted by
Sunflower
at
11/19/2009 03:34:00 PM
0
comments
Labels: Attributes, Categories, Web based systems, Web Engineering, WebApp
|
| Subscribe by Email |
|
Monday, November 16, 2009
Introduction to Web Engineering
The impact of Web-based systems and applications is arguably the single most significant event in the history of computing. As WebApps grow in importance,a disciplined WebE approach adapted from software engineering principles, concepts, process, and methods has begun to evolve.
WebApps are different from other categories of computer software. They are network intensive, content driven, and continuously evolving. The immediacy that drives their development, the overriding need for security in their operation, and the demand for aesthetic as well as functional content delivery are additional differentiating factors. Like other types of software, WebApps can be assessed using a variety of quality criteria that include usability, functionality, reliability, efficiency, maintainability, security, availability, scalability, and time to market.
WebE can be described in three layers - process, methods, and tools/technology. The WebE process adopts the agile development philosophy that emphasizes a "lean" engineering approach that leads to the incremental delivery of the system to be built. The generic process framework - communication, planning, modeling, construction, and deployment - is applicable to WebE. These framework activities are refined into a set of WebE tasks that are adapted to the needs of each project. A set of umbrella activities similar to those applied during software engineering work - SQA, SCM, project management - apply to all WebE projects.
Posted by
Sunflower
at
11/16/2009 08:31:00 PM
0
comments
Labels: software engineering, Web Applications, Web Engineering, WebApp
|
| Subscribe by Email |
|
Saturday, March 7, 2009
What are Web Applications ? (WebApps)
You must have heard of Web Applications for a long time now. Nowadays, you even hear of Web 2.0 Apps. But what exactly are Web Applications and how do they impact you ?
In the early days of the web, web sites consisted of static pages, which severely limited interaction with the user since there was no interactivity or very limited interactivity. In the early 1990’s, this limitation was removed when web servers were enhanced to allow communication with server-side custom scripts. As a result, applications were no longer just static brochure-ware, edited only by those who knew the arcane mysteries of HTML; with this single change, normal users could interact with the application for the first time. The trend towards increased interactivity has continued apace, with the advent of “Web 2.0”, a term that encompasses many existing technologies, but heavily features highly interactive, user centric, web-aware applications.
Web-based applications are computer programs that execute in a web browser environment (the overall environment could be a closed group intranet, or a public network such as the internet). An example of such an application would be an online store such as Amazon.com accessed via Firefox or Internet Explorer. Web applications are popular due to the ubiquity of web browsers, and the convenience of using a web browser as a client, sometimes called a thin client. The ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers is a key reason for their popularity.
To put it even more simply, A Web application is just an application that is deployed on the Web. It is a Web page, or series of Web pages, allowing users to accomplish a task like obtaining information and forms, shopping, applying for a job, listening to Internet radio, or any of the many activities possible on the Web. To use a Web application, a user needs to know a URL for the application, and possibly a name and password. Another way to think of a Web application is a Web site offering a great deal of functionality. A web application can provide any functions that may historically be found on a desktop computer. There are web applications to provide weather information for your locale, to track sales calls for a sales force, or sales expenses, or on any topic at all.
Posted by
Ashish Agarwal
at
3/07/2009 07:55:00 PM
0
comments
Labels: Definition, Web Applications, WebApp
|
| Subscribe by Email |
|
Sunday, March 1, 2009
Testing of Web Applications
The quality of a web application can be pretty evident right from the onset (from the beginning of testing). Some of the key things to check for, and that are visible right in the beginning are:
- Slow response time,
- Problems with the accuracy of information,
- Bad design / workflow problems or not having ease of use will compel the user
to click to a competitor's site
Problems such as these that are easily visible directly translate into loss of users, declining or stagnant sales and a very poor image of the company.
These are outcomes that companies seek to avoid at any costs, and that is why there is the need for a strong QE effort. As a part of this, the following techniques can be used to do a more thorough checking:
1. Good Functionality testing - This sort of testing makes sure that the features that are visible to a user and affect interactions are working properly and as desired.
Some of these objects in a WebApp include: User enterable forms, Searches and their results, Pop-up windows (most users hate them because of their heritage), shopping carts.
2. Usability testing - Many users have a low tolerance for anything that is difficult to use, making having a usability testing program a critical part of the testing of any WebApp. You need to ensure that a user's first impression is very important; what makes this more complex is that now-a-days applications have become complicated and cluttered with an increasing number of features.
The main steps involved in usability testing are:
- Identify the purpose of WebApp.
- Identify the intended users.
- Define the tests, review them for thoroughness and conduct usability testing.
- Collect information through various mechanisms.
- Carry out an analysis of the acquired information.
- Make the necessary changes based on the acquired information.
3. Navigation testing - Navigation testing makes sure that all navigation syntax and semantics are exercised to uncover any navigation errors. It should not happen that a user clicks on a navigation aid and then either reaches a dead end or goes off into a wrong direction.
4. Forms testing - WebApps that use forms requires tests to ensure that each field is working properly (including the validations such as not allowing users to enter more than a certain amount of text, fields not being left blank, etc) and that the form posts all the data as intended by the designer.
5. Content testing - Content is evaluated at both a syntactic and semantic level.At the syntactic level, spelling, punctuation, and grammar are assessed. At semantic level, correctness, consistency, and lack of ambiguity are all assessed. It creates a very bad impression if the user finds spelling mistakes (user assumes that there must be something wrong if the company put wrong spellings or wrong grammar and did not find it till now, or the company does not care that there are problems on the site)
6. Compatibility testing - This testing is done by executing the webApp under every browser/ platform combination to ensure that the web applications are working properly under different environments. This sort of testing is easier said than done, since the number of browsers and operating systems in the market are huge.
7. Performance testing - This testing evaluates the system performance under normal and heavy usage. An application that takes long to respond may frustrate the user which could result to move to a competitor's site. This testing ensures that the website server responds to browser requests within defined parameters. The system should work perfectly and speedily under normal expected usage, and if possible, should be handle some amount of extra load.
8. Load testing - The purpose of this testing is to present real world experiences, typically by generating many users simultaneously accessing the web application. Typically, companies use automated test tools to increase the ability to conduct
a valid load test as it emulates thousand of users by sending requests simultaneously to the application. Critical, as failure under heavy loads does not convey a good impression, and may make the system susceptible to attacks by recreating heavy loads.
9. Security testing - Security is one of the primary concerns when communicating and conducting businesses over internet. One break-in can spoil the reputation of a company and lead to loss of business, stealing of user data, and other such cases with horrible consequences. Finding the vulnerabilities in an application that could grant an unauthorized user to access the system is important. Equally important is being able to track all access to the system, and do a frequent scan of these accesses.
Posted by
Ashish Agarwal
at
3/01/2009 10:29:00 PM
0
comments
Labels: Load, Performance, Security, Testing, Web Applications, WebApp
|
| Subscribe by Email |
|
WebApp testing - a short summary
A WebApp or Web Application is a type of application / software that is accessed via a web browser (such as Internet Explorer, Firefox, Opera, Safari) over a network such as the Internet or an intranet. It is typically coded in a browser-supported language (such as HTML, JavaScript, Java, etc.) with the browser environment making the application executable.
With such applications becoming more widespread, testing of such applications is much bigger than it was earlier. Here is a short summary about WebApp testing, and future posts will explore this area in more detail.
WebApp testing is a collection of related activities that has the goal of uncovering the errors in Web Applications related to content, function, usability, navigability, performance, capacity, and security. To accomplish this a testing
strategy that encompasses both reviews and executable testing is applied throughout the Web engineering process.
Generally testing of Web Applications is done by the same set of people who would be involved if the application was a normal client-server application, so webApp testing is done by web engineers and managers, customers, end-users and other stakeholders. This is generic advice for testing, and very relevant for Web Applications. Testing should not wait until the project is finished. It should start before you start thinking of writing a single line of code.
Testing is the process of finding errors and correcting them. The same philosophy goes with Web Applications also. In fact, WebApp testing becomes a more challenging
task for the web engineers as these applications reside on a different network and accessible by varied environments encompassing different operating systems, browsers, platforms. With such varied environments, the possibility of finding errors increases.
Web based applications present new challenges, with some of these challenges are:
1. Short release cycles
2. Constantly changing technology
3. Possible huge number of users during initial website launch
4. Inability to control the user's running environment
5. 24-hour availability of the web site.
Posted by
Ashish Agarwal
at
3/01/2009 10:11:00 AM
0
comments
Labels: Browsers, Internet, Intranet, Network, Processes, Testing, Web Applications, WebApp
|
| Subscribe by Email |
|