CSCE 431 Lecture 3
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
- Initial; ad-hoc, chaotic
- Repeatable; process is documented
- Defined; institutionalized (sanctioned by management)
- Managed; quantitative metrics give feedback
- 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:
- understand problem that system should solve
- prompt questions about problem and system
- basis for answering questions about specific properties
- decide what system should do or should not do
- determine whether system will satisfy needs of stakeholders (clients, customers, users, domain experts, legal experts, developers)
- provide basis for development of system
- 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
- Noise
- Silence
- Over-specification
- Contradiction
- Ambiguity
- Forward reference
- Wishful thinking