Presentation on theme: "SYSC System Analysis and Design"— Presentation transcript:
1 SYSC 3100 - System Analysis and Design Basic ConceptsSoftware lifecycles and Requirement Engineering
2 Questions How do you build things? How do you think software is built today?Are they the same?
3 Objectives Describe the software life-cycle Explain the development styles for a small selection of development models.WaterfallVIncremental.
4 Life cycleA structured set of activities required to develop a software systemSpecification;Design;Validation;Evolution.A software life cycle is an abstract representation of a development process. It presents a description of a process from some particular perspective.
5 Software Life Cycles A software life cycle has a number of: Distinct activities:“requirements”, “analysis”, “design”,“implementation”, “testing”, “operation”Products:requirements, analysis, design and testing documents,user manual, …Rules for completing a phase and transitioning to the next phase
6 Software Life Cycles Well-known models for a software life cycle: The Waterfall modelThe V modelIncremental software developmentThe Rational model (Rational Unified Process)
7 The waterfall model Requirements definition System and Software Design System’s services, constraints and goalsSystem and Software DesignSystem architecture, software system functionsImplementation and Unit TestingSet of programs or program unitsIntegration and System TestingUnits and programs are integrated and testedThe main drawback of the waterfall model is the difficulty of accommodating change after the process is underway.One phase has to be complete before moving onto the next phase.Operation and Maintenance
8 Waterfall Model Problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process.Few business systems have stable requirements.The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.
9 Unit and Integration Testing The V modelRequirementsAcceptance TestingSystem AnalysisSystem TestingUnit and Integration TestingSystem DesignA variant of the Waterfall modelImplementation
10 Incremental deliveryRather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality.User requirements are prioritised and the highest priority requirements are included in early increments.Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.
12 Incremental development advantages Customer value can be delivered with each increment so system functionality is available earlier.Early increments act as a prototype to help elicit requirements for later increments.Lower risk of overall project failure.The highest priority system services tend to receive the most testing.
13 (Rational) Unified Software Development Process A modern process model derived from the work on the UML and associated process.Inceptionis concerned with determining the scope and purpose of the projectestablishes the business case for the systemElaborationfocuses requirements capture and determining the structure/architecture of the systemdevelops an understanding of the problem domainConstruction: System design, programming and testingTransition: product installation and rollout
14 1 2 3 4 5 6 7 8 9 10 Size of square relative to time spent on workflow InceptionElaborationConstructionTransitionProject Phases12345678910Iterations within each phaseRequirementsAnalysisDesignImplementationTestWorkflows