This paper describes how we have modified a software engineering stream within a computer science course to include broader concepts of systems engineering. We justify this inclusion by showing how many reported probl...
详细信息
This paper describes how we have modified a software engineering stream within a computer science course to include broader concepts of systems engineering. We justify this inclusion by showing how many reported problems with large systems are not just software problems but relate to system issues such as hardware and operational processes. We describe what we mean by 'systems engineering' and go on to discuss the particular course structure which we have developed. We explain, in some detail, the contents of two specific systems engineering courses (Software Intensive Systems Engineering and Critical Systems Engineering) and discuss the problems and challenges we have faced in making these changes. In the appendix, we provide details of the case studies which are used as linking themes in our courses.
This paper describes an efficient technique to record display output stream with memory resident software. This kind of recording can be made useful for studying text writing processes experimentally, for example prog...
详细信息
This paper describes an efficient technique to record display output stream with memory resident software. This kind of recording can be made useful for studying text writing processes experimentally, for example programmers behaviour during coding. The system is inconspicuous in test situation and does not seem to affect the testees working. Separate software has been developed for reviewing captured sessions.
This article presents a technical opinion in the case of collaborative programming for a large, complex system, in which two programmers are working jointly on the same algorithm and code. A field experiment was condu...
详细信息
This article presents a technical opinion in the case of collaborative programming for a large, complex system, in which two programmers are working jointly on the same algorithm and code. A field experiment was conducted using experienced programmers who worked on a challenging problem important to their organization, in their own environments, and with their own equipment. Findings revealed that all the teams outperformed the individual programmers, enjoyed the problem-solving process more, and had greater confidence in their solutions. Several aspects of this experiment make the results significant. First, there may be a tendency to dismiss results using small groups. Questions may arise at the value of these results if the collaborators do not perform twice as well as individuals, at least in the amount of time spent. The article concludes that the crunch-time information systems development will demand innovative ways to produce high-quality systems in a short time, with companies increasingly introducing new products. This rare experimental research is phenomenon considering the luxury of using collaborative programming while many companies are experiencing shortages of experienced programmer/analysts.
作者:
Parnas, DLMcMaster Univ
Fac Engn Dept Comp & Software MSERC Bell Ind Res Chair Software Engn Hamilton ON L8S 4K1 Canada
Programmes in "Software Engineering" have become a source of contention in many universities. Some computer Science departments, many of which have used that phrase to describe individual courses for decades...
详细信息
Programmes in "Software Engineering" have become a source of contention in many universities. Some computer Science departments, many of which have used that phrase to describe individual courses for decades, claim software engineering as part of their discipline. However, Engineering faculties claim "Software Engineering" as a new speciality in the family of engineering disciplines. This paper discusses the differences between traditional computer science programmes and most engineering programmes and argues that we need programmes that follow the traditional engineering approach to professional education and educate engineers whose speciality within engineering is software construction. One such programme is described.
In this article authors describe an approach to fostering debugging communities on the World-Wide Web, that will enable programmers to collaboratively debug programs synchronously and asynchronously. Over the past cou...
详细信息
In this article authors describe an approach to fostering debugging communities on the World-Wide Web, that will enable programmers to collaboratively debug programs synchronously and asynchronously. Over the past couple of years, a significant number of communities have benefited by interacting through the net using newsgroups and Webpages. To describe a bug, programmer needs to describe the code, the point in the execution where the symptom occurs, and the context. The article aims to make it easy for programmers to swap bug descriptions around the world. Therefore, system should be platform independent, run on relatively modest hardware, and should not require exchange of source code. Internet Software Visualization Laboratory (ISVL) is an approach to solving bug-description-sharing problem, which uses a client/server architecture to deliver visualizations any Java-enabled Web browser. Using a Java-enabled Web browser, programmers can connect to the ISVL client. Using the client, programmers can upload and run their programs on the server and receive back a visualization.
computers enables programmers to fashion their own universes, choosing their own sets of 'physical laws.' Although, may computer-based systems seem to have their physics well debugged. Some collaborative virtu...
详细信息
computers enables programmers to fashion their own universes, choosing their own sets of 'physical laws.' Although, may computer-based systems seem to have their physics well debugged. Some collaborative virtual environments allow their users to 'program' For example, LambdaMOO at Xerox PARC allows users to make new kinds of objects with new behaviors. In virtual Kansas, nearly anything can be reprogrammed, including the computations that display objects and the mechanisms underlying arithmetic. Indeed, Kansas is a multiuser programming environment for the Self language from which it is built. In Kansas, two plus two can equal five, at least the resulting inconsistency brings the entire system crashing to halt. In cases in which the attempt to restart Kansas fails, the watcher knows to create a new world -- Oz -- with a debugger on the broken Kansas process. Users find themselves suddenly thrown into Oz, where they can collaborate in repairing the problem and then resume and reenter Kansas.
The work reported in the article seeks to expand the single-user-logbook approach to investigate the phenomenology of debugging across a large population of users, aiming to understand and address the problems of prof...
详细信息
The work reported in the article seeks to expand the single-user-logbook approach to investigate the phenomenology of debugging across a large population of users, aiming to understand and address the problems of professional programmers working on very large programming tasks. The author conducted a survey of professional programmers, asking them to describe their most difficult bugs involving large pieces of software. The survey was conducted through email and conferencing/bulletin board facilities with worldwide access, including Usenet newsgroups, the BYTE Information Exchange, Compuserve, and Applelink. An analysis of the debugging anecdotes collected form worldwide email trawl revealed three primary dimensions of interest: why the bugs were difficult to find, how the bugs were found, and root causes of bugs. The investigation highlights a potential wealth of information available on Internet and indicates it may be possible to establish an online repository for perusal by those with an urgent need to solve complex debugging problems.
A good user interface brings the end user face-to-face with whatever is being manipulated and experienced. The article discusses about the experience of immediacy in a programming environment which draws the programme...
详细信息
A good user interface brings the end user face-to-face with whatever is being manipulated and experienced. The article discusses about the experience of immediacy in a programming environment which draws the programmer closer to the program. In such cases debugging is easier. The principle of immediacy can serve as a guide, keeping builders of programming environments on the path to productive environments. When programming environments convey the experience of immediacy, programmers perceive and manipulate the facets of the program and its unfolding computation with less conscious efforts and accelerate the debugging process. Authors describe how the principle of immediacy applies to debugging environments by describing ZStep 95, a program debugging environment based on the principle of immediacy. Three kinds of immediacy important for debugging, on which software designers should strive are explained in the article. These are: temporal immediacy, semantic immediacy, and spatial immediacy.
An organization like the Association for Computing Machinery, with a variety of publications, newsletters, interest groups, and conferences, provides an important forum for discussing the nature and changes of computi...
详细信息
An organization like the Association for Computing Machinery, with a variety of publications, newsletters, interest groups, and conferences, provides an important forum for discussing the nature and changes of computing profession. Such discussions should, of course, go on continuously, but there will be particular periods of rapid social and technological change in which they are more necessary. A number of articles in the journal 'Communications of the ACM' over the past few years suggest this is such a time. The purpose of this article is to contribute to the discussion from a Scandinavian perspective. The authors begin by presenting a framework for understanding their profession and for discussing possible changes. The framework offers competing conceptions in terms of professional focus, approach, and role. The authors then use the framework in an examination of the current discussion within the ACM. The cited articles, in spite of having different motivation and purpose, identify a need for professional changes in education, research and practice. But, the authors argue, the changes suggested are insufficient to meet the demands placed on their profession by the ongoing changes in technology and society. As a consequence, they propose a more radical position on the future of their profession, with technology in use as its foundation, and they outline a new curriculum for the education of computer professionals. INSETS: The Mechanistic and the Romantic Views.;The Professional Focus of Computing.;Professional Approaches.;Professional Roles.
Bugs happen because people create them when they can not remember the details needed to write correct programs. In this article, the author suggests the use of plentiful computer memory instead of wasting user's s...
详细信息
Bugs happen because people create them when they can not remember the details needed to write correct programs. In this article, the author suggests the use of plentiful computer memory instead of wasting user's scarce biological memory. programmers optimize inner loops of their source code because that is where the biggest performance gains are possible. The inner loop involves figuring out what to type and then typing it. It is required to create a programming environment that speeds both the figuring out and the typing. Getting correct all the details of source code demands lots of biological memory, frequently more than is available. But at any point in the typing of code, options are usually constrained by the legal constructs of the language, the functions and data available, and the context. Since the programmer's brain is already full of the details of the task and the algorithm, use of computer's brain is suggested. Emacs Menus is an adjunct to the Emacs text editor presenting the programmer with context-sensitive menus containing options that are least syntactically and typewise legal for the code under the mouse.
暂无评论