CSC408H Lecture Notes
|
|
|
- Willis Burke
- 10 years ago
- Views:
Transcription
1 CSC408H Lecture Notes These lecture notes are provided for the personal use of students taking Software Engineering course in the Summer term 2005 at the University of Toronto. Copying for purposes other than this use and all forms of distribution are expressly prohibited. c David B. Wortman, c Kersti Wain-Bantin, 2001 c Yijun Yu,
2 Reading Assignment van Vliet Chapter 14 1
3 Software Maintenance This is where the money goes. Maintain control over systems day-to-day functions. Maintain control over system modifications. Perfect existing functionality. Prevent system performance from degrading to unacceptable levels. Well over half of the organizations resources expended on a software system are spent on maintenance. Design for ease of maintenance should be a primary consideration in the design of any software system. 2
4 Recall Lehman s Laws of Software Evolution 1. Continuing Change A program undergoes continual change or it becomes progressively less useful. Change or decay continues until it becomes more cost effective to replace the system. 2. Increasing Complexity As a program evolves, its structure deteriorates. Complexity increases unless effort is expended to reduce it. 3. Fundamental Law of Program Evolution Software systems exhibit regular behavior and trends that we can measure and predict. 4. Conservation of Organizational Stability Productivity is essentially constant over the lifetime of the software. 5. Conservation of Familiarity As software evolves, each release has a diminishing effect (change) on functionality. The size, complexity and disorder of a system all increase over time. 3
5 Types of Software Maintenance Corrective maintenance - repair of errors in the software reported by users Adaptive maintenance - modify software interface to changing environment Perfective maintenance - modify software to increase functionality, improve internal structure, or improve performance Preventive maintenance - modify or rewrite software to improve structure and reliability and to enhance future maintainability 4
6 Maintenance Management Change Control as described previously Keep documentation up to date with changes Archive systematically Do preventive maintenance on software that is in really bad shape Monitor maintenance effort to track maintenance costs Beware of steadily rising maintenance costs, software rot is setting in 5
7 Maintenance Activities 1. Understanding the system. 2. Locating information in system documentation. 3. Keeping system documentation up to date. 4. Extending existing system functions to accommodate new or changing requirements. 5. Adding new functionality to the system. 6. Finding the source of system failures or problems. 7. Locating and Correcting faults. 8. Answering questions about the way the system works. 9. Restructuring system design and system code. 10. Rewriting system design and system code. 11. Deleting design and and code components that are obsolete. 12. Managing changes to the system as they are made. 6
8 Corrective Maintenance Cycle User discovers a possible failure of the software. User calls support hot-line and describes failure. Front line support personnel create a trouble ticket describing the call. Identify the release of the software involved. Try to get as much information as possible about the cause of the failure. Has user customized the software? Trouble tickets are sent to second level support personnel for assessment. Trouble ticket assessment. Determine if trouble ticket corresponds to a known problem. Try to group trouble tickets that appear to be the same fault together. Try to determine if user is using the software correctly. Determine severity of the failure (preliminary prioritization) 7
9 Maintenance Management monitors outstanding trouble tickets. Assign tickets to maintenance programmers in priority order. Maintenance programmer receives new trouble ticket. Retrieve documentation for specified release (from release archive). Try to identify software modules responsible for failure. Retrieve relevant source code (using system model and release archive). Create test environment for suspect modules. Try to replicate failure on test system. Iterate steps above until failure is reproduced or it appears that failure is user caused. From failure try to isolate fault causing the failure. Prepare change request describing the fault and the probable steps required to correct it. 8
10 Change committee prioritizes change requests and assigns change requests to support programmers in priority order. Support programmers implement and test changes. Change is integrated into next release of the software. Quick patch may be distributed to affected users. Updates required Software design documents. User and internal documentation. System model. Archive all modified software in version archive. Add test cases to test suite. Status of trouble ticket and change request. 9
11 Information to Aid Maintenance Complete and exact description of each software release. System model and version control archive. Complete and correct description of the process used to build the software. Complete and correct internal and external documentation for each release. Tools and hooks to discover user customization and/or modification of the software. Test suite for release from release archive. Debugging and testing output built into the system. Ability to compare system models for different releases. 10
12 Software Maintenance Issues Understanding current state of software after many versions and releases. Changes inadequately documented. Hard to determine the process that was used to create the software Very hard to understand someone else s program. Especially if code is poorly documented. Originator of the software may not be available for consultation Documentation may be poor.. non-existent. Documentation may not be current Software was not designed to be maintainable. Source files may be difficult to locate. Maintenance is unglamorous, maintenance group can become a dumping ground for least effective programmers 11
13 Maintenance Problems - Staff Related Limited understanding of the software being maintained. Maintenance programmers don t understand the system Users don t understand system. Increases maintenance workload. Management priorities. May not get enough time/budget to do maintenance well. Sloppy maintenance causes problems in the future. Morale Maintenance staff have low social/economic status in the organization. Possible cures. Good documentation, kept up to date. Educate management on importance (cost/benefit) of doing maintenance right. Reward maintenance staff generously. Rotate staff between maintenance and development. 12
14 Maintenance Problems - Technical Artifacts & Paradigms Original design logic convoluted and/or hard to understand. Designers failed to anticipate (correctly) future changes. e.g Y2K problems. Object Oriented programs harder to maintain due to intricate object interconnectivity. Very intricate programs (e.g. high coupling, low cohesion) are inherently more difficult to maintain (correctly). Testing Issues May need expensive duplication of production environment for testing. May be difficult to generate test data for new hardware. May be difficult to determine how to devise tests for new change. 13
15 Factors Affecting Maintenance Effort Type of application. Novelty of the software. Turnover and maintenance staff availability. Expected system life span. Dependence on a changing environment. Hardware characteristics. Design quality. Code quality. Documentation quality. Testing quality. 14
16 Maintain vs. Replace Is the cost of maintenance too high? Is the system reliability unacceptable? Has the system lost the ability to adapt to further change at a reasonable cost and schedule? Is the system performance beyond prescribed constraints? Are system functions of limited usefulness? Can other systems do the same job better, faster, cheaper? Has hardware maintenance cost become excessive, so that hardware should be replaced? 15
17 The Horseshoe model 16
18 Software Redocumentation Develop new documentation to assist maintenance efforts. Use static analysis tools to process the source code Component calling relationships Data dictionary information Data flow information Control flow information Design recovery Possible test paths Cross reference information, functions & variables 17
19 Software Restructuring Restructure software to make it easier to understand and change. Use tools to analyze source code Improve modularity through clustering analysis. Try to reduce coupling and increase cohesion. Try to impose good structure on ill-structured code. 18
20 Software Refactoring Resources. Martin Fowler s influential book: Refactoring improve the design of existing code. and a portal Tom Mens et al. A Survey of Software Refactoring. TSE 30(2), 2004 Restructuring existing code by altering its internal structure without changing its external behavior. Are following activities a refactoring technique? Adding new functionalities Fixing functionality bugs Tuning performance Patching security 19
21 Refactoring Rythms Development = Adding feature, Refactoring Refactoring = (testing, small steps)* Small steps = Extract Methods Move Methods Rename Methods Replace Temp with Query Replace conditional with polymorphism Replace Type code with State/Strategy Self Encapsulate Field... [Some examples were discussed in Tutorial 8] Any fool can write code that a computer can understand. Good programmers write code that humans can understand. 20
22 Bad code smells Putting things together when changes are together Duplicate code (clones): feature envy Complex control, Long method Use Hammock graph: single entry/single exit comments signal semantic distance conditional and loops Complex data, Long parameter list OO specific: large class, switch statements, parallel inheritance, middle man, message change, temporary fields, data class, etc. 21
23 Software Reverse Engineering Extract specification and design information from existing source code. Analyze data usage and calling patterns Attempt to identify and then specify underlying functionality. Reverse engineering difficulty increases with complexity of the software. 22
24 Software Re-engineering a Software quality and structure decays over time Maintenance by patching the software Documentation of patches may be poor or non-existent Source code gets lost due to programmer turnover, inadequate archives, organizational changes Long term maintenance may introduce errors and inefficiencies into the software Software re-engineering involves the reimplementation of all or key parts of important software systems Goal of re-engineering is to reduce maintenance costs and to improve software quality Re-engineering may require design recovery from binary (!!) programs Because source code or original design have been lost Because patched software doesn t correspond to any documentation a Also known as the Dusty Deck problem 23
Software Engineering. So(ware Evolu1on
Software Engineering So(ware Evolu1on 1 Software change Software change is inevitable New requirements emerge when the software is used; The business environment changes; Errors must be repaired; New computers
Software Maintenance. Software Maintenance. (Chapter 14) Relative distribution of software/ hardware costs. Point to ponder #1
Software Maintenance Software Maintenance (Chapter 14) Mark van den Brand Tom Verhoeff Main issues:! why maintenance is such an issue! reverse engineering and its limitations! how to organize maintenance
Chapter 9 Software Evolution
Chapter 9 Software Evolution Summary 1 Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding software evolution Software maintenance Making changes
CSC 408F/CSC2105F Lecture Notes
CSC 408F/CSC2105F Lecture Notes These lecture notes are provided for the personal use of students taking CSC 408H/CSC 2105H in the Fall term 2004/2005 at the University of Toronto. Copying for purposes
Software Engineering. Software Evolution und Reengineering! Kapitel 12
Martin Glinz Harald Gall Software Engineering Kapitel 12 Software Evolution und Reengineering! 2010, 2011 Harald Gall. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen
BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 EXAMINERS REPORT Friday 2 nd October 2015 Answer any THREE
SEEM4570 System Design and Implementation Lecture 10 Software Development Process
SEEM4570 System Design and Implementation Lecture 10 Software Development Process Software Development A software development process: A structure imposed on the development of a software product Also
Chapter 1. Database Systems. Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel
Chapter 1 Database Systems Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel 1 In this chapter, you will learn: The difference between data and information What a
How to realize software evolution of existing BOSS via ZTE SEEM
How to realize software evolution of existing BOSS via ZTE SEEM Zhan Zhang Abstract Due to long-term construction and accumulation for different purposes, telecom carriers normally have very complex IT
Génie Logiciel et Gestion de Projets. Evolution
Génie Logiciel et Gestion de Projets Evolution 1 Roadmap Evolution: definitions Re-engineering Legacy systems Reverse engineering Software Visualisation Re-engineering Patterns 2 Evolution: Definitions
Lecture 2 Software Re-engineering
Lecture 2 Software Re-engineering Some material is based on the CSER projects at U of T Covers almost all concepts of the course Detail explanations to come Copyright Yijun Yu, 2005 Last lecture General
Software Re-engineering
Software Re-engineering Prepared By: Dr. Linda H. Rosenberg Engineering Section head Software Assurance Technology Center Unisys Federal Systems 301-286-0087 [email protected] Accepted By:
CC414 Database Management Systems
CC44 Database Management Systems Prof. Dr. Amani A. Saad Course Info See contents on Course Home page. Lecture: 2 hrs Sunday 2:30-2:0 Lab: 2 hrs Tut: 2 hrs» TAs: Eng. Omar Shalash Eng. Ihab Zaghlool 2
Bad code smells Refactoring Example
Bad code smells Refactoring Example Game Design Experience Professor Jim Whitehead January 26, 2009 Creative Commons Attribution 3.0 creativecommons.org/licenses/by/3.0 Announcements Game concept document
BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2
BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than
1 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN
1 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN 1.1 INTRODUCTION Systems are created to solve problems. One can think of the systems approach as an organized way of dealing with a problem. In this dynamic
Foundations for Systems Development
Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and
Lecture 20: Software Evolution
Lecture 20: Software Evolution Basics of Software Evolution Laws of software evolution Requirements Growth Software Aging Basics of Change Management Baselines, Change Requests and Configuration Management
Baseline Code Analysis Using McCabe IQ
White Paper Table of Contents What is Baseline Code Analysis?.....2 Importance of Baseline Code Analysis...2 The Objectives of Baseline Code Analysis...4 Best Practices for Baseline Code Analysis...4 Challenges
How To Develop Software
Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which
CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping
Code Qualities and Coding Practices
Code Qualities and Coding Practices Practices to Achieve Quality Scott L. Bain and the Net Objectives Agile Practice 13 December 2007 Contents Overview... 3 The Code Quality Practices... 5 Write Tests
Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC
Modernized and Maintainable Code Frank Weil, Ph.D. UniqueSoft, LLC UniqueSoft is a provider of next-generation software development tools and services specializing in modernizing legacy software using
Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group. Tuesday June 12 1:00-2:15
Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group Tuesday June 12 1:00-2:15 Service Oriented Architecture and the DBA What is Service Oriented Architecture (SOA)
Chapter 12. The Product Coordination Team
Chapter 12. The Product Coordination Team In theory, theory and practice are the same. In practice, they are different. Attributed to many. In This Chapter This chapter describes the challenge of teams
Request for Proposal for Application Development and Maintenance Services for XML Store platforms
Request for Proposal for Application Development and Maintenance s for ML Store platforms Annex 4: Application Development & Maintenance Requirements Description TABLE OF CONTENTS Page 1 1.0 s Overview...
Developing a Load Testing Strategy
Developing a Load Testing Strategy Michele Ruel St.George Bank CMGA 2005 Page 1 Overview... 3 What is load testing?... 4 Scalability Test... 4 Sustainability/Soak Test... 4 Comparison Test... 4 Worst Case...
Program Understanding in Software Engineering
Taming the complexity: The need for program understanding in software engineering Raghvinder S. Sangwan, Ph.D. Pennsylvania State University, Great Valley School of Graduate Professional Studies Robert
(Refer Slide Time: 01:52)
Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This
Cobol. By: Steven Conner. COBOL, COmmon Business Oriented Language, one of the. oldest programming languages, was designed in the last six
Cobol By: Steven Conner History: COBOL, COmmon Business Oriented Language, one of the oldest programming languages, was designed in the last six months of 1959 by the CODASYL Committee, COnference on DAta
Java: Learning to Program with Robots. Chapter 11: Building Quality Software
Java: Learning to Program with Robots Chapter 11: Building Quality Software Chapter Objectives After studying this chapter, you should be able to: Identify characteristics of quality software, both from
Software Engineering 1
THE BCS PROFESSIONAL EXAMINATIONS Diploma April 2006 EXAMINERS REPORT Software Engineering 1 General Comments Most of the scripts produced by candidates this year were well structured and readable, showing
Introduction. Chapter 1. Introducing the Database. Data vs. Information
Chapter 1 Objectives: to learn The difference between data and information What a database is, the various types of databases, and why they are valuable assets for decision making The importance of database
Top Ten Reasons to Transition Your IT Sandbox Environments to the Cloud
Top Ten Reasons to Transition Your IT Sandbox Environments to the Cloud WHITE PAPER BROUGHT TO YOU BY SKYTAP 2 Top Ten Reasons to Transition Your IT Sandbox Environments to the Cloud Contents Executive
OOP? What is OOP? Why? OOP in a nutshell. Stéphane Ducasse 2.1
OOP? What is OOP? Why? OOP in a nutshell Stéphane Ducasse 2.1 Reality on Software Development Analyze Maintain Design Construct Test What is important? maintainability extensibility understandability Stéphane
Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References
Outline Computer Science 331 Introduction to Testing of Programs Mike Jacobson Department of Computer Science University of Calgary Lecture #3-4 1 Denitions 2 3 4 Implementation and Evaluation 5 Debugging
MA-WA1920: Enterprise iphone and ipad Programming
MA-WA1920: Enterprise iphone and ipad Programming Description This 5 day iphone training course teaches application development for the ios platform. It covers iphone, ipad and ipod Touch devices. This
Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE
Ensuring Reliability in Lean New Product Development John J. Paschkewitz, P.E., CRE Overview Introduction and Definitions Part 1: Lean Product Development Lean vs. Traditional Product Development Key Elements
Pattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
B.Com(Computers) II Year RELATIONAL DATABASE MANAGEMENT SYSTEM Unit- I
B.Com(Computers) II Year RELATIONAL DATABASE MANAGEMENT SYSTEM Unit- I 1 1. What is Data? A. Data is a collection of raw information. 2. What is Information? A. Information is a collection of processed
Oracle Endeca Server. Cluster Guide. Version 7.5.1.1 May 2013
Oracle Endeca Server Cluster Guide Version 7.5.1.1 May 2013 Copyright and disclaimer Copyright 2003, 2013, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of
Database Schema Management
Whitemarsh Information Systems Corporation 2008 Althea Lane Bowie, Maryland 20716 Tele: 301-249-1142 Email: [email protected] Web: www.wiscorp.com Table of Contents 1. Objective...1 2. Topics Covered...2
Engineering Process Software Qualities Software Architectural Design
Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical
APPLICATION OF SERVER VIRTUALIZATION IN PLATFORM TESTING
APPLICATION OF SERVER VIRTUALIZATION IN PLATFORM TESTING Application testing remains a complex endeavor as Development and QA managers need to focus on delivering projects on schedule, controlling costs,
Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju
Chapter 7: Distributed Systems: Warehouse-Scale Computing Fall 2011 Jussi Kangasharju Chapter Outline Warehouse-scale computing overview Workloads and software infrastructure Failures and repairs Note:
Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University
Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or
SAN Conceptual and Design Basics
TECHNICAL NOTE VMware Infrastructure 3 SAN Conceptual and Design Basics VMware ESX Server can be used in conjunction with a SAN (storage area network), a specialized high speed network that connects computer
CHAPTER - 5 CONCLUSIONS / IMP. FINDINGS
CHAPTER - 5 CONCLUSIONS / IMP. FINDINGS In today's scenario data warehouse plays a crucial role in order to perform important operations. Different indexing techniques has been used and analyzed using
Managing a Fibre Channel Storage Area Network
Managing a Fibre Channel Storage Area Network Storage Network Management Working Group for Fibre Channel (SNMWG-FC) November 20, 1998 Editor: Steven Wilson Abstract This white paper describes the typical
WHITEPAPER. Managing Design Changes in Enterprise SBM Installations
WHITEPAPER Managing Design Changes in Enterprise SBM Installations By Tom Clement Serena Software, Inc. October 2013 Summary This document explains how to organize your SBM maintenance and development
Karunya University Dept. of Information Technology
PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main
Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management
Chapter 24 - Quality Management Lecture 1 1 Topics covered Software quality Software standards Reviews and inspections Software measurement and metrics 2 Software quality management Concerned with ensuring
Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur
Module 1 Introduction to Software Engineering Lesson 2 Structured Programming Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the important features of
Chemuturi Consultants Do it well or not at all Productivity for Software Estimators Murali Chemuturi
Productivity for Software Estimators Murali Chemuturi 1 Introduction Software estimation, namely, software size, effort, cost and schedule (duration) are often causing animated discussions among the fraternity
Test-Driven Development
Test-Driven Development An Introduction Mattias Ståhlberg [email protected] Debugging sucks. Testing rocks. Contents 1. What is unit testing? 2. What is test-driven development? 3. Example 4.
28. Software Re-engineering
Software Reengineering 1 28. Software Re-engineering Objectives The objective of this chapter is to explain the process of software reengineering to improve the maintainability of a software system. When
Advanced Oracle SQL Tuning
Advanced Oracle SQL Tuning Seminar content technical details 1) Understanding Execution Plans In this part you will learn how exactly Oracle executes SQL execution plans. Instead of describing on PowerPoint
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
How To Improve Software Quality
Software Qualities Quality Assurance Maintainer Go Documentation Readable Ce Go Design Functionality Ease of use Ease of learning User Reliability Correctness Efficiency Low Cost Portability Increased
Introduction to Database Systems
Introduction to Database Systems A database is a collection of related data. It is a collection of information that exists over a long period of time, often many years. The common use of the term database
To introduce software process models To describe three generic process models and when they may be used
Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software
Project Planning. COSC345 Lecture 3 Slides: Andrew Trotman Dramatic presentation: Richard O Keefe. Software Engineering 2013
Project Planning COSC345 Lecture 3 Slides: Andrew Trotman Dramatic presentation: Richard O Keefe Software Engineering 2013 Overview Assignment: The assignment sheet specifies a minimum Think about what
A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.
Processing Models Of SDLC Mrs. Nalkar Sanjivani Baban Asst. Professor, IT/CS Dept, JVM s Mehta College,Sector 19, Airoli, Navi Mumbai-400708 [email protected] Abstract This paper presents an
Storage Design for High Capacity and Long Term Storage. DLF Spring Forum, Raleigh, NC May 6, 2009. Balancing Cost, Complexity, and Fault Tolerance
Storage Design for High Capacity and Long Term Storage Balancing Cost, Complexity, and Fault Tolerance DLF Spring Forum, Raleigh, NC May 6, 2009 Lecturer: Jacob Farmer, CTO Cambridge Computer Copyright
Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology
Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room
The Rules 1. One level of indentation per method 2. Don t use the ELSE keyword 3. Wrap all primitives and Strings
Object Calisthenics 9 steps to better software design today, by Jeff Bay http://www.xpteam.com/jeff/writings/objectcalisthenics.rtf http://www.pragprog.com/titles/twa/thoughtworks-anthology We ve all seen
Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville
Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when
Programmabilty. Programmability in Microsoft Dynamics AX 2009. Microsoft Dynamics AX 2009. White Paper
Programmabilty Microsoft Dynamics AX 2009 Programmability in Microsoft Dynamics AX 2009 White Paper December 2008 Contents Introduction... 4 Scenarios... 4 The Presentation Layer... 4 Business Intelligence
Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles
Ingegneria del Software Corso di Laurea in Informatica per il Management Object Oriented Principles Davide Rossi Dipartimento di Informatica Università di Bologna Design goal The goal of design-related
Software Processes. Topics covered
Software Processes cmsc435-1 Topics covered Systems vs. software engineering Software process models Process iteration Process activities Computer-aided software engineering cmsc435-2 What is a system?
Embedded Systems Lecture 9: Reliability & Fault Tolerance. Björn Franke University of Edinburgh
Embedded Systems Lecture 9: Reliability & Fault Tolerance Björn Franke University of Edinburgh Overview Definitions System Reliability Fault Tolerance Sources and Detection of Errors Stage Error Sources
Software Engineering Techniques
Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of
Testing Lifecycle: Don t be a fool, use a proper tool.
Testing Lifecycle: Don t be a fool, use a proper tool. Zdenek Grössl and Lucie Riedlova Abstract. Show historical evolution of testing and evolution of testers. Description how Testing evolved from random
Practical Database Design
Today s discussion Practical Design In a research environment Kim Laursen, ITS Education Coordinator, 9-5674 Tom Reardon, ITS Senior Programmer/Analyst, 9-5671 What is a database? Steps in designing a
Agile Software Development
Software Testing and Maintenance Agile Software Development Jeff Offutt SWE 437 George Mason University 2008 Based on Agile Estimating and Planning, Cohn, Prentice Hall, Chapters 1-3 Thanks to Ian Sommerville
Best-in-Class Strategies for Selecting an ERP Solution in 2013. July 2013 Nick Castellina, Peter Krensky
Best-in-Class Strategies for Selecting an ERP Solution in 2013 July 2013 Nick Castellina, Peter Krensky Best-in-Class Strategies for Selecting an ERP Solution in 2013 Finding a needle in a haystack is
Software Project Models
INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 135 Software Project Models Abhimanyu Chopra, Abhinav Prashar, Chandresh Saini [email protected],
PRODUCT DESCRIPTIONS AND METRICS
PRODUCT DESCRIPTIONS AND METRICS Adobe PDM - AEM 6.0 Sites: Managed Services Basic (2015v1) The Products and Services described in this Product Description and Metrics ( PDM ) document are subject to the
Percerons: A web-service suite that enhance software development process
Percerons: A web-service suite that enhance software development process Percerons is a list of web services, see http://www.percerons.com, that helps software developers to adopt established software
EE4367 Telecom. Switching & Transmission. Prof. Murat Torlak
Path Loss Radio Wave Propagation The wireless radio channel puts fundamental limitations to the performance of wireless communications systems Radio channels are extremely random, and are not easily analyzed
Simulating the Structural Evolution of Software
Simulating the Structural Evolution of Software Benjamin Stopford 1, Steve Counsell 2 1 School of Computer Science and Information Systems, Birkbeck, University of London 2 School of Information Systems,
ESTABLISHING A MEASUREMENT PROGRAM
ESTABLISHING A MEASUREMENT PROGRAM The most important rule is to Understand that software measurement is a means to an end, not an end in itself Three key reasons for Software Measurement Understanding
Socio-Technical Systems
Software Engineering Socio-Technical Systems Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain what a socio-technical system is and the distinction between this and a
Measurement Information Model
mcgarry02.qxd 9/7/01 1:27 PM Page 13 2 Information Model This chapter describes one of the fundamental measurement concepts of Practical Software, the Information Model. The Information Model provides
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2008 Vol. 7, No. 8, November-December 2008 What s Your Information Agenda? Mahesh H. Dodani,
Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology
Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...
Chapter 13 BUILDING INFORMATION SYSTEMS. How does building new systems produce organizational change?
MANAGING THE DIGITAL FIRM, 12 TH EDITION Learning Objectives Chapter 13 BUILDING INFORMATION SYSTEMS VIDEO CASES Case 1: IBM: Business Process Management in a Service Oriented Architecture and Managing
Clock Recovery in Serial-Data Systems Ransom Stephens, Ph.D.
Clock Recovery in Serial-Data Systems Ransom Stephens, Ph.D. Abstract: The definition of a bit period, or unit interval, is much more complicated than it looks. If it were just the reciprocal of the data
Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering
Life Cycle Models V. Paúl Pauca Department of Computer Science Wake Forest University CSC 331-631 Fall 2013 Software Life Cycle The overall framework in which software is conceived, developed, and maintained.
