Importance of Software Maintenance
Jan29

Importance of Software Maintenance

Welcome to CodeSpread! What is Software Maintenance? Software maintenance is an important phase of SDLC. It is defined as a set of activities to keep the software functional and behavioral as intended for as long as possible with few problems. These activities might involve any processes to modify software product after final release cycle. As a result, software maintenance will Improve performance Correct faults Adapt the product to a modified environment How software maintenance is different from software development? Software Development is kind of a new development where a new environment and system is created from the scratch and there are no sketchy boundaries, if not limited by requirements. But think of introducing a new feature in the developed product which is running in a specific environment. Then, the existing system setting and environment plays a major role as they are required to be considered and analyzed at the planning stage of new feature development. Consideration of limitations posed by existing system and environment is the key difference between software maintenance and software development. What is the purpose of software maintenance? The purpose is to preserve the value of software over the time. The value can be enhanced by expanding the customer base, enhancements of capabilities, deletion of obsolete capabilities,  more efficient and employing newer technology. What are the categories of Software Maintenance? Software maintenance is categorized mainly into 4 categories: Adaptive: As the name suggests, it is related to activities which ensures software remain functional during movement of software to a new system environment. For example: Up gradation of processor will require software to be adapted to the upgraded environment. Perfective: Here, more the requirements, more expansion of software is required. Requirements grow over a course of time so do software. Perfective is an approach to accommodate the enhancement of the initial product. Corrective: As the name suggests, Corrective approach tends to correct any errors or bugs. These errors or bugs might have introduced during design stage, coding stage. These issues might have been missed during development or later crop up under some new test scenarios which were not covered during testing. Preventive: Preventive approach is more a beforehand precaution approach where activities are lined up to avoid any corrective action. For example: Any maintenance activity might lead to code complexity so a series of code restructuring and code optimization activities are performed to avoid any successive issues. Thanks! Related articles across the web Software Maintenance is a...

Read More
Software Testing Life Cycle (STLC)
Jan20

Software Testing Life Cycle (STLC)

Software Testing Life Cycle (STLC) is a process which consists of a number of phases to improve the quality of the product. Each phase involves various testing activities like Requirement Analysis Test Planning Test Design Test Environment Setup Test Execution Test Reporting   Requirement Analysis: What are the types of tests to be performed? Identify Modules. Is there scope for automation testing? Prepare Requirement Traceability Matrix (RTM). Testing Scope. Test Environment Details. Test Planning: What needs to be tested? Identify Test tool. Effort estimation and resource allocation. Scope of testing. Risk Identification. Training Requirements.. Test Design: Create test cases & test scripts. Review test cases & test scripts. Identifying test data, If Test Environment is available. Test Environment Setup: Prepare hardware and software requirement list for the Test Environment Perform Smoke testing. Test Execution: Execute the test cases. Report and log bugs to developers. Track defects to closure. Prepare list of defect status. Test Reporting: Prepare Test closure report. Prepare Defect Metrics. Prepare KT documents. STLC phases depends on the organization and their needs but the basic understanding remains the same across. Please mail at admin@codespread.com for...

Read More
App_Offline Updates in Webdeploy V3 and Visual Studio 2013
Jan10

App_Offline Updates in Webdeploy V3 and Visual Studio 2013

Please refer Don’t Mess with App_Offline article to see the usefulness of App_Offline. Treat the below article as an update to the concepts and basics shared earlier. After going through visual studio 2013 updates available across the web, I found some interesting notes related to app_offline at http://www.iis.net/learn/publish/deploying-application-packages/taking-an-application-offline-before-publishing http://blogs.msdn.com/b/webdev/archive/2013/10/30/web-publishing-updates-for-app-offline-and-usechecksum.aspx To summarize both the articles, An “AppOffline” rule was added to Web Deploy V3, This rule is disabled by default and needs to be enabled for taking an application offline. Example to be run on command line: msdeploy.exe -verb:sync -source:iisApp=mySite -dest:auto,computername= -enableRule:AppOffline Now, the above logic is integrated with visual studio 2013 where the rule can be enabled  in .pubxml file associated to corresponding publish profile.These web publish profiles are stored as MSBuild files under Properties\PublishProfiles Add the following element in the PropertyGroup element. <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline> So the resulting publish profile will look something like the following. <!--?<span class="hiddenSpellError" pre=""-->xml version="1.0" encoding="utf-8"?&gt; &lt;Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&gt; &lt;PropertyGroup&gt; &lt;EnableMSDeployAppOffline&gt;true&lt;/EnableMSDeployAppOffline&gt; &lt;WebPublishMethod&gt;MSDeploy&lt;/WebPublishMethod&gt; &lt;MSDeployServiceURL&gt;(removed)&lt;/MSDeployServiceURL&gt; &lt;DeployIisAppPath&gt;Default Web Site&lt;/DeployIisAppPath&gt; &lt;AllowUntrustedCertificate&gt;True&lt;/AllowUntrustedCertificate&gt; &lt;SkipExtraFilesOnServer&gt;True&lt;/SkipExtraFilesOnServer&gt; &lt;DeployAsIisApp&gt;False&lt;/DeployAsIisApp&gt; &lt;MSDeployPublishMethod&gt;WMSVC&lt;/MSDeployPublishMethod&gt; &lt;UserName&gt;sayedha&lt;/UserName&gt; &lt;ExcludeApp_Data&gt;False&lt;/ExcludeApp_Data&gt; &lt;_SavePWD&gt;True&lt;/_SavePWD&gt; &lt;/PropertyGroup&gt; &lt;/Project&gt;...

Read More
OLAP : On-line Analytical Processing
Jan06

OLAP : On-line Analytical Processing

What is OLAP? We know that there are two kinds of database applications available, OLAP and OLTP. Before we go for OLAP, I would like to tell you something about OLTP. OLTP is On-line Transaction Processing. By transaction, we mean any operation including INSERT, UPDATE, and DELETE statements. And, just like any other transaction system, the main concern here is ACID rules. Let’s take an example of banking transaction systems, where a large number of users simultaneously perform transactions. In this case, Online Transaction processing (OLTP) applications provide optimal environment for concurrency and atomicity of transactions. OLAP is On-line Analytical Processing and its main concern is analysis. This is how OLAP is different from OLTP, where the main concern is concurrency and atomicity. Now, With OLTP we always have a consistent state of data but how this data can be useful to business? OLAP has an answer to it. In OLAP, the current data is analyzed for any trends or summarize through many filters. The resultant data is not changed or tampered with anytime. “Because of OLAP, data speaks for itself.” For example: With the help of OLAP component; Sales, Marketing, Budgeting and Forecasting can provide multi-dimensional analysis and reporting. What are the advantages of OLAP? Multi-dimensional: Multi-dimensional views of various kinds of business activities. Decision Support: Analytical capabilities promote decisions. Complex Calculations Support: When it comes to determining future trends then complex calculations are necessary like averages and percentage growth. Access from individual’s point of view:  Access to fast, consistent, interactive access to a wide variety of possible views of information. What are the types of OLAP? There are three basic types of OLAP : MOLAP relies on a multidimensional database. ROLAP relies on a relational database. HOLAP is a hybrid model. More Details are given below: MOLAP: Multidimensional Online Analytical Processing uses a multidimensional database stored in various cubes. This information is pre-summarized and optimized, due to which, fast data retrieval is possible. Also, a range of complex calculations are already performed. ROLAP: Relational Online Analytical Processing uses a relational database. ROLAP do not use pre-calculated data cubes like MOLAP. ROLAP uses regular SQL statement to query the standard relational database. Although, it gives the appearance of traditional OLAP’s slicing and dicing functionality. HOLAP: Hybrid Online Analytical Processing is a hybrid approach which combines the advantages of MOLAP and ROLAP. Here, database divides data between relational and specialized storage like the small aggregated totals are stored in a multidimensional database while large quantities of detail data is stored in the relational database. So we have advantage of both pre-summarized/optimized cubes and relational database....

Read More
What is an API and What good is it?
Jan04

What is an API and What good is it?

Did you anytime hear these questions? What is an API? Why it is required? How to make it? People have googled, few were satisfied and others came out perplexed. So why not we also try! We searched for the same on Google again and enlisted some definitions from top 10 results available across the web. We will also add our own spices to explore more. Wikipedia says “An application programming interface (API) specifies how some software components should interact with each other.” Howstuffworks.com says “An application-programming interface (API) is a set of programming instructions and standards for accessing a Web-based software application.” One answer from stackoverflow.com, “An application programming interface (API) is a particular set of rules (‘code’) and specifications that software programs can follow to communicate with each other. It serves as an interface between different software programs and facilitates their interaction, similar to the way the user interface facilitates interaction between humans and computers.” Let’s see one real-world example so that a layman can easily understand the concept of API.   Think of two conditions, one when there is no remote control available to change the settings of TV and other is when the remote control is available. Obviously remote control condition is much favored as only few clicks are required for any setting change. Here, remote control acts as an API where the settings of TV can be changed without directly interacting with TV knobs. While sitting on a sofa few feet away from TV, you can control your TV. Life is easy!! Few lines for our tech persons also.   We have two applications having their own independent implementations. Now if they need to access information from each other or one way flow then they need to expose their logic but hide the implementations, so for that, they need to create API for their application. An API is nothing but an interface which has only definitions but no implementation logic exposed. Each programming language has their own syntax to do it but the idea remains the same. What good is API? Answer is simple use. Also, one question, did we talk anywhere about creating a proxy? J Where we are using API? Yo may recall, we are using Google analytics to know the daily visits, facebook API to know the number of likes, twitter API to know the tweets, and so on. Any more...

Read More
Page 1 of 31123456...Last »