<- previous index next ->
The mid term exam covers: Lectures 1 through 13 Homework 1, 2, 3 30 Multiple choice questions Software development process has a number of models, processes: (Each have many variations, small summary below:) Waterfall Model Requirements, Design, Implementation, Verification, Maintenance Scheduled and budgeted development Risk reduction by rapid prototyping Spiral Model Define artifacts concurrently, not a sequence of waterfalls Each cycle consider stakeholders, evaluate alternatives, resolve risks, obtain approval. Risk determines the level of effort, cost Risk determines the degree of detail, labor effort Milestones life cycle objectives, architecture, operation Focus on long term system Rational Unified Process Inception phase plan cost, budgets, schedule, requirements Elaboration phase use-case, architecture, business, prototypes Construction phase build with possible iterations Transition phase into production for end users, training Agile Software Development Value individuals and interactions, working software, customer collaboration, respond to change Self organizing teams, customer satisfaction, welcome changing requirements, sustainable development Short iterations with testing There are a huge number of programming languages that may be used. From the early days of Fortran, Lisp, Cobol, Algol (all still in use) came Basic, C, Pascal, Ada, Haskell, Python, Ruby, Java and many others. Using a language new to the development team members will increase risk. The choice of operating system may depend on the platform: Desktops have over 95% Microsoft Windows Super Computers have over 95% Linux Cell Phones have over 75% Android Tablets have over 45% iOS Servers have over 40% Linux Most browsers are W3C compliant There are many metrics that can be applied to software: McCabe Cyclomatic Complexity measures branching Halstead counts unique and total operators and operands Code size can be counted as lines, KSLOC, or non blank, non comment lines NBNC. There are many more, and the practical use is to automate the measurements and keep records of many projects to predict cost and schedule. Style Guides If source code is delivered to a customer, then having a style guide for all software in the project is beneficial and indicates a professional development. Having every software engineer do initial coding to a style guide increases cost and have little effect on quality. Automating the style guide and processing all software prior to delivery is most economical. Software version control is important for team development There are many version control systems including CVS, svn, Git, etc. Reduce risk by having a version control system administrator with prior experience on a specific system. Most systems are easy to learn by the users. Most software development processes have a required set of documents Various documents may have paragraphs of text, tables, figures, and defined forms such as use cases, procedural diagrams, data definitions, architecture diagrams, unified modeling language, screen shots of user interface, and more. The Software Quality Assurance organization monitors the software development Collecting and reviewing documents SRS, SDD, UI, CIR, TR, AM. Specifying and checking style guide, metrics, defect reports. Checking quality of tests at unit, integration, system and acceptance levels Providing status reports to management. Software process certification can be from many organizations CMU SEI CMMI certifies at initial, managed, defined, quantitatively managed and optimization levels ISO 9000 has a larger set of certifications Professional behavior Protect your organizations information, company proprietary, company confidential, for internal use only, and similar markings Software may be copyrighted and/or patented. Both expose the content to other organizations, that may be searching various publicly available data Open source software may be used by commercial software developers as long as restrictions, "copyleft", is observed. Read the instructions first, especially on an exam: Print your name Multiple choice, circle the letter that is your answer. Choose closest if not exact. Answer all questions with exactly one choice. (zero, two or more is automatically wrong) Answer questions in the context of this course. Comments are ignored. Work very carefully!
<- previous index next ->