Software EngineeringThe Department of Computer Science, University of Cape Town
Software Engineeringby The Department of Computer Science, University of Cape TownPublication date 2010Copyright 2005-2010 University of Cape Town
Table of Contents1. Introduction . 1Objectives . 1Introduction . 1Information systems and software . 1The importance of software engineering . 2Systems . 2System boundaries . 3Categories of information system and software programs . 4Information systems . 4Legacy systems . 6The benefits of software systems . 7Tactical benefits . 7Strategic benefits . 7The reasons for change . 8Software myths . 8Management myths . 8Customer / end-user myths . 8Programmer myths . 9Review . 9Questions . 9Answers . 122. Process and Model . 16Objectives . 16The software crisis . 16The code-and-fix approach to software development . 16Software engineering and the software process . 17The layers of software engineering . 18A generic framework of the software process . 19Software models . 20Prescriptive and agile models . 20Computer Aided Software Engineering: CASE . 31Review . 35Questions . 35Answers . 363. Requirements Engineering . 38Objectives . 38Requirements engineering . 38What is requirements engineering? . 38The steps in detail . 39Inception . 39Elicitation . 40Elaboration . 40Negotiation . 40Specification . 40Validation . 40Management . 41Use case modeling . 41Use case modeling in the UML specification . 41Review . 55Questions . 55Answers . 564. An Introduction to Analysis and Design . 58Objectives . 58Introduction . 58System analysis . 58iii
Software EngineeringSystem design . 58The relation between analysis and design . 58Introduction to models . 59Definition of the term “model” . 59The properties of models . 60Model properties: maintainability and disposability . 60Model properties: graphics and text . 61Model properties: comprehension . 61The main models of traditional analysis and design . 61Class model . 62Data-flow diagram . 62Sequence diagrams . 63Useful points . 64The benefits of using formal models . 64Case studies . 64Review . 65Questions . 65Answers . 655. Object-oriented Analysis and Design . 67Objectives . 67Introduction . 67Modelling standpoints . 67Classes and objects . 68Classification . 68Classification in object-oriented design . 69A definition of class and object . 69Examples of classes . 69Some thoughts on the relationship between classes and objects . 70Concrete and conceptual classes . 70Attributes . 71Operations . 73Dynamic behaviour and state . 73UML notation and conventions . 74Symbol . 74Naming conventions . 75Finding classes . 76Relationships between classes . 76Specifying relationships in detail . 77Inheritance . 78Abstract classes . 79Aggregation and composition . 80Aggregation . 80Composition . 80Self-association and roles . 81Link classes and link attributes . 81Constraints and notes . 82Notes . 82Constraints . 82Class-Responsibility-Collaborator cards . 82From model to program . 83Dynamic behaviour . 83Interaction diagrams . 83Summary . 84Review . 85Questions . 85Answers . 886. Data-Flow Diagrams . 93Objectives . 93iv
Software EngineeringIntroduction to data-flow diagrams . 93What are data-flow diagrams? . 93An example data-flow diagram . 93The benefits of data-flow diagrams . 94Case study . 95The different kinds (and levels) of data-flow diagrams . 95Elements of data-flow diagrams . 95Processes . 96Data-flows . 97Data stores . 98External entities . 99Multiple copies of entities and data stores on the same diagram . 99Context diagrams . 100What is a context diagram? . 100Constructing a context diagram . 100Level 1 data-flow diagrams . 101What is a level 1 DFD? . 101Constructing level 1 DFDs . 101Decomposing diagrams into level 2 and lower hierarchical levels . 102What is a level 2 (or lower) DFD? . 102Constructing level 2 (and lower) DFDs — functional decomposition . 103Making levels . 103Balancing . 104Numbering . 104Process descriptions . 105Validation . 105An example in constructing a data-flow diagram . 106Identify the system boundaries . 106Follow inputs . 107Follow events . 107Fill in gaps . 108Repeat . 108Review . 109Questions . 109Answers . 1127. Design . 129Objectives . 129Introduction . 129Abstraction . 129Architecture . 129Patterns . 130Modularity . 130Information hiding . 131Functional independence . 131Stepwise refinement . 131Refactoring . 132Design classes . 132Review . 133Questions . 133Answers . 1338. Design Patterns . 135Objectives . 135Introduction to design patterns . 135The idea of a pattern . 135The origins of design patterns . 137Patterns in software design . 138Design patterns in object-oriented programming . 139Definitions of terms and concepts . 139v
Software EngineeringScope of development activity: applications, toolkits, frameworks . 140Pattern classifications and pattern catalogue . 140Behavioural patterns . 141Creational patterns . 143Structural patterns . 144How to use a design pattern . 145Patterns in Java . 145The Observer pattern in Java . 145The Model-View-Controller pattern . 149Abstract factory facilities in Java . 150Composite patterns in Java . 151Review . 152Questions . 152Answers . 1549. Software Testing . 156Objectives . 156Introduction to software testing . 156The testers . 156The developers . 156An independent testing team . 157The customer . 157Principles of software testing . 157The completion of software testing . 157Writing testable software . 158Test cases and test case design . 158Testing strategies . 158Unit testing . 159Integration testing . 159Validation testing . 160System testing . 160Testing advice . 160Flow graphs, cyclomatic complexity and white-box testing . 161Black-box testing . 164Object-oriented testing . 165Debugging . 165Brute force debugging . 165Backtracking . 165Cause elimination . 165Bisect . 166Review . 166Questions . 166Answers . 167vi
List of Figures1.1. A diagrammatic representation of a system . 32.1. The code-and-fix approach . 162.2. The process with requirements . 172.3. The layers of software engineering . 192.4. The waterfall method . 212.5. The incremental development software model . 222.6. Disposable prototyping . 252.7. SELECT-Enterprise screenshot . 322.8. Java code . 332.9. A command-line Java interpreter . 333.1. Actor representations . 433.2. The system boundary . 463.3. Representations of use cases . 473.4. Use case association . 483.5. Use of stereotypes in use case relationships . 483.6. A use case example, without generalisation . 513.7. Use case generalisation . 513.8. Use case example, with generalisation . 523.9. A full example . 533.10. Without generalisation . 553.11. With generalisation . 564.1. An example class model of an estate agency . 624.2. An example of a data-flow diagram . 634.3. An example of a sequence diagram . 635.1. The UML symbol for a class . 745.2. A relationship between two classes . 765.3. Indicating multiplicity . 775.4. Generalisation-specialisation represented in the UML . 785.5. The representation of aggregation in the UML . 805.6. The representation of composition in the UML . 805.7. Link attributes . 815.8. The notation for notes . 825.9. Sequence diagram notation in the UML . 846.1. An example data-flow diagram . 946.2. The notation for a process . 966.3. Notation for a data-flow . 976.4. Notation for a data store . 986.5. Notation for external entities . 996.6. How to notate duplicated external entities . 996.7. How to notate duplicate data stores . 1006.8. A context diagram for Video-Rental LTD . 1006.9. A level 1 DFD for Video-Rental LTD . 1016.10. A level 2 data-flow diagram for Video-Rental LTD . 1026.11. Find the external entities . 1098.1. A simple pattern for a bridge . 1358.2. The girder . 1368.3. The arch . 1368.4. Suspension . 1368.5. Subdivision . 1378.6. Narrowing .
discipline of software engineering. First, software is engineered rather than manufactured. Once the software has been developed, there remains no significant “manufacturing” process that could possibly lower the software's quality (i.e., introduce software errors, cause the software
Oct 30, 2020 · 3 Cape Henlopen "RONC Cape Terrific"; "Cape Chickenlopen" Cape Higgon "RONC Cape Courageous" Cape Horn "RONC Cape Seldom" Cape Jellison "Tuff Boat"; "Cape J" Cape Knox "Cape Cutthroat" Cape Morgan "RONC Cape Anchor"; "The Workhorse of the Sea" Cape Shoalwater "Bilgewater" Cape Small "Three Puka Puka" (from her hull number 95300 and the Hawaiian word for
1 School of Business, University of Cape Coast, Cape Coast, Ghana 2 College of Distance Education, University of Cape Coast, Cape Coast, Ghana Correspondence: George Tackie, School of Business, University of Cape Coast, Cape Coast, Ghana. E-mail: firstname.lastname@example.org
CAPE MAY COUNTY (05) CONRAD JOHNSON JR CAPE MAY COUNTY FIRE MARSHAL 171 Crest Haven Rd CAPE MAY COURT HOUSE NJ 08210 (609) 465-1134 FAX (609) 463-0670 email@example.com CONRAD JOHNSON CAPE MAY COUNTY FIRE TRAINING ACADEMY DN-306 4 MOORE RD CAPE MAY COURT HOUSE NJ 08210 (609) 465-1134 FAX (609) 463-067
5. Cape Metro Health Forum The Learning Network serves as the umbrella body in the Western Cape and includes 4 higher education institutions: 1. University of Cape Town (UCT) 2. University of the Western Cape (UWC) 3. Maastricht University, in the Netherlands 4. Warwick University in the UK
1 School of Business, University of Cape Coast, Cape Coast, Ghana 2 Registrar’s Office, University of Mines and Technology, Tarkwa, Ghana 3 Directorate of Legal, Consular, and General Services, University of Cape Coast, Ghana. Correspondence: Owusu, G. A., School of Business, University of Cape Coast, Cape Coast, Ghana
University of the Western Cape, Cape Town, South Africa), M Mthethwa (Chronic Disease Initiative for Africa, University of Cape Town, Cape Town, South Africa), P Smith (The Desmond Tutu HIV Centre, Institute for Infectious Disease and Molecular Medicine, Faculty of Health Sciences, University of Cape Town,
High School, Ghana, bCollege of Distance Education, University of Cape Coast, Ghana, cIndependent Researcher, Ghana, dE-learning and Technology Unit, College of Distance Education, University of Cape Coast, Cape Coast, Ghana. eDeputy Director, Directorate of ICT's, University of Cape Coast, Cape Coast, Ghana.
17 OCT 2021 185U.S. Coast Pilot 4, Chapter 3 Cape Henry to Key West (1) The Atlantic Coast of the United States from Cape Henry to Cape Florida is low and sandy, backed by woods. From Cape Florida to Key West the coast is formed by