CS 5150 Software Engineering Lecture 2 Software Processes
- Slides: 19
CS 5150 Software Engineering Lecture 2 Software Processes 1 CS 5150 1
ACSU is initiating a peer mentoring program Underclassmen: be paired with an upperclassman mentor! Upperclassmen: mentor an underclassman and/or have a Ph. D/MEng mentor! To find a mentor or to be a mentor: Fill out a questionnaire to specify your preferences-send an email to cornellcsmentorship@gmail. com for the links. ACSU Bowling /Mentor-Mentee Matching Event: 9/8 at Helen Newman! (*please also fill out the questionnaire) Time: 9/8, 7 -9 PM Location: Helen Newman Bowling Alley (in the basement of HNL) FREE pizza and soda will be served! CS 5150 2
The Web Lab Independent Research in Computer Science & Information Science The Web Lab applies supercomputing methods to analyze very large collections of text. See http: //weblab. infosci. cornell. edu/. It uses Map. Reduce programming and the Hadoop distributed file system on a large Linux cluster. Projects for fall 2010: • Studying how the. gov domain changes over time. • Building indexes to very large collections of digitized books. If you are interested, come to a meeting on Tuesday at 4: 00 p. m. in the Information Science building, 301 College Avenue. CS 5150 3
Administration Project teams • Any announcement to class? • People who would like to form teams? Project Suggestions on the web site Entrepreneurship experiment CS 5150 4
Administration Project teams When you have formed your team and reached agreement with your client, please send a message to: wya@cs. cornell. edu and stevepurpura@gmail. com with the names of the team, the client's name, and the topic of the project. CS 5150 5
Software is Risky Most software development projects have major problems Problems Does not work as expected Over budget Late delivery 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. CS 5150 6
Software is Risky Failures of software development projects can bankrupt companies 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) CS 5150 7
Software is Risky Most 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. CS 5150 8
Minimizing Risk: Incremental Development with Frequent Releases Recent approaches to software development minimize risk by emphasizing 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. CS 5150 9
The Three-way Trade-off Competing goals Every software project has a trade-off between: Functionality Resources (cost) Timeliness What is important to the person who is paying? Example: Start-up companies: Are there real customers who will pay for the product? CS 5150 10
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). 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 Optimistic Consider reporting a waste time etc. Working software provides excellent visibility. 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 suite of programs from scratch • Building on the work of others is a fundamental skill of software development CS 5150 13
Observations about Big Projects • A CS 5150 project is about 0. 3 person/years. A big project may be 100 to 10, 000+ person years. • Every important program is written 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. A CS 5150 project is about the size of a single increment in a production Agile process. CS 5150 14
Software Process Fundamental Assumption: Good processes lead to good software Good processes reduce risk Good processes enhance visibility CS 5150 15
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 5150 16
Heavyweight and Lightweight Methodologies Heavyweight Lightweight Processes and tools Individuals & interactions Working software Documentation Contract negotiation Customer collaboration Following a plan Responding to change Based on the Manifesto for Agile Software Development: http: //agilemanifesto. org/ CS 5150 17
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 that should be part of all software projects CS 5150 18
Basic Process Steps in all Software Development • Feasibility and planning • Requirements • System and program design • Implementation • Acceptance and release In a lightweight process, these steps are repeated with each increment • Operation and maintenance CS 5150 19
- Cs 5150 cornell
- Cs 5150
- Cs 5150
- Cs 5150
- Cs 5150
- Requirement analysis in software engineering notes
- Concurrent in os
- 01:640:244 lecture notes - lecture 15: plat, idah, farad
- Computer based system engineering in software engineering
- Forward engineering and reverse engineering
- Manufacturing processes for engineering materials
- Agile engineering processes
- Money-time relationship and equivalence
- Foundation engineering lecture notes
- Engineering ethics lecture notes
- Software maintenance in software engineering ppt
- What is software implementation in software engineering
- Metrics computer science
- Software engineering crisis
- What is software measurement