<- previous    index    next ->

Lecture 14, review

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 ->

Other links

Go to top