Friday, 10 July 2015

SOFTWARE DEVELOPMENT METHODOLOGIES




Methodology – it’s a system of principles, as well as a set of ideas, concepts, methods, techniques and tools that define the style of software development.
Methodology is an implementation of the standard. Standards are only having some of the rules and leaving freedom of choice and adaptation.
Specific things implemented through the selected methodology. It determines how you will develop future applications. There are many successful software development methodologies. The choice of the methodology depends on team size, the specifics and project difficulty, stability and maturity of the processes in the company and personal qualities of employees.
Methodology is a core management theory of software development. To the existing classifications was added a general type of predictable and adaptive methodology, depending on the life cycle models (waterfall and iterative methodologies).
Projected methodology focused on the detailed planning for the future. There are scheduled tasks and resources for the entire project duration. The team barely reacts to possible changes. The plan is optimized based on work structure and existing requirements. Change of requirements can lead to substantial amendment of plans and project design.
Adaptive methodology aimed at overcoming the expected incomplete requirements and its constant changes. When the requirements change, the development team is also changing. Participating team can hardly predict the future of the project. There is a detailed plan only for the near future. More distant in time plans only exist as a declaration of project objectives, expected costs and benefits.
SCRUM – a methodology for small teams (up to 10 people). The whole project is divided into iterations (sprints) of 30 days duration. System functions are selected to be implemented in the next sprint. The most important requirement - immutability of the selected functions during the fulfillment of a single iteration and strict observance of deadlines for the next release, even if this product wouldn’t have all planned functionality. In order to determine the function of the system implemented by the previous day, the encountered difficulties and the next day plan Development Manager conducts daily 20 minute meetings that are called “Scrum”. Such meetings can constantly monitor the project progress to quickly identify problems and respond to them promptly.

Wednesday, 8 July 2015

SOFTWARE TESTING PROCESS

Software Testing: Testing is a process used to help identify the correctness, completeness and quality of developed computer software. Testing is a process of executing a program with the intent of finding an error.

Type of Testing: There are different type of testing is given-
1.       Static Testing
2.       Dynamic Testing
3.       White Box Testing
4.       Black Box Testing
5.       Unit Testing
6.       Integration Testing
7.       System Testing
8.       Acceptance Testing
9.       Load Testing
10.    Alpha Testing
11.    Beta Testing
1. Static Testing: Static testing is a form of software testing where the software isn’t actually used. This type of testing can be used by the developer who wrote the code in isolation. Code reviews inspections and walk through are also used.
2. Dynamic Testing: Dynamic testing analyzes the software program in different operating environments. This includes different brands of computers and other hardware differences, possibly including multiple monitors, different operating systems, and different sets of software applications coexisting on the machine.
3. White Box Testing: White box testing strategy deals with the internal logic and structure of the code. It is also called as structural or open box testing. White box testing requires access to the source code. White box testing can be performed any time in the life cycle after the code is developed.
4. Black Box Testing: Black box testing is a method of software testing that tests the functionality of an application as opposed to its internal structures .It is also called as functional testing.
5. Unit Testing: Unit testing is a software development process in which the smallest testable parts of an application, called units, are individually and independently scrutinized for proper operation. Unit testing is often automated but it can also be done manually.
6. Integration Testing: Integration testing is the process of verifying the synchronization between two or more software system and which can be performed after software system collaboration is completed.
7. System Testing: System testing is a black box testing, performs by the test team, and at start of the system testing the complete system is configured in a controlled environment. The purpose of system testing is validating an application’s accuracy and completeness in performing the functions as designed.
8. Acceptance Testing: Acceptance testing is a final stage of testing that is performed on a system prior to the system being delivered to a live environment.
Acceptance tests are generally performed as “black box” tests.
9. Load Testing: Load Tests are end to end performance tests under anticipated production load. Load testing is performed to determine a system’s behavior under both normal and anticipated peak load conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation.
10. Alpha Testing: Alpha testing is done before the software is made available to the general public. The developers will perform the Alpha testing using white box testing techniques. In alpha testing client test the software at development site.

11. Beta Testing: A beta tester is someone who tests a product before it is released. Product testers help companies identify weak points in their products which could cause consumer frustration, and they also identify specific issues which need to be corrected before a product can be released.

Monday, 6 July 2015

PHASES OF WESITE DEVELOPMENT PROCESS
There are numerous steps in the web site design and development process. From gathering initial information, to the creation of your web site, and finally to maintenance to keep your web site up to date and current.
Phase 1: Information Gathering
The first step in designing a successful web site is to gather information. Many things need to be taken into consideration when we design the look and feel of your site, so we first ask a lot of questions to help us understand your business and your needs in a web site.
Phase 2: Planning
Using the information gathered from phase one, we put together a plan for your web site. Here we develop a site map – a list of all main topic areas of the site, as well as sub-topics (if applicable). This gives us a guide as to what content will be on the site, and is essential to developing a consistent, easy to understand navigational system. This is also the point where we decide what technologies should be implemented – interactive forms, CMS (content management system) such as Word Press, etc.
Phase 3: Design
Drawing from the information gathered up to this point, we determine the look and feel of the site. Target audience is one of the key factors taken into consideration here. A site aimed at teenagers, for example, will look much different than one meant for a financial institution. We also incorporate elements such as the company logo or colors to help strengthen the identity of your company on the web site.
Once we’ve designed a prototype, you are given access to the Client Studio, which is a secure area of our web site. The Client Studio allows you to view your project throughout the design and development stages. Most importantly, it gives you the opportunity to express your likes and dislikes on the site design.
In this phase, communication is crucial to ensure that the final web site will match your needs and taste. We work together in this way, exchanging ideas, until we arrive at the final design for the site. Then development can begin…
Phase 4: Development
This is where the web site itself is created. We take all of the individual graphic elements from the prototype and use them to create the functional web site. We also take your content and distribute it throughout the site, in the appropriate areas.
This entire time, you will continue to be able to view your site in the Client Studio, and suggest any additional changes or corrections you would like to have done.
Phase 5: Testing and Delivery


At this point, we attend to the final details and test your web site. We test things such as the complete functionality of forms or other scripts, we test for last minute compatibility issues (viewing differences between different web browsers), ensuring that the site is optimized to be viewed properly in the most recent browser versions.
Once we receive your final approval, it is time to deliver the site. We upload the files to your server – in most cases, this also involves installing and configuring WordPress, along with a core set of essential plugins to help enhance the site. Here we quickly test again to make sure that all files have been uploaded correctly, and that the site continues to be fully functional. This marks the official launch of your site, as it is now viewable to the public.


Phase 6: Maintenance
The development of your web site is not necessarily over, though. One way to bring repeat visitors to your site is to offer new content or products on a regular basis. If this interests you, we will be more than happy to continue working together with you to update the information on your web site. We offer maintenance packages at reduced rates, based on how often you anticipate making changes or additions to your site.





Sunday, 5 July 2015

MOBILE APPLICATION LIFE CYCLE MANAGEMENT
Mobile Application Life Cycle Management has an aim to deliver the end product with higher quality. Hence, it has to repeat the steps in this process in a controlled manner. Definition, Planning, Designing, Development, Testing, Deployment and Management are the steps in Mobile Application Life cycle Management.

1. Planning and Designing: In order to take future decisions, it is important to consider the present and future uses of the applications. Due to the large market of devices and hardware and software solutions, the decision making process becomes more difficult. It is also necessary to look into frequent changes and in the applications so as to make sure its quick deployment. To enhance the user experience, offline functionality must be given consideration.
2. Development & Testing: The important aspects of development stage are device detection, limited bandwidth and memory management. Offline data should be available and it should be updated.
The next challenging task is to test the mobile applications. It involves huge amount of expenses. It is necessary to test the applications in various situations at different bandwidths. Pre-flight test, Beta testing, Scalability test, device test, automated unit test, etc. are different tests undertaken for various reasons.
3. Deployment: Deployment of applications is an easier task as they are delivered to the application stores. In-house applications are available in separate application stores. If the company applications are to be given to customers or distributors, it is even more difficult.
4. Updating: Dynamic updating of the applications is important. The users have to install the new application first. But the research shows that the users continue with the older versions of applications.


Friday, 3 July 2015

AGILE SOFTWARE DEVELOPMENT METHODOLOGY
Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change
AGILE METHODS:
Adaptive software development (ASD) is a software development process that grew out of rapid application development work by Jim High smith and Sam Bayer. It embodies the principle that continuous adaptation of the process to the work at hand is the normal state of affairs.
Agile modeling (AM) is a methodology for modeling and documenting software systems based on best practices. It is a collection of values and principles that can be applied on an (agile) software development project. This methodology is more flexible than traditional modeling methods, making it a better fit in a fast changing environment.[1] It is part of the Agile software development tool kit.
Agile Unified Process (AUP) is a simplified version of the Rational Unified Process (RUP) developed by Scott Ambler.[1] It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. The AUP applies agile techniques including test-driven development (TDD), Agile Modeling (AM), agile change management, and database refactoring to improve productivity. 
Crystal Clear Methods Crystal Clear is a member of the Crystal family of methodologies as described by Alistair Cockburn and is considered an example of an agile or lightweight methodology.
Kanban is a method for managing knowledge work with an emphasis on just-in-time delivery while not overloading the team members. In this approach, the process, from definition of a task to its delivery to the customer, is displayed for participants to see. Team members pull work from a queue.
Scrum is an iterative and incremental agile software development methodology for managing product development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal", challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project. 


Monday, 29 June 2015

MOBILE APPLICATION DEVELOPMENT PLATFORMS
Mobile application development is more important to the enterprise than ever before. Development organizations are increasingly looking for a Mobile Application Development Platform (MADP) that can support their needs for both current and future projects. It's a broad field and vendors offer a wide array of capabilities.
The following shows the mobile application development platforms:
1.      Sybase Unwired Platform (SUP), has matured rapidly since its initial release in 2010, providing a flexible application development environment with plug-ins for Eclipse and Visual Studio, along with a proprietary studio. While it has a steeper learning curve than many other solutions, it is an excellent choice for broad mobile initiatives, especially in conjunction with SAP's Afaria mobile device management (MDM) solution. 


2.      Syclo, initially specialized in field service and enterprise asset management (EAM) applications for ruggedized devices, but has over the years extended the reach of its platform to all popular mobile OSes. However, enterprises with needs around EAM and field-service-based users are likely to get the most out of Syclo. Its Agentry MADP is an excellent platform for B2E applications, and it now supports many B2C requirements as well. 



Syclo



Saturday, 20 June 2015

Mobile Application Development Process

Mobile applications usage is growing day by day. Thanks to phenomenal advances in mobile device capabilities, your smartphone continues to define you. The apps you use are developed as a result of a meticulous mobile development life cycle. Every mobile app is designed using the best development strategy in mind.

Mobile App Development Phases A mobile app development life cycle usually consists of the following phases:

1. The Discovery Phase

2. The Design Phase

3. The Development & Testing Phase



The Discover Phase: Tasks  Requirements analysis  System definition  Prototyping Benefits  Framework driven requirement specification  Get it right the first time by prototyping your project  Improve usability and user buy-in by letting them use the prototype system  Manage user/customer expectations  Manage IT staff expectations  More accurate size and cost estimate

The Design Phase: Tasks  System design  Database design  Business Process Integration design Benefits  Choice of deployment platform  Choice of Application Interface  Choice of user interface (browser, Windows rich-client or portable devices)  Centralized/reusable business rules  Centralized/reusable business processes  Normalized database design  Framework driven design process  Reuse/integration of existing data and functions and systems

The Development & Testing Phase: Tasks  Develop system  Business Process Integration  User acceptance testing  System and performance testing  Implementation/deployment

Benefit  User prototype from the design phase as basis for system  Framework driven development process  One integrated suite of development tools  Lower skill requirements  Multi skilling  Business level coding  Task tracking and audit  Downplay/hide technology focus  Easy-to-learn and master  Deploy same code to multiple platforms  Task and change control tracking  RDML level debugging  Multi tier, real-time client/server testing and tracing  Just-In-Time deployment


Maintenance & Updates Phase:  Tasks Ongoing system maintenance  Extend and enhance functionality Benefits  Centralized/reusable business rules  Centralized/reusable business processes  Repository based impact analysis.