Professional Documents
Culture Documents
- Initiate the design process with program designers rather than analysts or programmers.
- Design, define, and allocate data processing modes, even if there's a risk of being wrong.
- Allocate processing functions, design the database, allocate execution time, define interfaces and
processing modes with the operating system.
- Describe input and output processing and define preliminary operating procedures.
- This document should provide a basic understanding of the system for every worker on the
project.
- Each designer needs to communicate with others, including interfacing designers, managers, and
possibly customers.
3. Do it twice.
- The first version allows the team to identify and address trouble spots in the design quickly.
- Model alternatives, forget straightforward aspects not worth studying, and arrive at an error-free
program.
- The second version is the one delivered to the customer for operational deployment.
4. Plan, Control, and Monitor Testing:
- Prior recommendations aim to uncover and solve problems before entering the test phase.
- Use visual inspections to spot obvious errors, test every logic path, and perform the final checkout
on the target computer.
- Three critical points include a "preliminary software review" after the preliminary program design
step, a sequence of "critical software design reviews" during program design, and a "final software
acceptance review."
Software Economics
Software costs are influenced by five key factors:
Cost-effort relationship shows diseconomies of scale due to the process exponent being greater than
1.0, meaning larger projects cost disproportionately more. Over time, technology advancements in
tools, components, and processes have improved economies of scale, especially in large, long-lived
projects or businesses with multiple similar projects
Debates within the industry centre around the choice of cost estimation models, the measurement
of software size using metrics like source lines of code or function points, and the criteria for a good
estimate.
Several popular models are mentioned, with COCOMO being noted for its openness and
documentation.
The real-world use of cost models tends to be bottom-up, with project managers defining target
costs and adjusting parameters to justify them.
A good software cost estimate is described as one that is supported by various project teams,
accepted by stakeholders, based on a well-defined model and relevant project experience, and
detailed enough to assess key risk areas objectively.
The ideal estimate is suggested to derive from a mature cost model with an experience base
reflecting multiple similar projects executed by the same team with mature processes and tools.