What is a life cycle model?

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
Software Project Management
CS487 Software Engineering Omar Aldawud
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Software Life Cycles ECE 417/617: Elements of Software Engineering
Rational Unified Process
Object-oriented Analysis and Design
Chapter 6 Systems Development.
Fundamentals of Information Systems, Second Edition
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Iterative development and The Unified process
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
The web application development process Basharat Mahmood, COMSATS Institute of Information Technology, Islamabad, Pakistan. 1.
What is Business Analysis Planning & Monitoring?
CIS 321—IS Analysis & Design
S/W Project Management
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Unified Software Development Process (UP) Also known as software engineering process SEP describes how requirements are turned into software Defines who,
1 CMPT 275 Software Engineering Software life cycle.
RUP Fundamentals - Instructor Notes
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Rational Unified Process Fundamentals Module 4: Disciplines II.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Chapter 1: Introduction to Systems Analysis and Design
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Identify steps for understanding and solving the
Object Oriented Design and Analysis Rational Unified Process.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
16 1 Installation  After development and testing, system must be put into operation  Important planning considerations Costs of operating both systems.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Systems Analysis and Design in a Changing World, Fourth Edition
Chapter 4 프로세스 모델 Process Models
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
The principles of an object oriented software development process Week 04 1.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
Rational Unified Process (RUP)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Iterative development and The Unified process
Chapter 1: Introduction to Systems Analysis and Design
The Web Application Development Process Models
Introduction to Software Engineering
Software life cycle models
Software engineering -1
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each of the phases and their respective deliverables. Efforts of various stakeholders from industry and academia. A successful model: adopted by the software industry and has undergone many modifications and enhancements to improve its efficiency and applicability.

Pre-development activities Prior to embarking into the activities and the phases of the software life cycle development model, there are some pre-development activities and deliverables that must be performed to enable the proper startup of the software development project.

Predevelopment activities Extent of the pre-development activities depend on the complexity and type of software to develop. For a software system to be implemented as a part of a complete system including software, hardware and people, the allocation of functions to the software component of the system and the interactions and boundaries between the software and other system elements must be clearly identified.

What is a life cycle model? An ideal life cycle model is generic, flexible, adaptable and scalable. To be tailored to suit the particular needs of the company and its development team. flexible to allow different emphasis on different phases, activities and deliverables Must scale up to large and complex software systems development projects.

What is a life cycle model? Many industrial-strength and popular models have been used to develop software products of different complexities and in a wide variety of application domains. waterfall or system development life cycle model, the prototyping model, the spiral model, the object-oriented model, the incremental and iterative model, the extreme model, and the component based model.

Software maintenance activities Software maintenance activities include; the management of software improvement requests, the identification, categorization and prioritization of needed improvements, and the scheduling and execution of the needed improvements. The management of requests is facilitated using a user friendly system for requesting software improvements and reporting software faults. This system is used by software users, software developers and the client to report software faults and to request enhancements to the software. Requests and error reports are then analyzed by the maintenance team. The scheduling of the execution of requests depends mainly on their complexity and urgency.

Types of maintenance activities Corrective maintenance activities are triggered by software faults encountered during the use of the software. They involve simple fixes like cosmetic changes to the user interface, or more complex fixes like redesign of a module or the re-introduction of a missing functionality. Preventive maintenance activities involve dealing with weaknesses and vulnerabilities identified by the development team during or after deploying the software and were not dealt with in the installed software.

Software maintenance activities Perfective maintenance activities involve dealing with requests to improve the efficiency of the algorithms and data structures, and user interface interactions used in the design. Adaptive maintenance activities involve requests from software stakeholders to adapt the software to different operating environments, user interface styles, social contexts, or even new government regulations and standards.

Ongoing (umbrella) activities Project management Quality assurance Evaluation and testing Configuration management Technical support Internal training Documentation Operations support and user training

Project management Project manager continuously performs project management related activities. Progress of the activities is closely monitored using an appropriate reporting procedure. Risks are continuously monitored and corrective actions are taken when needed. New risks are identified and monitored. The project schedule is updated regularly if needed. Project and process related metrics are regularly collected. Regular human resource management and project management activities including delegation and evaluation are performed.

Quality assurance During and at the end of each phase, QA group reviews the phase deliverables and ensures the use of and conformance to internal and external standards. Reviews of parts of the deliverables are conducted during the phase execution and after the deliverables are produced. Quality reports and logs are maintained and relevant metrics are collected according to the metrics collection plan. The quality assurance plan is executed and updated if needed. Process improvement recommendations are also provided by the group after completion of the project.

Evaluation and testing Validation and verification activities At the end of each phase, deliverables are evaluated and tested. Once deliverables are approved, the next phase will start. Formal and informal processes can be used for evaluation and testing purposes. performed by the developers and by independent groups like the QA group. Informal evaluation processes include reviews walkthroughs, inspections, and audits.

Evaluation and testing (2) Formal evaluation processes include the use of formal techniques and automated tools for the verification of phase deliverables. Tools and techniques for design verification and code testing can be used for these purposes. Formal product validation techniques can also be used to generate and document effective tests, to automate the validation process and to analyze validation results.

Configuration management CM deals mainly with the management of the software resources and the overall support and control of the software development and maintenance processes. CM activities include: the identification of all software documents, deliverables and artifacts that will be produced, manipulated and maintained during the development and maintenance of the software. CM control activities include revision and version control, process and workflow control, build control and change control. Performed using an integrated and automated configuration management tool for revision, version, build and change management. Periodic CM audit and status report is generated and analyzed by the management team.

Technical support and internal training Developers may require some technical support and training. Support technicians help the developers in solving technical problems that may arise while developing the software. These activities help improve the efficiency and productivity of the development and maintenance teams. A training plan can be devised as part of a project plan to deal with the training of technical staff on the development process, standards to be followed, or new tools and technologies that will be used.

Documentation Documents targeting different audiences are produced. internal and technical documents that are needed for future software maintenance activities. documents target external users and include user, installation and operations manuals. Standards and standard templates are used to guide the writing of these software related documents. Technical writers are normally involved with the production of the external documents. Documents are evaluated by internal review processes involving various stakeholders including software development team members and QA group.

Operations support and user training After installing the software, its operations is supported by providing customer help desk support, technical assistance, user training and consulting. Help desk request logs and fault report logs are maintained and appropriate metrics are generated. Fault reports are used to trigger the appropriate maintenance and process improvement activities.

Prototyped waterfall model Allows visualization of requirements Find out requirements errors earlier Better quality – user interface Interactive with client / user Easy and quick to build prototype Prototype to throw away – do not use it to continue building the software Use programming language other than the one to be used to develop the software Visual Basic

Object oriented model Object oriented Analysis – Identification of problem domain objects, object attributes and methods (operations), object relationships: aggregation (composition), inheritance and communication, scenarios using sequences of interactions Design – solution domain classes and interrelationships, entity, interface and control classes. Implementation – use Java, C++, C# Use the Unified Modeling Language (UML)

Incremental and iterative model Prioritizing requirements Identify requirements for different releases Use a model to develop each release

Spiral model Introduced by Barry Boehm in 1988. Model addresses the weaknesses of the waterfall model with respect to the treatment of software development risks. Model embeds risk management activities within the development activities. Software risks and the lack of a clear and continuous risk management strategy are the main reason for software project failures. Continuous consideration of risks embedded within the software development process would contribute to enhancing the quality of software.

Spiral model (2) Each cycle in the spiral model involves the repeated execution of 4 steps at each phase Identification of objectives, alternatives and constraints that are relevant at that phase Evaluation and assessment of the alternatives with respect to constraints and identified potential risks Develop the phase deliverable by performing its activities, followed by a review of these deliverables. Preparation and planning for the following phase: may prescribe the partitioning of the remaining work into different sequential or parallel software increments, leading to concurrent spiral model execution of the remaining phases.

Rational unified process (RUP) Process management tool encapsulating best practices in software development and maintenance: iterative and incremental development of software, requirements management, software components reuse, visual modeling, software quality verification, and configuration and change management. RUP is a configurable product can be adapted to software products of different types and complexities. RUP consists of sequential phases for the iterative development of software: inception, elaboration, construction and transition

[you can use the original drawing from the web]

Inception phase Team develops business context and project scope of the project. Product stakeholders are indentified and their interfaces with the software to develop are determined. All use cases are identified and partly developed and prototyped. A risk management plan, and cost and schedule estimations are developed. Deliverables include a vision and scope document, an initial use case model, an initial project plan including a risk management plan and an initial prototype. Financial and technical feasibilities of the project are carefully assessed at this point and a go / no go decision is made.

Elaboration phase Use case model is formalized and an executable prototype of the most complex and critical use cases is implemented. Deliverables include a use case model, non-functional requirements specifications, a revised and complete project plan including revised risk management plan and more accurate estimates of cost and time needed to complete the project, and an executable prototype. Inception and elaboration phases of RUP correspond to the software requirements specification or analysis phase of the prototyped waterfall model.

Construction phase Software is designed, implemented and integrated prior to its deployment in the transition phase. Various software releases may be constructed concurrently to accelerate the deployment of high priority features of the software product. Deliverables include the software design document, the software product and all related documentation including installation and user manuals.

Transition phase Software product is deployed and made available for use by its intended user population. The product is validated against the requirements. Necessary database conversions are performed. Training of software users and operators is provided. Product is distributed to its intended users using the appropriate distribution channels.

RUP activities RUP can also be described by its activities that are clustered into different workflows. Each workflow culminates in one or more deliverable. 9 workflows are identified: business modeling, requirements, analysis and design, implementation, test, deployment, project management, configuration and change management, and environment. Activities of one workflow may span more than 1 phase. Project management, change / configuration management and environment activities are spread over the 4 phases of the RUP. These three workflows are called core supporting workflows. The other 6 workflows are called core process workflows.

Software development and maintenance teams Possible team structures Functional Project Hybrid functional / project Each has its advantages and disadvantages

Software engineering standards

Capability maturity model (CMM) CMM was developed by W. Humphrey at the SEI at CMU for the assessment of the development processes at software development companies. CMM Integration (CMMI) assists in the assessment of the process maturity in areas like systems engineering, project management, and supply-chain management. CMM does not recommend any particular set of mature processes to be followed by an organization. CMM can be used to assess the maturity of existing processes. The basis for the placement at a particular level is based on the availability of specific process areas defined for that level. As a result of the process maturity assessment, an organization is placed at one of 5 maturity levels: initial, repeatable, defined, managed and optimized.

Unified Modeling Language (UML) Joint efforts by object-oriented methodologists De facto standard language for software modeling Visual language for modeling software systems from many aspects and views Modeling software structure, behavior and architecture