Hossein Saiedian
University of Kansas
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Hossein Saiedian.
Annual Review of Ecology, Evolution, and Systematics | 2011
Hossein Saiedian; Serhiy Morozov
We focus on the implications of movement, landscape variables, and spatial heterogeneity for food web dynamics. Movements of nutrients, detritus, prey, and consumers among habitats are ubiquitous in diverse biomes and can strongly influence population, consumer-resource, food web, and community dynamics. Nutrient and detrital subsidies usually increase primary and secondary productivity, both directly and indirectly. Prey subsidies, by movement of either prey or predators, usually enhance predator abundance beyond what local resources can support. Top-down effects occur when spatially subsidized consumers affect local resources by suppressing key resources and occasionally by initiating trophic cascades. Effects on community dynamics vary with the relative amount of input, the trophic roles of the mobile and recipient entities, and the local food web structure. Landscape variables such as the perimeter/area ratio of the focal habitat, permeability of habitat boundaries, and relative productivity of trophically connected habitats affect the degree and importance of spatial subsidization.
IEEE Computer | 2005
David S. Janzen; Hossein Saiedian
Test-driven development creates software in very short iterations with minimal upfront design. This strategy requires writing automated tests prior to developing functional code in small, rapid iterations. Although developers have been applying TDD in various forms for several decades, this software development strategy has continued to gain increased attention as one of the core extreme programming practices.
Information & Software Technology | 2000
Hossein Saiedian; R. Dale
Requirements engineering are one of the most crucial steps in software development process. Without a well-written requirements specification, developer’s do not know what to build, user’s do not know what to expect, and there is no way to validate that the created system actually meets the original needs of the user. Much of the emphasis in the recent attention for a software engineering discipline has centered on the formalization of software specifications and their flowdown to system design and verification. Undoubtedly, the incorporation of such sound, complete, and unambiguous traceability is vital to the success of any project. However, it has been our experience through years of work (on both sides) within the government and private sector military industrial establishment that many projects fail even before they reach the formal specification stage. That is because too often the developer does not truly understand or address the real requirements of the user and his environment. The purpose of this research and report is to investigate the key players and their roles along with the existing methods and obstacles in Requirements Elicitation. The article will concentrate on emphasizing key activities and methods for gathering this information, as well as offering new approaches and ideas for improving the transfer and record of this information. Our hope is that this article will become an informal policy reminder/guideline for engineers and project managers alike. The success of our products and systems are largely determined by our attention to the human dimensions of the requirements process. We hope this article will bring attention to this oft-neglected element in software development and encourage discussion about how to effectively address the issue. q 2000 Elsevier Science B.V. All rights reserved.
conference on software engineering education and training | 2006
David S. Janzen; Hossein Saiedian
Test-driven development (TDD) is an agile software development strategy that addresses both design and testing. This paper describes a controlled experiment that examines the effects of TDD on internal software design quality. The experiment was conducted with undergraduate students in a software engineering course. Students in three groups completed semester-long programming projects using either an iterative test-first (TDD), iterative test-last, or linear test-last approach. Results from this study indicate that TDD can be an effective software design approach improving both code-centric aspects such as object decomposition, test coverage, and external quality, and developer-centric aspects including productivity and confidence. In addition, iterative development approaches that include automated testing demonstrated benefits over a more traditional linear approach with manual tests. This study demonstrates the viability of teaching TDD with minimal effort in the context of a relatively traditional development approach. Potential dangers with TDD are identified regarding programmer motivation and discipline. Pedagogical implications and instructional techniques which may foster TDD adoption will also be referenced
technical symposium on computer science education | 2006
David S. Janzen; Hossein Saiedian
Test-driven learning (TDL) is an approach to teaching computer programming that involves introducing and exploring new concepts through automated unit tests. TDL offers the potential of teaching testing for free, of improving programmer comprehension and ability, and of improving software quality both in terms of design quality and reduced defect density.This paper introduces test-driven learning as a pedagogical tool. It will provide examples of how TDL can be incorporated at multiple levels in computer science and software engineering curriculum for beginning through professional programmers. In addition, the relationships between TDL and test-driven development will be explored.Initial evidence indicates that TDL can improve student comprehension of new concepts while improving their testing skills with no additional instruction time. In addition, by learning to construct programs in a test-driven manner, students are expected to be more likely to develop their own code with a test-driven approach, likely resulting in improved software designs and quality.
technical symposium on computer science education | 2008
David S. Janzen; Hossein Saiedian
Coercing new programmers to adopt disciplined development practices such as thorough unit testing is a challenging endeavor. Test-driven development (TDD) has been proposed as a solution to improve both software design and testing. Test-driven learning (TDL) has been proposed as a pedagogical approach for teaching TDD without imposing significant additional instruction time. This research evaluates the effects of students using a test-first (TDD) versus test-last approach in early programming courses, and considers the use of TDL on a limited basis in CS1 and CS2. Software testing, programmer productivity, programmer performance, and programmer opinions are compared between test-first and test-last programming groups. Results from this research indicate that a test-first approach can increase student testing and programmer performance, but that early programmers are very reluctant to adopt a test-first approach, even after having positive experiences using TDD. Further, this research demonstrates that TDL can be applied in CS1/2, but suggests that a more pervasive implementation of TDL may be necessary to motivate and establish disciplined testing practice among early programmers.
IEEE Computer | 2001
Mazen Zari; Hossein Saiedian; Muhammad Naeem
Slow performance costs e-commerce Web sites as much as
international conference on software engineering | 2007
David S. Janzen; Hossein Saiedian
4.35 billion annually in lost revenue. Perceived latency-the amount of time between when a user issues a request and receives a response-is a critical issue. Research into improving performance falls into two categories: work on servers and work on networks and protocols. On the server side, previous work has focused on techniques for improving server performance. Such studies show how Web servers behave under a range of loads. These studies often suggest enhancements to application implementations and the operating systems those servers run. On the network side, research has focused on improving network infrastructure performance for Internet applications. Studies focusing on network dynamics have resulted in several enhancements to HTTP, including data compression, persistent connections, and pipelining. These improvements are all part of HTTP 1.1. However, little work has been done on common latency sources that cause the overall delays that frustrate end users. The future of performance improvements lies in developing additional techniques to help implement efficient, scalable, and stable improvements that enhance the end-user experience.
ACM Sigice Bulletin | 1997
Hossein Saiedian; Natsu Carr
Test-driven development (TDD) has garnered considerable attention in professional settings and has made some inroads into software engineering and computer science education. A series of leveled experiments were conducted with students in beginning undergraduate programming courses through upper-level undergraduate, graduate, and professional training courses. This paper reports that mature programmers who try TDD are more likely to choose TDD over a similar test-last approach. Additionally this research reveals differences in programmer acceptance of TDD between beginning programmers who were reluctant to adopt TDD and more mature programmers who were more willing to adopt TDD. Attention is given to confounding factors, and future studies aimed at resolving these factors are identified. Finally proposals are made to improve early programmer acceptance of TDD.
IEEE Communications Magazine | 2008
Hossein Saiedian; Shawn Mulkey
Software process refers to the set of tools, methods, and practices used to produce a software artifact. The objective of a software process management model is to produce software artifacts according to plans while simultaneously improving the organizations capability to produce better artifacts. The SEIs Capability Maturity Model (CMM) is a software process management model; it assists organizations to provide the infrastructure for achieving a disciplined and mature software process. There is a growing concern that the CMM is not applicable to small firms because it requires a huge investment. In fact, detailed studies of the CMM show that its applications may cost well over