CS351/ IT351 Modeling and Simulation Software Engineering Dr. Jim Holten.

Slides:



Advertisements
Similar presentations
CS487 Software Engineering Omar Aldawud
Advertisements

Designing and Developing Decision Support Systems Chapter 4.
IS2210: Systems Analysis and Systems Design and Change
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Software Engineering Session 14 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Alternative Methodologies Ken Peffers UNLV March 2004.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
CS 221/ IT 221 Lecture 14 Software Engineering Dr. Jim Holten.
Program Flow Charting How to tackle the beginning stage a program design.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Introduction to Software Engineering Dr. Basem Alkazemi
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Michael Solomon Tugboat Software Managing the Software Development Process.
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 3: Phase Management - Inception.
Effective Methods for Software and Systems Integration
CIS 321—IS Analysis & Design
Chapter 2: Approaches to System Development
RUP Requirements RUP Artifacts and Deliverables
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
SIUE Injury Tracking System Project Plan. Team Members: Robbie Marsh Robbie Marsh –Project Manager/Webmaster Ken Metcalf Ken Metcalf –Lead Programmer.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Prescriptive Process Models
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
FotoGazmic Software Project Plan Senior Project: CS 425 Spring 2003.
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.
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,
IS Analysis and Design. SDLC Systems Development Life Cycle Break problems into management review stages Control cost and time Works best with well understood.
An Introduction to Software Engineering
Inception Chapter 4 Applying UML and Patterns -Craig Larman.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Software Architecture and Specification 2 Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga Fall 2009.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Sistemas de Información Agosto-Diciembre 2007 Sesión # 9.
ANALISA & PERANCANGAN SISTEM Disusun Oleh : Dr. Lily Wulandari Program Pasca Sarjana Magister Sistem Informasi Universitas Gunadarma.
An Agile Requirements Approach 1. Step 1: Get Organized  Meet with your team and agree on the basic software processes you will employ.  Decide how.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
Software Design and Development Development Methodoligies Computing Science.
1 slc5 TTYP – C++ revisited 1 Which of the following statements are reasonable after the following statement: char* fred = new char[5]; a. fred = bill;
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.
Software Engineering Session 12 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Advanced Software Engineering Dr. Cheng
Software Development.
Lecture 3 Prescriptive Process Models
Chapter 1: Introduction to Systems Analysis and Design
Game Design, Development, and Technology
Managing the Project Lifecycle
Systems Analysis and Design
FORMAL SYSTEM DEVELOPMENT METHODOLOGIES
UML: Unified modeling language
Software Development Process
Chapter 1: Introduction to Systems Analysis and Design
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

CS351/ IT351 Modeling and Simulation Software Engineering Dr. Jim Holten

Overview  A Little History  Project Needs  The Roadmap  A View from Afar

History  In the beginning...

Machine code  Machine code is cryptic  It was a new concept, so people had to train themselves  There were no design and development procedures to follow, so they invented their own.  Code development was slow and unreliable.  Good coders needed EXTREME discipline.  Coordinating multiple efforts was....??

History  Order out of chaos

Development Process  Describe the problem in written language.  Refine the concepts toward algorithms in the available instructions.  Write the code.  Translate to machine code.  Put the program into the machine and run it.

History  Formalized approaches to software engineering

Project Management Approaches  Waterfall...  Formal reviews.  Sign-offs.  Engineering Change Proposals ?  Spiral...  Waiting while we get sign-off....

Software Developer Approaches  Top down design and coding  Bottom up design and coding  Mixtures of top-downs and bottom-up  Objects  Patterns  Data Flow Diagrams, SADT, HIPO, state diagrams, flow charts, ER diagrams,...  UML

Tools  IDEs  CASE  Blah blah blah....  Nice concepts and features, but not “complete”.  Buggy too!  Heavy overhead – slows development.

History  Getting less formal

Management Impatience  Takes too long!  Want results right away!  Must invest too much before we see any results!  Frustrating!

Developer Impatience  Too much documentation!  Squelches creativity!  Frustrating!

Alternatives  Rapid prototyping  Extreme programming  Rapid development  Empower the programmer

History  Losing it

Self-organizing Developers?  Seven blind men and the elephant  Whose vision do I follow?  Each doing their own “right thing”  Why won't they include this essential item in their interface for me?  Who's in charge here?  HELP!!!

History  In the beginning...  Order out of chaos!  Formalized approaches to software engineering  Getting less formal  Losing it

Project View from Afar

Projects  What does a project NEED?  How should it be organized?  Who should decide?  How do we coordinate priorities and choices made?

Project Needs  What are we supposed to be doing? -- a vision

Vision  Vision statement  High level testable requirements  Subdivision into modules  Detailed testable requirements for modules

Project View from Afar

Project Needs  How shall we do it? -- a plan

A Plan  Project plan  Design overview – subdivide into modules  Interface specifications  Detailed designs – each module  Programmer assignments  Schedules  Risk assessment

Project View from Afar

Project Needs  Getting down and dirty -- the coding

The Coding  Coding standards  Version control  Standardized environments  Assignments  Problem reporting and resolution procedures  Unit testing – internal implementation correct  Unit delivery

Project Needs  Does it work? -- testing, testing goals

Project View from Afar

Testing  “Unit” testing  Integration testing  Acceptance testing  Test plans

Project Needs  You want what? -- merging changes

Changes  Requirements change requests  Investigation, scoping, planning, and reporting  Merging it into the workflow  Updating documents, code, and tests

Project View from Afar

Project Needs  How do I install and use this thing? -- delivery

Project Needs  Bugs? New features? -- new releases

Project Needs  What are we supposed to be doing? -- a vision  How shall we do it? -- a plan  Getting down and dirty -- the coding  Does it work? -- testing, testing goals  You want what? -- merging changes  How do I install and use this thing? -- delivery  Bugs? New features? -- new releases

A Roadmap -- Landmarks  Vision  Requirements  Designs  Interface definitions  Implementation plans  Coder assignments  Test plans  Tests and test results

Project View from Afar

View From Afar  Storyboarding  Iterative and stepwise refinement  Making the project “flow”  Taking control of what is important  Ability to judge relative significance of tasks  Ability to easily shift resources and focus

Project View from Afar