Chapter 7: Software Engineering

Slides:



Advertisements
Similar presentations
Systems Development Environment
Advertisements

Chapter 2: Approaches to System Development
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Systems Analysis and Design in a Changing World, 6th Edition
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Chapter 2 Approaches to System Development
Ch 3 System Development Environment
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Chapter 1 The Systems Development Environment
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Chapter 1 The Systems Development Environment
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 15 Finalizing.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Chapter 1 Assuming the Role of the Systems Analyst
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Chapter.
Chapter 7-- Software Engineering 7.5 Tools of the Trade 楊家愉 應數一
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1.1.
SOFTWARE ENGINEERING CSC 180 Lecture 10 Dr. Adam Anthony.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
CIS 321—IS Analysis & Design
Chapter 2: Approaches to System Development
7.1 The Software Engineering Discipline 7.2 The Software Life Cycle 報告者 : 林建任.
Chapter 1 Systems Development in an Organizational Context
Chapter 1 The Systems Development Environment
2 Systems Analysis and Design in a Changing World, Fourth Edition.
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Topic 1: Approaches to System Development
Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
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.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 7 Software Engineering. © 2005 Pearson Addison-Wesley. All rights reserved 7-2 Chapter 7: Software Engineering 7.1 The Software Engineering Discipline.
2 Systems Analysis and Design in a Changing World, Fifth Edition.
Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering.
Systems Analysis and Design in a Changing World, 6th Edition
System Development 1 u Systems development life cycle (SDLC) l Provides overall framework for managing system development process u Two main approaches.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
Chapter 7 Software Engineering © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Systems Analysis and Design in a Changing World, 6th Edition
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Chapter 7: Software Engineering
Chapter 7: Software Engineering
Lecture 0 Software Engineering Course Introduction
UML: Unified modeling language
University of Houston-Clear Lake
Appendix A Object-Oriented Analysis and Design
Chapter 7 Software Engineering.
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Systems development life cycle (SDLC)
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Presentation transcript:

Chapter 7: Software Engineering Computer Science: An Overview Twelfth Edition by J. Glenn Brookshear Dennis Brylow

Chapter 7: Software Engineering 7.1 The Software Engineering Discipline 7.2 The Software Life Cycle 7.3 Software Engineering Methodologies 7.4 Modularity 7.5 Tools of the Trade 7.6 Testing 7.7 Documentation 7.8 Software Ownership and Liability

The Software Engineering Discipline Distinct from other engineering fields Prefabricated components Metrics Practitioners versus Theoreticians Professional Organizations: ACM, IEEE, etc. Codes of professional ethics Standards

Computer Aided Software Engineering (CASE) tools Project planning Project management Documentation Prototyping and simulation Interface design Programming

Figure 7.1 The software life cycle

Figure 7.2 The development phase of the software life cycle

Analysis Stage Requirements Specifications Application oriented Specifications Technically oriented Software requirements document

Design Stage Methodologies and tools (discussed later) Human interface (psychology and ergonomics)

Implementation Stage Create system from design Write programs Create data files Develop databases Role of “software analyst” versus “programmer”

Testing Stage Validation testing Defect testing Confirm that system meets specifications Defect testing Find bugs

Software Engineering Methodologies Waterfall Model Incremental Model Prototyping (Evolutionary vs. Throwaway) Open-source Development Extreme Programming

Modularity Functions  Imperative paradigm Structure charts Objects  Object-oriented paradigm Collaboration diagrams Components  Component architecture

Figure 7.3 A simple structure chart

Figure 7.4 The structure of PlayerClass and its instances

Figure 7.5 The interaction between objects resulting from PlayerA’s serve

Figure 7.6 A structure chart including data coupling

Coupling versus Cohesion Control coupling Data coupling Cohesion Logical cohesion Functional cohesion

Figure 7.7 Logical and functional cohesion within an object

Tools of the Trade Data Flow Diagram Entity-Relationship Diagram One-to-one relation One-to-many relation Many-to-many relation Data Dictionary

Figure 7.8 A simple dataflow diagram

Figure 7.9 A simple use case diagram

Figure 7.10 A simple class diagram

Unified Modeling Language Use Case Diagram Use cases Actors Class Diagram

Figure 7.11 One-to-one, one-to-many, and many-to-many relationships between entities of types X and Y

Figure 7.12 A class diagram depicting generalizations

Figure 7.13 A sequence diagram depicting a generic volley

Structured Walkthoughs “Theatrical” experiment Class-responsibility-collaboration cards

Design Patterns Well designed “templates” for solving recurring problems Examples: Adapter pattern: Used to adapter a module’s interface to current needs Decorator pattern: Used to control the complexity involved when many different combinations of the same activities are required Inspired by the work of Christopher Alexander in architecture

Software Testing Strategies Glass-box testing Pareto principle Basis path testing Black-box testing Boundary value analysis Redundancy testing Beta testing

Documentation User Documentation System Documentation Printed book for all customers On-line help modules System Documentation Source code Design documents Technical Documentation For installing, customizing, updating, etc.

Software Ownership Copyright Allow a product to be released while retaining ownership of intellectual property Asserted in all works: Specifications Source code Final product

Software Ownership (continued) Software License A legal agreement that grants the user certain permissions without transferring ownership Patents Must demonstrate that it is new, usable, and not obvious to others with similar backgrounds Process is expensive and time-consuming