Home|Contents|Next|Chat


CSC 715 Answers 1 - L1 Introduction + L2 Process models

SE-L1Q1 Define software engineering

An engineering discipline concerned with all aspects of software production (specification to maintenance), not just coding. Differs from CS (theory, algorithms, fundamentals) and personal programming (one person, little documentation/quality/long-term maintenance). SE builds large systems in teams with process, quality and professional responsibility.

SE-L1Q2 Four essential attributes of good software

  1. Maintainability - can evolve with changing needs.
  2. Dependability & security - reliable, safe, secure.
  3. Efficiency - does not waste resources.
  4. Acceptability - understandable, usable, compatible.

SE-L1Q3 Generic vs bespoke products

Generic: built for the open market, developer controls the specification (e.g. Office). Bespoke: built for one customer who owns the specification. Implication: generic - developer sets features/priorities; bespoke - the customer has more say and drives change.

SE-L1Q4 Four areas of ethical responsibility

  1. Confidentiality - e.g. a former client asks about a competitor's system.
  2. Competence - e.g. accepting work in a technology you barely know.
  3. Intellectual property rights - e.g. a colleague copies code without permission.
  4. Computer misuse - e.g. a friend asks you to crack a password.

SE-L1Q5 Three 21st-century challenges

Heterogeneity (many platforms, legacy systems); business and social change (fast delivery and rapid change); security and trust (protect against attacks, keep information secure).

SE-L2Q1 Waterfall vs incremental vs reuse

Waterfall: sequential phases; good visibility, inflexible; use when requirements are stable. Incremental: interleaved spec/dev/validation, delivered in versions; better feedback and lower cost of change; use where requirements change. Reuse-oriented: integrate existing components; lower cost/risk; use when good components exist (requirements compromises inevitable).

SE-L2Q2 Four fundamental process activities

  1. Specification - define functionality and constraints.
  2. Design and implementation - build the software.
  3. Validation - check it does what the customer wants.
  4. Evolution - keep changing it to meet new needs.

SE-L2Q3 Prototyping

An early version used to try ideas and discover requirements. Benefits: early refinement, lower risk, designer exploration. Problems: users may think it is the final system; wasted effort if thrown away; can skip non-functional analysis.

SE-L2Q4 RUP phases

Inception (business case, viability); Elaboration (understand problem, architecture, plan); Construction (design, implement, test); Transition (deploy, fix, document).

SE-L2Q5 Why change is inevitable; two strategies

Business, needs, technology and legislation keep changing. Strategies: (1) change avoidance (anticipate via prototyping), (2) change tolerance (design for cheap change - incremental development and delivery).


Home|Contents|Next|Top|Chat