CHAPTER 4: KEY CONSTRUCTION DECISIONS By: Felegh Solomon ITEC 3860- 01 SPRING 2013 4.1- CHOICE OF PROGRAMMING LANGUAGE The language that the system will be implemented with should be one that you are familiar with. Programmers are more productive using a familiar language than an unfamiliar one. Language choice af fects productivity and code quality. LANGUAGES There are many dif ferent languages you can choose from such as: Ada: language based on Pascal, used primarily in military, space, and avionics systems. Assembly language: low level language, each statement corresponds to a single machine instruction. Regarded as the second generation language. Avoided by most programmers. C: Mid level language. Portable assembly language, because it makes extensive for use. C++: Object oriented language founded on C C#:General purpose, object oriented language. Cobol: English like programming language used primarily for business applications stands for Common Business Oriented Language. Fortran: first high-level computer language used mainly in scientific and engineering applications. LANGUAGES CONTINUED… Java: Object oriented, similar to C and C++ widespread use for programming web applications. Javascript: Interpreted scripting language. Used primarily for client side programming such as adding simple functions and online applications to web pages. Perl: (Practical Extraction and Report Language) String handling language based on C and several UNIX utilities. Often used for system administration, tasks, and web applications. PHP: Open source scripting language originally stood for “Personal Home Page”, but now stands for “Practical Extraction and Report Lang”. Python: Interpreted, interactive, object oriented language. Most commonly used for writing scripts and small web applications. SQL: (Structured Query Lang.) standard language for querying, updating, and managing relational databases declarative language Visual Basic: BASIC (Beginner’s All-purpose Symbolic Instruction Code) 4.2- PROGRAMMING CONVENTIONS Implementation must be consistent with the architecture that guides it and consistent internally such as the… Variable names Class names Routine names Formatting conventions Commenting conventions Without unified discipline, your creation will be sloppy variations. One key to successful programming is consistency so your brain can be free to focus on the variations that are really needed. 4.3- YOUR LOCATION ON THE TECHNOLOGY WAVE Because technology is always changing there will always be dif ferent programming practices depending on where you find yourself on the “technology cycle” or “wave”. 4.4- SELECTION OF MAJOR CONSTRUCTION PRACTICES When preparing for construction you must decide which of the many good practices you will emphasize. Some use pair programming and test-first development while others use solo development and formal inspections. Either combination can work well, it just depends on the specific circumstances of the project. 4.4 CONTINUED… Some questions to ask when deciding on major construction practices are…(just a few) 1. Have you defined how much design will be done up front and how much will be done at the keyboard, while the code is being written? 2. Have you defined coding conventions for names, comments, and layout? 3. Will programmers program in pairs, or individually, or some combination of the two? 4. Will programmers write test cases for their code before writing the code itself? 5. Will programmers review or inspect each other’s code? 6. Have you selected a revision control tool?