| home about us free pdf software downloads links privacy site map copyright policy |
|
|
The effectiveness of a software product line depends on the effectiveness of the abstractions used to manage it.http://www.semdesigns.com/Company/Publications/KruegerChurchett-plees-cr.pdf. Salion uses a combination of technology and vigilance to elicit emerging abstractions in its software product line. The effectiveness of a software reuse technique depends on the effectiveness of the abstractions employed.[1] Since software product line approaches gain their benefit from large-scale software reuse, the effectiveness of a software product line will likewise depend on creating and maintaining effective software product line Salion uses technology and vigilance to aggressively search out and refactor abstractions in its software product line. As a result, Salion optimizes its software product line through greater commonality and more concise variations. This provides faster time-to-market for new products, lower development costs, and higher software quality. One example of eliciting software product line abstractions is described in this paper. During the normal evolution of a software product line, variations are often introduced to provide greater flexibility in the product line or to expand the scope of the product line into new areas. This tendency towards increased variation reduces the ratio of common software to variant software and thus reduces the effectiveness of software reuse in the product line. Once identified, these abstractions enable the variations to be refactored into greater levels of common software and more concise variant software, thereby increasing the levels of reuse in the product line. Experience at Salion has shown that appropriate software product line technology can ... The common component of InfiniBand subnets is management software.http://www.infinibandta.org/newsroom/whitepapers/architecture_matters_1101.pdf. © 2001 Lane15 Software™, Inc. The common component of this last subnet is management software. Importance of Management Software Without fabric management software, InfiniBand technology is just racks of processors and IO modules. Once the topology has been established, management software boots the host processors and initializes IO controllers. During operation, management software is responsible for monitoring and maintaining the overall health and resource balance in the subnet. As vendors add hardware and software enhancements, management complexity will increase and must be addressed in a coherent manner. Start with some silicon, add low-level software, and bolt together a few boxes as a prototype—it’s a compelling way to get an initial entry product. InfiniBand Hardware is to be provided at each node, it does not specify what should be in hardware versus software. Similarly, Silicon vendors include unique value add enhancements which require software support. In addition to varying Silicon feature support, hardware vendors provide different levels of software support for their devices. – While the InfiniBand specification defines what functionality Extensibility and Flexibility software enhancements will require additional management capability. Fortunately, software approaches and software development tools have evolved over the last decade. Lane15 Software Lane15 Software is the leading developer of fabric management software for heterogeneous InfiniBand networks. Migrating from mainframe-based computing to client/server-based computing can result in a heterogeneous collection of machines that do not interoperate, forcing software developers to deal with unfamiliar system commands and systems that cannot share data.http://www.hpl.hp.com/hpjournal/97feb/feb97a5.pdf. A SoftBench control daemon is described that enables developers to integrate heterogeneous computing systems into efficient, tightly coupled software development environments with consistent, easy-to-use graphical user interfaces across all machines. Because the operating systems on the disparate machines all come with their own sets of tools, software developers must learn a new set of commands for each system that they use. The article details some of the common pitfalls encountered when developing software in an open systems environment, explains how SAIC deploys SoftBench to integrate such systems, and concludes by discussing the benefits of such an integration. The resulting heterogeneous collection of machines makes it difficult to create an efficient and cooperative software development environment. Given the above reasons for using SoftBench to integrate a heterogeneous software development environment, how does one go about implementing such an integration? For software development processes that require more intricate interactions than the message connector can provide, SAIC's SynerVision product can be used. Note that the steps described above for integrating a heterogeneous software development environment with SoftBench do not need to be implemented all at once. By extending SoftBench as described above, a heterogeneous collection of computing systems ... The traditional waterfall life cycle has been the mainstay for software developers for many years.http://www.hpl.hp.com/hpjournal/96aug/aug96a4.pdf. For software products that do not change very much once they are specified, the waterfall model is still viable. However, for software products that have their feature sets redefined during development because of user feedback and other factors, the traditional waterfall model is no longer appropriate. This paper begins with a brief discussion about the EVO method and its benefits, then describes software projects at three HP divisions that have used EVO, and finally discusses critical success factors and key lessons about EVO. From a business perspective, the biggest benefit of EVO is a significant reduction in risk for software projects. Finally, the inevitable change in expectations when users begin using the software system is addressed by EVO's early and ongoing involvement of the user in the development process. The ability of developers to respond to market changes is increased in EVO because the software is continuously evolving and the development team is thus better positioned to change a feature set or release it earlier. Second, the opportunity to show their work to customers and hear customer responses tends to increase the motivation of software developers and consequently encourages a more customer-focused orientation. In traditional software projects, that customer-response payoff may only come every few years and may be so filtered by marketing and management that it is meaningless. It requires a fundamental shift in the way one thinks about managing projects and definitely requires more management ... Traditionally, software development techniques have been implementation-driven in the sense that the programming paradigm of the day dictated the design and requirements analysis techniques used.http://www.cs.toronto.edu/km/tropos/Fossil.pdf. In this chapter we explore a software development methodology which is requirements-driven in the sense that the concepts used to define requirements for a software system are also used later on during design and implementation. Software development techniques have traditionally been inspired and driven by the programming paradigm of the day. For structured development techniques this meant that throughout software development, the developer can conceptualize her software system in terms of functions and processes, inputs and outputs. Using the same concepts to align requirements analysis with software design and implementation makes perfect sense. Not surprisingly, this is also the phase where the most and costliest errors are introduced to a software system. This paper speculates on the nature of a software development framework, named Tropos3, which is requirements-driven in the sense that it is based on concepts used during early requirements analysis. Throughout, we assume that the task at hand is to build generic software to support back office claims processing within an insurance company. According to conventional software development techniques, such a goal needs to be operationalized before the end of late requirements analysis, perhaps into some sort of a user interface through which user Y will receive message X from the system. This early translation of goals into concrete plans for their fulfillment makes software ... A software testing model summarizes how you should think about test development.http://www.testing.com/writings/new-models.pdf. It tells you how to plan the testing effort, what purpose tests serve, when they’re created, and what sources of information you use to create them. They’re bad because they’re mere embellishments on software development models. People think hard and argue at length about how to do software development. A testing model has to be driven by development – after all, we’re testing their work. But when the testing model is an afterthought, it’s driven in the wrong way. It connects to development activities in the places that are easiest to describe, not those that give testing the most leverage. It builds upon what developers ought to do, not upon what they always do even when they’re not following the rules. It lumps together activities that have no essential connection and separates others that belong together. But my primary purpose is not to claim I have the right model – it’s too early for that – but to describe important requirements for test models that will replace mine. Those don’t concern us here – although it is indicative of the state of testing models that a development model so widely disparaged is the basis for our most common testing model. My criticisms also apply to testing models that are embellishments on better development models, such as the spiral model [Boehm88]. Unit testing checks whether code meets the detailed design. By concentrating on the list of changes in a handoff, I’ve decoupled the testing process from the software design process. The V model is fatally flawed, as is any model that: 1. ignores the fact ... In the beginning of a design project, relevant people agree there's no design.http://www.testing.com/writings/marick-science-of-design.pdf. Eventually (we hope), relevant people agree there is. What activities do people characteristically perform? What resources do they use, and how? How do their actions depend on their context? How do they marshal support, negotiate agreement, or bury disagreement? Software development attracts people fond of tidy logical structures. We see that in the many proposals for software processes that feel so close to being automatable, that try to wall off the human element. If the above authors - and others like them - are correct, and if design shares characteristics with science, that funding will not improve the state of actual software design. It's my belief that what these authors have accomplished is applicable to software design. That shouldn't be a problem in software: it's hard to see many people getting upset at the notion that a Smalltalk class named Advancer is a social invention, not a reflection of reality. So the literature is fairly inaccessible to software people (except for oddballs like me). A successful research program would win the Jolt software productivity award as well as help someone gain tenure. I am an independent software consultant, best known in the testing community. I am the author of The Craft of Software Testing (1995), one of the authors of the "Manifesto for Agile Software Development" (www.agilemanifesto.org), a newly-elected board member for the Agile Alliance nonprofit (www.agilealliance.org), program chair for the 10th Pattern Languages of Programs conference, an editor for Software Testing and Quality “Safe code” is characterized by its fitness for use in situations where software is in direct control of human lives or safety.http://www.adi.com/pdfs/SafeCode.pdf. As the use of embedded software in such situations rises, the need for strong safe code development processes in the embedded software industry increases correspondingly. Everywhere one turns a new or novel use of software is springing to life. But how can all embedded software reap the benefits of aerospace’s lessons learned? Proficient programmers in safety related arenas embrace sensibly strict processes as the vehicles that carry them down the software development turnpike. When safety is a guiding principle for software, the method of operating needs to be much more than a personal preference. The development process for safety related software must be a formally defined and rigorously enforced sequence of logical steps, each designed to mitigate the risks inherent in the application. Similarly, integration level testing draws its requirements from the software and system requirement specifications and applies them against logically related groups of units. Finally, system level tests are drawn from the system requirements and applied against the software (and often hardware) as a whole. Verification involves demonstrating that the application software successfully implements the software requirements and design, whereas validation is an evaluation of the requirements and design to be implemented. Analysis is nearly the equal of testing in value with respect to software verification, despite the fact that analysis is often an afterthought for the software developer. Regurgitation ... Traditionally, node link diagrams are the prime choice when it comes to visualizing software architectures.http://www.research.ibm.com/visual/papers/callmatrix.pdf. However, node link diagrams often fall short when used to visualize large graph struc-tures. In this paper we investigate the use of call matrices as visual aids in the management of large software projects. We argue that call matrices have a number of advantages over traditional node link diagrams when the main object of interest is the link instead of the node. Matrix visualizations can provide stable and crisp layouts of large graphs and are inherently well suited for large multilevel visu-alizations because of their recursive structure. We discuss a number of visualization issues, using a very large software project currently under development at Philips Medical Systems as a running exam-ple. Visualization can play an important role during the complete life-cycle of software systems, from the global design of a new system to the reverse engineering of legacy systems. A second problem when dealing with very large software sys-tems is that even the top architects have dif ficulties to maintain a birds eye view of the entire architecture. In this case software visu-alization can also help, serving as a useful memory externalization and communication tool. We use a very large software development project currently in progress at Philips Medical Systems as a running example. Mentally fragmented information is aggregated in a single image, aiding in the creation of a mental map of the software system as a whole. Call matrices have been used to dis-play dynamic properties of object oriented programs on a smaller ... He is experienced with the practice of software configuration management from having served as a configuration manager on large, fast-paced software projects.http://www.accurev.com/company/coverage/JDJreview2006.pdf. Michael helps software development organizations practice software configuration management by applying SCM patterns to solve real world problems. In the same way that an intuitive and elegant IDE aids modern software development, a cutting-edge yet robust software configuration man-agement (SCM) tool enables successful team software development. AccuRev 4.0 is the latest release of the innovative SCM tool that fosters effective team software development. Team software development is char-acterized by several developers making frequent changes to source code files at the same time. Target Audience: All members of the software development team including developers, build and release engineers, and project managers. Pros: • AccuRev’s elegant yet straightforward stream-based model is ideally suited for team software development, especially development that’s highly parallel. Its software architecture is clean and modern. The collection can be large enough to contain the version numbers of all the files in a software release or small enough to contain only the version numbers of the files modi-fied by a developer to fix a bug. Typically, they’re organized into a hierarchy to mimic the way teams develop software. Streams at the top of the hierarchy contain the versions of files in a software release. Parallel Software Development Concurrent changes are al-most inevitable when one or more teams develop or maintain parallel releases of a software system. Branching from a labeled ... Aside from the commercially available methodologies such as Prince 2 and Rational Unified Process, there are many methodology developed to suit individual organisations.http://www.projectperfect.com.au/downloads/Info/info_methodology_implementation.pdf. This white paper sets out to provide a better understanding of methodologies, and how they can be developed and implemented. Project Management Methodology v Application Development Methodology It is important to differentiate between a project management methodology and an applications development methodology or software development methodology. A project management methodology covers all the things a project manager needs to do regardless of whether it is a software development, package selection, or relocation of his department project. Integration Management You will notice there is nothing mentioned about requirements or testing or vendor selection. That is part of an Applications Development Methodology or Software Development Methodology. In this way, people can move comfortably from applications development, to infrastructure roll out, to software selection to even relocating to new buildings using the same approach. Training people in project management can take place prior to them learning how to do a development, or select software or even to do some ad hoc project that does not have a defined methodology. . Talk with network administration and identify any network security implications Meet with Microsoft and discuss any security patches that may need to be distributed with the software. Project Perfect is a project management software consulting and training organisation based in Sydney Australia. Over the last decade and a half, he has ... All logos are TM of their respective companies.http://www.eclipse.org/proposals/eclipse-dsdp/DSDPCreationReview.pdf. What is Device Software? Device software is software that runs on an embedded operating system inside a larger physical product. Device software applications are typically cross-compiled and deployed on a custom hardware target that is based on a different configuration than the development host. These custom targets are often constrained by processor type, processor speed, available memory, and hard real-time responsiveness. The embedded operating system is usually optimized for these constraints and is also designed to deal with on-chip peripherals such as communication modules, high-resolution timers, memory controllers, etc. ° ° ° ° ° ° medical devices (blood-test machines, EKG’s) network equipment (routers, switches) All logos are TM of their respective companies. ° Create an open, extensible, scalable, and standards-based development platform focused on the needs of the device software developer. Hardware bring-up ° Test prototype hardware ° Verify basic functionality of the target processor(s), memory, and peripherals ° Run diagnostics and simple software applications Platform development ° Bring up and configure target operating system and services ° Build device drivers and board support packages Application development ° Create the applications for the combination of hardware and software that comprise the end product (the “device”). © Wind River Systems, released under EPL 1.0. All logos are TM of their respective companies. ° Create extensible frameworks and data models for remote target management. All logos are TM of their respective companies. Create new ... Established risk-analysis method-ologies possess distinct advantages and disadvantages, but almost all of them share some good principles as well as limitations when applied to modern software design.http://www.cigital.com/papers/download/bsi3-risk.pdf. What sepa-rates a great software risk assessment from a merely mediocre one is its ability to apply classic risk definitions to software design and then generate accurate mitigation requirements. A high-level approach to iterative risk analysis should be deeply integrated throughout the software develop-ment life cycle.1 In case you’re keep-ing track, Figure 1 shows you where we are in our series of articles about software security’s place in the soft-ware development life cycle. Each basic approach has its dis-tinctly different merits, but they al-most all share some valuable concepts that should be considered in any risk analysis. Threats manifest themselves as direct attacks on system security. It can exist in one or more of the components making up a system, even if those compo-nents aren’t necessarily involved with security functionality. Automated scanners tend to focus on bugs, since human expertise is required for uncovering flaws. Rigorous risk analysis relies heavily on an understanding of business im-pacts, which requires an understand-ing of laws and regulations as well as the business model supported by the software. Traditional risk-analysis output is difficult to apply directly to modern software design. One approach to overcoming these problems is to start looking at software risk analysis on a compo-nent-by-component, tier-by-tier, and environment-by-environment level and then apply the principles ... Sun has applied 20-plus years of innovative experience to the creation of comprehensive solutions for software development that deliver the features, flexibility, and perfor-mance you need at a price you can afford.http://www.sun.com/x64/briefs/SoftwareDevSS.pdf. Our development tools, including Sun Java Studio Creator, Sun Java Studio Enterprise and Sun Studio 10 software, deliver innovative features for programmers of all skill sets. And to leverage the knowl-edge base and experience of hundreds of thousands of your peers, Sun brings together a valuable community of software develop-ers in the Sun Developer Network. Designed especially to benefit software developers, the Sun Ultra 20 Workstation delivers the ability to program right out of the box. 2 Solution Brief Sun x64 Systems for Software Development Sun™ x64 AMD Opteron processor systems have changed the landscape of software development. Sun’s x64 solutions for software development feature the Sun Java Workstation W2100z and Sun Java Workstation W1100z, both with exceptional memory capacity (eight GB for the W1100z and 16 Gb for the W2100z) and the AMD Opteron processor, delivering unmatched performance. Developers can get right to work on software projects and see them through to the end without worrying about system crashes or the right fit of software to hardware. With Sun Studio 10 software Sun reaches a new level of excellence in its developer tool suite for C, C++, and Fortran application development. Sun Studio 10 software also delivers performance analysis tools and an intuitive debugger for Linux operating systems. Furthermore, there is a com-plete develop-debug-test-deploy solution for 3 Solution ...
| |