• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 73
  • 16
  • 8
  • 6
  • 4
  • 4
  • 4
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • Tagged with
  • 144
  • 144
  • 45
  • 24
  • 18
  • 14
  • 14
  • 13
  • 13
  • 13
  • 11
  • 11
  • 10
  • 10
  • 10
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
41

Nástroj pro podporu vývoje softwarových systémů / Tool for Software Systems Design

Crlík, Radek January 2017 (has links)
To be able to create quality software system, one need to analyse it well, design, program and test it. The whole process is called software life-cycle and is studied by software engineering. Today, there are many tools making this process easier. For analysing and designing software UML language became favourite. It enables programmers to describe different aspects of software by graphical diagrams and enables them to comprehend them better. Some of them can be translated into source code in chosen programming language. Problem is maintaining those diagrams during later phases when source code was already generated and is used exclusively. This problem is trying to be solved by Model-Driven Development, where programmer is working with well-defined models that can be automatically transformed into the source code that don't have to be edited by hand. Unfortunately this approach is not universal. This work tries to design and create tool that can work with use case diagrams, class diagrams and object-oriented Petri nets. This tool should allow designing those diagrams and be able to synchronise information between them to make the software design easier.
42

DIGITAL IMAGE PROCESSING SOFTWARE DESIGN FOR ELECTRON IMAGE ANALYSIS

Adamczyk, Maria 12 1900 (has links)
<p> The central idea behind digital image processing is quite simple. The digital image is fed into a computer one pixel at a time. The computer is programmed to insert these data into an equation, or series of equations, and then store the results of the computation for each pixel. These results form a new digital image that may be displayed or recorded in pictorial format (specific for the particular image processing system in use) or may itself be further manipulated by additional programs. The possible forms of digital image manipulation are literally infinite. The purpose of this project is to implement some image processing techniques to facilitate the image analysis research conducted in the Institute for Materials Research at McMaster University. </p> / Thesis / Master of Science (MSc)
43

Patterns for Enterprise Application Design and Development

Unknown Date (has links)
Designing and developing enterprise applications is a complex and resource intensive process, as it often must address thousands of requirements. At the same time, the software architecture of most enterprise applications at their core have many features and structures in common. Designers from different teams do not normally share design elements because of the competitive and proprietary nature of development, and enterprise applications design and development teams end up re-inventing the wheel when tackling a new product. My objective is to formulate new design patterns for enterprise application architectures that assist software architects with reusable solutions to improve design quality and productivity. I achieve this by presenting seven patterns, each providing a solution to a specific challenge or a problem that is common to many enterprise applications. The Business Object Pattern provides a generic approach to design extensible Business Objects and their frameworks for enterprise applications. The pattern covers a number of concepts, including the Dynamic business object, the Static business object, constraints for validity, editability, and attribute visibility, as well as the mechanisms for workflow. The Business Object Life Cycle Pattern introduces the concept of stages which comprise a business object’s life cycle, and their relation to the business object’s integrity during that life cycle. The Simple Change History Pattern provides a concept of enforcing record keeping of the owner and date of the last change performed on a given business data object. The Business Data Object Versioning Pattern offers a solution by introducing a new version of a given business data object which allows for preservation of the original data. The Change History Record Pattern defines a solution for cases when there is a need to capture detailed information about the changes performed on a given business object, such as who made the changes, when, and what changes were made. The Permission Based Granular Access Control Pattern offers a basic approach for access control to objects and their attributes. Finally, the Money Object Pattern offers a language neutral approach to internationalization and globalization of business applications which require multi-currency capability. It is hoped that applying these patterns will provide many advantages, ranging from quicker delivery times to a more reliable software, and ultimately help achieve a systematic approach to designing and building complex enterprise applications. / Includes bibliography. / Dissertation (Ph.D.)--Florida Atlantic University, 2017. / FAU Electronic Theses and Dissertations Collection
44

On Using UML Diagrams to Identify and Assess Software Design Smells

Haendler, Thorsten January 2018 (has links) (PDF)
Deficiencies in software design or architecture can severely impede and slow down the software development and maintenance progress. Bad smells and anti-patterns can be an indicator for poor software design and suggest for refactoring the affected source code fragment. In recent years, multiple techniques and tools have been proposed to assist software engineers in identifying smells and guiding them through corresponding refactoring steps. However, these detection tools only cover a modest amount of smells so far and also tend to produce false positives which represent conscious constructs with symptoms similar or identical to actual bad smells (e.g., design patterns). These and other issues in the detection process demand for a code or design review in order to identify (missed) design smells and/or re-assess detected smell candidates. UML diagrams are the quasi-standard for documenting software design and are often available in software projects. In this position paper, we investigate whether (and to what extent) UML diagrams can be used for identifying and assessing design smells. Based on a description of difficulties in the smell detection process, we discuss the importance of design reviews. We then investigate to what extent design documentation in terms of UML2 diagrams allows for representing and identifying software design smells. In particular, 14 kinds of design smells and their representability in UML class and sequence diagrams are analyzed. In addition, we discuss further challenges for UML-based identification and assessment of bad smells.
45

STRUCTURED SOFTWARE DESIGN IN A REAL-TIME CONTROL APPLICATION

DeBrunner, Keith E. 10 1900 (has links)
International Telemetering Conference Proceedings / October 22-25, 1984 / Riviera Hotel, Las Vegas, Nevada / Software for real-time (time critical) control applications has been shown in military and industry studies to be a very expensive type of software effort. This type of software is not typically addressed in discussions of software architecture design methods and techniques, therefore the software engineer is usually left with a sparse design “tool kit” when confronted with overall system design involving time critical and/or control problems. This paper outlines the successful application of data flow and transaction analysis design methods to achieve a structured yet flexible software architecture for a fairly complex antenna controller used in automatic tracking antenna systems. Interesting adaptations of, and variations on, techniques described in the literature are discussed; as are issues of modularity, coupling, morphology, global data handling, and evolution (maintenance). Both positive and negative aspects of this choice of design method are outlined, and the importance of a capable real-time executive and conditional compilation and assembly is stressed.
46

AspectAssay: A Technique for Expanding the Pool of Available Aspect Mining Test Data Using Concern Seeding

Moore, David Gerald 01 January 2013 (has links)
Aspect-oriented software design (AOSD) enables better and more complete separation of concerns in software-intensive systems. By extracting aspect code and relegating crosscutting functionality to aspects, software engineers can improve the maintainability of their code by reducing code tangling and coupling of code concerns. Further, the number of software defects has been shown to correlate with the number of non- encapsulated nonfunctional crosscutting concerns in a system. Aspect-mining is a technique that uses data mining techniques to identify existing aspects in legacy code. Unfortunately, there is a lack of suitably-documented test data for aspect- mining research and none that is fully representative of large-scale legacy systems. Using a new technique called concern seeding--based on the decades-old concept of error seeding--a tool called AspectAssay (akin to the radioimmunoassay test in medicine) was developed. The concern seeding technique allows researchers to seed existing legacy code with nonfunctional crosscutting concerns of known type, location, and quantity, thus greatly increasing the pool of available test data for aspect mining research. Nine seeding test cases were run on a medium-sized codebase using the AspectAssay tool. Each test case seeded a different concern type (data validation, tracing, and observer) and attempted to achieve target values for each of three metrics: 0.95 degree of scattering across methods (DOSM), 0.95 degree of scattering across classes (DOSC), and 10 concern instances. The results were manually verified for their accuracy in producing concerns with known properties (i.e., type, location, quantity, and scattering). The resulting code compiled without errors and was functionally identical to the original. The achieved metrics averaged better than 99.9% of their target values. Following the small tests, each of the three previously mentioned concern types was seeded with a wide range of target metric values on each of two codebases--one medium-sized and one large codebase. The tool targeted DOSM and DOSC values in the range 0.01 to 1.00. The tool also attempted to reach target number of concern instances from 1 to 100. Each of these 1,800 test cases was attempted ten times (18,000 total trials). Where mathematically feasible (as permitted by scattering formulas), the tests tended to produce code that closely matched target metric values. Each trial's result was expressed as a percentage of its target value. There were 903 test cases that averaged at least 0.90 of their targets. For each test case's ten trials, the standard deviation of those trials' percentages of their targets was calculated. There was an average standard deviation in all the trials of 0.0169. For the 808 seed attempts that averaged at least 0.95 of their targets, the average standard deviation across the ten trials for a particular target was only 0.0022. The tight grouping of trials for their test cases suggests a high repeatability for the AspectAssay technique and tool. The concern seeding technique opens the door for expansion of aspect mining research. Until now, such research has focused on small, well-documented legacy programs. Concern seeding has proved viable for producing code that is functionally identical to the original and contains concerns with known properties. The process is repeatable and precise across multiple seeding attempts and also accurate for many ranges of target metric values. Just like error seeding is useful in identifying indigenous errors in programs, concern seeding could also prove useful in estimating indigenous nonfunctional crosscutting concerns, thus introducing a new method for evaluating the performance of aspect mining algorithms.
47

An object-oriented component-based approach to building real-time software systems

Baas, Andre 06 June 2016 (has links)
A project report submitted to the Faculty of Erlglncerlng, University of Witwatersrand, Johannesburg, In partial fulfilment of the requirements for the degree of Master of Science In Engineering Johannesburg 1993 / This Project Repolt r ''"lorts on the study of an approach to building integrated real-time software systems based on re-usable object-oriented components. The basis of the approach is the development of a a-layered structure of components, where each layer is built on the underlying layer of components, The lower layer of components consists of generic re-usable building blocks that may be re-used for building and integrating other real-time applications. The middle layer consists of components that are generic to the application domain, and the top layer consists of components that are specific to each application of that application domain. The Report includes researching and developing methods of communicating between these building blocks using an OSI/CMIP-conformant 'software highway" and in this regard particular attention is given to the formal and de facto industry standards. With this approach, it is argued that the application engineer can effectively build new applications using the re-usable components. This is demonstrated by reporting on the implementation of a large real-world Telecommunications Network Management application. The Project Report contains a critical analysis of the technical, organisational and project management issues of this Object-oriented component approach as compared to the traditional development approach. The Report concludes that despite certain technical and organisational concerns, the object-oriented approach does indeed yield several worthwhile benefits for developing real-time software systems. These benefits include genuine re-usability, and l"1proved productivity, testability and maintainability.
48

Moops: A web implementation of the Personal Software Process reporting system

Gigler, Thomas Russell, III. 01 January 2008 (has links)
The purpose of Moops is to bridge the gap between PSP Scriber, geared very specifically to the CSCI655 class, and other available PSP implications which are so general they are difficult to use immediately without valuable time spent learning the software. Moops is a PHP/MySQL based web application designed to provide the students taking the CSCI655 graduate software engineering course at CSUSB with an intuitive, easy to use tool to implement the Personal Software Process (PSP). Moops eliminates the possibility of errors in calculations by completing all calculations for the user.
49

LDPL: A Language Designer's Pattern Language

Winn, Tiffany Rose, winn@infoeng.flinders.edu.au January 2006 (has links)
Patterns provide solutions to recurring design problems in a variety of domains, including that of software design. The best patterns are generative: they show how to build the solution they propose, rather than just explaining it. A collection of patterns that work together to generate a complex system is called a pattern language. Pattern languages have been written for domains as diverse as architecture and computer science, but the process of developing pattern languages is not well understood. This thesis focuses on defining both the structure of pattern languages and the processes by which they are built. The theoretical foundation of the work is existing theory on symmetry breaking. The form of the work is itself a pattern language: a Language Designer's Pattern Language (LDPL). LDPL itself articulates the structure of pattern languages and the key processes by which they form and evolve, and thus guides the building of a properly structured pattern language. LDPL uses multidisciplinary examples to validate the claims made, and an existing software pattern language is analyzed using the material developed. A key assumption of this thesis is that a pattern language is a structural entity; a pattern is not just a transformation on system structure, but also the resultant structural configuration. Another key assumption is that it is valid to treat a pattern language itself as a complex, designed system, and therefore valid to develop a pattern language for building pattern languages. One way of developing a pattern language for building pattern languages would be to search for underlying commonality across a variety of existing, well known pattern languages. Such underlying commonality would form the basis for patterns in LDPL. This project has not directly followed this approach, simply because very few pattern languages that are genuinely structural have currently been explicitly documented. Instead, given that pattern languages articulate structure and behavior of complex systems, this research has investigated existing complex systems theory - in particular, symmetry-breaking - and used that theory to underpin the pattern language. The patterns in the language are validated by examples of those patterns within two well known pattern languages, and within several existing systems whose pattern languages have not necessarily been explicitly documented as such, but the existence of which is assumed in the analysis. In addition to developing LDPL, this project has used LDPL to critique an existing software pattern language, and to show how that software pattern language could potentially have been generated using LDPL. Existing relationships between patterns in the software language have been analyzed and, in some cases, changes to patterns and their interconnections have been proposed as a way of improving the language. This project makes a number of key contributions to pattern language research. It provides a basis for semantic analysis of pattern languages and demonstrates the validity of using a pattern language to articulate the structure of pattern languages and the processes by which they are built. The project uses symmetry-breaking theory to analyze pattern languages and applies that theory to the development of a language. The resulting language, LDPL, provides language developers with a tool they can use to help build pattern languages.
50

Towards guidelines for development of energy conscious software / Mot riktlinjer för utveckling av enegisnål mjukvara

Carlstedt-Duke, Edward, Elfström, Erik January 2009 (has links)
<p>In recent years, the drive for ever increasing energy efficiency has intensified. The main driving forces behind this development are the increased innovation and adoption of mobile battery powered devices, increasing energy costs, environmental concerns, and strive for denser systems.</p><p>This work is meant to serve as a foundation for exploration of energy conscious software. We present an overview of previous work and a background to energy concerns from a software perspective. In addition, we describe and test a few methods for decreasing energy consumption with emphasis on using software parallelism. The experiments are conducted using both a simulation environment and real hardware. Finally, a method for measuring energy consumption on a hardware platform is described.</p><p>We conclude that energy conscious software is very dependent on what hardware energy saving features, such as frequency scaling and power management, are available. If the software has a lot of unnecessary, or overcomplicated, work, the energy consumption can be lowered to some extent by optimizing the software and reducing the overhead. If the hardware provides software-controllable energy features, the energy consumption can be lowered dramatically.</p><p>For suitable workloads, using parallelism and multi-core technologies seem very promising for producing low power software. Realizing this potential requires a very flexible hardware platform. Most important is to have fine grained control over power management, and voltage and frequency scaling, preferably on a per core basis.</p>

Page generated in 0.0369 seconds