Download presentation
Presentation is loading. Please wait.
Published byImogene Stewart Modified over 9 years ago
1
Software Development Life Cycles (SDLC) BY Touseef Tahir
2
SDLC-Software development life cycle Process Project Software engineering System engineering
20
Zero Assignment 1 Write a report on Extreme programming, formal methods, agile software development life cycles. Deadline : 12-09-2011 Email: touseeftahir@ciitlahore.edu.pktouseeftahir@ciitlahore.edu.pk Email subject:?
35
The spiral model
38
Risk Management A process that ◦Identifies a risk of business loss ◦Assesses the risk’s potential impact ◦Determines how to handle the risk Protects physical assets from damage Protects nonphysical assets from software, network-related risks 38
41
Rapid application development Use Prototypes ◦Evolutionary prototypes ◦Throw-away prototypes Phases ◦Requirements planning ◦RAD design workshop ◦Implementation Why to use RAD ◦Quick development of software
45
The Rational Unified Process RUP is a method of managing OO Software Development It can be viewed as a Software Development Framework which is extensible and features: ◦Iterative Development ◦Requirements Management ◦Component-Based Architectural Vision ◦Visual Modeling of Systems ◦Quality Management ◦Change Control Management
46
RUP Features Online Repository of Process Information and Description in HTML format Templates for all major artifacts, including: ◦RequisitePro templates (requirements tracking) ◦Word Templates for Use Cases ◦Project Templates for Project Management Process Manuals describing key processes
47
The Phases
48
An Iterative Development Process... Recognizes the reality of changing requirements ◦Casper Jones’s research on 8000 projects 40% of final requirements arrived after the analysis phase, after development had already begun Promotes early risk mitigation, by breaking down the system into mini-projects and focusing on the riskier elements first Allows you to “plan a little, design a little, and code a little” Encourages all participants, including testers, integrators, and technical writers to be involved earlier on
49
An Incremental Development Process... Allows for software to evolve, not be produced in one huge effort Allows software to improve, by giving enough time to the evolutionary process itself Allows interim progress to continue through the stubbing of functionality Allows for the management of risk, by exposing problems earlier on in the development process
50
Goals and Features of Each Iteration Each iteration is risk-driven The primary goal of each iteration is to slowly chip away at the risk facing the project, namely: ◦performance risks ◦integration risks (different vendors, tools, etc.) ◦conceptual risks (ferret out analysis and design flaws)
51
Risk Management Identification of the risks Iterative/Incremental Development The prototype or pilot project
52
The Development Phases Inception Phase Elaboration Phase Construction Phase Transition Phase
53
Inception Phase Initial requirements capture Cost Benefit Analysis Initial Risk Analysis Project scope definition Defining a candidate architecture Development of a disposable prototype Initial Use Case Model (10% - 20% complete) First pass at a Domain Model ◦Class diagram in UML ◦Model Semantics code (Forward Engineering)
54
Elaboration Phase Requirements Analysis and Capture ◦Use Case Analysis Use Case (80% written and reviewed by end of phase) Use Case Model (80% done) Scenarios ◦ Sequence and Collaboration Diagrams ◦ Class, Activity, Component, State Diagrams ◦Glossary (so users and developers can speak common vocabulary) ◦Domain Model ◦Risk Assessment Plan revised ◦Architecture Document
55
Construction Phase Focus is on implementation of the design: ◦cumulative increase in functionality ◦greater depth of implementation ◦greater stability begins to appear ◦analysis continues, but design and coding predominate
56
Transition Phase The transition phase consists of the transfer of the system to the user community It includes shipping, installation, training, technical support and maintenance Development team begins to shrink Control is moved to maintenance team Alpha, Beta, and final releases Software updates Integration with existing systems (legacy, existing versions, etc.)
57
CASE-Computer Aided Software Engineering
58
In the early days… Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders, etc. – Computers weren’t powerful enough or advanced yet to support higher-level functioning
59
But now… Software engineering often follows specific standardized methods There are lots of diagrams and documentation involved So now computers can be used to deal with the higher-level aspects of software engineering
60
Computer Aided Software Engineering What is a CASE Environment? ◦CASE is the use of computer-based support in the software development process. What is a CASE Tool? ◦A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process.
61
Goal of using CASE tools Supply basic functionality, do routine tasks automatically Enhance productivity ◦Generate code pieces automatically Increase software quality Intuitive use Integration with other tools
62
What could be called a CASE tool? Project management softwares System design tools Code storage Compilers Translation tools Test software
63
But generally… Code generation tools (Visual Studio.NET) Code analysis (Borland Audits) Development of data models (UML editors) Cleaning up code (refactoring tools) Bug tracker Version control (CVS, etc.)
64
They do THAT? CASE tools do more than just output code Can be used to generate SE documents ◦Database schema ◦Data flow diagrams ◦Entity relationship diagrams ◦Program specifications ◦User documentation
65
Tool typeExamples Planning toolsPERT tools, estimation tools, spreadsheets Editing toolsText editors, diagram editors, word processors Change management tools Requirement Traceability tools, change control systems Configuration management tools Version management systems, System building tools Prototyping toolsVery high level language, user interface generator Language processing tools Compliers, interpreters Program analysis toolsCross reference generators, static analyzers, dynamic analyzers Testing toolsTest data generators, file comparators Debugging toolsInteractive debugging systems Documentation toolsPay layout programs, image editors Reengineering toolsCross-reference systems, program restructuring systems
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.