Chapter 7 Software Engineering. © 2005 Pearson Addison-Wesley. All rights reserved 7-2 Chapter 7: Software Engineering 7.1 The Software Engineering Discipline.

Slides:



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

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
1 CSE1301 Computer Programming Lecture 25: Software Engineering.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Essentials of Systems Analysis and Design Fourth Edition Joseph S. Valacich Joey F.
Chapter 1 The Systems Development Environment
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition.
Chapter 1 Assuming the Role of the Systems Analyst
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.
Computers: Information Technology in Perspective By Long and Long Copyright 2002 Prentice Hall, Inc. Developing Business Information Systems Chapter 11.
© 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
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.
Introduction To System Analysis and design
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
Chapter 2: Approaches to System Development
Chapter 1 The Systems Development Environment
2 Systems Analysis and Design in a Changing World, Fourth Edition.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software 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.
Copyright Prentice Hall, Inc. 1 Computers: Information Technology in Perspective, 11e Larry Long and Nancy Long Chapter 11 Developing Business Information.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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.
1 Introduction to Software Engineering Lecture 1.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Chapter 6 Systems Design The design stage in the SDLC Evolution in IS design Evolution in computer architectures The systems approach to design User interface.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Software Design Process
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
1 CSE1301 Computer Programming Lecture 24: 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.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
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 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
1 Introduction to Design. 2 Outline Basics of design Design approaches.
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 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Chapter 13 Finalizing Design Specifications
2 Systems Analysis and Design in a Changing World, Fourth Edition.
Chapter 2 Principles of Programming and Software Engineering.
Chapter 1 Assuming the Role of the Systems Analyst.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Chapter 7: Software Engineering
Chapter 7: Software Engineering
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Principles of Programming and Software Engineering
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Chapter 7 Software Engineering.
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Modern Systems Analysis and Design Third Edition
Presentation transcript:

Chapter 7 Software Engineering

© 2005 Pearson Addison-Wesley. All rights reserved 7-2 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 7-3 Figure 7.1 The software life cycle

© 2005 Pearson Addison-Wesley. All rights reserved 7-4 Complications of software design Traditional EngineeringSoftware Engineering “Off the shelf” components available OftenRarely Required performanceWithin tolerancesPerfect Quality metricsMean time to failureUnclear Scientific basisPhysicsUnclear

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

© 2005 Pearson Addison-Wesley. All rights reserved 7-6 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 7-7 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 7-8 Implementation Stage Create system from design –Write programs –Create data files –Develop databases

© 2005 Pearson Addison-Wesley. All rights reserved 7-9 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 7-10 Software development models Waterfall model Incremental model –Evolutionary prototyping –Throwaway prototyping “Extreme programming”

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

© 2005 Pearson Addison-Wesley. All rights reserved 7-12 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 7-13 Figure 7.3 A structure chart for a simple Internet “mail order” business

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

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

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

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

© 2005 Pearson Addison-Wesley. All rights reserved 7-18 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 7-19 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 7-20 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 7-21 Other design methodologies Top-down design –Generates cohesive, modular designs Bottom-up design –Generates reusable modules

© 2005 Pearson Addison-Wesley. All rights reserved 7-22 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 7-23 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 7-24 Figure 7.8 A dataflow diagram of a simple Internet “mail order” business

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

© 2005 Pearson Addison-Wesley. All rights reserved 7-26 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 7-27 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 7-28 Documentation User 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 7-29 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 7-30 Software ownership Patents –Mathematical formulae are traditionally unpatentable –Recent exceptions for some algorithms Trade secrets –Non-disclosure agreements are legally enforceable