CS 5150 1 CS 5150 Software Engineering Lecture 3 Software Processes 2.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Advertisements

CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Lecture # 2 : Process Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Software Project Management
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 2 – Software Processes
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
CS CS 5150 Software Engineering Lecture 2 Software Processes.
CS 501: Software Engineering
CS 5150 Software Engineering
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 2 Software Processes.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
CS 501: Software Engineering
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
The web application development process Basharat Mahmood, COMSATS Institute of Information Technology, Islamabad, Pakistan. 1.
Software Life Cycle Model
1 CMPT 275 Software Engineering Software life cycle.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
Business Systems Development SDLC and introduction to the Microsoft Solutions Framework Team and Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Software Engineering Management Lecture 1 The Software Process.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
An Introduction to Software Engineering
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
The principles of an object oriented software development process Week 04 1.
Four Major Software Development Methodologies  Object-oriented analysis and design developed in 1980s and 1990s  Structured analysis and design developed.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
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.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software Engineering cosc 4359 Spring 2017.
Software Engineering Management
Exam 0 review CS 360 Lecture 8.
The Web Application Development Process Models
Chapter 2 – Software Processes
CS 5150 Software Engineering
V-Shaped SDLC Model Lecture-6.
Introduction to Software Engineering
Object Oriented Analysis and Design
Introduction To software engineering
Gathering Systems Requirements
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes Process should be
Software Processes.
Software Engineering Lecture 17.
Gathering Systems Requirements
Presentation transcript:

CS CS 5150 Software Engineering Lecture 3 Software Processes 2

CS Administration Project teams Any announcement to class?

CS Administration Project teams When you have formed your team and reached agreement with your client, please send a message to: and with the names of the team, the client's name, and the topic of the project.

CS Observations about Big Projects A big project may be 100 to 10,000+ person years Every large system is developed by many people, who are constantly changing. Before a big project is completed the requirements have changed many times. No large system is ever complete. CS 5150 Projects A CS 5150 project is about 0.3 person/years. This is about the size of a single increment (sprint) in a production Agile process.

CS Software Process Fundamental Assumption: Good processes lead to good software Good processes reduce risk Good processes enhance visibility Systematic testing is an integral part of all processes

CS Variety of Software Processes Software products are very varied... Therefore, there is no standard process for all software engineering projects BUT successful software development projects all need to address similar issues. This creates a number of process steps and testing steps that should be part of all software projects

CS Basic Process Steps in all Software Development Feasibility and planning Requirements System and program design Implementation Acceptance and release Operation and maintenance These steps may be repeated many times during the development cycle

CS Basic Testing Steps in all Software Development Vallidating the requirements Testing the system and program design Usability testing Testing the implementation Acceptance testing Bug fixing and maintenance All these steps will be repeated many times during the life of the system

CS Process Step: Feasibility A feasibility study precedes the decision to begin a project. What is the scope of the proposed project? Is the project technically feasible? What are the projected benefits? What are the costs, timetable? A feasibility study leads to a decision: go or no-go.

CS Process Step: Requirements Requirements define the function of the system from the client's viewpoint. The requirements establish the system's functionality, constraints and goals by consultation with the client, customers, and users. The requirements may be developed in a self-contained study, or may emerge incrementally.

CS Process Step: System and Program Design Design describes the system from the software developers' viewpoint System design: Establish a system architecture that matches the requirements to hardware or software systems. Program design: Represent the software functions in a form that can be transformed into one or more executable programs

CS Process Step: Implementation Implementation (coding) The software design is realized as a set of programs or program units. The software components may be written specifically, acquired from elsewhere, or modified.

CS Process Step: Acceptance and Release Acceptance The system is tested against the requirements by the client, often with selected customers and users. Delivery and release The system is delivered to the client and released into production or marketed to customers.

CS Process Step: Operation and Maintenance Operation: The system is put into practical use. Maintenance: Errors and problems are identified and fixed. Evolution: The system evolves over time as requirements change, to add new functions or adapt the technical environment. Phase out: The system is withdrawn from service. This is sometimes called the Software Life Cycle

CS Testing User testing A preliminary version of the user interface is tested by users. Their experience may lead to changes in the requirements or the design. Program testing The development team tests components individually (unit testing) or in combination (system testing) to find bugs, etc. Acceptance testing The client tests the final version of the system or parts of the system against the requirements.

CS Sequence of Processes Every software project will include these basic processes, in some shape or form, but: They may be formal or informal They may be carried out in various sequences Deliverables In a heavyweight process, each process step creates a deliverable, usually documentation, e.g., a requirements specification. In a lightweight process, the deliverables are incremental working code, with minimal supporting documentation.

CS Heavyweight and Lightweight Software Development In a heavyweight process, the development team works through the entire development cycle slowly and systematically, with the aim of delivering a complete software product with minimal changes and revision. Example: the Modified Waterfall Model In a lightweight process, the development team releases working software in small increments, and develops the plans incrementally, based on experience. Example: Agile Software Development

CS Heavyweight and Lightweight Methodologies HeavyweightLightweight Processes and toolsIndividuals & interactions DocumentationWorking software Contract negotiationCustomer collaboration Following a planResponding to change Based on the Manifesto for Agile Software Development:

CS Sequence of Processes Major alternatives Sequential: As far as possible, complete each process step before beginning the next. Waterfall model. Iterative: Go quickly through all process steps to create a rough system, then repeat them to improve the system. Iterative refinement. Incremental: An extension of iterative refinement in which small increments of software are placed in production (sprints). Agile development.