Chapter 7 Software Engineering.

Slides:



Advertisements
Similar presentations
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Advertisements

Ch 3 System Development Environment
1 CSE1301 Computer Programming Lecture 25: Software Engineering.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
Chapter 1 Principles of Programming and Software Engineering.
CSE1301 Computer Programming: Lecture 21 Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
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
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Chapter.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1.1.
Chapter 2: Approaches to System Development
7.1 The Software Engineering Discipline 7.2 The Software Life Cycle 報告者 : 林建任.
Chapter 1 The Systems Development Environment
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.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
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.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
1 CSE1301 Computer Programming Lecture 24: Software Engineering.
UNIT-1 SOFTWARE PRODUCT AND PROCESS: Introduction – S/W Engineering paradigm – Verification – Validation – Life cycle models – System 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.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Chapter 7 Software Engineering © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 7: Software Engineering
Design and Planning Or: What’s the next thing we should do for our project?
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Chapter 13 Finalizing Design Specifications
Chapter 2 Principles of Programming and Software Engineering.
Basic Characteristics of Object-Oriented Systems
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Principles of Programming & Software Engineering
Chapter 7: Software Engineering
Chapter 15 Finalizing Design Specifications
Appendix 2 Automated Tools for Systems Development
Chapter 7: Software Engineering
IS301 – Software Engineering V:
Lecture 0 Software Engineering Course Introduction
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
SDLC: System Development Life Cycle
Principles of Programming and Software Engineering
Tools of Software Development
Chapter 14 Graphs and Paths.
Chapter 4 Automated Tools for Systems Development
Chapter 15 Finalizing Design Specifications
Modern Systems Analysis and Design Third Edition
Component-Level Design
Modern Systems Analysis and Design Third Edition
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Systems development life cycle (SDLC)
Chapter 13 Finalizing Design Specifications
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Human Computer Interaction Lecture 14 HCI in Software Process
Introduction: Some Representative Problems
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Information Systems Development MIS331
Modern Systems Analysis and Design Third Edition
Chapter 2 Reference Types.
Presentation transcript:

Chapter 7 Software Engineering

Chapter 7: Software Engineering 7.1 The Software Engineering Discipline 7.2 The Software Life Cycle 7.3 Modularity 7.4 Design Methodologies 7.5 Tools of the Trade 7.6 Testing 7.7 Documentation 7.8 Software Ownership and Liability © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.1 The software life cycle © 2005 Pearson Addison-Wesley. All rights reserved

Complications of software design Traditional Engineering Software Engineering “Off the shelf” components available Often Rarely Required performance Within tolerances Perfect Quality metrics Mean time to failure Unclear Scientific basis Physics © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.2 The development phase of the software life cycle © 2005 Pearson Addison-Wesley. All rights reserved

Advancing our ability to build high-quality software Researchers Practitioners Theoreticians Professional organizations: ACM, IEEE, etc. Codes of professional ethics Standards © 2005 Pearson Addison-Wesley. All rights reserved

Complications in modifying software Changes often introduce more problems than they solve. Research addressing this problem currently focuses primarily on improving initial software development. © 2005 Pearson Addison-Wesley. All rights reserved

Implementation Stage Create system from design Write programs Create data files Develop databases © 2005 Pearson Addison-Wesley. All rights reserved

Testing Stage Module testing: single module Often uses simplified simulators of other modules called stubs System testing: entire program Extremely difficult to perform successfully Significant open topic of research © 2005 Pearson Addison-Wesley. All rights reserved

Software development models Waterfall model Incremental model Evolutionary prototyping Throwaway prototyping “Extreme programming” © 2005 Pearson Addison-Wesley. All rights reserved

Computer Aided Software Engineering (CASE) tools Project planning Project management Documentation Prototyping and simulation Interface design Programming © 2005 Pearson Addison-Wesley. All rights reserved

Program visualization techniques Structure chart: displays relationships between components of a procedural design Class diagram: displays relationships between classes in an object-oriented design Collaboration diagram: an enhanced class diagram © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.3 A structure chart for a simple Internet “mail order” business © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.4 A class diagram for a simple Internet “mail order” business © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.5 A structure chart showing data coupling © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.6 A collaboration diagram of a simple Internet “mail order” business © 2005 Pearson Addison-Wesley. All rights reserved

Modularity Goal: minimize coupling and maximize cohesion Coupling: interactions between modules Cohesion: internal binding within a module © 2005 Pearson Addison-Wesley. All rights reserved

Coupling Control coupling: one module passes control to another Data coupling: sharing of data between modules Implicit coupling: hidden coupling; frequently causes errors Global data = data accessible to all modules Side effects = action performed by a procedure that is not readily apparent to its caller © 2005 Pearson Addison-Wesley. All rights reserved

Cohesion Logical cohesion: logical similarity between actions and components Functional cohesion: components are focused around performance of a single activity Stronger than logical cohesion Cohesion in object oriented systems Entire object will naturally be logically cohesive Each method should be functionally cohesive © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.7 Logical and functional cohesion within an object representing an order form in a simple Internet “mail order” business © 2005 Pearson Addison-Wesley. All rights reserved

Other design methodologies Top-down design Generates cohesive, modular designs Bottom-up design Generates reusable modules © 2005 Pearson Addison-Wesley. All rights reserved

Other design methodologies (continued) Design patterns Template libraries Design patterns implemented as objects Component architecture Multi-object components that can be assembled into complete programs Open-source development Public evolutionary prototyping © 2005 Pearson Addison-Wesley. All rights reserved

Data-based design techniques Dataflow diagram: displays how data moves through a system Entity-relationship diagram: displays relationships between entities in a system Relationship types One-to-one One-to-many Many-to-many © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.8 A dataflow diagram of a simple Internet “mail order” business © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.9 An entity-relationship diagram © 2005 Pearson Addison-Wesley. All rights reserved

Figure 7.10 One-to-one, one-to-many, and many-to-many relationships between entities of types X and Y © 2005 Pearson Addison-Wesley. All rights reserved

Software testing strategies Glass-box testing Pareto principle Basis path testing Black-box testing Boundary value analysis Redundancy testing Beta testing © 2005 Pearson Addison-Wesley. All rights reserved

Documentation User documentation System documentation Printed book for all customers On-line help modules System documentation Source code Structure and naming conventions Comments Design documents CASE tools can help keep these up to date © 2005 Pearson Addison-Wesley. All rights reserved

Software ownership Copyright Test = “substantial similarity” Filtration criteria: what is not copyrightable Features covered by standards Characteristics dictated by software purpose Components in the public domain “Look and feel” argument occasionally succeeds © 2005 Pearson Addison-Wesley. All rights reserved

Software ownership Patents Trade secrets Mathematical formulae are traditionally unpatentable Recent exceptions for some algorithms Trade secrets Non-disclosure agreements are legally enforceable © 2005 Pearson Addison-Wesley. All rights reserved