International Journal of Engineering and Science Invention (IJESI) is an international journal intended for professionals and researchers in all fields of computer science and electronics. IJESI publishes research articles and reviews within the whole field Engineering Science and Technology, new teaching methods, assessment, validation and the impact of new technologies and it will continue to provide information on the latest trends and developments in this ever-expanding subject. The publications of papers are selected through double peer reviewed to ensure originality, relevance, and readability. The articles published in our journal can be accessed online.
Quality Attributes of Web Software Applications ∗hasnainqayyum1
Quality Attributes of Web Software Applications
Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗
EMPIRICALLY VALIDATED SIMPLICITY EVALUATION MODEL FOR OBJECT ORIENTED SOFTWAREijseajournal
Software program developers need to go from beginning to ending and understand source code of the program and other software attributes. The software complexities and length of the program exceedingly affects many design level quality attributes, specifically Simplicity, Testability and software
Maintainability. Incomplete design of any software generally leads to misunderstanding and ambiguities
and therefore to gives faulty design and development results. This is mainly seeming and appears owing to
the absence of it’s an appropriate observation, design and development control. However, high level design
and program simplicity are very necessary and one of the vital attributes of the system development cycle.This research paper highlights the impact and significance of design level software simplicity in common and as a one of the most useful key factor or index of software quality assurance and testing. In this research work principally there are three major efforts are made. As a first contribution, a valuable
relationship between software design quality factor simplicity and related object oriented design
properties, this has been set up. In the second contribution, using design level corresponding metrics a
simplicity evaluation model for object oriented software is developed. Subsequently, the developed
simplicity model has been rationally authenticated by means of experimental data try-out.
A User Story Quality Measurement Model for Reducing Agile Software Developmen...ijseajournal
In Mobile communications age, the IT environment and IT technology update rapidly. The requirements
change is the software project must face challenge. Able to overcome the impact of requirements change,
software development risks can be effectively reduced. Agile software development uses the Iterative and
Incremental Development (IID) process and focuses on the workable software and client communication.
Agile software development is a very suitable development method for handling the requirements change in
software development process. In agile development, user stories are the important documents for the
client communication and criteria of acceptance test. However, the agile development doesn’t pay attention
to the formal requirements analysis and artifacts tracability to cause the potential risks of software change
management. In this paper, analyzing and collecting the critical quality factors of user stories, and
proposes the User Story Quality Measurement (USQM) model. Applied USQM model, the requirements
quality of agile development can be enhanced and risks of requirement changes can be reduced.
A New Model for Study of Quality Attributes to Components Based Development A...Kiogyf
A New Model for Study of Quality Attributes to Components Based Development Approach
by bstract :
Software development costs, time - to release and quality product are important factors affecting the construction of software. Different types of tools and techniques are suggested by researchers to improve in delivering quality software systems with lower cost and reduce time to delivery. One such practice is development of software using ased Software Development (CBSD) techniques. CBSD recommended Component Bbuilding software systems using existing reusable components, instead of writing from scratch. The main objective of CBSD is to writes once and reuse any number of time with no or modification . Some of the advantages that a company may available by adapting CBSD for the Software development are shorter development time which results in meet tight dead line, increase productivity and Quality Product. CBSD also, s paper is to develop the new model of software support reusability. The aim of thiproduct and describe the characteristics of some selected of attributes of CBSD models that are widely practiced in software industries. We proposed a complete model for or reuse. This Model will cover both Component Based Software Development fcomponent based software development as well as Component development phases for
A - Model. This Model is represent one good solution for Component Based Development with reduce cost and time to deliverable and save the quality of product . Keywords: Component Based Approach, Quality Model, Quality Attributes, , A - Model for CBD .
1. Introduction
Quality Attributes of Web Software Applications ∗hasnainqayyum1
Quality Attributes of Web Software Applications
Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗
Quality Attributes of Web Software Applications ∗
EMPIRICALLY VALIDATED SIMPLICITY EVALUATION MODEL FOR OBJECT ORIENTED SOFTWAREijseajournal
Software program developers need to go from beginning to ending and understand source code of the program and other software attributes. The software complexities and length of the program exceedingly affects many design level quality attributes, specifically Simplicity, Testability and software
Maintainability. Incomplete design of any software generally leads to misunderstanding and ambiguities
and therefore to gives faulty design and development results. This is mainly seeming and appears owing to
the absence of it’s an appropriate observation, design and development control. However, high level design
and program simplicity are very necessary and one of the vital attributes of the system development cycle.This research paper highlights the impact and significance of design level software simplicity in common and as a one of the most useful key factor or index of software quality assurance and testing. In this research work principally there are three major efforts are made. As a first contribution, a valuable
relationship between software design quality factor simplicity and related object oriented design
properties, this has been set up. In the second contribution, using design level corresponding metrics a
simplicity evaluation model for object oriented software is developed. Subsequently, the developed
simplicity model has been rationally authenticated by means of experimental data try-out.
A User Story Quality Measurement Model for Reducing Agile Software Developmen...ijseajournal
In Mobile communications age, the IT environment and IT technology update rapidly. The requirements
change is the software project must face challenge. Able to overcome the impact of requirements change,
software development risks can be effectively reduced. Agile software development uses the Iterative and
Incremental Development (IID) process and focuses on the workable software and client communication.
Agile software development is a very suitable development method for handling the requirements change in
software development process. In agile development, user stories are the important documents for the
client communication and criteria of acceptance test. However, the agile development doesn’t pay attention
to the formal requirements analysis and artifacts tracability to cause the potential risks of software change
management. In this paper, analyzing and collecting the critical quality factors of user stories, and
proposes the User Story Quality Measurement (USQM) model. Applied USQM model, the requirements
quality of agile development can be enhanced and risks of requirement changes can be reduced.
A New Model for Study of Quality Attributes to Components Based Development A...Kiogyf
A New Model for Study of Quality Attributes to Components Based Development Approach
by bstract :
Software development costs, time - to release and quality product are important factors affecting the construction of software. Different types of tools and techniques are suggested by researchers to improve in delivering quality software systems with lower cost and reduce time to delivery. One such practice is development of software using ased Software Development (CBSD) techniques. CBSD recommended Component Bbuilding software systems using existing reusable components, instead of writing from scratch. The main objective of CBSD is to writes once and reuse any number of time with no or modification . Some of the advantages that a company may available by adapting CBSD for the Software development are shorter development time which results in meet tight dead line, increase productivity and Quality Product. CBSD also, s paper is to develop the new model of software support reusability. The aim of thiproduct and describe the characteristics of some selected of attributes of CBSD models that are widely practiced in software industries. We proposed a complete model for or reuse. This Model will cover both Component Based Software Development fcomponent based software development as well as Component development phases for
A - Model. This Model is represent one good solution for Component Based Development with reduce cost and time to deliverable and save the quality of product . Keywords: Component Based Approach, Quality Model, Quality Attributes, , A - Model for CBD .
1. Introduction
“Scrumbear” framework for solving traditional scrum model problemsjournalBEEI
Software engineering is a discipline that is little understood by people. It defines how software is developed and maintained to meet the clients’ requirements. Software engineers follow certain systems and standards in their work to meet the clients’ desires. It is on this background that engineers follow specific models in coming up with the final product. One of the models highly used is scrum, which is one of the agile methodologies. However, despite being highly used, it has inherent flaws that need to be corrected. Those flaws are product owner continues changing; do not accept changes in working scrum, sprint’s release time limitation, finally wasting team time within each sprint. This paper presents a new framework, which is an updated version of the current Scrum, to overcome the scum models mentioned issues. In this study, a new framework is presented in a way that is understandable and needed by software developer’s team upon the collected qualitative and quantitative data. The implementation was by making some changes to the current scrum model leading to the “Scrumbear”, certain flaws can be corrected. One of the presented changes involve adding the control master rule to ensure controlling the requirements changing.
Improved Strategy for Distributed Processing and Network Application Developm...Editor IJCATR
The complexity of software development abstraction and the new development in multi-core computers have shifted the burden of distributed software performance from network and chip designers to software architectures and developers. We need to look at software development strategies that will integrate parallelization of code, concurrency factors, multithreading, distributed resources allocation and distributed processing. In this paper, a new software development strategy that integrates these factors is further experimented on parallelism. The strategy is multidimensional aligns distributed conceptualization along a path. This development strategy mandates application developers to reason along usability, simplicity, resource distribution, parallelization of code where necessary, processing time and cost factors realignment as well as security and concurrency issues in a balanced path from the originating point of the network application to its retirement.
Model driven process for real time embeddedcaijjournal
Embedded systems shape our world nowadays. It’s almost impossible to imagine our day to day life without
it. Examples can include cell phones, home appliances, energy generators, satellites, automotive
components …etc. it is even far more complex if there are real-time and interface constraints.
Developing real-time embedded systems is significantly challenging to developers. Results need not be only
correct, but also in a timely manner. New software development approaches are needed due to the
complexity of functional and non-functional requirements of embedded systems.
Due to the complex context of embedded systems, defects can cause life threatening situations. Delays can
create huge costs, and insufficient productivity can impact the entire industry. The rapid evolution of
software engineering technologies will be a key factor in the successful future development of even more
complex embedded systems.
Software development is shifting from manual programming, to model-driven engineering (MDE). One of
the most important challenges is to manage the increasing complexity of embedded software development,
while maintaining the product’s quality, reducing time to market, and reducing development cost.
MDE is a promising approach that emerged lately. Instead of directly coding the software using
programming languages, developers model software systems using expressive, graphical notations, which
provide a higher abstraction level than programming languages. This is called Model Based Development
(MBD).
Model Based Development if accompanied by Model Based Validation (MBV), will help identify problems
early thus reduce rework cost. Applying tests based on the designed models not only enable early detection
of defects, but also continuous quality assurance. Testing can start in the first iteration of the development
process.
As a result of the model based approach, and in addition to the major advantage of early defects detection,
several time consuming tasks within the classical software development life cycle will be excluded. For
embedded systems development, it’s really important to follow a more time efficient approach.
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
Quality Attributes Topic from Software Architecture $ Design patterns in the relation to software product or any engineering architecture development process needs required by an architect.
Simplified Framework for developing Object Oriented Rich Internet Applications (Java+Vaadin+DB4O+AspectJ).
It uses the "Paradigm Shifting Technique" to identify opportunities and obstacles.
Myself Seenuvasan Velmurugan, Im pursuing Computer science and engineering I had shared my college pptx named as "Importance of software engineering" for your reference and knowlege ,Happy learning, Thank you!
“Scrumbear” framework for solving traditional scrum model problemsjournalBEEI
Software engineering is a discipline that is little understood by people. It defines how software is developed and maintained to meet the clients’ requirements. Software engineers follow certain systems and standards in their work to meet the clients’ desires. It is on this background that engineers follow specific models in coming up with the final product. One of the models highly used is scrum, which is one of the agile methodologies. However, despite being highly used, it has inherent flaws that need to be corrected. Those flaws are product owner continues changing; do not accept changes in working scrum, sprint’s release time limitation, finally wasting team time within each sprint. This paper presents a new framework, which is an updated version of the current Scrum, to overcome the scum models mentioned issues. In this study, a new framework is presented in a way that is understandable and needed by software developer’s team upon the collected qualitative and quantitative data. The implementation was by making some changes to the current scrum model leading to the “Scrumbear”, certain flaws can be corrected. One of the presented changes involve adding the control master rule to ensure controlling the requirements changing.
Improved Strategy for Distributed Processing and Network Application Developm...Editor IJCATR
The complexity of software development abstraction and the new development in multi-core computers have shifted the burden of distributed software performance from network and chip designers to software architectures and developers. We need to look at software development strategies that will integrate parallelization of code, concurrency factors, multithreading, distributed resources allocation and distributed processing. In this paper, a new software development strategy that integrates these factors is further experimented on parallelism. The strategy is multidimensional aligns distributed conceptualization along a path. This development strategy mandates application developers to reason along usability, simplicity, resource distribution, parallelization of code where necessary, processing time and cost factors realignment as well as security and concurrency issues in a balanced path from the originating point of the network application to its retirement.
Model driven process for real time embeddedcaijjournal
Embedded systems shape our world nowadays. It’s almost impossible to imagine our day to day life without
it. Examples can include cell phones, home appliances, energy generators, satellites, automotive
components …etc. it is even far more complex if there are real-time and interface constraints.
Developing real-time embedded systems is significantly challenging to developers. Results need not be only
correct, but also in a timely manner. New software development approaches are needed due to the
complexity of functional and non-functional requirements of embedded systems.
Due to the complex context of embedded systems, defects can cause life threatening situations. Delays can
create huge costs, and insufficient productivity can impact the entire industry. The rapid evolution of
software engineering technologies will be a key factor in the successful future development of even more
complex embedded systems.
Software development is shifting from manual programming, to model-driven engineering (MDE). One of
the most important challenges is to manage the increasing complexity of embedded software development,
while maintaining the product’s quality, reducing time to market, and reducing development cost.
MDE is a promising approach that emerged lately. Instead of directly coding the software using
programming languages, developers model software systems using expressive, graphical notations, which
provide a higher abstraction level than programming languages. This is called Model Based Development
(MBD).
Model Based Development if accompanied by Model Based Validation (MBV), will help identify problems
early thus reduce rework cost. Applying tests based on the designed models not only enable early detection
of defects, but also continuous quality assurance. Testing can start in the first iteration of the development
process.
As a result of the model based approach, and in addition to the major advantage of early defects detection,
several time consuming tasks within the classical software development life cycle will be excluded. For
embedded systems development, it’s really important to follow a more time efficient approach.
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
Quality Attributes Topic from Software Architecture $ Design patterns in the relation to software product or any engineering architecture development process needs required by an architect.
Simplified Framework for developing Object Oriented Rich Internet Applications (Java+Vaadin+DB4O+AspectJ).
It uses the "Paradigm Shifting Technique" to identify opportunities and obstacles.
Myself Seenuvasan Velmurugan, Im pursuing Computer science and engineering I had shared my college pptx named as "Importance of software engineering" for your reference and knowlege ,Happy learning, Thank you!
Best Practices for Full-Stack Development_ A Comprehensive Guide.pdfUncodemy
Full-Stack development is a multifaceted discipline that requires expertise in both frontend and backend technologies. By following best practices and continually improving your skills, you can become a proficient Full-Stack developer capable of delivering high-quality, user-centric applications. Additionally, pursuing a Full-Stack development course in Kurukshetra, Delhi, Noida, and all Cities in India can provide you with valuable knowledge and practical experience to excel in this field.
QUALITY ASSURANCE AND INTEGRATION TESTING ASPECTS IN WEB BASED APPLICATIONSIJCSEA Journal
Integration testing is one the important phase in software testing life cycle (STLC). With the fast growth of internet and web services, web-based applications are also growing rapidly and their importance and complexity is also increasing. Heterogeneous and diverse nature of distributed components, applications, along with their multi-platform support and cooperativeness make these applications more complex and swiftly increasing in their size. Quality assurance of these applications is becoming more crucial and important. Testing is one of the key processes to achieve and ensure the quality of these software or Webbased products. There are many testing challenges involved in Web-based applications. But most importantly integration is the most critical testing associated with Web-based applications. There are number of challenging factors involved in integration testing efforts. These factors have almost 70 percent to 80 percent impact on overall quality of Web-based applications. In software industry different kind of testing approaches are used by practitioners to solve the issues associated with integration which are due
to ever increasing complexities of Web-based applications.
Reliability Improvement with PSP of Web-Based Software ApplicationsCSEIJJournal
In diverse industrial and academic environments, the quality of the software has been evaluated using
different analytic studies. The contribution of the present work is focused on the development of a
methodology in order to improve the evaluation and analysis of the reliability of web-based software
applications. The Personal Software Process (PSP) was introduced in our methodology for improving the
quality of the process and the product. The Evaluation + Improvement (Ei) process is performed in our
methodology to evaluate and improve the quality of the software system. We tested our methodology in a
web-based software system and used statistical modeling theory for the analysis and evaluation of the
reliability. The behavior of the system under ideal conditions was evaluated and compared against the
operation of the system executing under real conditions. The results obtained demonstrated the
effectiveness and applicability of our methodology
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Assuring Contact Center Experiences for Your Customers With ThousandEyes
C0371019027
1. International Journal of Engineering Science Invention
ISSN (Online): 2319 – 6734, ISSN (Print): 2319 – 6726
www.ijesi.org Volume 3 Issue 7ǁ July 2014 ǁ PP.19-27
www.ijesi.org 19 | Page
Software Quality Attributes for Secured Web Applications
M Sankar , Dr. Anthony Irudhyaraj,
Dean- IT AVIT, Vinayaka Missions University
ABSTRACT: Quality attributes are the overall factors that affect run-time behavior, system design, and user
experience. They represent areas of concern that have the potential for application wide impact across layers
and tiers. Some of these attributes are related to the overall system design, while others are specific to run time,
design time, or user centric issues. The extent to which the application possesses a desired combination of
quality attributes such as usability, performance, reliability, and security indicates the success of the design and
the overall quality of the software application. When designing applications to meet any of the quality attributes
requirements, it is necessary to consider the potential impact on other requirements. You must analyze the
tradeoffs between multiple quality attributes. The importance or priority of each quality attribute differs from
system to system; for example, interoperability will often be less important in a single use packaged retail
application than in a line of business (LOB) system. This chapter lists and describes the quality attributes that
you should consider when designing your application. To get the most out of this chapter, use the table below to
gain an understanding of how quality attributes map to system and application quality factors, and read the
description of each of the quality attributes. Then use the sections containing key guidelines for each of the
quality attributes to understand how that attribute has an impact on your design, and to determine the decisions
you must make to addresses these issues. Keep in mind that the list of quality attributes in this chapter is not
exhaustive, but provides a good starting point for asking appropriate questions
KEYWORDS: SQA, web application, software engineering, reliability, scalability.
I. INTRODUCTION
The software that powers Web applications is distributed, is implemented in multiple languages and
styles, incorporates much reuse and third-party components, is built with cutting edge technologies, and must
interface with users, other Web sites, and databases. Although the word ―heterogeneous‖ is often used for Web
software, it applies in so many ways that the synonymous term ―diverse‖ is more general and familiar, and
probably more appropriate. The software components are often distributed geographically both during
development and deployment, and communicate in numerous distinct and sometimes novel ways (diverse
communication). Web applications consist of diverse components including traditional and non-traditional
software, interpreted scripting languages, plain HTML files, mixtures of HTML and programs, databases,
graphical images, and complex user interfaces. As such,engineering an effective Web site requires large teams
of people with very diverse skills and backgrounds. These teams include programmers, graphics designers,
usability engineers, information layout specialists, data communications and network experts, and database
administrators. This diversity has led to the notion of Web site engineering. [1]
II. ASPECT OF WEB APPLICATION SOFTWARE
To develop the web based software is not an easy task for the software developers. When they actually
developed the software, they have to integrated many components which affect the quality of the web
application. To ensure high quality for Web systems composed of very loosely coupled components, we need
novel techniques to achieve and evaluate these components’ connections. Web-based software offers the
significant advantage of allowing data to be transferred among completely different types of software
components that reside and execute on different computers. However, using multiple programming languages
and building complex business applications complicates the flow of data through the various Web software
pieces. When combined with the requirements to keep data persistent through user sessions, persistent across
sessions, and shared among sessions, the list of abilities unique to Web software begins to get very long. Thus,
software developers and managers working on Web software have encountered many new challenges. Although
it is obvious that we struggle to keep up with the technology, less obvious is our difficulty in understanding just
how Web software development is different, and how to adapt existing processes and procedures to this new
type of software.
2. Software Quality Attributes for Secured…
www.ijesi.org 20 | Page
III. ECONOMIC CHANGES
We evaluate software by measuring the quality of attributes such as reliability, usability, and
maintainability, yet academics often fail to acknowledge that the basic economics behind software production
has a strong impact on the development process. Although the field of software engineering has spent years
developing processes and technologies to improve software quality attributes, most software companies have
had little financial motivation to improve their software’s quality. Software contractors receive payment
regardless of the delivered software’s quality and, in fact, are often given additional resources to correct
problems of their own making. So-called ―shrink wrap‖ vendors are driven almost entirely by time to market; it
is often more lucrative to deliver poor-quality products sooner than high quality products later. They can deliver
bug fixes as new releases that are sold to generate more revenue for the company. For most application types,
commercial developers have traditionally had little motivation to produce high-quality software. Web-based
software, however, raises new economic issues. When I recently surveyed a number of Web software
development managers and practitioners, I found that companies that operate through the Web depend on
customers using and, most importantly, returning to their sites. Thus, unlike many software contractors, Web
application developers only see a return on their investment if their Web sites satisfy customer needs. And
unlike many software endors, if a new company puts up a competitive site of higher quality, customers will
almost immediately shift their business to the new site once they discover it. [4]
IV. CRITERIA FOR WEB APPLICATION
Of course, this is hardly a complete list of important or even relevant quality attributes, but it provides a
solid basis for discussion. Certainly speed of execution is also important, but network factors influence this
more than software does, and other important quality attributes such as customer service, product quality, price,
and delivery stem from human and organizational rather than software factors. [1, 5–8] suggesting wide
agreement that successful Web software development depends on satisfying these quality attributes.
COMMON QUALITY ATTRIBUTES :The following table describes the quality attributes covered in this chapter. It
categorizes the attributes in four specific areas linked to design, runtime, system, and user qualities. Use this
table to understand what each of the quality attributes means in terms of your application design.
Category Quality attribute Description
Design Qualities Conceptual Integrity Conceptual integrity defines the consistency and coherence of the overall design. This
includes the way that components or modules are designed, as well as factors such as
coding style and variable naming.
Maintainability Maintainability is the ability of the system to undergo changes with a degree of ease.
These changes could impact components, services, features, and interfaces when
adding or changing the functionality, fixing errors, and meeting new business
requirements.
Reusability Reusability defines the capability for components and subsystems to be suitable for
use in other applications and in other scenarios. Reusability minimizes the duplication
of components and also the implementation time.
Run-time Qualities Availability Availability defines the proportion of time that the system is functional and working.
It can be measured as a percentage of the total system downtime over a predefined
period. Availability will be affected by system errors, infrastructure problems,
malicious attacks, and system load.
Interoperability Interoperability is the ability of a system or different systems to operate successfully
by communicating and exchanging information with other external systems written
and run by external parties. An interoperable system makes it easier to exchange and
reuse information internally as well as externally.
Manageability Manageability defines how easy it is for system administrators to manage the
application, usually through sufficient and useful instrumentation exposed for use in
monitoring systems and for debugging and performance tuning.
3. Software Quality Attributes for Secured…
www.ijesi.org 21 | Page
Performance Performance is an indication of the responsiveness of a system to execute any action
within a given time interval. It can be measured in terms of latency or throughput.
Latency is the time taken to respond to any event. Throughput is the number of events
that take place within a given amount of time.
Reliability Reliability is the ability of a system to remain operational over time. Reliability is
measured as the probability that a system will not fail to perform its intended functions
over a specified time interval.
Scalability Scalability is ability of a system to either handle increases in load without impact on
the performance of the system, or the ability to be readily enlarged.
Security Security is the capability of a system to prevent malicious or accidental actions outside
of the designed usage, and to prevent disclosure or loss of information. A secure
system aims to protect assets and prevent unauthorized modification of information.
System Qualities Supportability Supportability is the ability of the system to provide information helpful for
identifying and resolving issues when it fails to work correctly.
Testability Testability is a measure of how easy it is to create test criteria for the system and its
components, and to execute these tests in order to determine if the criteria are met.
Good testability makes it more likely that faults in a system can be isolated in a timely
and effective manner.
User Qualities Usability Usability defines how well the application meets the requirements of the user and
consumer by being intuitive, easy to localize and globalize, providing good access for
disabled users, and resulting in a good overall user experience.
The following sections describe each of the quality attributes in more detail, and provide guidance on the key
issues and the decisions you must make for each one:
Availability
Conceptual Integrity
Interoperability
Maintainability
Manageability
Performance
Reliability
Reusability
Scalability
Security
Supportability
Testability
User Experience / Usability
Availability
Availability defines the proportion of time that the system is functional and working. It can be measured as a
percentage of the total system downtime over a predefined period. Availability will be affected by system errors,
infrastructure problems, malicious attacks, and system load. The key issues for availability are:
A physical tier such as the database server or application server can fail or become unresponsive, causing
the entire system to fail. Consider how to design failover support for the tiers in the system. For example,
use Network Load Balancing for Web servers to distribute the load and prevent requests being directed to a
server that is down. Also, consider using a RAID mechanism to mitigate system failure in the event of a
disk failure. Consider if there is a need for a geographically separate redundant site to failover to in case of
natural disasters such as earthquakes or tornados.
Denial of Service (DoS) attacks, which prevent authorized users from accessing the system, can interrupt
operations if the system cannot handle massive loads in a timely manner, often due to the processing time
4. Software Quality Attributes for Secured…
www.ijesi.org 22 | Page
required, or network configuration and congestion. To minimize interruption from DoS attacks, reduce the
attack surface area, identify malicious behavior, use application instrumentation to expose unintended
behavior, and implement comprehensive data validation. Consider using the Circuit Breaker or Bulkhead
patterns to increase system resiliency.
Inappropriate use of resources can reduce availability. For example, resources acquired too early and held
for too long cause resource starvation and an inability to handle additional concurrent user requests.
Bugs or faults in the application can cause a system wide failure. Design for proper exception handling in
order to reduce application failures from which it is difficult to recover.
Frequent updates, such as security patches and user application upgrades, can reduce the availability of the
system. Identify how you will design for run-time upgrades.
A network fault can cause the application to be unavailable. Consider how you will handle unreliable
network connections; for example, by designing clients with occasionally-connected capabilities.
Consider the trust boundaries within your application and ensure that subsystems employ some form of
access control or firewall, as well as extensive data validation, to increase resiliency and availability.
Conceptual Integrity
Conceptual integrity defines the consistency and coherence of the overall design. This includes the way that
components or modules are designed, as well as factors such as coding style and variable naming. A coherent
system is easier to maintain because you will know what is consistent with the overall design. Conversely, a
system without conceptual integrity will constantly be affected by changing interfaces, frequently deprecating
modules, and lack of consistency in how tasks are performed. The key issues for conceptual integrity are:
Mixing different areas of concern within your design. Consider identifying areas of concern and grouping
them into logical presentation, business, data, and service layers as appropriate.
Inconsistent or poorly managed development processes. Consider performing an Application Lifecycle
Management (ALM) assessment, and make use of tried and tested development tools and methodologies.
Lack of collaboration and communication between different groups involved in the application lifecycle.
Consider establishing a development process integrated with tools to facilitate process workflow,
communication, and collaboration.
Lack of design and coding standards. Consider establishing published guidelines for design and coding
standards, and incorporating code reviews into your development process to ensure guidelines are followed.
Existing (legacy) system demands can prevent both refactoring and progression toward a new platform or
paradigm. Consider how you can create a migration path away from legacy technologies, and how to isolate
applications from external dependencies. For example, implement the Gateway design pattern for
integration with legacy systems.
Interoperability : Interoperability is the ability of a system or different systems to operate successfully by
communicating and exchanging information with other external systems written and run by external parties. An
interoperable system makes it easier to exchange and reuse information internally as well as externally.
Communication protocols, interfaces, and data formats are the key considerations for interoperability.
Standardization is also an important aspect to be considered when designing an interoperable system. The key
issues for interoperability are:
Interaction with external or legacy systems that use different data formats. Consider how you can enable
systems to interoperate, while evolving separately or even being replaced. For example, use orchestration
with adaptors to connect with external or legacy systems and translate data between systems; or use a
canonical data model to handle interaction with a large number of different data formats.
Boundary blurring, which allows artifacts from one system to defuse into another. Consider how you can
isolate systems by using service interfaces and/or mapping layers. For example, expose services using
interfaces based on XML or standard types in order to support interoperability with other systems. Design
components to be cohesive and have low coupling in order to maximize flexibility and facilitate
replacement and reusability.
Lack of adherence to standards. Be aware of the formal and de facto standards for the domain you are
working within, and consider using one of them rather than creating something new and proprietary.
Maintainability : Maintainability is the ability of the system to undergo changes with a degree of ease. These
changes could impact components, services, features, and interfaces when adding or changing the application’s
5. Software Quality Attributes for Secured…
www.ijesi.org 23 | Page
functionality in order to fix errors, or to meet new business requirements. Maintainability can also affect the
time it takes to restore the system to its operational status following a failure or removal from operation for an
upgrade. Improving system maintainability can increase availability and reduce the effects of run-time defects.
An application’s maintainability is often a function of its overall quality attributes but there a number of key
issues that can directly affect maintainability:
Excessive dependencies between components and layers, and inappropriate coupling to concrete classes,
prevents easy replacement, updates, and changes; and can cause changes to concrete classes to ripple
through the entire system. Consider designing systems as well-defined layers, or areas of concern, that
clearly delineate the system’s UI, business processes, and data access functionality. Consider implementing
cross-layer dependencies by using abstractions (such as abstract classes or interfaces) rather than concrete
classes, and minimize dependencies between components and layers.
The use of direct communication prevents changes to the physical deployment of components and layers.
Choose an appropriate communication model, format, and protocol. Consider designing a pluggable
architecture that allows easy upgrades and maintenance, and improves testing opportunities, by designing
interfaces that allow the use of plug-in modules or adapters to maximize flexibility and extensibility.
Reliance on custom implementations of features such as authentication and authorization prevents reuse and
hampers maintenance. To avoid this, use the built-in platform functions and features wherever possible.
The logic code of components and segments is not cohesive, which makes them difficult to maintain and
replace, and causes unnecessary dependencies on other components. Design components to be cohesive and
have low coupling in order to maximize flexibility and facilitate replacement and reusability.
The code base is large, unmanageable, fragile, or over complex; and refactoring is burdensome due to
regression requirements. Consider designing systems as well defined layers, or areas of concern, that clearly
delineate the system’s UI, business processes, and data access functionality. Consider how you will manage
changes to business processes and dynamic business rules, perhaps by using a business workflow engine if
the business process tends to change. Consider using business components to implement the rules if only
the business rule values tend to change; or an external source such as a business rules engine if the business
decision rules do tend to change.
The existing code does not have an automated regression test suite. Invest in test automation as you build
the system. This will pay off as a validation of the system’s functionality, and as documentation on what the
various parts of the system do and how they work together.
Lack of documentation may hinder usage, management, and future upgrades. Ensure that you provide
documentation that, at minimum, explains the overall structure of the application.
Manageability : Manageability defines how easy it is for system administrators to manage the application,
usually through sufficient and useful instrumentation exposed for use in monitoring systems and for debugging
and performance tuning. Design your application to be easy to manage, by exposing sufficient and useful
instrumentation for use in monitoring systems and for debugging and performance tuning. The key issues for
manageability are:
Lack of health monitoring, tracing, and diagnostic information. Consider creating a health model that
defines the significant state changes that can affect application performance, and use this model to specify
management instrumentation requirements. Implement instrumentation, such as events and performance
counters, that detects state changes, and expose these changes through standard systems such as Event
Logs, Trace files, or Windows Management Instrumentation (WMI). Capture and report sufficient
information about errors and state changes in order to enable accurate monitoring, debugging, and
management. Also, consider creating management packs that administrators can use in their monitoring
environments to manage the application.
Lack of runtime configurability. Consider how you can enable the system behavior to change based on
operational environment requirements, such as infrastructure or deployment changes.
Lack of troubleshooting tools. Consider including code to create a snapshot of the system’s state to use for
troubleshooting, and including custom instrumentation that can be enabled to provide detailed operational
and functional reports. Consider logging and auditing information that may be useful for maintenance and
debugging, such as request details or module outputs and calls to other systems and services.
Performance :Performance is an indication of the responsiveness of a system to execute specific actions in a
given time interval. It can be measured in terms of latency or throughput. Latency is the time taken to respond to
any event. Throughput is the number of events that take place in a given amount of time. An application’s
6. Software Quality Attributes for Secured…
www.ijesi.org 24 | Page
performance can directly affect its scalability, and lack of scalability can affect performance. Improving an
application’s performance often improves its scalability by reducing the likelihood of contention for shared
resources. Factors affecting system performance include the demand for a specific action and the system’s
response to the demand. The key issues for performance are:
Increased client response time, reduced throughput, and server resource over utilization. Ensure that you
structure the application in an appropriate way and deploy it onto a system or systems that provide
sufficient resources. When communication must cross process or tier boundaries, consider using coarse-
grained interfaces that require the minimum number of calls (preferably just one) to execute a specific task,
and consider using asynchronous communication.
Increased memory consumption, resulting in reduced performance, excessive cache misses (the inability to
find the required data in the cache), and increased data store access. Ensure that you design an efficient and
appropriate caching strategy.
Increased database server processing, resulting in reduced throughput. Ensure that you choose effective
types of transactions, locks, threading, and queuing approaches. Use efficient queries to minimize
performance impact, and avoid fetching all of the data when only a portion is displayed. Failure to design
for efficient database processing may incur unnecessary load on the database server, failure to meet
performance objectives, and costs in excess of budget allocations.
Increased network bandwidth consumption, resulting in delayed response times and increased load for
client and server systems. Design high performance communication between tiers using the appropriate
remote communication mechanism. Try to reduce the number of transitions across boundaries, and
minimize the amount of data sent over the network. Batch work to reduce calls over the network.
Reliability : Reliability is the ability of a system to continue operating in the expected way over time.
Reliability is measured as the probability that a system will not fail and that it will perform its intended function
for a specified time interval. The key issues for reliability are:
The system crashes or becomes unresponsive. Identify ways to detect failures and automatically initiate a
failover, or redirect load to a spare or backup system. Also, consider implementing code that uses
alternative systems when it detects a specific number of failed requests to an existing system.
Output is inconsistent. Implement instrumentation, such as events and performance counters, that detects
poor performance or failures of requests sent to external systems, and expose information through standard
systems such as Event Logs, Trace files, or WMI. Log performance and auditing information about calls
made to other systems and services.
The system fails due to unavailability of other externalities such as systems, networks, and databases.
Identify ways to handle unreliable external systems, failed communications, and failed transactions.
Consider how you can take the system offline but still queue pending requests. Implement store and
forward or cached message-based communication systems that allow requests to be stored when the target
system is unavailable, and replayed when it is online. Consider using Windows Message Queuing or
BizTalk Server to provide a reliable once-only delivery mechanism for asynchronous requests.
Reusability :Reusability is the probability that a component will be used in other components or scenarios to
add new functionality with little or no change. Reusability minimizes the duplication of components and the
implementation time. Identifying the common attributes between various components is the first step in building
small reusable components for use in a larger system. The key issues for reusability are:
The use of different code or components to achieve the same result in different places; for example,
duplication of similar logic in multiple components, and duplication of similar logic in multiple layers or
subsystems. Examine the application design to identify common functionality, and implement this
functionality in separate components that you can reuse. Examine the application design to identify
crosscutting concerns such as validation, logging, and authentication, and implement these functions as
separate components.
The use of multiple similar methods to implement tasks that have only slight variation. Instead, use
parameters to vary the behavior of a single method.
Using several systems to implement the same feature or function instead of sharing or reusing functionality
in another system, across multiple systems, or across different subsystems within an application. Consider
exposing functionality from components, layers, and subsystems through service interfaces that other layers
7. Software Quality Attributes for Secured…
www.ijesi.org 25 | Page
and systems can use. Use platform agnostic data types and structures that can be accessed and understood
on different platforms.
Scalability : Scalability is ability of a system to either handle increases in load without impact on the
performance of the system, or the ability to be readily enlarged. There are two methods for improving
scalability: scaling vertically (scale up), and scaling horizontally (scale out). To scale vertically, you add more
resources such as CPU, memory, and disk to a single system. To scale horizontally, you add more machines to a
farm that runs the application and shares the load. The key issues for scalability are:
Applications cannot handle increasing load. Consider how you can design layers and tiers for scalability,
and how this affects the capability to scale up or scale out the application and the database when required.
You may decide to locate logical layers on the same physical tier to reduce the number of servers required
while maximizing load sharing and failover capabilities. Consider partitioning data across more than one
database server to maximize scale-up opportunities and allow flexible location of data subsets. Avoid
stateful components and subsystems where possible to reduce server affinity.
Users incur delays in response and longer completion times. Consider how you will handle spikes in traffic
and load. Consider implementing code that uses additional or alternative systems when it detects a
predefined service load or a number of pending requests to an existing system.
The system cannot queue excess work and process it during periods of reduced load. Implement store-and-
forward or cached message-based communication systems that allow requests to be stored when the target
system is unavailable, and replayed when it is online.
Security : Security is the capability of a system to reduce the chance of malicious or accidental actions outside
of the designed usage affecting the system, and prevent disclosure or loss of information. Improving security
can also increase the reliability of the system by reducing the chances of an attack succeeding and impairing
system operation. Securing a system should protect assets and prevent unauthorized access to or modification of
information. The factors affecting system security are confidentiality, integrity, and availability. The features
used to secure systems are authentication, encryption, auditing, and logging. The key issues for security are:
Spoofing of user identity. Use authentication and authorization to prevent spoofing of user identity. Identify
trust boundaries, and authenticate and authorize users crossing a trust boundary.
Damage caused by malicious input such as SQL injection and cross-site scripting. Protect against such
damage by ensuring that you validate all input for length, range, format, and type using the constrain, reject,
and sanitize principles. Encode all output you display to users.
Data tampering. Partition the site into anonymous, identified, and authenticated users and use application
instrumentation to log and expose behavior that can be monitored. Also use secured transport channels, and
encrypt and sign sensitive data sent across the network
Repudiation of user actions. Use instrumentation to audit and log all user interaction for application critical
operations.
Information disclosure and loss of sensitive data. Design all aspects of the application to prevent access to
or exposure of sensitive system and application information.
Interruption of service due to Denial of service (DoS) attacks. Consider reducing session timeouts and
implementing code or hardware to detect and mitigate such attacks.
Supportability : Supportability is the ability of the system to provide information helpful for identifying and
resolving issues when it fails to work correctly. The key issues for supportability are:
Lack of diagnostic information. Identify how you will monitor system activity and performance. Consider a
system monitoring application, such as Microsoft System Center.
Lack of troubleshooting tools. Consider including code to create a snapshot of the system’s state to use for
troubleshooting, and including custom instrumentation that can be enabled to provide detailed operational
and functional reports. Consider logging and auditing information that may be useful for maintenance and
debugging, such as request details or module outputs and calls to other systems and services.
Lack of tracing ability. Use common components to provide tracing support in code, perhaps though Aspect
Oriented Programming (AOP) techniques or dependency injection. Enable tracing in Web applications in
order to troubleshoot errors.
8. Software Quality Attributes for Secured…
www.ijesi.org 26 | Page
Lack of health monitoring. Consider creating a health model that defines the significant state changes that
can affect application performance, and use this model to specify management instrumentation
requirements. Implement instrumentation, such as events and performance counters, that detects state
changes, and expose these changes through standard systems such as Event Logs, Trace files, or Windows
Management Instrumentation (WMI). Capture and report sufficient information about errors and state
changes in order to enable accurate monitoring, debugging, and management. Also, consider creating
management packs that administrators can use in their monitoring environments to manage the application.
Testability : Testability is a measure of how well system or components allow you to create test criteria and
execute tests to determine if the criteria are met. Testability allows faults in a system to be isolated in a timely
and effective manner. The key issues for testability are:
Complex applications with many processing permutations are not tested consistently, perhaps because
automated or granular testing cannot be performed if the application has a monolithic design. Design
systems to be modular to support testing. Provide instrumentation or implement probes for testing,
mechanisms to debug output, and ways to specify inputs easily. Design components that have high cohesion
and low coupling to allow testability of components in isolation from the rest of the system.
Lack of test planning. Start testing early during the development life cycle. Use mock objects during
testing, and construct simple, structured test solutions.
Poor test coverage, for both manual and automated tests. Consider how you can automate user interaction
tests, and how you can maximize test and code coverage.
Input and output inconsistencies; for the same input, the output is not the same and the output does not fully
cover the output domain even when all known variations of input are provided. Consider how to make it
easy to specify and understand system inputs and outputs to facilitate the construction of test cases.
User Experience / Usability : The application interfaces must be designed with the user and consumer in mind
so that they are intuitive to use, can be localized and globalized, provide access for disabled users, and provide a
good overall user experience. The key issues for user experience and usability are:
Too much interaction (an excessive number of clicks) required for a task. Ensure you design the screen and
input flows and user interaction patterns to maximize ease of use.
Incorrect flow of steps in multistep interfaces. Consider incorporating workflows where appropriate to
simplify multistep operations.
Data elements and controls are poorly grouped. Choose appropriate control types (such as option groups
and check boxes) and lay out controls and content using the accepted UI design patterns.
Feedback to the user is poor, especially for errors and exceptions, and the application is unresponsive.
Consider implementing technologies and techniques that provide maximum user interactivity, such as
Asynchronous JavaScript and XML (AJAX) in Web pages and client-side input validation. Use
asynchronous techniques for background tasks, and tasks such as populating controls or performing long-
running tasks.
IV. ARCHITECTURE
The technology has changed because the old two-tier model did not support the high quality
requirements of Web software applications. It failed on security, being prone to crackers who only need to go
through one layer of security on a computer that is, by definition, open to the world to provide access to all data
files. It failed on scalability and maintainability because as Web sites grow, a 2-tier model cannot effectively
separate presentation from business logic, and the applications thus become cumbersome and hard to modify. It
failed on reliability: whereas previous Web software generations relied on CGI programs, usually written in
Perl, many developers have found that large complex Perl programs can be hard to program correctly,
understand, or modify. Finally, it failed on availability because hosting a site on one Web server imposes a
bottleneck: any server problems will hinder user access to the Web site. Figure 1 illustrates current Web site
software. Instead of a simple client-server model, the configuration has expanded first to a three-tier model and
now more generally to an N-tier model. Clients still use a browser to visit Web sites, which are hosted and
delivered by Web servers. But to increase quality attributes such as security, reliability, availability, and
scalability, as well as functionality, most of the software has been moved to a separate computer—the
application server. Indeed, on large Web sites, a collection of application servers typically operates in parallel,
and the application servers interact with one or more database servers that may run a commercial database. [11]
9. Software Quality Attributes for Secured…
www.ijesi.org 27 | Page
V. CONCLUSION
Even with the current economic downturn, the university output is not enough. If universities could
double the production of computer scientists, we still could not put a dent in the need. (Most economists and
business leaders currently believe last year’s many layoffs and bankruptcies in the ecommerce sector resulted
from temporary problems, and expect significant growth in the near future. I optimistically accept this
prognosis; if it is wrong, then this article will be irrelevant anyway.) We can only meet this need by Retraining
experienced engineers to work with the new technology Applying knowledge and technology to increase
efficiency, thereby reducing the number of engineers needed. Finding ways to let people with less education
and skills contribute.
REFERENCES
[1] T.A. Powell, Web Site Engineering:Beyond Web Page Design, Prentice Hall,Upper Saddle River, N.J., 2000.
[2] D.A. Menascé, Scaling for E-Business:Technologies, Models, Performance, and Capacity Planning, Prentice Hall, Upper Saddle
River, N.J., 2000.
[3] E. Dustin, J. Rashka, and D. McDiarmid, Quality Web Systems: Performance, Security, and Usability, Addison- Wesley,
Reading, Mass., 2001.
[4] L.L. Constantine and L.A.D. Lockwood, Software for Use: A Practical Guide to the Models and Methods of Usage Centered
Design, ACM Press, New York, 2000.
[5] S. Murugesan and Y. Deshpande, ―Web Engineering: A New Discipline for Development of Web-Based Systems,‖ Web
Engineering 2000, Lecture Notes in Computer Science 2016, Springer-Verlag, Berlin, 2001, pp. 3–13.
[6] N. Kassem and the Enterprise Team, Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition, Sun
Microsystems, Palo Alto, Calif., 2000.
[7] J. Nielsen, Designing Web Usability, New
[8] Riders Publishing, Indianapolis, Ind., 2000.
[9] M.E. Segal and O. Frieder, ―On-the-Fly Program Modification: Systems for Dynamic Updating,‖ IEEE Software, vol. 10, no. 2,
Mar. 1993, pp. 53–65.
[10] Wrox Multi Team, Professional Java Server Programming, J2EE edition, Wrox Press, Chicago, 2000.
[11] Scharl, Evolutionary Web Development, Springer- Verlag, Berlin, 2000.