200 likes | 217 Views
Explore waterfall and iterative models, prototyping, incremental development, and spiral lifecycle in software engineering. Learn advantages, challenges, and tools like Computer Aided Software Engineering (CASE).
E N D
CSC340: Tutorial 2Software Lifecycles and Prototyping TA: Y. An Date: 9:00-10:00am, Fri. Oct. 10, 2003 Location: BA1130 CSC340
In This Tutorial: • General perspective • Waterfall life cycle • Waterfall life cycle with iteration • Prototyping • Incremental development: spiral model life cycle CSC340
A General Perspective Building computerized information Systems can be viewed as a form of problem Solving. CSC340
The Waterfall Life Cycle with Iteration Iteration added to solve some of the problems CSC340
Waterfall Life Cycle Deliverables • System Engineering: • High level architectural specification. • Requirements Analysis: • requirements specification, functional specification, acceptance test specification. • Design: • software architecture specification, system test specification, design specification, sub-system test specification, unit test specification. • Construction: • program code. • Testing: • unit test report, sub-system rest report, system test report, acceptance test report, completed system • Installation: • installed system. • Maintenance: • change requests, change request report. CSC340
Strengths of TLC • Tasks in phases may be assigned to specialized teams • Project progress evaluated at the end of each phase • Manage projects with high levels of risks • Next: Prototyping CSC340
Prototyping • Many approaches to systems development incorporate some iteration. • The waterfall model aims to deliver a final working system as the finished product. • Users find it difficult to imagine how their requirements will be translated into a working system – different impl. from same requirements. • Prototyping overcomes many of the potential misunderstandings and ambiguities. CSC340
Prototyping (con’t) • A prototype is a system or a partially complete system that is built quickly to explore some aspect of the system requirements. • A prototype typically lack full functionality. • A prototype is developed using rapid development tools. CSC340
Prototyping (con’t) • Various objectives: • To investigate user requirements. • Human-computer interaction. • Most suitable form of user interface. • To determine the suitability of a platform. • To determine the efficacy of a particular language, a DBMS, or a communication infrastructure. CSC340
Main Stages CSC340
Prototyping - advantages • It can help identify any misunderstandings between developers and client by early demonstration of system functionality. • It can help identify missed client requirements. • It can help identify difficulties in interface. • It can help test the feasibility and usefulness of the system, even though, it is incomplete. CSC340
Prototyping—Problems • The client may perceive the prototype as part of the final system • The prototype may divert attention from functional to solely interface issues • Prototyping requires significant user involvement • Managing the prototyping life cycle requires careful decision making CSC340
Incremental Development • Several suggestions on how to overcome the problems with the Traditional Life Cycle (TLC) model. • Incremental development suggestion: • Successful large systems start out as successful small systems that grow incrementally. • Each increment provides feedback to the development team and informs the development of subsequent increments. CSC340
Spiral Life Cycle Model CSC340
The Spiral Life Cycle Model CSC340
Unified Software Development Process • Captures many elements of best practice • Main phases • Inception is concerned with determining the scope and purpose of the project • Elaboration focuses requirements capture and determining the structure of the system • Construction's main aim is to build the software system • Transition deals with product installation and rollout CSC340
Project Phases Workflows Requirements Analysis Design Implementation Test Inception 1 2 3 Size of square relative to time spent on workflow Elaboration 4 5 Construction 6 7 8 Transition 9 10 Iterations within each phase CSC340
User Involvement • Users can be involved in various ways • As part of the development team (DSDM) • Via a consultative approach • In fact gathering CSC340
Computer Aided Software Engineering • CASE tools typically provide a range of features including • checks for syntactic correctness • repository support • checks for consistency and completeness • navigation to linked diagrams • layering • requirements tracing • report generation • system simulation • performance analysis • code generation CSC340