Broadening the GIS App Platform
With far reaching geospatial applications in use, organizations worldwide are using this technology to transform manually generated maps and its descriptive information into digital databases which can be used in applications to manage utility distribution networks, track agricultural drought conditions, conduct census, create floodplain maps, monitor pollution, plan alternative traffic patterns, redraw voter districts.
The growing demand for Geographic Information System (GIS) has widened its application to data conversion, application development, web application development, mobile applications, data mining and data migration. The GIS Application Development services serves various industries like Forestry, Electric and Gas, Retail, Mobile mapping, Mining, Pipeline, Agriculture, Defense, Hospitality and Tourism, Water Resource, Education, Emergency Disaster Management, Logistics, Insurance, Real estate, Public Safety , Telecommunication, Banking and Finance Services, etc. The technically skilled and experienced software developers create customized applications to meet the requirements of these diverse industries. They optimize multipurpose software procedure, including customized programming codes.
Custom GIS applications are developed based on specific needs and requirements of the clients, regardless of the type of intricacies involved. Based on the requirements and an outright analysis of the core problem, the software developers create solutions with the functionality specified. These solutions are based on commercial or open source programs. Most of the application developers function according to a work flow, which generally consists of eight main modules. They are:
1. Business Modeling
2. Specification and Requirements
3. Analysis and Design
4. Coding and Implementation
5. Testing
6. Deployment
7. Project Management
8. Configuration and Change Management
GIS Application Development services are deployed by users belonging to government agencies, research institutions, businesses, health institutions, land use planning organizations, and environmental study institutions. They create customized software applications to provide solutions on information storage, remote sensing, spatial pattern identification, and visual presentation of spatial data. The data is made available to a large number of users, data collectors, surveyors and community participants, via web interface.
GIS Applications are tailored to implement thematic information systems that collect, cite, visualize, exchange and propagate statistical report using survey and indicator data. Accurate visualization of data through tables, maps, raster images and graphs is provided.
Various state-of-the-art technologies have been identified, designed, and implemented for use in diverse GIS applications. The multiple tools utilized for the application development generally includes Arcserver, Geoserver, Mapserver, penLayers, GoogleMap API, Arc SDE, Arc Objects, Map Objects, Flex API, Mapfish, MapNik, Ka Map, MapWindow GIS with visual studio.net, Arc Object , Map Object in visual studio.net, C # .net, VB.net, etc.
In conclusion, GIS tools that were once affordable only to the largest organizations, have now become a cost-effective option for even the smallest organizations. Efforts are being made by the global GIS application developers to build newer and advanced applications that can bring major enhancements to existing application systems. Major developmental techniques are also being formulated to optimize the spatial data sharing framework and to make it more accessible to a wide range of users in the near future.
Source by Gayathri L
Shifting Left With LeanFT With Agile and DevOps
Introduction
A technical definition of Agility refers to a method of project management which is characterized by the division of tasks into short modules, reassessing it frequently and adapting to variations accordingly. Agile methods replace complex designs with repeated redesigns. One of the most challenging issues for software development is to meet the demands for speed and agility. This has pushed for the implementation Agile development methods. Agile implements method that supports its manifesto which states:
“Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan.”
DevOps, a word formed by merging ‘Development’ and ‘Operation’, is a software application development method that focuses on communication, collaboration, automation, integration and cooperation between the developers and other professionals involved. It completely redefines the development and delivery timeline by bringing together the teams of Development, QA and Operations. This increases the deployment frequency, maintenance releases and improves the reliability and security of the application as the quality assurance testers are involved at every stage of the lifecycle.
Thus, the DevOps and Agile Methodology follow the same principle of continuous integration and continuous testing in the System Development Life Cycle. DevOps bring together the Developers and Operations team together. Agile development pressurizes the Operations team more for deployment of code frequently. To achieve this, DevOps team maintains a cross-silo collaboration of teams constantly. Hence, Operations is not considered as a separate unit but a part of the entire development life cycle. In this way, the operations team get a clear understanding of how the entire application works before it is actually deployed.
To implement the above methodology more efficiently with low lead times for faster deployment and testing, LeanFT comes into consideration.
HP LeanFT, an automated, functional, light weight testing tool specifically built to aid the DevOps and Agile strategy thus enabling continuous testing and delivery. It helps by providing a detailed flow of test execution and pointing out the main reasons for the failure of the test. LeanFT carries forward the concepts of UFT and gives more power to the developers by providing extended features.
LeanFT helps Agile and DevOps Team to shift left. It seamlessly fits into prevailing eco-systems and Cucumber, Visual Studio, C#, Java, Git, Jenkins, Eclipse testing frameworks with powerful and flexible test scripts and IDE integration. Thus, the developers and testers can optimize their scripts and improve their maintenance.
LeanFT supports almost all common AUT (Application Unit Testing) tools like SAP, Windows, Java, Mobiles and .Net. It integrates fully with the popular IDEs and allows code scripting in familiar languages. Hence the requirement for new system requirement does not arise and usage of the same tools can be continued.
Both Lean and Agile methodology emphasize proper planning and a user centric approach. Agile methodology has segregated the system development life cycle, thus conceptualizing Shift-left which is the practice of integration and testing at every step of the development life cycle. LeanFT supports the features of Agile and DevOps which facilitate the collaboration of developers and testers resulting into accelerated development cycles.
LeanFT is mainly targeted for dev-testers in Agile teams, Test Automation Engineers and Subject Matter Experts and fully integrates with the development and Quality Assurance Eco Systems.
Conclusion:
LeanFT is directly accessible from UFT12.5, the new extended version of UFT. It can also be implemented as a standalone solution. Implementing LeanFT is easier with prior knowledge of Unified Functional Testing (HP UFT). LeanFT helps to assess and rectify the defects in the processes at an early stage, thus decreasing the deployment time line.
Test Automation Through Appium
Introduction
With the ever increasing use of Mobile technology, testing also needs to keep up with the related hardware and software complexities in terms of both volume and variety. At this point, test automation seems to be the only solution available to manage the situation. Appium is one such open source test automation tool used for native and hybrid applications on Android and iOS platforms. Appium is also a cross browser test automation tool that can be used for writing test for multiple platforms using the same API. This also facilitates code reuse.
Appium has three main components – The Appium Server, Inspector and Doctor.
- Appium is basically a webserver that works through REST API. This opens up a lot of possibilities like test cases can be written in any language that has an HTTP client API.
- Here automation is performed mainly in sessions. Clients initiate a session with the server and send a JSON object and the server starts up an automation session that responds with a session ID that for sending further commands.
- A set of keys and values are used for notifying the Appium server about the type of automation session required to be set up. Defining various values can can change the server behavior as per the requirements.
- The Appium server is written in node.js. The capabilities of the server can be modified as per the test requirements.
- Appium client libraries are available in Java, Ruby, PHP, Python, JavaScript and C #.
- The Appium GUI wrappers are available with all the artifacts required to run the Appium server.
In iOS, Appium proxies the commands to UIAutomation script running in the Mac Instruments environment. Instruments is an app provided by Apple which has an automation component. Here, commands can be written in JavaScript using UIAutomation APIs to interact with the App UI. Appium utilizes these libraries to automate iOS Apps.
In the iOS command life cycle, the web driver picks the command from the code and sends it in the form of JSON through an HTTP request to the Appium server which then sends the command to the Instruments command server. The command server waits for the Instruments command client to receive it and execute it in bootstrap.js. Once the command is executed, the command client sends the message back to the Appium server which logs all the information related to the command.
The same principle is applied in Android as well. Here, Appium proxies command to a UIAutomator test case running on the device. UIAutomator is Android's native UI automation framework. It runs jUnit test cases directly into the device through the command line.
Here, bootstrap.jar represents the test case when it is compiled in java. Here, the TCP server resides in the device and the client is in the Appium process.
Conclusion
With continuous advancements in mobile technology, high performance applications are required to be designed and developed as fast as possible. Testing them is even more important before launching them, especially for those apps which perform critical functions. Test automation helps to ensure high performance of an application in a short period. Appium promises efficient bug free and quality rich applications saving a lot of time, labor and cost of the project.
Great Plains Dynamics GP Reporting Tools and Reports Design Overview
Microsoft Dynamics GP ERP has multiple reporting tools: Report Writer, Crystal Reports, MS SQL Server Reporting Services, FRx, Microsoft Access reports, Excel reporting. Seeing such a variety of tools, you need to know that report design tool selection depends on the report nature. For example if you need to link several modules in Dynamics GP, such as Sales Order Processing and Purchase Order Processing (when your project is done for sales commission release, when items and services are sold and goods are delivered by your vendors) – then you Should consider Crystal Reports or SRS, where you can create SQL Stored Procedure or View as report background. Let's briefly review reporting tools selection and their capabilities:
1. FRx. FRx report designer links directly to Great Plains General Ledger. This means that you should consider this report design tools for GL level reports, including consolidated reports, working over FRx reporting tree. Also it works with GL budgets as well as has an option to consolidate your GP companies with virtual companies, which are exported into Excel worksheet – FRx has Excel linking mechanism.
2. Dynamics GP ReportWriter. The strong points of this tool are direct call of existing reports from GP user workstation with parameters screens. RW is seamlessly integrated with GP interface and user security realm. Such reports as SOP Invoice Blank form is one of the most popular for RW modification – you got to place your company logo on Sales Invoice Form. You can also create RW compatible report in Great Plains Dexterity customizations and these reports will be available via GP Customize menu. Such Dex reports are known as GP Alternate Modified reports. RW is less flexible than Crystal Reports or SRS, but it can have GP parameters entry screen within GP user security realm
3. Crystal Reports and SRS. You may think that these two tools are coming from different vendors and unlikely are comparable. However in the case of Great Plains report design they are similar in report programming technology – the best reports are based on MS SQL Server Stored procedure or SQL view
4. MS Access, Excel and generic MS Visual Studio .Net report publishing. Excel and MS Access can hook up the ODBC compliant DB platform, such as MS SQL Server in VBA scripting. C # or VB .Net programmer or Great Plains Technical Consultant can build GP report via SQL select statement in ADO.Net. If you are .Net MS Visual Studio developer, please consider eConnect programming versus direct SQL select statements. If you need GP tables structure, please install GP SDK from CD # 2
Is Selenium a Real Threat to UFT?
Nowadays most organizations automate their testing efforts to save both time and cost. While automating its software testing efforts, each business has option to choose from a variety of testing tools available in the market. Some of these tools are open source and free, whereas others are licensed. Likewise, the features and functionality of individual test automation tools also differ. That is why; It becomes essential for businesses to pick the right testing tools based on major criteria like testing needs, budget, availability of skilled resources, and test management.
Both HP Unified Functional Testing (UFT) and Selenium are hugely popular test automation tools. But the testing tools differ completely from each other in terms of features, performance and popularity. As highlighted by a number of recent reports, the popularity of UFT is declining gradually, whereas Selenium has emerged as the pioneer in the software testing space. The data clearly indicate the rapidly growing popularity of Selenium among QA professionals and independent software testing service providers across the globe. There are a number of reasons why Selenium is considered as a real threat to HP UFT.
Why Selenium is affecting the Market Share of HP UFT?
Open Source
Each organization wants to develop and test its software applications without spending a lot of money. That is why; a gradual decline is being noted in the popularity of licensed software testing tools. UFT is currently available as a commercial and licensed test automation tool from the HP Software Division. But Selenium is available as an open source and free software. So users can take advantage of the portable software testing framework without increasing project overheads. At the same time, the QA professional can also avail the support of an extremely active community to resolve all issues and queries related to Selenium.
Web Browser Support
The choice of web browser differs from one user to another. To make the web application popular, the maker needs to ensure that it is running on major web browsers without any flaw or defect. So he opts for a testing tool that supports different web browsers. Despite being a commercial product, HP UFT does not support different types and versions of web browsers. Thus, it becomes difficult for QA professionals to assess the application's look, feel and performance across many web browsers. Unlike UFT, Selenium supports all major web browsers including Firefox, Chrome, Internet Explorer, Opera and Safari. That is why, most web developers nowadays opt for Selenium to test their websites thoroughly and efficiently.
Platform Support
The operating systems supported by these two software testing frameworks also differ. HP UFT is designed to test software applications only in Windows environment. So it supports only a single operating system, ie, Microsoft Windows. On the other hand, Selenium supports major operating systems like Windows, Mac OS X and Linux. The cross-platform feature makes it easier for QA professionals to use Selenium to test web applications in various environments.
Programming Language Support
While using UFT, testers have option to write test scripts only in VBScript. As the scripting version of VB programming language, VBScript is both simple and easy to learn. It enables testers to write test scripts easily and quickly. But the scripting language lacks the advanced features offered by other modern object-oriented programming languages. Selenium supports several object-oriented programming languages including C #, Java, PHP, Ruby and Python. So the framework makes it easier for QA professionals to adopt an object-oriented approach to test automation. At the same time, it also allows testers to write test script in their choice of programming language.
Support for IDEs and Testing Frameworks
Nowadays, QA professionals use IDEs to effectuate and speed up test script development. But the choice of IDE differs from one tester to another. HP UFT does not allow testing professionals to use their preferred IDE. They are required to develop test cases using a single IDE, ie, UFT IDE. Selenium, on the other hand, allows testing professionals to choose from several widely used IDEs like Eclipse, Netbeans and Visual Studio. They also have option to use a variety of testing frameworks with Selenium, based on their choice of programming language. These IDEs and testing frameworks make it easier for QA professionals to significantly reduce the time and effort required to test large and complex web applications.
Reduced Execution Time
To complete all tests within a stipulated amount of time, QA professionals explore ways to write and execute test scripts quickly. UFT uses scripting time by using VBScript. But it increases the execution time drastically by taking the entire load on RAM and CPU. Also, it lacks the capability to run multiple instances or threads of the application simultaneously. On the other hand, Selenium executes test scripts at a faster pace. Also, it enables users to run different instances or threads of the web application simultaneously on different web browser. The lower execution time and option to run multiple instances make Selenium hugely popular among web developers and testers across the world.
Option to Create Complete Test Automation Suite
HP UFT allows users to automate all types of functional testing using a single GUI interface. The interface enables them to test the application's GUI functionality, and business logic or back-end services. On the other hand, Selenium allows users to create a complete test automation suite for web application by combining Selenium IDE and Selenium WebDriver. Selenium IDE can be used for creating quick bug reproduction scripts, whereas Selenium IDE effectuates development of browser-based regression automation tests and suites. The distinct variants also make Selenium score over UFT.
While comparing Selenium and HP UFT, the user must focus on the features of each test automation tools. Despite being considered as the pioneer in the software testing space, Selenium testing can be used only for web-based applications. So the huge popularity of the portable web application testing framework can be attributed the massive popularity of websites and web applications. On the other hand, a business can use HP UFT for automating both desktop and web applications. That is why; It becomes essential for the user to pick Selenium or HP UFT according to his testing needs.
7 Efficient Apps That Are Suitable for Doing Programming on the iPad
This is an undeniable fact that the iPad is not the most favoured hardware choice for programming purpose. However, with the increasing popularity of this device, many developers are dedicating themselves to devise such applications that work well on the iPad and are not offering very unsatisfying services! Here is a list of 7 efficient programming apps that work well on the iPad without creating many complications.
#1 Coda
Initially, Coda started its journey as a Mac editor only. However, now, Coda offers an impressive and dynamic iPad and iPhone text editor as well. Due to its utmost efficiency, many developers are looking forward to this programming app. Some of its remarkable features are:
It provides necessary support to syntax highlighting for several programming languages such as C, Apache, HTML, CSS, Go, PHP, Python, Perl, JavaScript etc.
This application includes remote as well as local file management along with a diverse collection of remote protocols like WebDAV, SFTP, DreamObjects and Amazon S3.
Using Coda, you can avail facility of ‘Clips’ that is a smooth way to store the most commonly used bits of codes.
#2 Buffer Editor
Another top-notch code editor is Buffer. With the help of Buffer, you can effortlessly connect a plethora of remote services like Github, Dropbox, SFTP, FTP servers and iCloud SSH. What are the other features? Read on to know more.
It features Vim coding support, a Unicode support along with an extended keyboard.
Buffer offers facility of code auto completion and syntax highlighting for many programming languages that include AWK, Ada, ASP, ActionScript, C++, C, Arduino, C#, Python, Ruby, SQL, JavaScript, Java, PHP, Perl, Puppet, INI, CSS, R, Progress etc.
#3 Textastic Code Editor 6
If you are looking for a Textmate-compatible markup language editor that efficiently works on the iPad, this Textastic Code Editor 6 is just the perfect choice for you. It not only offers facility of syntax highlighting for a long list of programming languages but offers the same for markup languages as well. Additional features of this editor are as follows:
It provides auto code completion for CSS, JavaScript along with PHP functions at the time of editing.
This editor comes up with its own server of WebDAV.
It can effortlessly communicate with SFTP, FTP, Dropbox.
#4 OmniGraffle 2
If you are looking for an editor that is extremely useful for diagramming, you can put your trust on the OmniGraffle 2. The process of a site planning becomes utterly smooth using this version of the editor. Yes, this package is a bit costly compared to the other options mentioned in the list but once you use it, you would understand that it is worthy of its price. Some of its remarkable features are:
A great variety of in-app purchase options is available in OmniGraffle 2.
Smart guides are available to help you with optimising the diagram in flash.
Using it, you can easily draw various shapes and drag the objects.
Visio Support is also available in this package.
#5 Pythonista 3
Pythonsia 3 is famous for offering a complete scripting environment to the users, who use a Python compatible iPad, iPhone and iPod Touch. To run it, you would need iOS version 8. Additional advantages of using this editor are as follows.
Not only auto code completion and syntax highlighting but support are available as well for the Python version 2.7 and 3.5.
It features third-party modules like Bottle, SciPy, BeautifulSoup etc.
Matplotlib and NumPy integration are available for scientific visualisation.
#6 CodeToGo
CodeToGo is extremely easy-to-use and very intuitive. The main reason for the popularity of this editor is simplicity. Here are some of its satisfactory features.
It provides facility of writing and running code in almost 50 distinct programming languages. Moreover, syntax highlighting is available languages like Python, Ruby, Perl, Java etc.
Communicating with the Dropbox becomes easier using CodeToGo.
The process of file transfer to and from the computer becomes smoother using iTunes File Sharing system.
After writing the code, using ideone.com API, you can test it on CodeToGo and can see the output.
#7 Codea
This editor is very useful for developing simulators and games. Why is this editor becoming popular? Here are the reasons.
It offers visual editing and syntax highlighting facility for Lua.
Codea includes shader support, a graphics renderer, touch support along with a Physics engine, camera and accelerometer.
Apart from all the above-mentioned iPad programming apps, iOctocat, AppCooker, JavaScript Anywhere etc. are also trending in today’s market.
Web Development and Microsoft .NET Technology
In 2000, Microsoft announced its .NET software environment, a new addition to Windows. The .NET (“dot – net”) environment is effectively a “virtual computer” that runs on a real computer, with the advantage that any program written for it will run on any computer which is running .NET. One important aspect of the .NET strategy is its independence from a specific language or platform. Developers can create a .NET application in any .NET – compatible language and participate in the same software project writing code in the .NET languages in which they are most competent (such as Visual C++.NET, Visual Basic .NET, C#, Perl and others). Part of the .NET software environment includes Active Server Pages (ASP) .NET technology, which allows developers to develop applications for the Web.
The .Net architecture can exist on multiple platforms, further extending the portability of .NET programs. Additionally, the .NET software environment involves a new program development process that could change the way programs are written and executed, leading to increased productivity.
The most important component of the .NET architecture is Web Services, which are applications that can be used over the Internet. One example of a Web service is the tour operator’s flights booking system. The tour operator wanted to enable customers to book flights from the tour operator’s Web site. To do so, the tour operator needed to access the airline’s booking system. In response, an airline partner created a Web service that allowed the tour operator to access the airline’s database and make bookings. Web services enable the two companies to communicate over the Web, even if they use the different operating systems (the tour operator uses UNIX and the airline uses Windows). By creating a Web service, the airline can allow other tour operators to use its booking system without creating a new program.
The .NET strategy extends the concept of software reuse to the Internet, allowing developers to concentrate on their specialties without having to implement every component of every application. Instead, companies can buy Web services and devote their time and energy to developing their products.
The .NET strategy incorporates the idea of software reuse. When companies link their products in this way, a new user experience emerges. For example, an online store could buy Web services for online credit-card payments, user authentication and inventory databases to create an e-commerce Web site. The keys to this interaction are XML and SOAP, which enable Web service to communicate. XML gives meaning to data, and SOAP is the protocol that allows Web services to communicate easily with one another. XML and SOAP act together combining various Web services to form applications.
Another important concept in the .NET technology is universal data access. If two copies of a file exist (such as on a personal computer and a company computer), the less recent version must constantly be updated, this is called file synchronization. If the separate versions of the file are different, they are unsynchronized and could lead to serious error. Using the .NET data could reside in one central location rather than on separate systems. Any internet-connected device could access the data, which would then be formatted properly for use on access device (a desktop PC, a PDA or other device). Thus, the same document could be displayed and edited without the need to synchronise the data, because it would be up to date in central area.
.NET Center of Excellence
Overview
The Microsoft .NET platform marks a paradigm shift in the way applications are developed for the Internet. It incorporates open standards that enable businesses to collaborate over the Internet with minimal investment. Hanu Software Solutions Inc. (HSS) is an expert in using .NET to develop solution frameworks and applications.
HSS has established a dedicated Center Of Excellence (COE) that leverages the company’s expertise in the .NET platform for the benefit of its customers. The HSS COE team delivers technical excellence through improved system architectures, applications development capabilities, and reusable enterprise components, and also focuses on building business solutions using existing and emerging .NET technologies and standards.
The .NET Center of Excellence at Hanu Software Solutions
Background
Despite all the attention given to returns on IT investments, little progress has been made in linking all the elements of IT to what a business is trying to do. Managing IT investments, and demonstrating the value of IT to a business, are more challenging than ever, and most businesses seem to be losing ground. Often, management asks CIOs to justify the very IT components that provide value to the business.
This white paper describes strategies that HSS has developed to maximize its efficiency in delivering .NET solutions to our customers.
As a software service organization, whose business itself is IT, HSS has learned how to align its operations on technology-centric Centers Of Excellence (COEs).
What is a COE?
The term Center of Excellence (COE) is a generic phrase used across many types of institutions, mainly in education, research, and healthcare. The IT industry picked up this phrase and started using it to define the collection of tools, resources, and skills used to perform specific development and maintenance tasks by a focused team working at a single location.
Sometimes “COE” became more of a marketing term, with little substance behind it, for IT. This was because IT service organizations happen to be project-centric organizations with defined schedules and objectives, in contrast to other departments that may not have the vision, longevity, and resources to maintain a long-term delivery system focused along a common thread.
Making Business Sense
From the start, HSS has had a strategy of delivering value-added, cost-effective solutions to its customers on a continuous basis. As the company grew, HSS saw the need for a common set of processes and procedures that would allow its developers to create solutions quickly and leverage project knowledge across projects, so that the company can deliver continuously-improving services and solutions. This need also mandated that all specialized tool sets, languages, and the knowledge of how to use them be available to HSS engineers in a structured and defined system, enabling them to develop new solutions flexibly, faster, and at lowered costs. Enter the HSS Center of Excellence.
The Elements of an HSS COE
HSS has established a structure for all of its COEs, consisting of the following key elements:
1. Languages and Technologies
2. Tools
3. Process
4. People
Languages and Technologies
Each COE includes various programming languages, technologies, development libraries, and compilers related to the particular technology domain of that COE. For example, .NET COE uses the following technologies:
· Languages: C#.NET, VB, VB.NET, ASP, ASP.NET, C++.NET, JavaScript, VB Script, XML, XSL, XPath, and AJAX.
· Web Services: SOAP, XML RPC, and WSDL.
· Distributed Technologies: COM/COM+/DCOM/CORBA, RPC, and NET Remoting.
Tools
The HSS development tool set is an important element of the company’s unique selling proposition, namely, its ability to deliver solutions for many different life cycles, budgets, and timelines. HSS does not believe in developing a new solution from scratch for each new project. Its tool set includes:
· Engineering tools: GUI controls, reusable components, generic data access layer, SQL data scriptor, SQL schema scriptor, SQL compare, and many more.
· Migration Tools: VB to VB.NET , VB.NET to C Sharp, ASP to ASP.NET, PHP to ASP.NET.
· Process automation tools: defect management, VSS, dashboard, line counting, MS Project.
HSS also employs tools for analysis, utilities, and controls.
Process
Process is important at HSS. The processes that HSS uses are documented and defined in its quality management system (QMS). All HSS development engineers follow these processes. The QMS implements industry best practices and is based on ISO quality standards and on the Software Engineering Institute’s Capability Maturity Model (CMM), and includes:
· Formally documented Project Management processes, including Planning, scheduling, progress monitoring, reporting, communications, issues, delivery management and many more.
· Formally documented Engineering Processes, including configuration management, requirements development, design, construction and unit test (UT), system testing, and user documentation development.
· Comprehensive quantitative process measurements and control, including productivity measurement, schedule variance tracking, defect density reporting, and effort variation tracking.
HSS engineers follow the following best practice during a software project lifecycle to reduce the development schedules as well as the schedule volatility:
1. Inspections – At each stage of development or maintenance, HSS performs a detailed, technical peer review of the software design and code implementation. Identifying and fixing errors at this early stage prevents bugs from entering the code, saving time and expense, and avoids bugs in the delivered software.
2. Component Reusability – HSS has developed a library of more than 100 frequently-used software components typical in .NET applications. These components are tried-and-tested, have proven designs, and are free of critical bugs. The components can be re-used without change, or with modifications. At the design phase of a new project, HSS engineers identify those components suitable for the new application. Only code unique to the application is designed and written from scratch. Building existing, high-quality software in this way into a new application saves the HSS customer time and expense, and helps ensure quality in the deployed application.
3. Change Control Board – The HSS QMS requires software developers to strictly adhere to the defined requirements for an application. On moderate to very large projects, a central control mechanism is needed to ensure that every change is properly considered and coordinated. That’s why on such projects, HSS establishes a Change Control Board. It includes the members from design, development, and test teams. It also sometimes includes the members from the customer team. Its purpose is to ensure that every baseline change is properly considered by all concerned parties and that every change is authorized before implementation. The CCB is the body that reviews all major change requests and approves it, disapproves it, or defer it for more information. Using this Board prevents “feature creep,” a typical problem in the software development industry, keeping the development schedule on track and with the features that the customer expects.
4. Nightly Software Build and Smoke Test – Each night HSS Build Group makes a new build of an application and run a series of tests that verify its basic operation. Making builds nightly enables the engineers to find and fix integration errors almost immediately. It also enables HSS to track feature implementation against the schedule, because it shows on a daily basis the features that have been implemented.
5. Risk List and Plan – As part of its QMS, HSS develops a list of the top-10 risks for each development project, together with a plan for addressing each risk should it materialize. The HSS engineers assess the risks weekly, resolving any and identifying potential new risks, minimizing impact to the schedule and to software quality.
People
Quality human resources are the fundamental asset in any organization. HSS staffs each COE with employees who are skilled in the set of tools, languages, and products used by that COE. The company hires engineering graduates who are experienced, trained, and certified in internationally recognized IT skill sets. For example, people on the .NET COE are certified MCPs and MCSDs.
HSS recruits the finest engineering talent from the best universities and puts them through six weeks of rigorous classroom and on-the-job training. HSS also provides ongoing advanced programmer training for all staff.
What this means to HSS customers is that their solutions, products, and software are developed by certified resources, so customers need not worry about the people deployed on their projects. This also means that HSS customers receive value-added recommendations for long-term planning and can develop IT roadmaps with the confidence that the recommendations from HSS are based on the latest knowledge.
The .NET COE: Delivering Agile Solutions on a Microsoft Platform
The HSS COE for .NET is aligned along the Microsoft platform and tool sets and provides business-critical solutions to a variety of technology and business domains. This COE has collective IT experience of 200 person-years and .NET experience of more than 75 person-years. Other key facts are:
Staff 45
Started 2002
Number of executed projects 30
Location Gurgaon, India
Components of the .NET COE
This diagram illustrates the building blocks of the .NET COE. Central is the HSS quality management system (QMS), which controls the activities, tools, and resources of the other elements.
Faster.NET – The HSS Development Framework for .NET Solutions
Continuing improvement work with the .NET COE enables HSS to offer scalable, on-demand .NET solutions to customers in a variety of industries. The company calls this Faster.NET. Its key elements are:
· Pre-assembled, reusable software components
· A reusable engineering tool set that does not require customization for each project, thereby improving development speed
· A reusable set of architectures or Solutions Blue Prints (SBP), saving the time of developing software architecture from scratch.
Source by Anil Singh
Are Frameworks The New Programming Languages?
The user experiences delivered by a software application nowadays directly influence its popularity and profitability in the long run. The user experience delivered by an application depends of its accessibility, functionality, performance, usability, searchability, and security. Hence, while developing a custom software application, the developers have to focus on many aspects in addition to the business requirements. At the same time, they also need to deliver the software within a stipulated timeframe to beat competition.
That is why; no developer can build custom software applications quickly and efficiently without using robust frameworks. Based on his precise needs, each developer has option to choose from a wide range of micro and full-stack frameworks. Some of these frameworks are open source and free, whereas others are licensed and commercial. But each framework simplifies and speeds up custom software development by providing several features, modules, libraries and tools. That is why; many programmers consider frameworks as new programming languages.
However, each framework is written in a particular programming language. Also, each framework helps programmers to write applications efficiently in specific programming languages. For instance, web frameworks like Laravel, CakePHP, Yii, Zend, CodeIgniter, or Symfony help programmers to write web applications in PHP quickly and rapidly. On the other hand, ASP.NET, a widely used web framework, allows programmers to write code in C#, J#, or Visual Basic. Likewise, Node.js enables programmers to write server-side code in a widely used client-side programming language like JavaScript.
As a collection of programs or prewritten scripts, frameworks enable programmers to accomplish a variety of tasks without writing additional code. But the programmers have to follow the syntax rules and language features of a programming language to build custom software efficiently and customize the framework according to their precise needs. That is why; programmers have to use programming languages to communicate with the device and get the instruction executed. They still need frameworks to accomplish a variety of programming tasks quickly and efficiently.
Why Each Programmer Nowadays Uses Software Frameworks?
Curtail Development Time
While developing a custom software application, developers have to focus on both business requirements and user experience. Hence, they have to write longer lines of code to create an application that meets all predefined business requirements while delivering optimal user experience. As a collection of prewritten scripts, frameworks enable programmers to accomplish common tasks and add functionality to the software without writing lengthy and complex code. The features provided by a framework further help developers to build custom applications within a stipulated amount of time.
Focus Only on Business Requirements
While writing a custom application, developers have to put extra time and effort to create or customize the development environment. As they have to spend time on creating custom development environment, the programmers often find it daunting to focus extensively on business requirements. A framework enables developers to focus on each module of the software by providing standard working system. It further helps programmers to focus only on business requirements by providing customizable development environments.
Maintainable and Structured Code Base
Nowadays, enterprises update their software applications frequently to keep users engaged and beat competition. Many businesses even require programmers to keep the source code of their software structured, readable, and maintainable. The developers find it difficult to keep the application code clean and maintainable without using frameworks. As most frameworks support model-view-controller (MVC) paradigm, it becomes easier for developers to build and maintain custom software by keeping its user interface and business logic layers separated. At the same time, the frameworks also help programmers to keep the source code maintainable and extensible by following certain coding conventions.
Predefined APIs
The pre-built and pre-tested scripts provided by a framework help developers to deliver reliable software applications. Likewise, the developers can also take advantage of the predefined application programming interfaces (APIs) provided by the framework to enhance the application’s functionality and performance without writing longer lines of code. The APIs further enables various developers to communicate with each other without any hurdle or ambiguity. Nowadays, a developer can easily build custom software with these predefined APIs despite not knowing the syntax rules of the associated programming language.
Facilitate Software Testing
In an agile development environment, the developers and testers work as a single team. Hence, the developers often need to write test cases, and test the software continuously. Many developers use test automation tools to execute the tests repeatedly. Many software frameworks enable programmers to perform a variety of tests through widely used software testing tools. For instance, most web application frameworks enable developers to assess the quality of individual components of the application or individual units of the source code by using open source unit testing frameworks.
No Project Overheads
Often programmers explore ways to reduce development time without increasing project overheads. The frameworks enable developers to build custom applications rapidly. The developers can further avoid incurring additional expensed by opting for free frameworks. Most widely used frameworks are open source and free. Likewise, the community editions of specific proprietary framework can also be used without paying licensing fees. Hence, the developers can use these frameworks to build custom software rapidly without increasing development cist.
Community Support
Based on the precise needs of each project, the developers have option to choose from a number of open source frameworks. They can use the frameworks without increasing development cost. Also, they can customize the framework according to their specific needs. Each framework is also supported by a large and active community of developers. The users can avail the assistance and support of the large development community to resolve new problems and performance issues while working with the open source framework.
On the whole, a programming language and a software framework complement each other. Each framework is written in a specific programming language. It further helps programmers write applications in a particular programming language. That is why; developers nowadays use frameworks to build custom applications rapidly, and make them deliver richer user experience. However, the web application programmer must know the syntax rules and language features of the programming language to take advantage of the software framework fully.
SAP Business One – Sales Commission and Customer Statement Reports in Crystal Recommendations
As in the majority of mid-market ERP and accounting applications SAP B1 has customizable commission and invoice forms. However being flexible in the sense of creating user defined fields and tables chances are high that your vision and formulas are based on these objects. It is natural to decide design work to be done in CR as SAP owns this tool and recommends for managerial reporting. We will try to come through customization and design pitfalls and recommendations to avoid them. This paper is not intended to be a technical guide for programmer as it is rather FAQ style collection of recommendations:
1. Commission formulas. Real life is rich in case studies and we have seen customers where formulas have several tiers and they have effective date from and to just to open the list of possible scenarios. If you recognize your case then good idea is to create few user defined tables and use them for calculations
2. Statement. In various industries you might have parallel units that should be present on the printed form. For example it might be billed and actual minutes in advertising
3. User defined fields and tables. There is no need to do software development in order to create these objects. They could be created in user interface: Tools -> Customization Tools -> User defined tables and fields management and from here use your intuition or read user manual. The nice thing here is the fact that these objects are created in SQL tables in metadata and they are neutral to version upgrade. So feel free to deploy this technique. Often you are sending customer invoices or sales orders from external database or application. In this case it is good idea to send them first to user defined tables and then deploy Software Development Kit C# or VB programming in Microsoft Visual Studio to transform the rows into real Invoices and Orders
4. Design. Now let’s talk about the design itself. It is paradoxical but our recommendation is begin this process in SQL Server Management Studio queries. Crystal is perfect tool but if formulas change in the future it might be difficult to follow these changes in Designer tool. Much easier is to create SQL View or even stored procedure where all the mathematics is done and base report on these SQL units. If you are designing something complex with formulas then you might be disappointed with design results getting rows duplications and other annoying bugs. SQL is better positioned to do math. General idea is the following – try your query in SQL until you are satisfied with result and only after open CR Designer tool to finish layout and such cosmetics as company logo and other graphical elements
5. Now fields and tables structures. There are two ways to discover these. First is to print it out from SDK in the form of complete and very complex diagram. And the second option is to switch in menu View System Information. Then open the form with the table and field in question and place cursor over. Take a look at bottom left corner where you should be able to read names. Try it on your own and see if you got the same results. Sales Order header is hosted in ORDR and lines in RDR1 tables respectively.