Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "CS 5150 1 CS 5150 Software Engineering Lecture 2 Software Processes 1."— Presentation transcript:

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

2 CS 5150 2 Projects Project teams Any announcement to class? People who would like to form teams?

3 CS 5150 3 Projects Project Suggestions on the web site

4 CS 5150 4 Projects New project ideas If you have a new project idea, please let me know, so that I can confirm that it is suitable for the course. Project teams When you have formed your team and reached agreement with your client, please send a message to: wya@cs.cornell.edu and rajkumar@cs.cornell.edu with the names of the team, the client's name, and the topic of the project.

5 CS 5150 5 Software Development: Risk Most software development projects have major problems Problems Does not work as expected (FUNCTION) Over budget (COST) Late delivery (TIME) Much of software is wasted (perhaps 50% is never used ) Never used Does the wrong thing Users dislike to use it There are no customers etc.

6 CS 5150 6 The Three-way Trade-off Competing goals Every software project has a trade-off between: Functionality (scope of project) Cost (resources used) Time (delivery date) What is important to the person who is paying? Example: Start-up companies: Are there real customers who will pay for the product?

7 CS 5150 7 Software Development: Risk What is the penalty to the client if software is: late? over budget? does not work or full of bugs? Examples of risk: car anti-lock brakes (no bugs allowed) web browser in cell phone (no delays in release allowed) Failures of software development projects can bankrupt companies

8 CS 5150 8 Software Development: Risk Many software projects fail because the software developers build the wrong software! Understand what the client, the customer, and the users expect of the software As a developer, provide technical insights and suggestions, but remember: Client satisfaction and customer acceptance are the primary measures of success in a software project.

9 CS 5150 9 Minimizing Risk: Relationship with the Client Feasibility studies (whether to begin a project). Separation of requirements (what the client wants) from design (how the developers meet the requirements). Milestones (how the developers report or demonstrate progress to the clients) and releases. Acceptance (how the client tests that the software meets the requirements) and user testing. Handover (ensuring that the client receives a package that can be operated and maintained over a long time period).

10 CS 5150 10 Minimizing Risk: Short Development Cycle with Frequent Releases Risk is minimized by short development cycles, with frequent delivery of working software (weeks rather than months). Client, customers, and users can evaluate the developers' work. Opportunities to adapt to changing circumstances. This is one of the basic principles of Agile Software Development.

11 CS 5150 11 Minimizing Risk: Visibility The people who take the responsibility must know what is happening Managers Must rely on others for reports of progress or difficulties Software Developers Have difficulty evaluating progress Are often too optimistic Consider reporting a waste time etc. Working software provides excellent visibility.

12 CS 5150 12 Teams Most software development is by teams Effectiveness of team determines success Most large software projects are built on older ones It is rare to start a new system from scratch Building on the work of others is a fundamental skill of software development Much software is built in increments (sprints), with different teams responsible for the increments

13 CS 5150 13 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.

14 CS 5150 14 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

15 CS 5150 15 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

16 CS 5150 16 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

17 CS 5150 17 Basic Testing Steps in all Software Development Testing 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

18 CS 5150 18 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

19 CS 5150 19 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: http://agilemanifesto.org/


Download ppt "CS 5150 1 CS 5150 Software Engineering Lecture 2 Software Processes 1."

Similar presentations


Ads by Google