Harnessing Technology to make education free

Blog / ePortfolio / Forums / 292 courses / FAQ / digedcon

 
This course is currently being improved through our peer review process.

Software Engineering

Purpose of Course  showclose

Software engineering is a discipline that allows us to apply engineering and computer science concepts in the development and maintenance of reliable, usable, and dependable software.  The concept of software engineering was first discussed at the 1968 NATO Science Committee in Germany.  Today, many practitioners still debate over the term software engineering, often arguing that this discipline does not meet the criteria of engineering; rather, it should be called software development.  There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management.  Software development outside of the classroom is a very complex process notably from the fact that real-world software is much larger and more complex.

The purpose of this course is to present software engineering as a body of knowledge.  The course is designed to present software engineering concepts and principles in parallel with the software development life cycle.  The first unit will introduce you to Software Engineering, giving you a definition of this body of knowledge, as well as a discussion of the main Methodologies of Software Engineering.  You will then learn about the Software Development Life Cycle (SDLC) followed by Software Modeling using Unified Modeling Language (UML), a standardized general-purpose modeling language used to create visual models of object-oriented software.  You will go on to learn about three major phases of SDLC including Software Requirements and Analysis, Software Design, and Software Testing.  You will also learn about Project Management for the purpose of delivering timely and high-quality software.  By the time the course is complete, you will master software engineering concepts, principles and essential processes of SDLC; you will demonstrate this knowledge by creating UML artifacts for Requirements and Analysis as well as Software Design phases using an object-oriented methodology.

Course Information  showclose

Welcome to CS302.  Below, please find some general information on the course and itsrequirements.

Course Designer: Irene Wong-Bushby
 
Primary Resources: This course is comprised of a range of different free, online materials.  However, the course makes primary use of the following materials:
Requirements for Completion: In order to complete this course, you will need to work through each unit and all of its assigned materials. Pay special attention to Unit 1, as this unit willlay the groundwork for understanding the moreadvanced, exploratory material presented in later units.  You will need to complete:
  • The Final Exam
Note that you will only receive an official grade on your Final Exam.  However, in order to adequately prepare for this exam, you will need to work through the assigned materials in each unit.
 
In order to “pass” this course, you will need to earn a 70% or higher on the Final Exam.  Your score on the exam will be tabulated as soon as you complete it.  If you do not pass the exam, you may take it again.

Time Commitment: This course should take you about 135 hours to complete.  Each unit includes a “time advisory” that lists the amount of time you are expected to spend on each subunit.  These should help you plan your time accordingly.  It may be useful to take a look at these time advisories and to determine how much time you have over the next few weeks to complete each unit, and then to set goals for yourself.  For example, Unit 1 should take you approximately 7 hours to complete.  Perhaps you can sit down with your calendar and decide to complete subunits 1.1.1 (a total of 1 hour) on Monday night; subunit 1.1.2 (a total of 2 hours) on Tuesday night; subunit 1.1.3  (a total of 4 hours) on Wednesday night; etc.
 
Suggestions/Tips: This course is based on Sue Conger’s text The New Software Engineering.  Except for Units 3 and 8, you will benefit going through the course in sequence as the concepts build on each other throughout the text.  If you are already familiar with Object-oriented analys is and design OOAD, you may skip Unit 3 or use Unit 3 as a review.  Unit 8 represents a summative review of OOAD, using a case study approach.  This course gives special emphasis to OO as the OO perspective is compliant with ACM/IEEE’s Software Engineering curriculum.  It may help to take detailed notes as you work through the text, which will help you prepare for your Final Exam.  

Learning Outcomes  showclose

Upon successful completion of this course, the student will be able to:
  • Demonstrate mastery of software engineering knowledge and skills, and professional issues necessary to practice software engineering.
  • Discuss principles of software engineering.
  • Describe software development life cycle models.
  • Learn principles of software modeling through UML as a modeling language.
  • Identify major activities and key deliverables in a software development life cycle during software requirements and analysis, software design, and software testing.
  • Apply the object-oriented methodology in software engineering to create UML artifacts for software analysis and requirements, software design, and software testing.
  • Apply project management concepts in a software engineering environment to manage project, people, and product.
  • Participate as an individual and as part of a team to deliver quality software systems.

Course Requirements  showclose

In order to take this course, you must:

√    Have access to a computer.

√    Have continuous broadband Internet access.

√    Have the ability/permission to install plug-ins or software (e.g. Adobe Reader orFlash).

√    Have the ability to download and save files and documents to a computer.

√    Have the ability to open Microsoft files and documents (e.g. .doc, .ppt, .xls, etc.).

√    Be competent in the English language.

√    Have read the Saylor Student Handbook.

√    Have completed the following courses in “The Core Program” of the Computer Science discipline: CS101, CS102, CS107, CS201, CS202,
and CS301.

Unit Outline show close


Expand All Resources Collapse All Resources
  • Unit 1: Introduction To Software Engineering  

    When dependency on software and computers became more important, software grew in size and became a necessity for businesses and users all over the world.  The last 30 years has seen an unparalleled explosion in the amount of software produced and usedby our modern society.  There is now a need to set concrete objectives(e.g. functional requirements), predict necessary resources(e.g. cost estimate)to attain those objectives,and manage customers’ expectations.

    As you review the material in this unit, compare and contrast software engineering with computer science.These two disciplines are closely related, but they have some differences. It is important to gain this understanding as you review the material in subunit 1.1.1.2.  Also, spend some time on the three commonly used methodologies in software engineering (i.e., data-oriented, process-oriented and object-oriented). You will find this central theme (i.e. the three methodologies) repeated in software requirements and analysis as well as software design.

    Unit 1 Time Advisory   show close
    Unit 1 Learning Outcomes   show close
  • 1.1 Software Engineering Overview  
  • 1.1.1 What Is Software Engineering?  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering” (PDF)
       
      Instructions: Scroll down the webpage to the title “The New Software Engineering;” note that the titles are in alphabetical order.  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read the sections titled “Introduction” and “Software Engineering” in Chapter 1 (pages 1-4).  You will use this text throughout the course, so you may want to save a copy of the PDF to your desktop to easily access as you move through each unit.  This text positions software engineering as a multi-trillion dollar investment in typical Fortune 1000 companies.  It discusses what is software engineering and defines basic software engineering terms. 

      This subunit should take you approximately 30 minutes to complete.

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 1.1.1.1 History of Software Engineering  
  • 1.1.1.2 Differences between Software Engineering and Computer Science  
  • 1.1.2 Software Applications  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering”: “Chapter 1: Overview of Software Engineering” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order.)  Click on the “PDF” hyperlink after this title to open the PDF file.   Please read the section titled “Applications” in Chapter 1 (pages 5-23).  This reading assignment covers the next four topics outlined in subunits 1.1.2.1-1.1.2.4: Software Characteristics, Software Responsiveness, Types of Software, and Software in Business.  

      This reading should take you approximately 4 hours to complete.

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 1.1.2.1 Software Characteristics  

    Note: This topic is covered by the reading under subunit 1.1.2.  Please focus on the section titled “Application Characteristics” on pages 5-13 of the reading; in particular, make sure to carefully review Figure 1-1 on page 6 for an overview of software characteristics.

  • 1.1.2.2 Software Responsiveness  

    Note: This topic is covered by the reading under subunit 1.1.2.  Please focus on the section titled “Application Responsiveness” on pages 13-17 of the reading; in particular, make sure to carefully review Figure 1-12 on page 14 for an overview of two types of software responsiveness.

  • 1.1.2.3 Types of Applications  

    Note: This topic is covered by the reading under subunit 1.1.2. Please focus on the section titled “Types of Applications” on pages 17-22 of the reading.

  • 1.1.2.4 Applications in Business  

    Note: This topic is covered by the reading under subunit 1.1.2.  Please focus on the section titled “Applications in Business” on pages 22 and 23 of the reading; in particular, make sure to carefully review Figure 1-17 on page 22 for an overview of application in business.

  • 1.1.3 Attributes of Good Software  
  • 1.1.3.1 Functionality, Reliability, and Usability  

    Note: This topic is covered by the reading under subunit 1.1.3.  Pay particular attention to the chart that addresses the six characteristics of software, noting the questions asked to check software quality.  Also, make sure to review the functionality, reliability, and usability sections of the table that presents characteristics, subcharacteristics, and definitions. 

  • 1.1.3.2 Efficiency, Maintainability, and Portability  

    Note: This topic is covered by the reading under subunit 1.1.3.  Pay particular attention to the chart that addresses the six characteristics of a software, noting the questions asked to check software quality.  Also, make sure to review the efficiency, maintainability, and portability sections of the table that presents characteristics, subcharacteristics, and definitions.

  • 1.2 Software Engineering Methodologies  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order.)  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read the following sections in Chapter 1: Methodologies and User Involvement in Application Development (pages 34 -39).  A methodology is a body of practices within a discipline (e.g. software engineering).  It can contain procedures, techniques, and processes. According to Conger, there are five classes of software engineering methodologies.  For the purpose of this course, you will look at the more commonly used data-oriented, process-oriented, and object-oriented (OO) methodologies.  This course places special emphasis on the OO methodology.  The OO perspective is compliant with ACM/IEEE’s Software Engineering curriculum.  

      This reading should take approximately 1 hour to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 1.3 Software Engineering Code of Ethics and Professional Practices  
    • Reading: Lancaster University: ACM/IEEE-CS’s “Professional and Ethical Responsibility”

      Link: Lancaster University: ACM/IEEE-CS’s “Professional and Ethical Responsibility” (PDF)
       
      Instructions: Scroll down to the bottom of the webpage to the hyperlink “Ethical and Professional Issues.”  Click on the link to open the PDF file.  Please read the material in its entirety (4 pages).  In addition to adhering to standards of honesty and integrity, software engineers also operate under a code of professional ethics as a profession-at-large.

      This reading should take approximately 15 minutes to complete.
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

      The Saylor Foundation does not yet have materials for this portion of the course. If you are interested in contributing your content to fill this gap or aware of a resource that could be used here, please submit it here.

      Submit Materials

    • Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 4: Data Gathering for Application Development”

      Link: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 4: Data Gathering for Application Development” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read the following sections in Chapter 4: Professionalism and Ethics (pages 102-107).  According to the Association of Computing Machinery (ACM) and Data Processing Management Association (DPMA), professionalism is acting in accordance with the highest expectations of a professional group.  As you read the ACM Code of Ethics, think about ethics and professionalism as going hand in hand. 

      This reading should take approximately 1 hour to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

    • Assessment: The Saylor Foundation’s “Unit 1 Checkpoint”

      Link: The Saylor Foundation’s “Unit 1 Checkpoint” (PDF)

      Instructions: Please click on the link above, and follow the instructions to complete this assessment. When you have completed the assessment, check your answers against the “Unit 1 Checkpoint Answer Key” (PDF).

      Completing this assessment should take approximately 15 minutes.

  • Unit 2: Software Development Life Cycle Models  

    Software Development Life Cycle SDLC refers to the process of software development.  The International Organization for Standardization’s ISO12207, the industry standard for software life cycle processes, describes the Development process as consisting of requirements, design, code, and (three levels of) testing.  There are different approaches to break down the work when developing software systems.Waterfall, V-Shape, Prototype, Incremental, Spiral etc. are examples of SDLC models.  Conceptually, each model provides specific guidance to the sequencing, and repetition, of life cycle activities to deliver high-quality software systems.  The various life cycle models fall into two basic categories: sequential and iterative.  
               
    As you review the material in this unit, try to see the similarities in these two categories of life cycle models from the ISO12207 Development process perspective (i.e., requirements, design, code
    ,and testing).  This will help you grasp the basic concepts of SDLC.  This unit connects strongly with the Project Management unit later in the course.  Choosing and managing a software life cycle process isa central component of Project Management.

    Unit 2 Time Advisory   show close
    Unit 2 Learning Outcomes   show close
  • 2.1 Software Development Life Cycle (SDLC)  
  • 2.1.1 Acquisition and Supply  

    Note: This topic is covered by the reading under subunit 2.1.  In particular, please focus on pages 7-9, which describes the primary processes.

  • 2.1.2 Development  

    Note: This topic is covered by the reading under subunit 2.1.  In particular, please focus on pages 7-9, which describes the primary processes.

  • 2.1.3 Operation and Maintenance  

    Note: This topic is covered by the reading under subunit 2.1.  In particular, please focus on pages 7-9, which describes the primary processes.

  • 2.2 Sequential Life Cycle Model  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order.)   Click on the “PDF” hyperlink after this title to open the PDF file.  Please read the sections titled “Project Life Cycles” and “Sequential Project Life Cycle” in Chapter 1 on pages 23-28.  The Sequential Life Cycle Model, also known as a “Waterfall” approach, has a work breakdown structure where the stages of work are executed in sequence and the output of each stage becomes input to the next stage.

      This reading should take approximately 1.5 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 2.3 Iterative Life Cycle Model  
  • Unit 3: Software Modeling  

    Many believe that good design is fundamentalto creating successful software.  The first step in software creation is to develop software design.  Notations, such as UML,allow us to articulate complex ideas succinctly and precisely.  Designing software requires the use of certain industry standard design tools andmasteryof themis essential to becoming a capable software engineer. 
               
    This unit
    will introduce you to UML, a standardized general-purpose modeling language for creating visual models of object-oriented software.  This unitaimsto give you a comprehensive understanding of UML, the five fundamental artifactsof UML,and modeling concepts,as well as themodeling concepts’relationshipsto the terms system, model,and view.

    Unit 3 Time Advisory   show close
    Unit 3 Learning Outcomes   show close
  • 3.1 Object-Oriented Concepts  
    • Web Media: YouTube: bidwx Learning Labs: “Objects and Classes”

      Link: YouTube: bidwx Learning Labs: “Objects and Classes” (YouTube)
       
      Instructions: Please watch the linked video (8:46 minutes).  The video traces the concept of Classes to the days of philosophers Aristotle and Plato.

      You should spend approximately 15 minutes viewing and taking notes on this video.
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

    • Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 11: Object-Oriented Analysis”

      Link: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 11: Object-Oriented Analysis” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.   Please read the section titled “Definition of Object-Oriented Terms” in Chapter 11 (pages 461-463).  This reading will cover basic object-oriented terms including Classes/Objects; Abstract Data Type ADT/Encapsulation; Whole/Part and Generalization/Specification Classes; Inheritance/Polymorphism; and Messages as outlined in subunits 3.1.1 through 3.1.5 below.

      This subunit should take approximately 1 hour to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 3.1.1 Classes/Objects  

    Note: This topic is covered by the reading under subunit 3.1.  Pay particular attention to the video lecture, as well as note the bolded definition of class/objects on page 462.  Also, carefully review Figure 11-2 on page 461. 

  • 3.1.2 Abstract Data Type ADT/ Encapsulation  

    Note: This topic is covered by the reading under subunit 3.1.  Please review the bolded definition of abstract data type on page 462. 

  • 3.1.3 Whole/Part and Generalization/Specialization Classes  

    Note: This topic is covered by the reading under subunit 3.1.  Please review the bolded definition of abstract data type on page 462.

  • 3.1.4 Inheritance/Polymorphism  

    Note: This topic is covered by the reading under subunit 3.1.  Please review the bolded definition of abstract data type on page 462.

  • 3.1.5 Messages  

    Note: This topic is covered by the reading under subunit 3.1.  Please review the bolded definition of abstract data type on page 462.

  • 3.2 An Overview of UML  
    • Web Media: YouTube: Mike Murphy’s “Introduction to UML”

      Link: YouTube: Mike Murphy’s “Introduction to UML” (YouTube)
       
      Instructions: Please watch the linked video (7:20 minutes).  The video provides information to introduce UML as a tool for software engineers.  After viewing the video, try to write a summary that answers the following question: what is UML?
       
      Viewing this video and writing this summary should take approximately 15 minutes to complete. 
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 3.2.1 Use Cases  
    • Web Media: YouTube: Mike Murphy’s “Use Cases”

      Link: YouTube: Mike Murphy’s “Use Cases” (YouTube)
       
      Instructions: Please watch the linked video (10:35 minutes).  The video provides a discussion of the use case diagram in UML.  Can you describe each component of a use case diagram?  
       
      Viewing this video and answering the question above should take approximately 15 minutes to complete.
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 3.2.2 UML State Diagrams  
    • Web Media: YouTube: Mike Murphy’s “UML State Diagrams”

      Link: YouTube: Mike Murphy’s “UML State Diagrams” (YouTube)
       
      Instructions: Please watch the linked video (11:21 minutes).  The video provides a discussion of the state diagram in UML.  What is the purpose of the state diagram?  
       
      Viewing the video and answering the question above should take approximately 15 minutes to complete.
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 3.2.3 UML Class Diagrams  
    • Web Media: YouTube: Mike Murphy’s “UML Class Diagrams”

      Link: YouTube: Mike Murphy’s “UML Class Diagrams” (YouTube)
       
      Instructions: Please watch the linked video (9:12 minutes).  The video provides a discussion of the class diagram in UML.  What is the purpose of the class diagram?  
       
      Viewing the video and answering the question above should take approximately 15 minutes to complete.
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 3.2.4 Activity and Interaction Diagrams  
  • 3.2.5 Activity Diagrams  
  • 3.3 Modeling Concepts  
  • 3.4 UML 2.0  
  • Unit 4: Software Requirements and Analysis  

    Requirements elicitation requires the software engineer to interact with the user to gather information about “what” the software system needs to do.  In this unit,we examinethe software engineer’s activities to elicit, to analyze (or translate), to validate and to manage this phase of the life cycle in working with the user to achieve a common understanding of  the user’s goals.  This set of activities is referred to as Analysis and focuses on “what” the application will do; whereas Design describes “how” the application will work (Unit 5 Software Design). There are many ways to elicit and analyze user requirements.  As introduced in subunit 1.2, the three most commonly used methodologies are data-oriented, process-oriented, and object-oriented.  In this unit, we will drive deeper and examine the conceptual foundations, the activities, and deliverables underlying each of these methodologies applicable to software requirements and analysis.  

    As you review the material in this unit, spend some time on the object-oriented methodology as it applies to software requirements and analysis. You will be applying this in a later unit to put it all together in a case study.

    Unit 4 Time Advisory   show close
    Unit 4 Learning Outcomes   show close
  • 4.1 Requirements Fundamentals  
  • 4.1.1 Characteristics of Good Requirements: Correct, Complete, Consistent etc.  
  • 4.1.2 Content of Good requirements: Functional and Non-functional  
    • Reading: Department of Defense's Systems Management College's “System Engineering Fundamentals, Chapter 5 Functional Analysis and Allocation”

      Link: Department of Defense's Systems Management College's “System Engineering Fundamentals, Chapter 5 Functional Analysis and Allocation (PDF)

      Instructions: Please select Chapter 5 starting on page 45 and read to the end of the chapter (including supplements) on page 56.   In addition to the eight “characteristics” of a good SRS, the IEEE also recommends both functional and non-functional (performance) requirements.  Functional requirements represent what the system will do to accept and process inputs and generate outputs. For example, for an accounting system, this may be customer statement preparation at the end of the month. Non-functional requirements represent how the system has to be to satisfy system constraints. For example, this may be to prepare all customer statements within a five-hour batch window. As you read the text, note the functional and non-funtional requirements included in the examples.

      This reading should take approximately 1 hour to complete.

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

      The Saylor Foundation does not yet have materials for this portion of the course. If you are interested in contributing your content to fill this gap or aware of a resource that could be used here, please submit it here.

      Submit Materials

  • 4.2 Requirements Activities  
  • 4.2.1 Requirements Elicitation  

    Note: This topic is covered by the reading under subunit 4.2.  In particular, please focus on the sections on “Requirements elicitation.”

  • 4.2.2 Requirements Analysis  

    Note: This topic is covered by the reading under subunit 4.2.  In particular, please focus on the sections on “Requirements analysis.”

  • 4.2.3 Requirements Specification  

    Note: This topic is covered by the reading under subunit 4.2.  In particular, please focus on the section on “Requirements specification.”

  • 4.2.4 Requirements Verification  

    Note: This topic is covered by the reading under subunit 4.2.  In particular, please focus on the section on “Requirements verification.”

  • 4.2.5 Requirements Management  

    Note: This topic is covered by the reading under subunit 4.2.  In particular, please focus on the section on “Requirements management.”

  • 4.3 Requirements Elicitation Techniques  
    • Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 4: Data Gathering for Application Development”

      Link: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 4: Data Gathering for Application Development” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read the section titled “Data Collection Techniques” in Chapter 4 on pages 87-107.  There are many data gathering techniques including interviews, meetings, observations, temporary job assignment, questionnaires, documentation reviews, and software reviews.

      This reading should take approximately 4 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 4.4 Requirements and Analysis Methodologies  
  • 4.4.1 Process-Oriented Analysis  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 7: Process-Oriented Analysis”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 7: Process-Oriented Analysis” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order.)  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read Chapter 7: Process-Oriented Analysis in its entirety (pages 227-278).  Process-oriented analysis originated with the work of Yourdon-DeMarco and Gane-Sarson.  The analysis follows a top-down approach to progressively more detailed levels of process analysis resulting in “context diagrams,” “data flow diagrams,” and “data dictionary” entities.  Please note that this reading covers the topics outlined in subunits 4.4.1.1 through 4.4.1.4. 

      This subunit should take approximately 10 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 4.4.1.1 Introduction  

    Note: This topic is covered by the reading under subunit 4.4.1.  Please focus on pages 227-231 of the reading.  This reading covers the concepts and terminologies for process-oriented design.

  • 4.4.1.2 Develop Context Diagram  

    Note: This topic is covered by the reading under subunit 4.4.1.  Please focus on pages 231-241 of the reading.  The Context Diagram represents the scope of the project.

  • 4.4.1.3 Develop Data Flow Diagram  

    Note: This topic is covered by the reading under subunit 4.4.1.  Please focus on pages 241-261 of the reading.  The Data Flow Diagram identifies the flow of data through business processes to achieve a business function.

  • 4.4.1.4 Develop Data Dictionary  

    Note: This topic is covered by the reading under subunit 4.4.1.  Please focus on pages 261-270 of the reading.  The Data Dictionary is a central repository of business entities and their relationships to the application. 

  • 4.4.2 Data-Oriented Analysis  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 9 Data-Oriented Analysis”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 9 Data-Oriented Analysis” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read Chapter 9: Data-Oriented Analysis in its entirety (pages 328-390).  Information Engineering (IE) is the methodology used to illustrate data-oriented analysis.  In Data-Oriented approach, there is the notion that “data” are more stable than “processes.”  Business Area Analysis (BAA), which is the IE term for Analysis, begins with an analysis of data followed by business function processes resulting in “Entity Relationship Diagrams” (ERDs), “Data Flow Diagrams” (DFDs), and the entity/process matrix called CRUD matrix (for create-retrieve-update-delete).  Please note that this reading covers the topics outlined in subunits 4.4.2.1 through 4.4.2.6.

      This reading should take approximately 16 hours to complete. 
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 4.4.2.1 Introduction  

    Note: This topic is covered by the reading under subunit 4.4.2.  Please focus on pages 328-339 of the reading.  This reading covers the concepts and terminologies for data-oriented analysis.

  • 4.4.2.2 Develop Entity-Relationship Diagram  

    Note: This topic is covered by the reading under subunit 4.4.2.  Please focus on pages 339-356 of the reading.  The Entity-Relationship Diagram describes the data scope of the application.

  • 4.4.2.3 Decompose Business Functions  

    Note: This topic is covered by the reading under subunit 4.4.2.  Please focus on pages 356-363 of the reading.  Decomposing business functions means analyzing a business function in terms of its processes and sub-processes.

  • 4.4.2.4 Develop Process Dependency Diagram  

    Note: This topic is covered by the reading under subunit 4.4.2.  Please focus on pages 363-372 of the reading.  The Process Dependency Diagram identifies the types of relationships between processes. 

  • 4.4.2.5 Develop Process Flow Diagram  

    Note: This topic is covered by the reading under subunit 4.4.2.  Please focus on pages 372-381 of the reading.  The Process Flow Diagram is an expanded Process Dependency Diagram with data stores.

  • 4.4.2.6 Develop and Analyze Entity/Process Matrix  

    Note: This topic is covered by the reading under subunit 4.4.2.  Please focus on pages 381-387 of the reading.  The Entity/Process Matrix is also known as a CRUD (create, retrieve, update, delete) matrix.

  • 4.4.3 Object-Oriented Analysis  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 11: Object-Oriented Analysis”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 11: Object-Oriented Analysis” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read the sections beginning with Object-Oriented Analysis Activities in Chapter 11: Object-Oriented Analysis (pages 463-500).  Unlike process-oriented (which is focused on “functional” thinking) and data-oriented (which is focused on “entity” thinking) analyses, objected-oriented analysis is focused on “object” thinking.  Data and processes are married early in the process and encapsulated into Classes/Objects.  Object-oriented analysis (and design) represents a paradigm shift in software development.  As you read this material, bear in mind that the text illustrates this approach using the Booch notation, which has been supplanted by the Unified Modeling Language (UML).  However, much of the Booch notation has been “unified” in UML and is, therefore, still valid especially the “class diagrams,” and the classification of classes into whole/part or generalization/specialization classes.  Please note that this reading covers the topics outlined in subunits 4.4.3.1 through 4.4.3.4. 

      This subunit should take approximately 10 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 4.4.3.1 Introduction  

    Note: This topic is covered by the reading under subunit 4.4.3.  Please focus on pages 459-463 of the reading.  This reading covers the concepts and terminologies for object-oriented analysis.

  • 4.4.3.2 Develop Summary Paragraph, Identify Objects of Interest, and Identify Processes  

    Note: This topic is covered by the reading under subunit 4.4.3.  Please focus on pages 463-479 of the reading.  This reading covers the first steps of object-oriented analysis leading to the identification of objects and processes.

  • 4.4.3.3 Define the Attributes of Objects and Processes  

    Note: This topic is covered by the reading under subunit 4.4.3.  Please focus on pages 479-486 of the reading.  This reading covers the definition of attributes for objects and processes.

  • 4.4.3.4 Perform Class Analysis and Draw State-Transition Diagram  

    Note: This topic is covered by the reading under subunit 4.4.3.  Please focus on pages 486-497 of the reading.  This reading covers the remaining steps of object-oriented analysis including class analysis and state-transition diagram.

  • Unit 5: Software Design  

    After requirements and analysis, a software engineer must transform the analysis model into a design model that can be implemented on a specific hardware and software environment.  In this unit,we will discuss the principles of design and architecture design.  Just as there are various methodologies for requirements and analysis, we will drill down from the analysis model(s) to the design model(s) following the three corresponding methodologies (i.e., data-oriented, process-oriented, and object-oriented).  

    As you review the material in this unit, spend some time on the object-oriented methodology as it applies to software design.  You will be applying this in a later unit to put it all together in a case study.

    Unit 5 Time Advisory   show close
    Unit 5 Learning Outcomes   show close
  • 5.1 Software Design Fundamentals  
  • 5.1.1 Design Principles (Information Hiding, Cohesion, Coupling)  
    • Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 8 Process-Oriented Design”

      Link: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 8 Process-Oriented Design” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read the section titled “Conceptual Foundations” in Chapter 8 (pages 279-280).  The principles of good software design have not changed much over the years.  In design, we aim to divide and conquer the problem space into smaller solvable parts to better manage complexity and, therefore, cost of development/ maintenance.

      This reading should take approximately 1 hour to complete. 
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 5.1.2 Design Quality (Reliable, Usable, Maintainable, Perform, Testable, Secure)  
    • Reading: Dublin Institute of Technology: Ronan Fitzpatrick’s “Software Quality: Definitions and Strategic Issues”

      Link: Dublin Institute of Technology: Ronan Fitzpatrick’s “Software Quality: Definitions and Strategic Issues” (PDF)
       
      Instructions: Please click on the “Download” icon on the webpage to access the PDF file of “Software Quality: Definitions and Strategic Issues.”  Read section 2.3 Quality Factors (pages9–18).  For the vast majority, quality of software design is closely tied to quality assurance.  According to Fitzpatrick, quality of software design is broader than mere quality assurance.  In this article, Fitzpatrick explores the various definitions of “quality” and the quality models by McCall, Richards and Walters in 1977 and Boehm in 1978.

      This reading should take approximately 2 hours to complete. 
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 5.2 Architectural Design  
  • 5.3 Software Design Approaches  
  • 5.3.1 Process-Oriented Design  
    • Reading: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 8: Process-Oriented Design”

      Link: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 8: Process-Oriented Design” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read Chapter 8: Process-Oriented Design in its entirety (pages 279-327).  The goal of design is to map the requirements of the application to a hardware and software environment.  The result of process-oriented analysis—data flow diagrams, data dictionary entities etc.—is translated into detailed specifications for hardware and software.  The main output of process-oriented design includes structure charts, physical databases, and program specifications.  Please note that this reading covers the topics outlined in subunits 5.3.1.1 through 5.3.1.4.

      This subunit should take approximately 11 hours to complete. 
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 5.3.1.1 Introduction  

    Note: This topic is covered by the reading under subunit 5.3.1.  Please focus on pages 279-293 of the reading.  This reading covers the concepts and terminologies for process-oriented design.

  • 5.3.1.2 Transaction Analysis, Transform Analysis, and Structure Chart  

    Note: This topic is covered by the reading under subunit 5.3.1.  Please focus on pages 293-310 of the reading.  This reading covers the first three steps of process-oriented design including transaction analysis, transform analysis, and structure chart.

  • 5.3.1.3 Design the Physical Database, Program Packages, and Programs  

    Note: This topic is covered by the reading under subunit 5.3.1.  Please focus on pages 310-319 of the reading.  This reading covers the next three steps in process-oriented design including physical database, program packages, and program design/specification.

  • 5.3.1.4 Strengths and Weaknesses  

    Note: This topic is covered by the reading under subunit 5.3.1.  Please focus on pages 322-324 of the reading.  This reading covers the strengths and weaknesses of process-oriented design.

  • 5.3.2 Data-Oriented Design  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 10: Data-Oriented Design”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 10: Data-Oriented Design” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read Chapter 10: Data-Oriented Design in its entirety (pages 391-458).  The text uses the Martin [1990] version of Information Engineering, one of the many incarnations of Information Engineering’s data-oriented design, to illustrate data-oriented design.  The result of data-oriented analysis—entity relationship diagrams, data flow diagrams, CRUD matrices etc.—is translated into screen designs, production database designs, action diagrams, procedural structures, and security plans.  Compared to other approaches, data-oriented design has a strong emphasis on security, recovery, and audit controls, relating each to data and processes in the application.  Note that this reading covers topics outlined in subunits 5.3.2.1 through 5.3.2.5.

      This subunit should take approximately 16 hours to complete. 
       
      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 5.3.2.1 Introduction  

    Note: This topic is covered by the reading under subunit 5.3.2.  Please focus on pages 391-401 of the reading.  This reading covers the concepts and terminologies for data-oriented design.

  • 5.3.2.2 Analyze Data Use and Distribution  

    Note: This topic is covered by the reading under subunit 5.3.2.  Please focus on pages 401-410 of the reading.  This reading covers the first step in data-oriented design: analyze the data

  • 5.3.2.3 Define Security, Recovery, and Audit Controls  

    Note: This topic is covered by the reading under subunit 5.3.2.  Please focus on 410-424 of the reading.  This reading covers the second step in data-oriented design: defining system controls.

  • 5.3.2.4 Develop Action Diagram  

    Note: This topic is covered by the reading under subunit 5.3.2.  Please focus on pages 424-438 of the reading.  This reading covers the third step in data-oriented design: the action diagram.  The action diagram shows the processing details for an application in a structured format, which can be translated into programs and modules.

  • 5.3.2.5 Define Menu Structure and Dialogue Flow: Plan Hardware and Software and Testing  

    Note: This topic is covered by the reading under subunit 5.3.2.  Please focus on pages 438-453 of the reading.  This reading covers the last steps in data-oriented design: menu structure and dialogue flow as well as hardware/software installation and testing.

  • 5.3.3 Object-Oriented Design  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 12: Object-Oriented Design”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 12: Object-Oriented Design” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please Chapter 12: Object-Oriented Design in its entirety (pages 501-553).  The text uses the Booch methodology [1991] to illustrate object-oriented design.  The result of object-oriented analysis—class diagrams etc.—is translated into time-event diagrams, Booch diagrams, message communications, service objects, and process diagrams.  Collectively, they constitute a set of holistic specifications to effectively allocate functionality over program modules at the lowest level as well as multiprocessor configurations at the highest level.  As discussed in subunit 4.3.3, the Booch notation has been unified with other object-oriented notations (i.e., Rambaugh and Jacobsen) into Unified Modeling Language UML.  In Unit 8, we will look at another example of object-oriented analysis and design using the UML notation.  Therefore, you may skim this chapter quickly to gain familiarity with OOD, which you will apply to Unit 8.   Note this reading covers the topics outlined in subunits 5.3.3.1 through 5.3.3.3.     

      This subunit should take approximately 5.5 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 5.3.3.1 Introduction  

    Note: This topic is covered by the reading under subunit 5.3.3.  Please focus on pages 501-509 of the reading.  This reading covers the concepts and terminologies for object-oriented design.

  • 5.3.3.2 Allocate Objects to Four Domains, Time-Order Event Diagrams, and Service Objects  

    Note: This topic is covered by the reading under subunit 5.3.3.  Please focus on pages 509-521 of the reading.  This reading covers the first three steps of Booch’s object-oriented design: from allocation of objects across four domains to definition of service objects.

  • 5.3.3.3 Develop Booch Diagram, Message Communications, Process Diagram, Package Specifications, and Prototype  

    Note: This topic is covered by the reading under subunit 5.3.3.  Please focus on pages 521-534 of the reading.  This reading covers the remaining steps of Booch’s object-oriented design: from Booch diagram, message communications, process diagram, package specifications to prototyping the application.

  • Unit 6: Software Testing  

    Testing is the process of finding errors and is one of the last activities in the software life cycle.  In testing, we look to validate that software requirements analysis, software design, and software implementation mesh together correctly to deliver a software system that performs as expected, functionally and non-functionally. 

    As you review this unit, note the three levels of test plan: unit, integration, and system.  Each of these levels of test plan assures the quality of the overall software from varying levels of granularity.  In your own practice as a software engineer, be sure to incorporate these levels of testing as this is the last stop before the software goes out the door representing your professional work and code of ethics.

    Unit 6 Time Advisory   show close
    Unit 6 Learning Outcomes   show close
  • 6.1 Software Testing Terminologies  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance” (PDF)
       
      Instructions: Please read the section titled “Testing Terminology” in Chapter 17 (pages 690-694).  In this unit, you have a quick introduction to many terminologies used in the science (and art) of testing.  Do not be concerned if you do not understand them fully.  We will go back and examine these topics in more depth; subunit 6.2 will look more closely at test strategies (i.e., white-box, black-box, top-down and bottom-up), and subunit 6.3 will examine more closely levels of testing (i.e., unit test, integration test and system test).    

      This reading should take approximately 1.5 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 6.2 Software Testing Strategies  
    • Reading: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance”

      Link: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance” (PDF)
       
      Instructions: In this subunit, you will learn about two kinds of testing strategies: how the logic is tested (i.e., black-box and white-box testing) and how the testing is conducted (i.e., top-down and bottom-up testing).  If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read the section titled “Testing Strategies” in Chapter 17 on pages 694-706.  This reading applies to the next four subunits, 6.2.1 through 6.2.4: Black-Box Testing, White-Box Testing, Top-Down Testing, and Bottom-Up Testing.  

      This subunit should take approximately 3 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 6.2.1 Black-Box Testing  

    Note: This topic is covered in the reading under subunit 6.2.  Please focus on the section titled “Black-Box Testing” on pages 695-697 of the reading.

  • 6.2.2 White-Box Testing  

    Note: This topic is covered in the reading under subunit 6.2.  Please focus on the section titled “White-Box Testing” on pages 697-699 of the reading.

  • 6.2.3 Top-Down Testing  

    Note: This topic is covered in the reading under subunit 6.2.  Please focus on the section titled “Top-Down Testing” on pages 699-702 of the reading.

  • 6.2.4 Bottom-Up Testing  

    Note: This topic is covered in the reading under subunit 6.2.  Please focus on the section titled “Bottom-Up Testing” on page 702 of the reading.

  • 6.3 Software Test Coverage  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read the section titled “Test Plan for ABC Video Order Processing” in Chapter 17 (pages 706-732).  This reading applies to the topics outlined in subunits 6.3.1 through 6.3.3: Unit Testing, Integration Testing, and System Testing.  In this subunit, see how ABC Video designs testing to validate that specification, design, and coding mesh with functional and non-functional requirements of the system. 

      This subunit should take approximately 4 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 6.3.1 Unit Testing  

    Note: This topic is covered in the reading under subunit 6.3.  Please focus on the section titled “Unit Testing” on pages 710-718 of the reading.

  • 6.3.2 Integration Testing  

    Note: This topic is covered in the reading under subunit 6.3.  Please focus on the section titled “Subsystem or Integration Testing” on pages 718-723 of the reading.

  • 6.3.3 System Testing  

    Note: This topic is covered in the reading under subunit 6.3.  Please focus on the section titled “System and Quality Assurance Testing” on pages 723-729 of the reading.

  • Unit 7: Project Management  

    Project Management in a software engineering environment is unique because of the technical aspects of a software project.  The project manager’s role is different from that of the software engineer’s.  While software engineers are generally accountable for the technical aspects of a project, the project manager is accountable for organizational aspects.
               
    As you review the materials of the unit, try to connect this unit with a prior unit of Software Development Life Cycle.  You will see that the success of an SDLC depends on people, process and product.  Project Management is the glue that holds these aspects together.

    Unit 7 Time Advisory   show close
    Unit 7 Learning Outcomes   show close
  • 7.1 Project Management  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 3: Project Management”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 3: Project Management” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please Chapter 3: Project Management in its entirety (pages 57-82).  This reading covers the topics outlined in subunits 7.1.1 through 7.1.3: Organization Liaison, Personnel Management and Monitor and Control.  As discussed, the software engineer and the project manager provide complementary skills and work collaboratively on shared activities.  The three main activities of the project manager are organizational liaison, personnel management, and monitor and control.

      This subunit should take approximately 3 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 7.1.1 Organization Liaison  

    Note: This topic is covered in the reading under subunit 7.1.  Please focus on the section titled “Liaison” on pages 67-70 of the reading.  The project manager is the go between for the technical team and agents who are not members of the technical team (e.g. project sponsor, user, IS management, vendors etc.).

  • 7.1.2 Personnel Management  

    Note: This topic is covered in the reading under subunit 7.1.  Please focus on the section titled “Personnel Management” on pages 70-74 of the reading.  Personnel management includes working with Personnel (i.e. Human Resources) to hire, fire, and professionally develop employees.

  • 7.1.3 Monitor and Control  

    Note: This topic is covered in the reading under subunit 7.1.  Please focus on the section titled “Monitor and Control” on pages 74-79 of the reading.  Project monitoring involves tracking project progress relative to budget; project control means implementing changes when progress is not satisfactory (e.g. training, revising project plans etc.).

  • 7.2 Change Management  
    • Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 18: Change Management”

      Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 18: Change Management” (PDF)
       
      Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.”  (Note that the titles are in alphabetical order).  Click on the “PDF” hyperlink after this title to open the PDF file.  Please read Chapter 18: Change Management in its entirety (pages 735-764).  This reading covers the topics outlined in subunits 7.2.1 through 7.2.5. A critical component of project monitoring and control is change management.  As business requirements and operating environments change all the time, the project manager has to manage change throughout the software development cycle from acquisition, supply, development, operation to maintenance.  The guiding principles, techniques, and tools for change management are discussed in this chapter. 

      This subunit should take approximately 3 hours to complete. 

      Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.

  • 7.2.1 Designing for Maintenance  

    Note: This topic is covered in the reading under subunit 7.2.  Please focus on the section titled “Designing for Maintenance” on pages 735-741 of the reading. Applications that are designed with change in mind (i.e., flexibility) are easier and less costly to maintain.    

  • 7.2.2 Application Change Management  

    Note: This topic is covered in the reading under subunit 7.2.  Please focus on the section titled “Application Change Management” on pages 741-749 of the reading.  Applications frequently change because of changing business or technical environments.  By establishing application change management procedures, the changes may be tracked, reviewed, and prioritized.

  • 7.2.3 Software Management  

    Note: This topic is covered in the reading under subunit 7.2.  Please focus on the section titled “Software Management” on pages 749-751 of the reading.  A core concept in software management is to decide whether to “maintain” or to “retire” the application.  When an application no longer works or when maintenance cost is high, the application becomes a potential candidate for retiring.   

  • 7.2.4 Configuration Management  

    Note: This topic is covered in the reading under subunit 7.2.  Please focus on the section titled “Configuration Management” on pages 751-756 of the reading.  Configuration management is the identification, organization, and control of software changes.  Software changes are developed over a fixed version of working code (AKA “baseline” code).  This is released and becomes the new “baseline” for the next set of software changes. 

  • 7.2.5 Automated Tools  

    Note: This topic is covered in the reading under subunit 7.2.  Please focus on the section titled “Automated Tools for Change Management” on pages 756-759 of the reading.  There is a variety of automated tools that can facilitate and increase productivity for change management.  These include collaborative work tools, documentation tools, reverse engineering tools, and configuration management tools. 

  • Unit 8: Putting It Together: A Case Study  

    This unit pulls together the object-oriented methodology in software requirements and analysis (i.e. Unit 4) as well as software design (i.e. Unit 5).  You will apply UML to demonstrate your understanding of the software development life cycle given a set of user requirements.  You will also have the opportunity to apply Software Testing techniques to assess the quality of the finished project. 

    Unit 8 Time Advisory   show close
    Unit 8 Learning Outcomes   show close
  • 8.1 Preparation  
  • 8.2 Design Modification and Quality Control  
  • Final Exam  

« Previous Unit Next Unit » Back to Top