Chapter 7: Software Engineering

Slides:



Advertisements
Similar presentations
Systems Development Environment
Advertisements

10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Chapter 2 Approaches to System Development
Ch 3 System Development Environment
Chapter 1 The Systems Development Environment
APPLICATION DEVELOPMENT BY SYED ADNAN ALI.
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 楊家愉 應數一
SOFTWARE ENGINEERING CSC 180 Lecture 10 Dr. Adam Anthony.
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 The Systems Development Environment
2 Systems Analysis and Design in a Changing World, Fourth Edition.
Introduction to SDLC: System Development Life Cycle Dr. Dania Bilal IS 582 Spring 2009.
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.
Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering.
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.
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.
Chapter 7 Software Engineering. © 2005 Pearson Addison-Wesley. All rights reserved 7-2 Chapter 7: Software Engineering 7.1 The Software Engineering Discipline.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
Chapter 7 Software Engineering © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 7: Software Engineering
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Information Systems Development
Chapter 15 Finalizing Design Specifications
Chapter 15 Finalizing Design Specifications
Chapter 7: Software Engineering
Chapter 1: Introduction to Systems Analysis and Design
Fundamentals of Information Systems, Sixth Edition
Lecture 0 Software Engineering Course Introduction
Chapter 1 The Systems Development Environment
Systems Analysis and Design With UML 2
Topic for Presentaion-2
SDLC: System Development Life Cycle
Chapter 1 The Systems Development Environment
UML: Unified modeling language
Object Oriented Analysis and Design
Chapter 15 Finalizing Design Specifications
University of Houston-Clear Lake
Chapter 20 Object-Oriented Analysis and Design
Software Engineering Lecture #45
Appendix A Object-Oriented Analysis and Design
Software Design Lecture : 14.
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Chapter 7 Software Engineering.
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Chapter 1: Introduction to Systems Analysis and Design
Systems development life cycle (SDLC)
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Chapter 7: Software Engineering Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear

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 Procedures -- 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