cognativemodel - A Cognitive Model of Design Pattern...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
A Cognitive Model of Design Pattern Selection Arturo Hinojosa Submitted To: Prof. Joshua Brett Tenenbaum Department of Brain and Cognitive Sciences Massachusetts Institute of Technology
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Introduction: The Software Engineering Process Design and implementation are the two main phases of software engineering. The decisions made during each phase are equally important to creating a viable system. Reckless execution of the engineering process can have a dramatic impact on the efficiency and quality of the final product. It is imperative for success that engineers consider all aspects of the challenge set before them and then craft a solution capable of handling any possible contingency. The solution must not only be able to expect the unexpected, but do so in a timely manner and in a fashion useful to the final user of the system. A brilliant design that takes an hour to compute a solution is of little use to a user who needs the information in minutes. Carefully fashioned and well defined designs are the foundation of good engineering, but even the most comprehensive and verbose design needs an equally appropriate implementation to be a successful solution. While a creative mind capable of abstract thought is the key to good and innovative designs, deciding on an implementation is a much more calculating process. The implementation must abide by the decisions made in the design, and must also balance the needs of the users with the operation of the system. In spite of its design dependent nature, implementation can also be a very open ended problem with many possible solutions. Software engineers are usually only given a few diagrams and a very superficial outline of the system behavior. The system designer establishes the criteria for the operation of the system, but it is up to the programmer to select how to realize the design. The programmer must evaluate the desired system behavior and choose an implementation that not only meets the needs of the design, but does so efficiently given the requirements of the user and the established operational parameters. It is often the case that there is no single deterministic solution for the challenge. The same solution may have several different implementations, each with its own benefits and consequences. Some implementations are more appropriate under certain contexts, and knowing how to choose the best solution often takes years of experience and a heavy education in algorithm design, discrete mathematics, and general software engineering principles. The goal of this project is to develop a cognitive model of the process software engineers employ to select a specific implementation for a system design. Using inverse entailment and statistical data about real world implementation decisions, the aim of this research is to infer a set of general criteria that guide the engineer to the best possible implementation. Background: The Gang of Four and Contemporary Research
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 09/17/2009 for the course IT it771 taught by Professor Jenisha during the Fall '09 term at University of Advancing Technology.

Page1 / 44

cognativemodel - A Cognitive Model of Design Pattern...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online