Microsoft Corp. has probably tackled more PC software projects than any other company in the industry. Microsoft Corp.'s philosophy for product development has been to cultivate its roots as a highly flexible, ent...
详细信息
Microsoft Corp. has probably tackled more PC software projects than any other company in the industry. Microsoft Corp.'s philosophy for product development has been to cultivate its roots as a highly flexible, entrepreneurial company and not to adopt too many of the structured software-engineering practices commonly promoted by such organizations as the Software Engineering Institute and the International Standards Organization. Microsoft Corp. has tried to scale up a loosely structured small-team style of product development. The objective is to get many small parallel teams or individual programmers to work together as a single relatively large team in order to build large products relatively quickly while still allowing individual programmers and teams freedom to evolve their designs and operate nearly autonomously. This article summarizes how Microsoft Corp. uses various techniques and melds them into an overall approach that balances flexibility and structure in software product development. The authors label Microsoft Corp.'s style of product development, the synch-and-stabilize approach.
Inheritance is commonly viewed as a problem in which semantic relations mix with design concepts and the particular mechanisms of programming languages. But inheritance is more than a source of ambiguity and misunders...
详细信息
Inheritance is commonly viewed as a problem in which semantic relations mix with design concepts and the particular mechanisms of programming languages. But inheritance is more than a source of ambiguity and misunderstanding. We see another serious issue: Correct behavior of a system of objects is commonly endangered by the implementation of inheritance. Thus, the system of objects surrenders to the risk of synchronization faults that may generate nonsense data and may result in information losses, deadlocks, and so forth. programmers says the term generalization refers to the relationship among class and the term inheritance refers to the mechanism of obtaining attributes and operations using the generalization structure. Generalization provides the means for refining a superclass into one or more subclasses. Superclass contains features common to all classes; the subclasses contain features specific to each class. Inheritance may occur at an arbitrary number of levels where each level represents one aspect of an object. An object accumulates features from each level of a generalization hierarchy.
This article focuses on the computer programming language Cobol. Today roughly two-thirds of programmers use Cobol. The second-place language (variously said to be C, Fortran, or RPG) is (a) very far behind, and (b) h...
详细信息
This article focuses on the computer programming language Cobol. Today roughly two-thirds of programmers use Cobol. The second-place language (variously said to be C, Fortran, or RPG) is (a) very far behind, and (b) has a decade-dependent identity. Other programming languages come and go;. none has survived and been as successful as Cobol. However Cobol is the most criticized language in software development and maintenance. The usual reason given for this contradiction is that software practitioners are an incredibly stubborn lot, stuck in place and refusing to change. In this view, it is the intransigence of those in the trenches that has man- aged to keep poor old Cobol alive for its over 40 year life span, in spite of the wisdom and knowledge of everyone else in the field. There are several reasons that make Cobol more usable. Cobol has the capability for heterogeneous, 'record-structure' data. Secondly it has the capability for decimal arithmetic and convenient report generation.
In the September 1997 'Inside Risks,' David Parnas made a compelling case for defining the core body of software knowledge, evaluating the curricula, and licensing software practitioners the same way engineers...
详细信息
In the September 1997 'Inside Risks,' David Parnas made a compelling case for defining the core body of software knowledge, evaluating the curricula, and licensing software practitioners the same way engineers are licensed. A desirable obligation he mentioned beyond basic competence is the ability to pass examinations relating to legal and ethical practice. Most professional organizations have well-documented codes of ethics. However, Parnas observes that whereas professional engineers who do not adhere to their oath can lose their licenses, software professionals have little to lose and may not have heard about such oaths. Unfortunately, excuses such as short-term profits, preservation of corporate image, organizational and peer pressures, secrecy, and perhaps setting low standards in hopes of limiting liability suits for noncompliance are sometimes used as justifications for irresponsible behavior. On the other hand, real potential risks to individuals tend to discourage responsible behavior by people who might otherwise consider becoming whistle-blowers. The ethically inspired act of whistle-blowing might typically involve various aspects, such as being aware of and documenting a serious problem, informing one's superiors, having findings repeatedly rejected and systematically covered up, and being threatened with or subjected to retaliation.
Though there have been advances in end-user programming, complex applicatons still need professional developers. This inspired look at the future of creating complex software explores the shift from programming enviro...
详细信息
Though there have been advances in end-user programming, complex applicatons still need professional developers. This inspired look at the future of creating complex software explores the shift from programming environments to design environments, discussing environemtns that help developers satisfy end-users' cognitive needs and help deal with contextual issues such as the aesthetic, practical, and social properties of the application and the users. A strong case is made that design environments will need to provide robust support for communication between developers and end users.
An interesting usability study of a prototype development environment for the Dylan programming language is presented here. This study's purpose is to determine just how close the prototype is to developers. New a...
详细信息
An interesting usability study of a prototype development environment for the Dylan programming language is presented here. This study's purpose is to determine just how close the prototype is to developers. New approaches to source code organization and to the relationship between the environment and the application being developed are introduced. An assessment of how effectively the prototype conveys these innovations to Dylan developers is also given, followed by some proposed improvements.
One can perform a heuristic evaluation of a hypermedia application effectively by coupling a systematic analysis of the application based on a design model with general usability criteria, independent of the specific ...
详细信息
One can perform a heuristic evaluation of a hypermedia application effectively by coupling a systematic analysis of the application based on a design model with general usability criteria, independent of the specific application area, user profile(s), and user task(s). We call our method design-oriented evaluation (as opposed to the user-oriented evaluation commonly applied in usability testing), since if evaluates the internal strength of the design underlying the hypermedia application.
This article presents a re-engineering case study of the product requirements definition process at Digital Equipment Corporation. Based on cross-functional teams working in direct partnership with customers, the re-e...
详细信息
This article presents a re-engineering case study of the product requirements definition process at Digital Equipment Corporation. Based on cross-functional teams working in direct partnership with customers, the re-engineered process was designed to ensure customer satisfaction and business readiness before a line of code is written, an electronic circuit designed, or a service defined.
Not long ago, programmers controlled computers by arranging wires on a control panel built into the side of a large floor-standing machine. Today palm-sized pointing devices are used to drag and drop visual images on ...
详细信息
Not long ago, programmers controlled computers by arranging wires on a control panel built into the side of a large floor-standing machine. Today palm-sized pointing devices are used to drag and drop visual images on machines smaller than a notebook. Dramatic differences like these make it easy to forget that software development still revolves around the needs of the computer at the expense of the needs of developers and end users.
暂无评论