Engineering Activities In Software Development Lecture 10 Engineering Activities In Software Development
Agenda Methodologies
Methodology A Framework of tasks and steps to achieve our aims A standardized way of approaching the design of an information system A system of project management and control A checklist of task/actions
Why methodology? Many large systems fail Helps monitor and control progress and costs Ensures tasks not overlooked May be required for contractual reasons Not all systems development uses a methodology
The pre-methodology era Until the 1960s methodologies weren’t used Emphasis was placed on programming skills rather than user needs Systems usually over-ran both time and costs Little consultation with users and poor or no documentation
Formal life-cycle approaches Strict separation of System Development Life-Cycle (SDLC) stages Waterfall model
SDLC Feasibility study (initial investigation) Systems Analysis Systems Design Implementation Installation Maintenance
“Hard” methodologies 1960s and 70s Separation of logical and physical design Perceived need to ‘freeze’ specifications Emergence of ‘Structured Methods’ SSADM (Structured System Analysis and Design Methodology)
“Hard” methodologies Too rigid model Prevents iterative design High levels of systems failure Ignores social and human issues
“Soft” methodologies Prototyping & evolutionary approaches Recognized the social as well as the technical dimension of systems use Encourage greater user involvement Participative design recognizes workers’ goals as well as management's RAD (Rapid Application Development), DSDM (Dynamic System Development Model)
Agile methodologies Even more user involvement Test-driven development Frequent integration Pair development XP (eXtreme Programming)
The End