CS 5150 Software Engineering Lecture 3 Software Processes 2.

Slides:



Advertisements
Similar presentations
Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
Advertisements

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
HCI in the software process Chapter 6
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
Object-oriented Analysis and Design
CS 501: Software Engineering
CS 501: Software Engineering
Software Engineering Incorporating Interface Design Into Software Engineering.
Information Systems Development Lecture 2: the idea of the Life Cycle.
COMP 350: Object Oriented Analysis and Design Lecture 2
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
Tietojärjestelmien peruskurssi Systeemisuunnittelu ja prototyyppimenetelmä Malin Brännback.
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
Software Engineering Management Lecture 1 The Software Process.
Ismail Ceylan Kutay Kocayurt Martin Konicek. What is a project Temporary activity with start date and end date.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
Prof. Aiken CS 169 Lecture 21 Software Process CS169 Lecture 2.
Lecture 2 –Approaches to Systems Development Method 10/9/15 1.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
CS 5150 Software Engineering Lecture 4 Feasibility Studies.
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.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
© Bennett, McRobb and Farmer 2005
Software Project Management Iterative Model & Spiral Model.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
CS223: Software Engineering Lecture 5: Software Development Models.
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.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Project Management Software development models & methodologies
TK2023 Object-Oriented Software Engineering
Software Development.
Open source development model and methodologies.
Software Engineering Management
Software Engineering Process
User-centred system design process
Iterative and Agile Development
CS 5150 Software Engineering
Prototype Model Lecture-4.
Software Processes.
Software Development Life Cycle
Software Engineering Lecture 18.
Incremental Waterfall
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes Process should be
HCI in the software process
Software Engineering Process
Human Computer Interaction Lecture 14 HCI in Software Process
SDLC (Software Development Life Cycle)
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Presentation transcript:

CS 5150 Software Engineering Lecture 3 Software Processes 2

CS Project Teams I will send out project suggestions this afternoon You should have a team soon Send to Ben & Yue when you have (most of) a team Team name Names of team members Client info Project topic

CS Projects Project suggestions continuing to come in You should have contacted a client by next week

CS Project Details

CS Software Processes in More Detail Feasibility and planning Requirements System and program design Implementation Acceptance and release Operation and maintenance

CS Feasibility A feasibility study precedes the decision to start a project What is the scope of the project? What relevant experience to the participants have? Projected benefits? Projected costs, risks, timetable? Beware McConnell’s wicked problem But don’t appeal to it too quickly

CS Feasibility for 5150 Mostly a scoping aid Sketch out projected work More in next lecture

CS Requirements Define the system’s behavior from the client’s perspective Higher resolution than feasibility study Priorities -- relative importance Can be developed before design or incrementally

CS System and Program Design Define the system from the implementer’s perspective System design (or architecture) High level. Should fit on a white board for 5150 Program design “Medium level” Source of much debate in software engineering

CS Implementation (Construction) Actual coding Or acquisition and integration of existing code

CS Acceptance and Release The system is tested against the requirements by the client The system is transferred to the client or made available to the public

CS Operation and Maintenance Operation: The system is in active use Maintenance: Errors and other problems are identified and fixed or triaged Evolution: The system is changed in response to changing requirements and priorities This might involve a whole new cycle through a software process Phase out: Use of the system ends (abruptly or gradually) The software life cycle

CS Three Categories of Testing User testing Using mock-ups, prototypes or the actual system to evaluate usability with real potential users Program testing The development team makes sure the system works as designed Acceptance testing The client compares the system with the requirements

CS What is a Software Process? More or less formal rules for organizing work on software Trivial example: Meeting with client Meeting with team Code code code Test finished program to client

CS Spectrum of Software Processes (Modified) waterfall model Iterative refinement Incremental (Agile)

CS The Waterfall Model

CS Iterative Refinement

CS Incremental In each increment (sprint) the team works through the full software development cycle and ends up with new production-ready features Each sprint is assigned a fixed (and short) time frame, e.g. 4 weeks Team size involved in a sprint is usually small (5-10)

CS Waterfall Discussion Pros Visibility and predictability Separation of tasks Quality control at each step Cost control at each step Cons Wicked problems

CS Modified Waterfall This is more realistic

CS Iterative Refinement Discussion Pros Complete (bare-bones) system done quickly Can correct mistakes in early design stages Cons Throw away a lot of code Can encourage feature bloat Can lead to half-done features

CS Incremental Development Discussion Pros Leads quickly to production code Feedback benefits of iterative refinement, but even faster Minimizes wasted code Cons Haphazard high-level architecture

CS “Choosing” a Process Often heavily influenced by the project’s environment Big bureaucracies often like waterfall End user software vendors usually do something like iterative refinement Internet applications often developed with an incremental process

CS Thought Exercise Software process conversation dominated by commercial software developers Do these processes make sense for open source? What is open source? (Linux, Haskell compiler, Uncle Joe’s photo organizer)