CompSci 001 20.1 Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7.

Slides:



Advertisements
Similar presentations
Systems Analysis & IT Project Management Pepper. System Life Cycle BirthDeathDevelopmentProduction.
Advertisements

HCI in the software process Chapter 6
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Software Engineering 1. Software development – the grand view 2. Requirements engineering.
Chapter 12 Systems Development Three common methods for MIS development: The systems development life cycle (SDLC) Prototyping End-user development Five.
Chapter 6: Design of Expert Systems
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
SYSTEMS DEVELOPMENT Phases, Tools, and Techniques
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Maintenance Framework Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture Ref M 2.
Problem with Software Requirements are complex The client does not know the functional requirements in advance Requirements may be changing Technology.
Introduction to Systems Analysis and Design
CSC230 Software Design (Engineering)
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
"In the name of ALLAH, most Gracious, most Compassionate".
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Chapter.
1.Database plan 2.Information systems plan 3.Technology plan 4.Business strategy plan 5.Enterprise analysis Which of the following serves as a road map.
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
CIS 321—IS Analysis & Design
CSI315 Web Technology and Applications
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Computers & Employment By Andrew Attard and Stephen Calleja.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
SNU IDB Lab. 1 Great Ideas of CS with Java Part 1 WWW & Computer programming in the language Java Ch 1: The World Wide Web Ch 2: Watch out: Here comes.
Laudon & Laudon: Canadian Edition
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
Information Systems Analysis and Design
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
CompSci Today’s Topics Computer Science 1 Review Upcoming Final Exam: Thursday, 06/30, 2:00pm, Room 229 Social Sciences (here) Reading Great Ideas,
16 1 Installation  After development and testing, system must be put into operation  Important planning considerations Costs of operating both systems.
Rapid Application Development. What is RAD……..?  Rapid Application Development (RAD) is a software development process.  first developed during the.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Construction, Testing, Documentation, and Installation Chapters 15 and 16 Info 361: Systems Analysis and Design.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
Chapter 11 Managing Application Development. Agenda Application management framework Application management issues Criteria for development approach Development.
OHTO -01 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Chapter 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
CS223: Software Engineering Lecture 16: The Agile Methodology.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
© 2005 Prentice Hall, Decision Support Systems and Intelligent Systems, 7th Edition, Turban, Aronson, and Liang 6-1 Chapter 6 Decision Support System Development.
Software Design and Development Development Methodoligies Computing Science.
Software Engineering cosc 4359 Spring 2017.
Introduction to Systems Analysis and Design
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
C++ Plus Data Structures
The Software Development Cycle
CSE 403 Software Engineering
Chapter 6: Design of Expert Systems
Object oriented system development life cycle
The Development of Information Systems Chapter 8 page 348+
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Development Process
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Software Development Approaches
The Software Development Cycle
Presentation transcript:

CompSci Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7

CompSci Engineering a Program  Programming in the Large  Not the toy programs we are writing and demonstrating  What do we require of Software Products for Commercial or Industrial Use?  Robustness  Testing  Documentation  Customer Support o User Friendliness o Help Desk / 800 Number  Training  Follow on Products o Dealing with Competing Products o “Creeping Featurism”

CompSci What Makes a Successful Product?  Class Experiences  Good o…o… o…o…  Bad o…o… o…o…  Scenario: “Bad” Product looks “Good”  Scenario: “Good” Product looks “Bad”  Which is really the good product?  Which will succeed?

CompSci Program Life Cycle  Define the Product  Developing the Program Specifications  Designing the System Structure  Coding the System (small part!)  Testing the Code  Revision  Documentation  Delivery and Training  Maintenance and Upgrade

CompSci Program Life Cycle Understanding Problem / Specification  Communicating with the Customer o Often customer doesn’t understand  Capabilities of computer systems  Limitations of computer systems o Possible role of user documentation  Specification languages o Can be very technical and involved o In some cases more trouble than they are worth

CompSci Program Life Cycle Design Strategies/Models  Classical Waterfall Model o Everything moves forward at steady pace o Little customer involvement in design o Revision possible  Late in the game  At great expense  _models/pages/waterfall.htm _models/pages/waterfall.htm  Rapid Prototyping Model o Build Prototype quickly o Get customer involved o Then:  May scrap prototype and start over  If prototype good enough, may build on it

CompSci Program Life Cycle Implementation Strategies  Top Down Implementation o Stubs  Can test many parts in the absence of other parts o Output First  Allows you to “see” what the program is doing  Test as you go 1.Make it Run 2.Make it Right 3.Make it Fast  Always have a “running” program

CompSci Program Life Cycle  Debugging (dealing with Defects )  Testing  Can only show presence, not absence of bugs  Design for Testability o Modular o Hierarchical  Correctness  Proofs o Formal Definition of Specs o Formal definition language  Very hard  Used in life-critical applications  What is a correct Graphical User Interface (GUI)?

CompSci Program Life Cycle  Documentation  On-line documentation  Comments on comments in code o Program header o Block header o Function (method) specifications  Pre-conditions  Post-conditions o Variable descriptions  Java Docs o Available for Java API (see class web page) o Can produce for your own code as well

CompSci Program Life Cycle  Net Productivity: 15 LINES OF CODE / DAY  Rather: 15 LINES OF CODE / DAY

CompSci Aspects of Software Engineering  Psychology of Programming has its effects  Design by Committee (good or bad?)  Communications problems  Interaction  Creator Independence  2 nd System Syndrome  Organizational Schemes  Chief Programmer Team (Harlan Mills) o NY Time Morgue Project (1969) o Surgical Team Model o Assume that some people are 100 time better than others when programming

CompSci Aspects of Software Engineering  Nitty-Gritty Practical Problems  Back-ups  Revision Control System  Backwards Compatibility  Staff Turnover  Pleasant Environment o Silicon Valley o...  Programming Tools (CASE)  E.g., IDE’s such as Eclipse ...