background preloader

Object-oriented programming

Object-oriented programming
Overview[edit] Rather than structure programs as code and data, an object-oriented system integrates the two using the concept of an "object". An object has state (data) and behavior (code). Objects correspond to things found in the real world. The goals of object-oriented programming are: Increased understanding.Ease of maintenance.Ease of evolution. The overall understanding of the system is increased because the semantic gap—the distance between the language spoken by developers and that spoken by users—is lessened. Object-orientation takes this to the next step. In addition to providing ease of maintenance, encapsulation and information hiding provide ease of evolution as well. An object-oriented program usually contains different types of objects, each corresponding to a real-world object or concept such as a bank account, a hockey player, or a bulldozer. History[edit] Fundamental features and concepts [edit] A survey by Deborah J. Benjamin C.

Software prototyping Software prototyping is the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing. A prototype typically simulates only a few aspects of, and may be completely different from, the final product. Prototyping has several benefits: The software designer and implementer can get valuable feedback from the users early in the project. Overview[edit] The original purpose of a prototype is to allow users of the software to evaluate developers' proposals for the design of the eventual product by actually trying them out, rather than having to interpret and evaluate the design based on descriptions. The practice of prototyping is one of the points Frederick P. Outline of the prototyping process[edit] Dimensions of prototypes[edit] Horizontal Prototype[edit]

Human–computer interaction A woman teaching girls in Afghanistan how to use computers. Human use of computers is a major focus of the field of HCI. Because human–computer interaction studies a human and a machine in conjunction, it draws from supporting knowledge on both the machine and the human side. On the machine side, techniques in computer graphics, operating systems, programming languages, and development environments are relevant. On the human side, communication theory, graphic and industrial design disciplines, linguistics, social sciences, cognitive psychology, social psychology, and human factors such as computer user satisfaction are relevant. Engineering and design methods are also relevant. Poorly designed human-machine interfaces can lead to many unexpected problems. HCI Goals[edit] HCI (Human Computer Interaction) aims to improve the interactions between users and computers by making computers more usable and receptive to users' needs. Differences with related fields[edit] Design[edit] 1. 2. 3. 4.

Team TIBET(tm) Information technology Information technology (IT) is the application of computers and telecommunications equipment to store, retrieve, transmit and manipulate data,[1] often in the context of a business or other enterprise.[2] The term is commonly used as a synonym for computers and computer networks, but it also encompasses other information distribution technologies such as television and telephones. Several industries are associated with information technology, including computer hardware, software, electronics, semiconductors, internet, telecom equipment, e-commerce and computer services.[3][a] Humans have been storing, retrieving, manipulating and communicating information since the Sumerians in Mesopotamia developed writing in about 3000 BC,[5] but the term information technology in its modern sense first appeared in a 1958 article published in the Harvard Business Review; authors Harold J. Leavitt and Thomas L. History of computer technology[edit] Data storage[edit] Databases[edit] Data retrieval[edit]

IBM Rational Unified Process The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003.[1] RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process. History[edit] Combining the experience base of companies led to the articulation of six best practices for modern software engineering: Develop iteratively, with risk as the primary iteration driver[2]Manage requirementsEmploy a component-based architectureModel software visuallyContinuously verify qualityControl changes a tailorable process that guided developmenttools that automated the application of that processservices that accelerated adoption of both the process and the tools. RUP building blocks[edit]

Acid3 Acid3 test is a web test page from the Web Standards Project that checks a web browser's compliance with elements of various web standards, particularly the Document Object Model (DOM) and JavaScript. Acid3 was in development from April 2007,[1] and released on 3 March 2008.[2] The main developer was Ian Hickson, a Google employee who also wrote the Acid2 test. Acid2 focused primarily on Cascading Style Sheets (CSS), but this third Acid test also focuses on technologies used on modern, highly interactive websites characteristic of Web 2.0, such as ECMAScript and DOM Level 2. A few subtests also concern Scalable Vector Graphics (SVG), Extensible Markup Language (XML), and data URIs. Controversially,[citation needed] it includes several elements from the CSS2 recommendation that were later removed in CSS2.1,[citation needed] but reintroduced in World Wide Web Consortium (W3C) CSS3 working drafts that have not made it to candidate recommendations yet. The test[edit] Detailed results[edit]

Free Online Surveys, Customer Feedback & Survey Software Tool | KISSinsights Google Native Client Portable Native Client (PNaCl) is an architecture-independent version. PNaCl apps are compiled ahead-of-time. PNaCl is recommended over NaCl for most use cases.[6] The general concept of NaCl (running native code in web browser) has been implemented before in ActiveX, which, while still in use, has full access to the system (disk, memory, user-interface, registry, etc.). On October 12, 2016, a comment on the Chromium issue tracker indicated that Google's Pepper and Native Client teams had been destaffed.[7] On May 30, 2017, Google announced deprecation of PNaCl in favor of WebAssembly.[8] Although initially Google planned to remove PNaCl in first quarter of 2018,[8] and later in the second quarter of 2019,[9] it is currently planned for removal in June 2022 (together with Chrome Apps).[10] Overview[edit] An ARM implementation was released in March 2010.[20] x86-64, IA-32, and MIPS are also supported. Native Client is licensed under a BSD-style license. Pepper[edit] PPAPI[edit] See also[edit]

Manifesto for Agile Software Development 5 Tips For Using LinkedIn's Mobile Site LinkedIn's mobile site is a powerful way to get in touch with its 135 million users. February 13, 2012 Have you checked out LinkedIn's mobile site yet? No, not the mobile app–the in-browser mobile site. LinkedIn released the updated mobile site (along with iPhone and Android apps) last summer. “We are seeing mobile grow at a very rapid pace, as high as 400 percent a year,” Joff Redfern, mobile product director at LinkedIn told The New York Times in August of last year. Want to know more? 1. Did you just read an interesting article on your mobile device and you think that it's something your LinkedIn contacts should see right away? You can share a text update or drop in a link to content you'd like your contacts to see. 2. When you open LinkedIn's mobile site, you're greeted with a scrollable list of your connections' updates. That smart design saves precious mobile bandwidth (and money, for those not on an unlimited data plan). 3.

The Backlog Caveats I continually abuse 2 terms below, Backlog and Sprint. Sprints don’t have to be 2 weeks, but for the sake of simplicity, I assume they are. Also, Backlogs contain user stories, not requirements or features. However, I assume for the sake of this article your features are already formed into user stories. Review: What is a Backlog? First, a review. While a requirements document may say “The application needs to allow users to register and login”, the Product Backlog would probably have that as 4 line items: Upon entering [product URL], and the user isn’t logged in, they’ll be presented with a login screen. There are a lot more user stories you can write, or even refining the ones above. These units of work, called user stories, are stored in the Backlog. Review: Sprint Backlog A Sprint Backlog is where you put features/user stories that team needs to complete each Sprint. What Are We Building? There were 3 huge problems with that. Scope Creep Unless you use a Backlog in Scrum.

Technical Debt This article will discuss what Technical Debt is from a Flash/Flex developer perspective, how it negatively affects my Scrum projects, and what are some of the prescribed ways to prevent it. Nothing ground breaking here folks, just corroboration that TD IS a major problem, and not even Scrum is immune. What is Technical Debt? Martin Fowler has a good summary about what Technical Debt is. You have a piece of functionality that you need to add to your system. Git-r-done vs. doing it right. Another quote which describes the metaphor: …doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. He goes on to mention that unlike money, you cannot effectively measure technical debt. Signs of Technical Debt There are various signs of Technical Debt. System fragility examples include when you move a login button, the entire login form doesn’t work. Another example is the statement “the application doesn’t seem to be working”. Pullback & Reassess

Agile Chronicles This entry is about what processes I came from, my definition of the Agile/Scrum process, and how stress has been spread out throughout the project vs. at the end. Skip Intro Preface Five weeks ago, I started a project with Enablus, a firm that works with mainly startups to build products. I loathe service work, and love product work, so am really glad to be working with them. Even better, they are only 30 minutes from my house. “Do you utilize Continuous Integration?” We’d constantly go through this. In all instances, we’d discuss the details of my responses, and he seemed to get the details he needed, feel better, and move on. I’m not sure Darrell believed me that everywhere I’ve worked, whether full-time or consulting/contracting, did not use a standardize process such as Agile. Introduction I’ve never been interested software development processes. As I’ve found throughout my career, there have been more pressing issues than “process”, such as: It also depends on the type of work. Pro’s

Expert Testers