Software Development Stephenson College
Classic Life Cycle
Terms of Reference Background to purpose of software Outline of need for new software Summary of major constraints Feature List Feasibility Possible future Development Focus on Why and What (in outline)
Requirements Analysis(1) All details specified in a way understandable by typical users All ambiguities resolved No implicit assumptions Specified in the language of the problem domain Each requirements should be testable GUI can be prototyped
Requirements Analysis(2) System Outputs Printed Reports Display screens Web Pages Graphics and animations Sounds, Music, Vocals Files
Requirements Analysis(3) System Inputs Forms & Dialogues Keystrokes & Mouse clicks Web Pages Joysticks, tablets, cameras, etc Voice and instruments Files
Requirements Analysis(4) System Functions Use Cases Algorithms e.g. Sorting and searching Real time control Arithmetic, statistics and calculations Analysis and synthesis Artificial intelligence, decision making
System Design (1) Design ViewImplementation View Process View Components Classes, interfaces, collaborations Active classes Deployment View Nodes Use Case View Use cases
Design Models Use Case Diagrams Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams Collaboration Diagrams State Diagrams State Diagrams Component Diagrams Component Diagrams Component Diagrams Deployment Diagrams State Diagrams State Diagrams Object Diagrams Scenario Diagrams Scenario Diagrams Statechart Diagrams Use Case Diagrams Use Case Diagrams Sequence Diagrams State Diagrams State Diagrams Class Diagrams Activity Diagrams Models
System Design (2) Use Case Diagram User Functionality of the system Actors in the system Use cases deliver something of value to actors Use cases are the heart of the modelling process
System Design (3) Use Case Specifications Summary of function Normal course of events Extensions and alternatives Exceptions Pre conditions & Post conditions Triggers and assumptions Business rules
System Design (4) Use Case Diagrams lead to State Diagrams Activity Diagrams Class Diagrams Sequence Diagrams
System Design (5) Class Diagrams lead to System Architecture State Diagrams Activity Diagrams ER Diagrams Sequence & Collaboration Diagrams Component Diagrams Deployment Diagrams
Implementation Class Diagrams generate Delphi, VB, C++, Java XML, SQL, Oracle, Access Tables Class Patterns enhance reusability GUI from Use Cases, State & Activity diagrams Testing Framework
Test Plan & Testing Each user requirement tested Software works for all normal cases Software handles all expected exceptions Software is “usable” Testing is only part of Quality Management
Iteration & Evolution Classic life cycle problems Too long between establishing user requirements and delivering working software Can not adapt to rapidly changing circumstances Increased risk of mistakes made in early stages not spotted until much later
Software Quality Management Quality plans should apply to all stages Quality improvement should be an ongoing process Quality Management should be an integral part of all processes Quality should be “externally” assessed