Pop Art, Inc. White Paper: Programming D a t e M o d i f i e d : S e p t e m b e r 24 t h , 2 0 0 3
Pop Art® Programming Services Pop Art possesses extensive knowledge of many programming languages and technologies, allowing us to provide our clients with the managed or contract programming services necessary for successful projects. Our clients rely on our expertise to quickly produce applications that are scalable, extensible, efficient, and highly available. Pop Art applies industry standard application development and programming best practices to all our projects. This translates into elegant and costeffective solutions to complex business challenges.
Pop Art® Process The Pop Art Process ensures that we meet our clients’ needs. It also guarantees that we satisfy all system requirements, including timeframe and budget. Obtaining and clarifying project requirements is the first step toward a successful project.
“Because fixing upstream defects downstream costs 50 to 200 times as much as fixing them upstream does, carefully orchestrated projects jump at the chance to fix as many mistakes as possible at the bargain price of 1/50 to 1/200 their potential cost.” Steve McConnell - “The Software Project Survival Guide”
REQUIREMENTS DOCUMENT
PROJECT DEFINITION
A thorough and well-planned needs assessment phase is critical to any successful project. Pop Art does not write any code until the client has a good understanding of, and agrees to, how the final system will function. For more information about the requirements phase of a project, please see our Requirements Analysis White Paper.
BUILD APPLICATION
USES CASES
NEEDS ASSESSMENT
During the Needs Assessment and Project Definition stage, project team members work closely with the client to bring forth the best ideas and to solidify and synthesize them into the Requirements Document. This document specifies what the system will accomplish and what parameters it must operate within. After the completion of the Requirements Document, the Functional Specification Document is produced. This document transforms the requirements into a blueprint used by programmers and system engineers to build the system, and includes a full definition of any UI elements, all objects and components, exposed APIs, and any database schema. The functional specification adds depth by clarifying vague requirements and further specifying business logic not accounted for during the requirements phase. As a companion to the functional specification, the Technical Specification outlines the framework, architecture and platform of the system. Use Cases document the system from the user’s point of view, which helps both Pop Art and the client to build a system that is user-friendly and intuitive.
TEST PLAN
FUNCTIONAL SPECIFICATION
BUILD TESTING FRAMEWORK
BUILD APPLICATION
INTERNAL REVIEW/QA (ALPHA LAUNCH)
IMPLEMENT/ RUN TESTS
BUILD APPLICATION
CLIENT REVIEW (BETA LAUNCH)
IMPLEMENT/ RUN TESTS
PROJECT LAUNCH
PROJECT MAINTENANCE
IMPLEMENT/ RUN TESTS
TECHNICAL SPECIFICATION
Figure 1 - The Pop Art Programming Process
www.popart.com Pop Art, Inc. 618 NW Glisan St., Suite 401 Portland, Oregon 97209 Telephone: (503) 242-4292 Toll Free: (888) POP-ART1 Fax: (503) 242-2491
Development Process The development cycle of a project begins with the definition and creation of the testing framework, during which all required tests are planned. The actual development process is iterative, repeating the basic cycle of build and test, followed by a review phase. After the first build and test phase is completed, an internal review is conducted, known as the Pop Art Best Practices “alpha launch.” The project is • Requirements Phase deployed to a stag- • Extensive Documentation ing environment, • Peer Review which mimics the • Source Control live environment • Load Testing to enhance testing • Unit Testing reliability. Issues • Phased Deployment uncovered in this review process are addressed in another build, test, and review cycle. This leads to an external client review of the application, known as the “beta launch,” which is followed by another building and testing phase. Depending on the requirements of each individual project, there are likely to be further internal and external reviews, followed by additional building and testing stages. Once the project is ready, it is launched to the live environment.
Industry Best Practices
thorough documentation is created for all code written. Pop Art also employs a peer-review system, further enhancing the reliability of the software we create.
Code Reuse Through following industry standard object-oriented and service-oriented design principles, in addition to thorough documentation standards, Pop Art has, over time, developed a rich library of reusable software components. When performing client work, we will draw from these pre-built components first. Our second choice is to purchase a third-party pre-built component. We only develop custom code if these other two options do not provide adequate service. Through this policy, Pop Art is able to leverage existing code, further enhancing the value we provide.
Quality Assurance Pop Art is dedicated to producing high quality code, and employs an extensive system of testing and review for exactly that purpose. All code is subjected to thorough testing by Pop Art engineers - both the engineers who created the code and other engineers through an extensive peer-review system. Projects are also routinely tested by the entire staff. Pop Art employs a testing methodology called Unit Testing, which is a development and testing paradigm that dictates code is written to satisfy rigorously defined test conditions, not vice-versa as is often the case. A “Unit Testing Framework” allows a developer to create actual executable
Pop Art is dedicated to delivering the most value to our clients, and therefore adheres to industry-standard best practices across all aspects of software PRESENTATION TIER development. We SMART DESKTOP manage all code and CLIENT APPLICATION WEB BROWSER related material using a source control and versioning program, which allows our engiXML, WEB SERVICES, XML, WEB SERVICES, XML, WEB SERVICES, WEB SERVER LOCAL LOCAL neers to easily view historical records and gives our clients confidence that everyCUSTOMER LOGIC ORDER LOGIC thing created is securely archived. As CMS LOGIC SHIPPING LOGIC noted in the process diagram and in the Requirements APPLICATION TIER Analysis White Paper,
XML DATA STORE
SQL DATABASE
SQL
STORED PROCEDURES
ADO.NET
XML
XML, WEB SERVICES, LOCAL
DATA ACCESS MODULE
DATA TIER Figure 2 - A common n-ttier system architecture White Paper: Programming
www.popart.com Pop Art, Inc. 618 NW Glisan St., Suite 401 Portland, Oregon 97209 Telephone: (503) 242-4292 Toll Free: (888) POP-ART1 Fax: (503) 242-2491
2
programs for each test. When these programs are run, the engineer is told exactly whether or not the code written conforms to the defined test conditions. Unit testing is attractive for many reasons, but chief among them is the ease of repeatedly running tests across the entire application.
In adopting a new standard, Pop Art performs a critical analysis to determine its feasibility and benefits. New technology and standards are generally adopted only after they become widely accepted. This ensures that Pop Art is always using the best technology available while minimizing risk.
System Architecture Pop Art employs enterprise-level software development techniques in all of our projects, including “tiered” architecture design. A tiered system is one that has code and services dealing with similar aspects of the system architecture abstracted into groups, known as “tiers.” System types are named for the number of tiers they contain, for example 2-tier and 3-tier systems. Pop Art uses a more general tiered principle, ‘n-tier’ development, which allows us to use the right number of tiers for each application. In the diagram below, there are three primary tiers, but some of the inter-tier communication methods and some internal sections may count as minor tiers in their own right, giving rise to the more flexible “n-tier” label. Separating the application into tiers allows each tier to be managed independently from the rest of the application, greatly increasing the expandability, extensibility, scalability, and reusability of the application. A tiered system also allows the logical architecture to be separated from the physical architecture, contributing to system scalability. The system in the diagram above, for example, might be implemented with each tier on the same physical server, or, using XML Web Services as the inter-tier communication method, the tiers may be on servers separated by an arbitrary physical distance. Using separate servers also allows each tier to be implemented using different software platforms for added flexibility.
Standards Adoption Pop Art adopts the latest widely accepted industry standards in programming, design, and project management to best serve client needs. Using standard technology is crucial in developing business systems which need (or might someday need) to communicate with other business systems. Standards also make it less likely that internal processes will need to be replaced to interact with newer components, extending a product’s life cycle.
Pop Art Technologies Frameworks / APIs • Microsoft .NET • ASP.NET • Classic ASP • Palm OS API • Microsoft .NET Compact Framework Languages • C# • Visual Basic / COM+ • SQL • C / C++ • Perl • XSLT • Scripting (VBScript, Javascript & JScript) • PHP Platforms and Operating Systems • Microsoft Windows Server 2000 / 2003 • Linux • Palm OS • PocketPC Data Repositories • MS SQL Server • XML •MySQL Standards • HTML, UML, XML, W3C • Americans with Disabilities Act • XML Web Services (SOAP / WSDL / UDDI)
White Paper: Programming
www.popart.com Pop Art, Inc. 618 NW Glisan St., Suite 401 Portland, Oregon 97209 Telephone: (503) 242-4292 Toll Free: (888) POP-ART1 Fax: (503) 242-2491
3
.NET Framework Pop Art’s preferred development platform is the Microsoft .NET Framework, a feature-rich framework for programming everything from desktop applications, to web interfaces, to PDAs and cell phones. .NET allows programmers to treat web projects as first-class software engineering projects with a robust object-oriented, event-driven programming model. This allows Pop Art to leverage a wide variety of traditional, proven software engineering techniques and apply them to the web. Pop Art is able to architect and engineer web-projects, instead of merely building web-pages. .NET also has deep-rooted support and usage of XML Web Services, as well as comprehensive tools for their creation and use.
XML Web Services XML Web Services are a widely accepted method for application communication and execution, often used for inter-tier communication, as mentioned above. The key factor in web services is that they allow a programmer to make only extremely minimal assumptions about the end-user of their application, whether that is a human or a business system, greatly enhancing application portability, scalability, extensibility, and compatibility. If a system is able to send and receive messages and understand XML, then that system is able to use web services.
usually proprietary interfaces. However, with the rise of global computing and networks, a demand has arisen for a more flexible approach - one that allows functionality and data to be shared in a common way across both large and small distances. Service Oriented Architecture (SOA) is the solution to this need. In SOA, software components expose their functionality or data through a network address (generally a URL), and then publish a standard interface (a “contract”) that specifies the format of the data they expect to send and receive. Clients desiring to use this functionality can then simply make a connection to a network address, passing in the necessary data, and in return getting the result. The network based approach of Service Oriented Architecture doesn’t imply a lack of security or any inability to limit access. Instead, this approach forces security to the forefront, often leading to a more thoroughly considered security policy. As the logical combination of global networks and modern trends in software architecture, SOA is becoming increasingly popular and accepted as the modern way to model enterprise systems.
XML Web Services and the involved technology, such as SOAP, XML-RPC, WSDL, and XML Schema, are changing the way systems are built for several reasons. While no programmer can see the future, web services allow software that is written now to be “forward-compatible” with software that hasn’t been written yet. With XML Web Services, systems that have never communicated before are suddenly able to, and the possibilities and ramifications of this are just beginning to be explored.
Service Oriented Architecture The broader way to consider service-based systems, such as those typically using XML Web Services, is in the concept of Service Oriented Architecture. Generally, software consists of components that communicate with one another based on rigid and Pop Art, the Pop Art logo and other marks designated with a ®, TM or SM are trademarks of Pop Art, Inc. Other company products and service names may be trademarks of others. ©2003 Pop Art, Inc. All rights reserved.
White Paper: Programming
www.popart.com Pop Art, Inc. 618 NW Glisan St., Suite 401 Portland, Oregon 97209 Telephone: (503) 242-4292 Toll Free: (888) POP-ART1 Fax: (503) 242-2491
4