Go To: Manage | Measure | Process | Test | Define | Design | Develop
| You understand what the user wants, the specifications of processes and the data; now you have to devise the software’s design. Building a model or framework, which represents the requirements and architecture, is a flexible technical solution critical to the success of the project.|
End-to-End Security: Building Products Right
| W16 ||Wednesday, September 29, 2004, 11:30 AM|
Richard Ford, Florida Institute of Technology
How do you build a product that is secure? Why are some products inherently more secure than others? Join Richard Ford as he shares his experiences, both building products and teaching other developers how to think about security. All too often, computer security is the last thing considered when building a new product; that is, security is relegated to a “bolt on”… something to be added to the product before it can be shipped. You will see demonstrations of security flaws that illustrate why security should be considered at every stage in the product process, from initial idea to golden master… and beyond. Learn to think about security holistically and take away a checklist of issues to consider at every step in the product lifecycle. Finally, gain insight into ways of building a development culture that is security aware and maintaining an efficient but secure corporate culture.
• Architect security built into systems across the development lifecycle
• Examples of security flaws that could have been avoided
• A security aware corporate and development culture
Design Testability into Software
| W17 ||Wednesday, September 29, 2004, 1:45 PM|
Jay Weiser, Worksoft
Design and architecture decisions made early in the project have a profound influence on the testability of an application. Although testing is a necessary and integral part of application development, architecture and design considerations rarely include the impacts of development design decisions on testability. In addition, build vs. buy, third party controls, open source vs. proprietary, and other similar questions can affect greatly the ability of an organization to carry out automated functional and performance testing — both positively and negatively. If the software or service is delivered to a separate set of end-users who then need to perform testing activities, the problems compound. Join Jay Weiser to find out about the important design and architecture decisions that will ensure more efficient and effective testability of your applications.
• The relationship between design/architecture and automated functional/performance testing effectiveness
• Testability and service level validation issues
• The benefits and return on investment of highly testable software applications
Design Patterns in Test-Driven Development
| W18 ||Wednesday, September 29, 2004, 3:00 PM|
Thirumalesh Bhat, Microsoft Corporation
Design patterns are powerful tools when understood and employed properly. Combining design patterns and test-driven development (TDD) using a set of design principles will achieve higher productivity and quality than either practice alone. With numerous code snippets as examples, Thirumalesh Bhat describes the design principles and resulting patterns that have been extracted from TDD practices at Microsoft. Learn more about these design principles: commonality/variability analysis, open/closed principle, high cohesion, low coupling, prototyping, designing for current features, single point of maintenance, refactoring, unit testing, testability, and cost/benefit analysis. Adapt and apply these principles and design patterns to your TDD projects for the same benefits.
• Fundamental principles of design patterns
• Test-driven development (TDD) and refactoring
• How to combine design patterns and TDD in a real project
Pervasive XML for the Agile Enterprise
| T21 ||Thursday, September 30, 2004, 10:15 AM|
James McGovern, Hartford Financial Services Group
XML technology usage continues to grow and is being incorporated in enterprise applications. Industry groups are embracing XML as a mechanism to encourage standard data interchanges within their vertical industry. XML is now common in Web applications, desktop software, services-oriented architectures, and application configurations. Learn about Hartford Financial Services Group’s challenges and successes developing and deploying an enterprise strategy for XML in all their application tiers. Find out how they use the same schema for business rules engines, Web services, and user interfaces and how XML has become an integral part of their enterprise’s service-oriented architecture. Take away a practical approach to manage and secure your XML based applications.
• Changes in development practices when emphasizing XML implementations
• A structure and process for managing XML schemas across the enterprise
• Interoperability and business challenges or implementing applications with XML
GUI Usability Design and Validation with Paper Prototypes
| T22 ||Thursday, September 30, 2004, 11:30 AM|
Ann Walker, The MathWorks, Inc.
Usability testing of early GUI designs with paper prototypes validates that you are building the right applications for your customers. This low-cost, high-impact practice allows you to rapidly evolve the GUI interface and find many design bugs early in the development process before coding begins. With this process, you can get external customers and internal users actively involved in designing and testing the GUI with tools they can easily manipulate. Based on project experiences at The MathWorks, Inc., you will learn how to move from the paper prototype to a coded GUI and a set of automated tests. In addition, you will learn to develop user documentation while working back and forth between the GUI and the test plan to clarify design choices.
• Involving everyone in GUI design early in the project
• User tasks and scenarios as the basis for GUI validation
• Speed up GUI development and validation with paper prototyping
eXtreme Architecture and Design for Test
| T23 ||Thursday, September 30, 2004, 1:30 PM|
Ken Pugh, Pugh Killeen Associates
eXtreme programming emphasizes test-first coding — you write the tests before writing the implementation code. You can apply the same approach in design when developing a complex system, including an architecture to support testing. To be successful, systems developed with agile methods must support a high level of testability and test automation. For large distributed systems, more sophisticated testing is needed to help determine which components may be contributing to failures. For such complex systems, you should architect the system for testing rather than add testing functionality as an afterthought. Ken Pugh presents a framework that employs polymorphic-style internal and external interface patterns to ease the work of testing and debugging. He also covers adding test-only functionality, test-only outputs, and test-only logging to interfaces. Take away a new appreciation and concrete design patterns for building test support into your software by design.
• An architectural framework for test automation throughout the software lifecycle
• Implementing test points in interfaces for long-term testability
• Think test-first in design to speed up development and simplify testing
Service-Oriented Architecture — Exposed
| T24 ||Thursday, September 30, 2004, 3:00 PM|
Sharon Fay, Flashline, Inc.
Service-Oriented Architecture (SOA), incorporating methods for Web services to communicate dynamically, promises to significantly improve organizational operating efficiency, change the way companies conduct business, and even alter the competitive landscape. However, Service-Oriented Architecture is a strategy rather than an objective, and, like any strategy, it is of no value unless it is implemented. With illustrations from companies who today are using SOA to transform their organizations, Sharon Fay shares current practices for exposing Web services and XML to internal development teams, outsourced development, external trading partners, and customers. Learn why reuse is a key method for supporting integration of SOA implementations and how it is being accomplished. Take away a set of metrics that you can use to measure the level of SOA adoption, development productivity gains, and organizational agility.
• Service-Oriented Architecture (SOA) strategy overview
• Current practices for exposing Web services and XML internally and externally
• Case studies highlighting Service-Oriented Architecture (SOA) implementations
Go To: Manage | Measure | Process | Test | Define | Design | Develop
Software Quality Engineering Home Conference Home To Exhibit Get a Brochure Register for Better Software Conference & EXPO 2004