What are the final products (deliverables) of software development?
Code and Documentation (installation
What are examples of development artifacts?
Documents (requirements, analysis, design, testing) and Diagrams/models
What is the definition of KLOC?
1000 Lines of Code
What is the typical industry standard for Defects per KLOC?
1-50 defects
What are the two steps in the ““Code and fix”” process?
What are the disadvantages of the ““Code and fix”” approach?
Code becomes poorly structured (spaghetti code), fails to meet user needs, is difficult to maintain, and often runs out of schedule/budget
What lessons were learnt from the failure of ““Code and fix””?
Design is needed before coding, requirement specifications are needed before design, and proper management (planning/monitoring) is required
What triggered the ““Software Crisis”” described in the slides?
Powerful hardware enabled larger/complex systems, but informal approaches (like code and fix) failed to manage them, leading to late delivery and unreliability
What four goals for software were established at the 1968 NATO workshop?
Software must: satisfy customers, be delivered on time, be of high quality, and be economical
How is Software Engineering defined in the slides?
A collection of management processes, software tools, design methods, and practices for software development
What is Requirement Specification?
A high-level abstract statement describing the services and constraints of the software
What is a Software Process model?
A structure that organizes a set of activities and results to produce a software product
What characterizes the Waterfall model?
It is a linear sequential model that emphasizes completing one phase of development completely before proceeding to the next
What are the main problems with the Waterfall model?
Complexity overload, delayed feedback, frozen requirements, increasing cost of change, and delayed risk mitigation
What is the Incremental model?
A process where an overall architecture is developed first, followed by detailed increments which are developed in their own lifecycles (design, code, test, release)
What are the advantages of the Incremental model?
Increments are easier to manage, it is more adaptable to changing requirements, provides early user functionality/feedback, and increases customer satisfaction
What are the requirements for using the Incremental model?
Clear interfaces between components and well-known/understood user requirements
What is the Evolutionary model?
A model based on sequential incremental development that does not require an initial architectural design; the first release serves as the architectural prototype
What is a key advantage of the Evolutionary model over the Incremental model?
It works even when requirements are not yet decided or known, allowing for the discovery of requirements
What are the disadvantages of the Evolutionary model?
Difficult project planning due to uncertainty, the initial prototype may be suboptimal, and it can be criticized as being similar to “code and fix”
What are the three generic phases of the Waterfall model?
Definition (What?), Development (How?), and Support (Change!)
What activities are included in the ““Definition Phase”” of the Waterfall model?
System engineering (domain analysis), Project planning, and Requirements analysis
What defines a Software Process Model?
It determines the order of stages (phases) and the transition criteria (entrance/completion) for moving between them
What is Rapid Application Development (RAD)?
A model based on concurrent development where separate teams work on decomposed products with short cycles (30-90 days)