CS 111 – Nov. 22 Chapter 7 Software engineering Systems analysis Commitment –Please read Section 7.4 (only pp. 336-341), Sections 7.6-7.9 –Homework #2.

Slides:



Advertisements
Similar presentations
Chpter#5 -part#1 Project Scope and Human Resource Planning
Advertisements

Software Process Models
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Planning. SDLC Planning Analysis Design Implementation.
Data Structures and Programming.  John Edgar2.
Introduction to Computer Technology
Introduction to Programming Prof. Rommel Anthony Palomino Department of Computer Science and Information Technology Spring 2011.
By the end of this session you should be able to...
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
1 Shawlands Academy Higher Computing Software Development Unit.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Project Management Chapter 3. Objectives Become familiar with estimation. Be able to create a project workplan. Understand why project teams use timeboxing.
Planning for the Solution
Foundations of Geospatial System Development Todd S. Bacastow Professor of Practice for Geospatial Intelligence John A. Dutton e-Education Institute The.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
Software Engineering Management Lecture 1 The Software Process.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Chapter 12: Systems Investigation and Analysis. Agenda  How to Develop a CBIS?  Systems Development Life Cycle (SDLC)  Prototyping  Join Application.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
CSE 219 Computer Science III Program Design Principles.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
CS 111 – Dec. 3 Lab recap Problem solving approach for systems analysts –8 phases –Just understand the flow/process/sequence of the steps, not specifically.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Formal Methods in Software Engineering
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
The Software Development Process
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.
Systems Development Life Cycle
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Data Structures Using C++ 2E
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Introduction to programming Carl Smith National Certificate Year 2 – Unit 4.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
第 11 組 MIS 報告. Phases of any information system ~ recognition of a business problem or opportunity ~ recognition of a business problem or opportunity.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Foundations of Geospatial System Development Todd S. Bacastow Professor of Practice for Geospatial Intelligence John A. Dutton e-Education Institute The.
The Hashemite University Computer Engineering Department
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
Chapter 2 Principles of Programming and Software Engineering.
CS Class 04 Topics  Selection statement – IF  Expressions  More practice writing simple C++ programs Announcements  Read pages for next.
Ondřej Přibyl L3: System Development Life Cycle page 1 Lecture 3: System Development Life Cycle Doc.Ing. Ondřej Přibyl, Ph.D. Department of applied mathematics.
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
Software Engineering Management
Principles of Information Systems Eighth Edition
Project Management Processes
Lecture 2 Introduction to Programming
Project Management Processes
POWERPOINT PRESENTATION
CS310 Software Engineering Lecturer Dr.Doaa Sami
What Is Good Software(Program)?
Software Development Chapter 1.
Presentation transcript:

CS 111 – Nov. 22 Chapter 7 Software engineering Systems analysis Commitment –Please read Section 7.4 (only pp ), Sections –Homework #2 due Nov. 29

Software engineering Large software systems cannot be written by 1 person Several people work together –Each is responsible for portion of program –These portions interact… so must make sure your piece will fit correctly in jigsaw puzzle –Example: developing user interface for registration system: Your output (list of desired course sections) must be in format expected by next phase of program –Deadlines

Tips for success General guidelines –Don’t reinvent the wheel –Make your solution efficient, elegant, easy to understand –Build solution incrementally, test & document often –It’s easier to fix a bug the sooner it’s found! –Work in pairs, check each other’s work Integrated development environment (IDE) –Software that simplifies job of writing code –As you type, “code” becomes color coded –Automates compiling and testing –Built-in debugger: can trace through instructions one by one, inspecting values of variables: rather than modifying code by inserting print statements!

Software life cycle Very similar to problem solving procedure 1.Problem specification written 2.Design of solution 3.Implementation 4.Testing 5.Maintenance

Systems analysis Distinction… –Software engineering is mainly concerned with implementation of the project –Systems analysis is mainly concerned with specification and design Definition of systems analysis (Whitten & Bentley): –“A systems analyst facilitates the study of the problems and needs of a business to determine how the business system and IT can best solve the problems and accomplish improvements for the business.” –The finished product is eventually a new or improved computer application, implemented by software engineers.

Principles Get the owners and users involved –The program you’re designing doesn’t belong to you. It’s to help other people. Find out what they desire. Follow problem solving procedure –Define what a suitable solution must accomplish / do. –Evaluate possible algorithms, and choose the best –After testing, evaluate new system’s impact, get feedback from stakeholders. Establish a schedule for the software life cycle –How much time do you have –How many people can you have on your team & for how long? –What are their strengths and weaknesses?

Principles (2) Establish coding and documentation standards –Your software engineers are writing code for you. Almost like they are students in your class. –Essential to have code written in a consistent style –Encourage good documentation  communication, including list of known problems. Let your people know they won’t be penalized for admitting their work is incomplete. You don’t want these to be a secret, or else risk future debugging. –Give people a list of deadlines of deliverables. –Have your team members meet with you to discuss their accomplishments. Is the project work cost-effective? –May need to scale down, trim some functionality or put off to later version.

Principles (3) Beware the “mythical man-month” –Doubling your staff will not make project take half the time. IBM found this out the hard way in its System/360 project. –Diminishing returns Don’t be afraid to scale down or cancel project –Project should have milestones / checkpoints to evaluate path toward success –Decide how to get back on track, or reduce scope of project. –Can final deadline be extended? –If doomed, abort project and cut losses. –But, will your superiors understand?

Principles (4) Divide and conquer –A large project can be overwhelming at first. Break into small, manageable parts. –Reminds me of studying for a final exam, or writing large essay. –Top-down design and bottom-up implementation. Design for future growth and change –Your project may be in service for 10+ years –People who adopt and like your work may want to continue using it forever. –You will have to live with decisions you make today. (For example, choice of programming language)