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