CSCE 431 Lecture 3

From Notes
Jump to navigation Jump to search

« previous | Tuesday, January 21, 2014 | next »


New programming tools have made software development easier.

Software Development Processes

No best project, but any process helps:

  • writing stuff down
  • good practices (automated testing, automated builds, version control, release model, documentation generation)

C. M. Maturity Levels

  1. Initial; ad-hoc, chaotic
  2. Repeatable; process is documented
  3. Defined; institutionalized (sanctioned by management)
  4. Managed; quantitative metrics give feedback
  5. Optimizing; process allows feedback to change process itself.


Requirements

Hardest part of software development: figuring out what you (or the customer) want(s).

Most problems in implementation are due to bad requirements!

Professional obligation to build the best solution to the customer's problem, even if they don't yet understand how to ask for it. Bernstein & Yuhas

Goals of Requirements phase:

  1. understand problem that system should solve
  2. prompt questions about problem and system
  3. basis for answering questions about specific properties
  4. decide what system should do or should not do
  5. determine whether system will satisfy needs of stakeholders (clients, customers, users, domain experts, legal experts, developers)
  6. provide basis for development of system
  7. provide basis for validation and verification (esp. testing) of system


Components

  • Domain Properties: Assumptions that are true in the domain
  • Functional Requirements
  • Non-functional Requirements
    • reliability
    • security
    • accuracy of results
    • time and space performance
    • portability


Assumptions may or may not be true in the future


Quality Goals

Correct
what customer wants
Complete
Consistent
Unambiguous
Traceable
where did this requirement come from?
Modifiable
but contained/modular
Verifiable
when is requirement satisfied?
Prioritized


Example

requirement
The database shall only be accessible to authorized personnel
domain properties
Authorized personnel have passwords
Passwords are never shared with non-authorized personnel
specification
Access to the database shall only be granted after the user enters an authorized password.

Seven Sins of the Specifier

  1. Noise
  2. Silence
  3. Over-specification
  4. Contradiction
  5. Ambiguity
  6. Forward reference
  7. Wishful thinking