CSE403 Software Engineering Autumn 2000

Slides:



Advertisements
Similar presentations
Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
Advertisements

Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI 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 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
20 September Importance of People Most important factor in the quality of software is the quality of the programmers If your life depended on.
Requirements Structure 2.0 Clark Elliott Instructor With debt to Chris Thomopolous and Ali Merchant Original Authors.
Chapter 6 The Process of Interaction Design Presented by: Kinnis Gosha, Michael McGill, Jamey White, and Chiao Huang.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
1 SOFTWARE LIFE-CYCLES Elements and Definitions. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
1 CMPT 275 Software Engineering Software life cycle.
Understand Application Lifecycle Management
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
CSE403 Software Engineering Autumn 2000 Benchmark day Gary Kimura Lecture #23 November 17, 2000.
Lecture 2 System Development Lifecycles. Building a house Definition phase Analysis phase Design phase Programming phase System Test phase Acceptance.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Introduction Requirements and the Software Lifecycle (3)
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
CSE403 Software Engineering Autumn 2001 Gary Kimura Lecture #2 October 3, 2001.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Security Development Lifecycle (SDL) Overview
Software Development.
Teaching slides Chapter 2
Applied Software Testing
CSE403 Software Engineering Autumn 2000 Prototyping
Game Design, Development, and Technology
CSE451 Memory Management Continued Autumn 2002
CS 5150 Software Engineering
SNS College of Engineering Coimbatore
CSE 403 Software Engineering
Software Development Life Cycle
CSE403 Software Engineering Autumn 2000 Requirements
CSE 403, Software Engineering Lecture 2
Models of Software Development Life Cycle (SDLC)
Chapter 2 SW Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
Software Engineering Lecture 09 & 10.
Applied Software Implementation & Testing
Some Important Techniques For Regression Testing That You Must Know.
Teaching slides Chapter 1.
Chapter 10 Systems Implementation and Operation
The Object-Oriented Thought Process Chapter 05
Sharing the good, the bad, the ugly & What can we do about it?
Unit 6 Assignment 2 Chris Boardley.
Quality Assurance in an Agile Development Team Michelle Wu 2018 PNSQC
CSE 403, Software Engineering Lecture 2
CSE403 Software Engineering Autumn 2001
CSE403 Software Engineering Autumn 2000 Requirements
Software Processes Process should be
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
CSE451 Virtual Memory Paging Autumn 2002
Bringing more value out of automation testing
Software Engineering Lecture 17.
Integration Reading: McConnell, Code Complete, Ch. 29
Human Computer Interaction Lecture 14 HCI in Software Process
Chapter 11 Project Control.
Presentation transcript:

CSE403 Software Engineering Autumn 2000 CSE 403 Autumn 2000 CSE403 Software Engineering Autumn 2000 Gary Kimura Lecture #2 September 27, 2000 September 27, 2000

Today TA’s (Will Portnoy and Jia-Chi Wu) Subscribe to the email alias Questions from Monday Software lifecycles Models

Models of Software Engineering Why have a model The goals of a model Look at a few models What was NT’s model

Why have a model Software has become vital in our everyday life Software programs are large complicated beasts NT started out small. Today not one single person can grasp all of NT. A model recognize that Software Engineering is more than just programming Recognize product life cycles Various requirements specification phases Design phases Coding and testing phases Maintenance phase (bug fixes and revisions)

More reasons to have a model A model helps recognize and define the division of labor Individual responsibilities (program managers, software design engineers, UI designers, testers, product support, internationalization, marketing, etc.) How big should a team be (look at MMM) Parallel work efforts Does a one person team need a model Provide a common means of communication between all involved parties Documentation is vital Comments in the code is not sufficient documentation Dave Cutler’s NT design workbook is now part of the Smithsonian

Why not have a model Avoids bureaucracy Cost of an inadequate or improperly applied model Build the wrong product Build something that doesn’t work Build something that cannot be tested Build something that cannot be maintained Not take into account personnel changes, and requirement changes

Goals of a good model The obvious “Provide a framework for building a solidly engineered product” A paradigm that adds discipline and order to software development Provides a formal mechanism to clarify, track, and modify the product requirements throughout the product life cycle Provide a guideline for engineers to use in the product life cycle Provide feedback into the development cycle

More goals of a good model Compel engineers to want to use it Doesn’t get in the way Convinces them that they will build a better product Be easy to understand and use Keep everyone organized Many more “common sense” reasons

First a simple model (waterfall)

More on the waterfall model What it is What it tried to accomplish Account for more than programming Feedback between phases Benefits Limitations Limited feedback increases risk A requirement change can have a major cost downstream

Boehm’s Spiral model

More on the spiral model What it is What it tried to accomplish Recognize that Software Engineering is a process of iterative refinement Allow for alternate designs and implementations Benefits Limitations

Lessons from the models Each trying to capture or dictate how a project should be run Even a good properly applied model cannot fix a flawed design Not any model offers the 100% solution Often borrowing from one or more model is necessary Just as Software Engineering is full of compromises so is using a Software Engineering model So take these models with a grain of salt and use only those parts that apply to your situation

The NT Experience Daily builds Dog food Incremental and clean builds Catch build errors Without daily builds entropy would rule Dog food NT developers ran the latest build on their own system. Performance and functional inadequate features were usually taken care of in a timely fashion Broken pieces had to get fixed

The NT Albatross Maintenance cost including maintaining compatibility between releases is huge With NT 5.0 compatibility is now a huge burden. Maintaining old API sets Apps that improperly used the API set in earlier releases Unforeseen interaction between pieces also increases maintenance costs Small changes break seemingly unrelated things, for example the handle table change in NT 5.0 Controlling kernel stack usage is always hard MP performance problems crop up constantly when two pieces interact

Next time Thursday in section Friday Form groups Due Friday (via email to garyki, will, and jcwu) is a list of group members and list of the top three risks your group foresees Only one email per group please Be sure to CC everyone in your group so we have their email addresses Friday Project overview What is a user mode heap Basic group organization